从这开始了解深度学习——视觉的深度学习与网络

已经很久没有更新内容了,今天抽空来给大家分享一些关于计算机视觉领域的一个重点,那就是 “深度学习”,接下来就来详细聊聊深度学习(为什么要深度学习特征???),然后来说说深度网络的搭建,最后让我们自己用手 DIY 属于自己的网络,现在就开始 ing......

介绍

一说起 “深度学习”,大家有想过为什么要去搭建复杂网络,去学习更高级的特征呢?其实很简单,因为趋势是朝着类脑那个大方向,现在类脑工作已经得到很多研究员的关注。

类脑计算实际上存在两个技术层面:第 1 层面是 “走出诺依曼框架”,主要属于人工神经网络的大范畴;第 2 层面是 “基于神经科学的计算机算法”,试图超越人工神经网络框架和摆脱权值计算模型,实现对生物脑的高逼真性模拟。所以欧盟都已经联合开始研究人脑,都成立一个叫 “人类脑计划”,美国也开始关注类脑。所以类脑计算这个方向是前途无量的。

第 1 类

主要有欧盟的 “人类脑计划” 和美国的 “BRAINs” 计划,虽然技术路径不同,但都是从生物脑的微观层面的实验数据和知识入手,通过逐渐整合,向上寻找中观和宏观层面上的数量关系规律,最终建立起整体的脑理论模型。
该类方法的特点是 “自下而上”,一场大规模的微观海量的数据和碎片化的实验知识的 “拼图工程”。首先发展高尖端技术工具,以实现对脑的微观的结构和功能的全面测量和记录;然后建立起全脑微观数据库;在此基础上,逐渐向大规模的脑计算模型上发展,并试图形成对脑活动、脑病变和脑智能的机制性解读的整体理论;最后形成比较成熟的类脑计算技术和类脑人工智能。这种研究属于长周期的大科学或大工程,需要动员大量人力物力和财力。

第 2 类

研究方法的特点是 “自上而下”。直接将研究重心放在一个 “好的” 脑理论的建造上,然后向下导出神经元模型和神经元群体网络模型;之后测试和检验模型与微观神经知识和数据之间的契合度。这种研究的关键在于怎样找到正确的理论入手点,这一步不是单纯的建模方法问题,也不是一般的学科性理论问题,而是若干个重要学科的理论进程中的汇合点上的再综合,属于科学大周期性的结晶过程。这种研究属于长周期和 “形而上” 的小科学。目前,采用第 2 类方法的主要有美国 Numenta 公司和中国的神经深构造运算与脑计 算 机 实 验 室(Neural Deep Structure Computing & MindComputer Lab,Mindputer Lab),两个实验室技术路径虽异,但总体方法都是先从全脑角度来建立理论框架,然后将理论逐渐地向下细化,导出中观和微观的计算模型,之后再检验与微观层面的实验数据和知识的互恰性。

各有利弊

两类研究方法各有利弊,第 1 类方法就像在万米悬崖峭壁贴身攀岩,向上的每一步很费时且充满未知。因为,从海量的数据中去试图进行全脑网络的微观拼图,是一个大随机性的事件,即使有超级计算机或其他先进微观技术的帮助,欧美两个脑项目的 10 年计划时间是远远不够的。而第 2 类方法更像是空中伞降,难点在降落伞上,只要降落伞做得好,则向下定点降落的时间和复杂度比攀岩小的多。科学史已经证明,一个好的理论是大大削减科学探险随机性风险的锐利刀具。

有点说偏了,今天我们主要来说说深度学习这些事!

为什么要深度学习?

先来一个简单的例子:

这都是底层特征的可视化,说明底层特征也只能学习一些基础的纹理等特征,但是如果达到人脑的视觉感知,就必须要学习更高级的高层语义特征。所以才会出现更深更复杂的网络,可以理解为挖掘更高层的语义特征来进行目标的表示。如下:

什么才是深度学习?

一般会有:1)组合模型;2)端到端的学习(End-to-End)。

                            学习

从具体 ------------------------> 抽象

1)组合模型

犹如上面的流程图,充分说明了模型的组合学习。

2)End-to-End

下面两个链接是前期推送的内容,充分表明了网络的端到端学习过程。

深度学习 --- 反向传播的具体案例

神经网络介绍—利用反向传播算法的模式学习

接下来参考了 “slide credit Marc’aurelio Ranzato,CVPR ‘14 tutorial”

下面这个链接也详细介绍了 CNN 的演变与改进:

