深度学习概述

1.深度学习的基本思想

假设系统S有n层,S1,S2......Sn,它的输入时I,输出是O,如果输出O等于输入I,即输入I经过这个系统后没有任何变化,这意味着输入I经过每一层Si都没有任何的信息损失,或者丢失的信息是冗余的。换句话说,在任何一层Si的输出都是输入I的另一种表现形式。深度学习的基本思想就是堆叠多个层,吧上一层的输出作为下一层的输入,通过这种方式实现对输入信息的分级表达。

图1形象说明了深度学习模型是如何从一副图像中提取简单的特征,用于目标分类标识的。从图1形象的说明了深度学习模型是如何从一副图像中提取简单的特征,用于目标分类识别的。从图1中可以看出,直接建立从像素到目标身份的映射十分困难,深度学习将其转换为一系列简单的映射,每种映射作为模型的一层。

     由此看出,这种分层的无监督的特征学习是深度学习的重要基础,它通过逐层的特征变换,将样本在原空间的特征表示映射到一个新的特征空间中,用大量简单的特征构建复杂的表示,消除输入数据中与学习任务无关因素的改变对学习性能的影响,保留对学习任务游泳的信息。

2.深度学习与神经网络

多层神经网络是较早提出的一种深度结构。1986年,反向传播算法BP的出现给机器学习带来了希望,掀起了基于统计模型的机器学习热潮。BP算法可以让一个人工神经网络模型从大量训练样本中学习出统计规律,从而对未知事件进行预测.。与以往的基于人工规则的系统相比,BP算法在许多方面具有优越性。然而,由于BP算法属于有监督学习,需要训练样本的标签信息,而在处理实际问题时,常常无法获取大量训练样本的标签信息。另外,多层神经网络由若干层非线性单元构成,每一层非线性单元的代价函数都是非凸函数,在优化过程中容易陷入局部最优的情况,因此当多层叠加之后,BP算法对模型的训练结果往往很差。

     虽然以BP为基础的人工神经网络也被称为多层感知机MLP,由于多层网络训练的困难,实际使用的大多是只含有一层隐藏节点的浅层模型。为此,Hinton等人经过二十多年的潜心研究,最终提出了一个切实可行的深度学习框架。如图2所示,深度学习可以理解为神经网络的延伸和发展,是机器学习研究中的一个新领域,其动机在于建立模拟人脑进行分析学习的神经网络,仿照人脑的机制来解释数据,通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示,具体训练流程如图3所示。虚线方框表示从原始数据中学习得到的信息。

从图2和图3可以看出,深度学习与传统的神经网络之间有着千丝万缕的联系。两者的相同点在于深度学习依然采用了类似神经网络的分层结构,系统是一个多层网络,包括输入层、隐藏层(多层)、输出层,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接,每一层可以看作是一个逻辑斯谛回归LR(Logistic Regression)模型,这种分层结构是比较接近人类大脑的结构的。

    而两者的区别在于,为了克服神经网络训练中的问题,深度学习采用了与神经网络完全不同的训练机制。传统神经网络中,采用的图3 各类人工智能系统训练流程图是BP算法来训练整个网络,整体是一个梯度下降方法,即随机设定初值,计算当前网络的输出,然后根据当前输出和标签之间的误差去改变前面各层的参数,直到收敛。这样做带来的缺陷是梯度越来越稀疏,会出现梯度扩散现象,且从顶层越往下误差校正信号越来越小。深度学习采用逐层训练的机制能够很好的解决上述问题,每次训练一层网络,同时使本层特征表示rk向上生成的高级表示rk+1与该高级表示rk+1向下生成的r′k

3. 深度学习的训练过程

正如之前所说,非凸目标代价函数收敛到局部最优是深度网络训练困难的主要因素。如果对所有层同时训练,时间复杂度会太高;如果每次训练一层,误差就会逐层传递,最终出现输入和输出严重欠拟合的问题。
       为此,深度学习采用“两步走”的方式学习各层的参数,即自下而上的非监督学习和自上而下的有监督学习。下面分别进行介绍。

3.1 自下而上的非监督学习

    这一步是一个无监督的训练过程,从最底层开始,采用无标签的数据分层训练各层参数,将第n-1层的输出作为第n层的输入,以此类推,逐层向顶层训练。这一步类似于传统神经网络的初值随机初始化过程,但这里的初值是通过学习输入数据的结构得到的,比随机初始化更接近全局最优。当所有层训练完之后,除最顶层之外,将其它层与层之间的连接变为双向连接,这样一来,最顶层仍然保持一个单层神经网络,其它层则变成了图模型。对于连接的权重,向上的表示“认知权重”,向下的表示“生成权重”,采用Wake-Sleep算法调整所有的权重,使得认知和生成达成一致,尽可能保证生成的最顶层表示能够恢复最底层的结点。

(1)Wake过程。醒的时候是一个认知过程,通过外界的特征和认知权重产生各层的节点值,同时采用梯度下降方法修改各层之间的生成权重。这一过程可以形象的描述为“如果现实跟我想象的不一样,那就改变我的生成权重,使我想象的东西就是现实这样的”。
(2)Sleep过程。睡着或者做梦的时候是一个生成过程,通过醒的时候学习的顶层表示和生成权重,生成底层的状态,同时修改各层之间的认知权重。这一过程可以形象的描述为“如果我想象的事物与梦到的景象不一致,那就改变我的认知权重,使这种景象在我看来就是我所想象的事物”。

3.2 自上而下的有监督学习

这一步是一个有监督的训练过程,在第一步学习得到的各层参数的基础上,通过带标签的数据去训练,
误差自顶向下传递,对各层参数进行微调。

 

尽量保持一致。

参考:深度学习基本概论

展开阅读全文

没有更多推荐了,返回首页