深度学习算法主要分类三大类:自动编码器,深度神经网络和卷积神经网络。下面是对这三种网络分类进行的初步调研。

深度学习6篇非常重要的文章:

  1.《Learning multiple layers of representation》 / G E. Hinton

(1)主要内容:论述采用多层网络表达(深度学习网络:卷积网络,堆叠自动编码器,深度神经网络)来提取(如,语音识别,物体识别,图像等感知输入)的特征,而不是传统的BP网络。从网络结构,噪声分析等方面来论证。

(2)不采用BP网络原因:BP网络需要大量的标签数据,而且识别的效果比多层网络差很多。

(3)采用多层网络结构表达的原因:1)模型学习的目的是产生感知数据(权值和偏差),而不是对数据进行分类,因此不需要大量的标签数据。2)可以将多层网络分解为多个单层网络逐层学习(比如说:受限玻尔兹曼机RBM),克服了传统分散分层生成模型(多层堆叠模型)存在的干扰问题。3)可以采用独立的精调来提高混合模型(特征提取+分类)的生成和区分性能。

(4)

(5)结果:

(6)未来工作:1)探究深度结构是如何对输入进行表达的(目前我们只能通过给定一个输入,得到一个输出向量,并不清楚内部结构,因为深度网络内部的神经元是非线性的)2)单向连接网络结构是否足够处理问题(应该这样,底层往上层传递数据,保持准确和细节,保持稳定结构)

(7)值得注意的地方:

 

  2.《Learning Deep Architectures for AI》 / Yoshua Bengio  

(1)主要内容:对深度学习进行了全面系统的讲解。1)介绍深度学习的产生,意义,目的:人坐在地上。底层表达——〉高层抽象。

2)为什么要选择深度结构:深度不够会导致一些问题:浅层学习没办法解决,需要很多训练样本,过拟合,不能全面准确提取输入特征等等。

3)讨论局部推测和局部估计存在问题(局部不能代表整体),引出深度学习分布式表达特点和其优势。

4)核心:讲多层网络训练问题-〉无监督学习-〉深度推测结构-〉深度学习算法(两类:第一类(基于神经网络概念):卷积神经网络,自动编码器。第二类(基于能量模型):限制玻尔兹曼机(RBM)-〉深度信念网络)

5)介绍逐层贪心训练算法,用于预训练训练深度网络:深度信念网络和堆叠编码器。

   介绍随机约束条件算法,用于对整个深度信念网络进行精调

6)介绍新近提出的各种自动编码器和RBM。

7)提出了5点建议(应该怎么做):采用整体优化策略,把DBN的逐层初始化看作一个连续性的方法,从无监督到有监督转换,控制好环境温度,形成系统的知识体系。  

   解释为什了无监督学习很重要?

   提出了26个深度学习方面需要解决的问题。

 

 3.《Gradient-Based Learning Applied to Document Recognition》/ Yann LeCun  (CNN方面最重要文章)

(1)主要内容:提出卷积神经网络(CNN)用于文件识别,给出了具体的推导和定义公式等,并与以前传统文件分类方法进行对比。以CNN作为分类器,提出了一个新的用于文件识别的实时系统,图像转换系统(GTN)。提一个基于梯度下降法的全局训练算法,专门用于GTN网络,或者是其他同类的深度多层网络。给出了一个GTN实际应用例子证明。

(2)采用方法:卷积神经网络(CNN),基于梯度下降法的全局训练算法

(3)特点:专门用于处理2维的图片变量。

(4)优点:   缺点:

(5)结果:

(7)值得注意的地方:

 

 4.《An Efficient Learning Procedure for Deep Boltzmann Machines》 / Geoffrey E. Hinton

(1)主要内容:对玻尔兹曼机进行介绍。理论推导,对于独立的单个数据采用变分近似的方法估计,对于互相关联整个数据采用连续马尔科夫链去估计。把这两种完全不同的方法用于log可能性的梯度计算中,学习含有多个隐含层的玻尔兹曼机,通过逐层预训练初始化网络权值。通过实验验证实际效果。