深度网络的 “从古至今” 的蜕变

框架

深度学习发展迅速,随之不同的框架也大量涌现出来。

Torch7

  • NYU
  • scientific computing framework in Lua
  • supported by Facebook

Theano/Pylearn2

  • U. Montreal
  • scientific computing framework in Python
  • symbolic computation and automatic differentiation

Cuda-Convnet2

  • Alex Krizhevsky
  • Very fast on state-of-the-art GPUs with Multi-GPU parallelism
  • C++ / CUDA library

TF(大家很熟悉了,不详细介绍)

等等。

因为我入门到现在一直用 Caffe,所以今天节详细说说这个框架。

原因(参考):

  • Expression: models + optimizations are plaintext schemas, not code.
  • Speed: for state-of-the-art models and massive data.
  • Modularity: to extend to new tasks and settings.
  • Openness: common code and reference models for reproducibility.
  • Community: joint discussion and development through BSD-2 licensing.
  • Pure C++ / CUDA architecture for deep learning
  • Command line, Python, MATLAB interfaces
  • Fast, well-tested code
  • Tools, reference models, demos, and recipes
  • Seamless switch between CPU and GPU

网络(Net)

一个网络是由一组不同连接而成:

name: "dummy-net"

layers{name: "data" …}
layers {name: "conv" …}
layers {name: "pool" …}
… more layers …
layers {name: "loss" …}

LeNet:

层(Layer)

                                                           name: "conv1"
                                                           type: CONVOLUTION
                                                           bottom: "data"
                                                           top: "conv1"
                                                           convolution_param {
                                                                      num_output: 20
                                                                      kernel_size: 5
                                                                      stride: 1    
                                                                      weight_filler {
                                                                                  type: "xavier"
                                                                      }
                                                           }

Protobuf

网络(Net)和层(Layer)就是通过 Protobuf 来定义的。

Blob

Caffe 源码 ---Blob 基本使用

Solving: 训练一个网络

                                                train_net: "lenet_train.prototxt"
                                                base_lr: 0.01
                                                momentum: 0.9
                                                weight_decay: 0.0005
                                                max_iter: 10000
                                                snapshot_prefix: "lenet_snapshot"

如果你需要 GPU 训练:

caffe train -solver lenet_solver.prototxt -gpu 0

最后举一些流行的例子,有兴趣的朋友可以自己动手去 DIY。

目标检测

R-CNN: Regions with Convolutional Neural Networks
http://nbviewer.ipython.org/github/BVLC/caffe/blob/master/examples/detection.ipynb
Full R-CNN scripts available at https://github.com/rbgirshick/rcnn

视觉风格识别

Karayev et al. Recognizing Image Style. BMVC14. Caffe fine-tuning example.
Demo online at http://demo.vislab.berkeleyvision.org/ 

场景识别

http://places.csail.mit.edu/

微调(Fine-tuning)

输入:不同的源文件;

最后一层:不同的分类器。

如何成为一名成功的 “炼丹师”——DL 训练技巧

今天就到这里,希望可以给需要的朋友一带来一些帮助,谢谢!

====================================分割线================================

本文作者:AI研习社

本文转自雷锋网禁止二次转载,原文链接

时间: 2024-10-09 16:47:11

从这开始了解深度学习——视觉的深度学习与网络的相关文章

(转) 深度学习全网最全学习资料汇总之入门篇

  本文转自: http://www.dlworld.cn/ZiLiaoXiaZai/3428.html 深度学习全网最全学习资料汇总之入门篇  作为人工智能领域一个重要的研究分支,深度学习技术几乎出现在当下所有热门的AI应用领域,包括语音识别,语义理解,图像识别,大数据分析等等,甚至有人把当前的人工智能等同于深度学习.面对如此重要的江湖地位,我们相信一定有为数众多的 AI 开发者对深度学习技术充满了好奇心,想要快速着手使用这项强大的技术来解决现实生活中的实际问题.因此,雷锋网将围绕深度学习技术

【双11背后的技术】基于深度强化学习与自适应在线学习的搜索和推荐算法研究

选自<不一样的技术创新--阿里巴巴2016双11背后的技术>,全书目录:https://yq.aliyun.com/articles/68637 本文作者:灵培.霹雳.哲予 1. 搜索算法研究与实践 1.1 背景 淘宝的搜索引擎涉及对上亿商品的毫秒级处理响应,而淘宝的用户不仅数量巨大,其行为特点以及对商品的偏好也具有丰富性和多样性.因此,要让搜索引擎对不同特点的用户作出针对性的排序,并以此带动搜索引导的成交提升,是一个极具挑战性的问题.传统的Learning to Rank(LTR)方法主要是

