zoukankan      html  css  js  c++  java
  • Deep Learning综述[上]

    Deep-Learning-Papers-Reading-Roadmap: [1] LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. "Deep learning." (2015) (Three Giants' Survey)

    Review

    机器学习在当下有很多应用:从网络搜索的内容过滤到电商的商品推荐,以及在手持设备相机和智能手机上的应用。机器学习系统用来做图像识别,语音转换,推送符合用户兴趣的内容。这些应用逐渐地开始不仅仅使用机器学习,越来越多的使用深度学习。

    传统的机器学习在处理原始自然数据(raw form)方面能力有所限制。

    • 几十年来,构建一个模式识别或机器学习系统要求由精心的、全面的专家设计一个特征抽取器:把原始数据(如图片的像素值)转换成学习算法能识别的内部表示或者向量形式。

    表示学习是一系列允许机器接受原始数据并自动转换成监测或分类任务能处理的形式的方法。

    深度学习方法是有多层表示的表示学习方法,由简单的非线性模块组成,上一层的转换结果作为下一层的输入继续进行转换表示(变得更抽象)。

    举例来说,对于一张图片,以像素值数组形式送到网络中。第一层学到的表示结果为图片中特定方向、特定位置的边的有无;第二层学到的表示结果为通过将边组合而形成的图形;第三层学到的表示结果为将上层的图像集成,对应于物体的局部特征。

    分层学习

    深度学习的关键在于特征层并不是专家工程师设计的,而是使用学习算法从数据中学到的。

    深度学习可以在科学研究、商业以及政府任务上。而且在图像识别、语音识别以及分析DNA构造方面取得了很大的进展,在自然语言处理方面也有很好的应用前景,比如主题分类、语义分析以及问答系统和翻译。

    由于深度学习不需要大量的专家工程师设计相应的特征表示,而且可用数据的增多、计算能力的增强,深度学习一定会取得更多的成功。

    Supervised learning

    机器学习算法中最常见的形式为监督学习。比如我们想搭建一个图片分类系统,区分马、汽车、人和宠物四类。首先收集这四类的图片,然后打上标签。在训练过程中,对于输入的图片会输出一个得分向量,一类一个得分。我们想要目标分类在所有分类中拥有最高的得分,但是在训练之前不能知道目标分类的得分。设计的目标函数:比较算法输出和目标分数之间的差距。机器学习算法然后通过修改中间参数(weights权重系数)来最小化误差,即目标函数。

    深度学习网络中有成百万的权重系数,成百万的训练样本。而为了调整权重系数,学习算法计算关于每个权重的梯度向量---意味着误差关于权重的变化率大小。

    深度学习梯度计算方法:SGD随机梯度下降法。

    传统机器学习需要精心设计特征抽取器,而这个过程往往需要大量的专业技能和丰富的邻域知识。

    深度学习则可以避免这一繁琐的过程:特征可以通过学习算法自动学习得到。而这正是深度学习的关键之处。

    Backpropagation to train multilayer architectures

    从模式识别的早期时代开始,科学家就想通过可训练的多层网络替代手工选定特征,但是直到20世纪80年代中期才找到合适的解决方案----多层网络可以通过简单SGD来训练。只要是关于输入和中间权重的平滑函数,都可以通过BP反向传播算法计算梯度向量。这一想法在20世纪70年代和80年代由几个研究小组提出。

    反向传播计算目标函数关于各个层权重系数的导数应用了导数的链式法则。

    反向传播的核心思想:目标函数关于模块输入的导数可以通过该模块输出的导数来计算得到。

    在20世纪90年代晚期,神经网络和反向传播一直被机器学习社区、计算机视觉以及语音识别社区团体所摒弃、忽略。当时普遍认为在利用很少的先验知识情况下,学到的多级特征抽取器并不可靠。而且,梯度下降算法会陷在局部最小值处。

    最近通过理论研究以及实验结果显示,局部最优解并不是最严峻的问题,而是梯度消失问题。

    大约在2006年,从CIFAR研究小组的提取的非监督学习算法开始,科学家关于深度前馈网络的兴趣才开始复苏。

    与全连接的前馈网络相比CNN(卷积神经网络)--一种特殊的深度前馈神经网络,训练更容易。

    Convolutional neural networks

    卷积神经网络是设计用来处理多维数组形式的数据,比如2D的彩色图片。许多数据形式都是通过多维数组来表示的:1D的信号、序列以及语言;2D的图像和音频;3D的视频以及带声音的图片。

    ConvNets卷积神经网络的4个关键在于:局部连接、权重共享、池化以及多层处理。

    ConvNets

    典型的卷积神经网络结构分为多个阶段。起始阶段主要是两种网络层:卷积层和池化层。卷积层中的神经元形成feature maps(特征图),feature maps里的每个神经元与前一层feature maps里的局部神经元通过filter(一系列权重系数)进行连接。这种局部连接得到的权重和之后通过一个非线性函数(如ReLU)。feature map里的所有神经元共享权重系数,即filter。这样设计的原因由两个:

    1. 数组形式的数据,如图片,局部值之间是高度相关的,形成容易检测的各种局部图形;
    2. 图片和其他信号数据的局部统计特征对于位置具有不变性。

    卷积层的作用在于检测本层与前一层网络的局部连接,而池化层的作用在于将语义上相似的特征整合成一个。

    卷积神经网络的反向梯度计算和常规的深度网络计算一样简单。

    许多自然信息都是分层形成的--高级的特征可以通过低维特征整合形成,深度学习正是利用了这一特点。

    在图像中,局部的边整合形成图形,图形集成为图像的小区域,小区域形成物体。在语音和文本中也存在分级现象,如声音、音素和音节,单词和句子。

    当前一层中的输入数据位置和表现有变化的时候,池化操作可以允许这些特征表示出现这些变化(鲁棒性)。

    卷积神经网络中的卷积层和池化层灵感来自于视觉神经科学中简单细胞和复杂细胞的经典概念。当卷积神经网络和猴子面对相同的图片时,卷积神经网络的激活单元情况解释 了猴子下颞叶皮质中随机160个神经元的变化情况。卷积神经网络与神经认知有渊源,它们的网络架构有点相似,但是神经认知中没有类似于反向传播算法这种端到端的监督学习算法。

    在20世纪90年代早期,基于卷积神经网络出现了大量的应用,以基于时延神经网络的语音识别和文档阅读开始。卷积神经网络也用来做物体检测,比如人脸识别。

  • 相关阅读:
    工作感悟
    9/10记事
    总结几份工作的感悟
    四次原则
    在UC浏览器上很炫的一个效果
    php跨服务器传递对象
    wdlinux一键安装包
    手机号码4位隐藏
    php中英文字符串转字母转大小写
    MySQL添加用户、删除用户与授权
  • 原文地址:https://www.cnblogs.com/ysugyl/p/8996415.html
Copyright © 2011-2022 走看看