(2)采用方法:(预训练限制玻尔兹曼机

(3)特点:

(4)优点:使得各种变量的干扰被初始化消除;有效的初始化隐含层节点的权值,是网络更容易达到最优值   缺点:

(5)结果:

(6)下一步工作:

(7)值得注意的地方:深度信念网络DBN与深度玻尔兹曼DBM机区别在于:深度信念网络最上面两层连接是有向的,而深度玻尔兹曼机可见层和隐含层都是无向的。

 

 5.《A fast learning algorithm for deep belief nets》 / Geoffrey E. Hinton 

(1)主要内容:介绍如何训练深度信念网络,采用互补先验的方法去消除传统前向模型里面存在的解释消去现象;解释了限制玻尔兹曼机与无限前向网络之间的相似性,由此引出了逐层贪心学习算法用于逐层训练一个多层的前向网络。介绍反向精调方法,用于修正DBN网络权值。给出一个实验验证方法。

(2)采用方法:逐层贪心算法,反向微调。

(4)优点:1)快速贪心学习算法可以快速确定参数,即便是在有上千万的参数和多个隐含层存在时。2)学习算法是无监督的,但却适用于学习标记的数据。3)提出的精调算法使得生成模型的区分性超过了所有其他的区分型方法。4)提取特征速度快而且准确。5)学习算法是局部的,只与前后神经节点相关。7)信息交流很简单,神经元只需要说明它们的随机二进制状态。8)生成模型可以学习低层的特性而不需要带标记的数据反馈;可以比传统分类模型学习更多的变量而不会出现过拟合现象;有标记样本学习时,每一个样本约束参量所需要的信息位数与详细说明这个标记所需要的位数一样;对一个生成模型来说,每一个训练样本需要的比特为与描述这个输入所需的比特位一致。9)从模型生成的结果很容易发现网络学到了什么特征。10)通过最后生成的图形可以解释深度隐含层生成的非线性,分布式表达。

  缺点:1)图像等输入必须转换为二进制数,当作概率处理,而不是原始的图片。2)反向调整中联想记忆的反馈仅限于最上面两层(有标记数据的调整,两层之后是权值的变换)。3)没有一个系统的方式去处理感知到的变化(权值啊,学习速率变化)。(4)需要为训练提供一个有标签的样本集;(5)学习过程较慢;(6)不适当的参数选择会导致学习收敛于局部最优解

(5)结果:

(6)下一步工作:

(7)值得注意的地方:

 

 6.《Practical Guide to Training Restricted Boltzmann Machines》 / Geoffrey Hinton 

(1)主要内容:讲解运用对比离差算法训练限制玻尔兹曼机时的一些经验方法。包括:1)如何设置一些参数的变量的值:学习速率,要素,权值衰减系数,稀疏度,权值初值设定,隐含层节点数,批量处理值。 2)选取何种类型的节点,通过何种方法更新节点的状态(随机方法或确定的方法);输入一个样本时,隐含层节点的状态更新多少次。 3)如何监控学习的进程,什么时候终止学习。

 (2)运用对比离差算法时如何收集数据:隐含层节点:预训练时,采用随机二进制数;反向重构时,采用概率。可见层节点,一直实际概率值。微调时,有监督训练调整权重时,采用采用概率值,权值随机初始化。

 (3)批量处理时最小块大小选择:对于含有少量等概率类的数据,最小块大小与数据类型大小一致,每一个类必须有一个数据;其他类数据,则先进行归一化,然后最小块数据定为10。

 (4)学习过程监控:使用重构误差。使用它但不相信它,因为它受很多因素的影响。1)可以使用以下三种图形监控重构误差变化(权值,可见层节点和隐含层节点偏差的柱状图)2)采用退火重要性抽样法去估训练数据的密度。3)用标签数据来学习组合密度时,可以比较验证集于训练集之间的区分效果的差别。

  (5)过拟合监控:比较验证集与训练集平均自由能量之间差,显著变大则可能存在过拟合。 

  (6)学习速率设置:观察权重和权重更新的柱状图和更新方向,权重更新应该是权重的倍。

  (7)权值和偏差初始化:连接权重W可以初始化为正态分布N(0, 0.01)的数值。隐含单元的偏置,设置为零。显示单元的偏置,设置为log(p_i/(1-p_i)),其中p_i为第i个显示单元在训练样本中处于激活状态的比率。

  (8)动量(用于增加学习速度的参数)选择:BP算法中的动量设置。权重更新方向不仅仅和梯度有关系,而且和上一次更新的权重有关系。

k的值可以取0.5,到学习后期可以0.9。。

  (9)权值衰减:从0.01至0.0001均可。

  (10)稀疏度设置:稀疏度设在0.01至之间。

  (11)隐含层节点数:(从防止过拟合角度讲)估计每一个样本存储需要多少个bit为,然后乘以样本数,再降低一个数量级即为隐含层单元数。

(2)值得注意的地方:1)RBM可以选择其他类型节点:softmax多项式节点,高斯可见节点,二项式节点,更正线性节点。2)各种CD算法。3)缺失值的处理。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