深度学习界明星:生成对抗网络与Improving GAN

2014年,深度学习三巨头之一IanGoodfellow提出了生成对抗网络(Generative Adversarial Networks, GANs)这一概念,刚开始并没有引起轰动,直到2016年,学界.业界对它的兴趣如"井喷"一样爆发,多篇重磅文章陆续发表.2016年12月NIPS大会上,Goodfellow做了关于GANs的专题报告,使得GANs成为了当今最热门的研究领域之一,本文将介绍如今深度学习界的明星--生成对抗网络. 1何为生成对抗网络 生成对抗网络,根据它的名字,可以推

『干货』深度强化学习与自适应在线学习的阿里实践

1搜索算法研究与实践 1.1背景 淘宝的搜索引擎涉及对上亿商品的毫秒级处理响应,而淘宝的用户不仅数量巨大,其行为特点以及对商品的偏好也具有丰富性和多样性.因此,要让搜索引擎对不同特点的用户作出针对性的排序,并以此带动搜索引导的成交提升,是一个极具挑战性的问题.传统的Learning to Rank(LTR)方法主要是在商品维度进行学习,根据商品的点击.成交数据构造学习样本,回归出排序权重.LTR学习的是当前线上已经展示出来商品排序的现象,对已出现的结果集合最好的排序效果,受到了本身排序策略的影响

怎样找到一份深度学习的工作 | 附学习材料,资源与建议

如果你是一个软件工程师(或者你现在正在学习这一方面),你肯定有机会听说过深度学习(有时候深度学习缩写为"DL").它现在是一个热门.且快速发展的研究领域,解决工业界的一系列问题,从图像识别.手写识别到机器翻译,更甚于AlphaGo4比1击败了世界围棋冠军.  大部分人认为找与深度学习相关的工作应该具有博士学位或者大量的相关经验,但是如果你已经是一名很好的工程师,那你就可以很快.很好的学习这些必要的技能和技巧.至少,这是我们的观点.(即使你是深度学习的初学者,非常欢迎您加入我们的职位申请

想学习高大上的深度学习技术么?快来看看这本书

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud 作者简介:AWESOME-O 作者邮箱:awesomo2001@gmail.com Blog:http://machinelearningagents.com/author/admin 深度学习作为最近几年(准确来说是几十年)最耀眼技术之一,已经帮助研究人员和从业人员解决了大量AI领域中的许多困难问题.但是遗憾的是,深度学习作为一个新领域,直到今天都没有形成统一的规范.我推荐的这本深度学习是一本由深度学习专家

《中国人工智能学会通讯》——7.13 深度学习与分布式表示学习概览

7.13 深度学习与分布式表示学习概览 深度学习的概念源于人工神经网络的研究.深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的有效表示,而这种使用相对较短.稠密的向量表示叫做分布式特征表示(也可以称为嵌入式表示).本部分主要对于目前使用较广的一些学习算法进行一个简单的回顾. 首先介绍一些浅层的分布式表示模型.目前在文本领域,浅层分布式表示模型得到了广泛的使用,例如 word2vec.GloVec 等[6] .与传统词袋模型对比,词嵌入模型可以将词或者其他信息单元(例如短

(zhuan) 深度学习全网最全学习资料汇总之模型介绍篇

  This blog from : http://weibo.com/ttarticle/p/show?id=2309351000224077630868614681&u=5070353058&m=4077873754872790&cu=5070353058   深度学习全网最全学习资料汇总之模型介绍篇 雷锋网  作者: 三川 2017-02-21 16:38:00 查看源网址 阅读数:4       本文旨在加速深度学习新手入门,介绍 CNN.DBN.RNN.RNTN.自动编码

强化学习之 免模型学习(model-free based learning)

  强化学习之 免模型学习(model-free based learning) ------ 蒙特卡罗强化学习 与 时序查分学习   ------ 部分节选自周志华老师的教材<机器学习> 由于现实世界当中,很难获得环境的转移概率,奖赏函数等等,甚至很难知道有多少个状态.倘若学习算法是不依赖于环境建模,则称为"免模型学习(model-free learning)",这比有模型学习要难得多.   1. 蒙特卡罗强化学习: 在免模型学习的情况下,策略迭代算法会遇到几个问题: 首