(一)深度学习的概念
研究人员通过分析人脑的工作方式发现:通过感官信号从视网膜传递到前额大脑皮质再到运动神经的时间,推断出大脑皮质并未直接对数据进行特征提取处理,而是使接收到的刺激信号通过一个复杂的层状网络模型,进而获取观测数据展现的规则。也就是说,人脑并不是直接根据外部世界在视网膜上的投影来识别物体,而是根据经聚集和分解过程处理后的信息来识别物体。因此视皮层的功能是对感知信号进行特征提取和计算,而不仅仅是简单地重现视网膜的图像。人类感知系统这种明确的层次结构极大地降低了视觉系统处理的数据量,并保留了物体有用的结构信息。深度学习正是希望通过模拟人脑多层次的分析方式来提高学习的准确性。
实际生活中,人们为了解决一个问题,如对象的分类(对象可是文档、图像等),首先必须做的事情是表达一个对象,即必须抽取一些特征来表示一个对象,因此特征对结果的影响非常大。在传统的数据挖掘方法中,特征的选择一般都是通过手工完成的,通过手工选取的好处是可以借助人的经验或者专业知识选择出正确的特征;但缺点是效率低,而且在复杂的问题中,人工选择可能也会陷入困惑。于是,人们就在寻找一种能够自动选择特征,而且还能保证特征准确的方法。深度学习能够通过组合低层特征形成更抽象的高层特征,从而实现自动选择特征,而不需要人参与特征的选取。
接下来我们分析深度学习的核心思想。假设有一个系统S,它有n层(S1,…,Sn),它的输入是I,输出是O,如果输出O等于输入I,即输入I经过这个系统变化之后没有任何的信息损失,保持不变,则意味着输入I经过每一层Si都没有任何的信息损失,即在任何一层Si,它都是原有信息(即输入I)的另外一种表示。现在回到我们的主题深度学习中,我们需要自动地学习特征,假设有一堆输入I(如一堆图像或者文本),并且设计了一个系统S(有n层),通过调整系统中的参数,使得它的输出仍然是输入I,那么就可以自动获取输入/的一系列层次特征。
对于深度学习来说,其思想就是堆叠多个层,也就是说上一层的输出作为下一层的输入。通过这种方式,就可以实现对输入信息进行分级表达。另外,之前假设输出严格地等于输入,这个限制过于严格,我们可以略微地放松这个限制,例如只要使得输入与输出的差别尽可能小即可,这个放松会引出另外一类不同的深度学习方法。
(二)深度学习的结构
深度学习的结构有以下三种。
1.生成性深度结构
生成性深度结构描述数据的高阶相关特性,或观测数据和相应类别的联合概率分布。与传统区分型神经网络不同,它可获取观测数据和标签的联合概率分布,这方便了先验概率和后验概率的估计,而区分型模型仅能对后验概率进行估计。DBN解决了传统Back Propagation(BP)算法训练多层神经网络的难题:①需要大量含标签训练样本集;②收敛速度较慢;③因不合适的参数选择而陷入局部最优。
DBN由一系列受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)单元组成。RBM是一种典型神经网络,该网络可视层和隐层单元彼此互连(层内无连接),隐单元可获取输入可视单元的高阶相关性。相比于传统Sigmoid信度网络,RBM权值的学习相对容易。为了获取生成性权值,预训练采用无监督贪心逐层方式来实现。在训练过程中,首先将可视向量值映射给隐单元,然后由隐单元重建可视单元,将这些新的可视单元再次映射给隐单元,就获取了新的隐单元。通过自底向上组合多个RBM可以构建一个DBN。应用高斯—伯努利RBM或伯努利-伯努利RBM,可用隐单元的输出作为训练上层伯努利-伯努利RBM的输入,第二层的输出作为第三层的输入等,如图3-2所示。
图5-2 DBN模型(www.xing528.com)
2.区分性深度结构
区分性深度结构的作用是提供对模式分类的区分性能力,通常描述数据的后验分布。卷积神经网络(Convolutional Neural Network,CNN)是第一个真正成功训练多层网络结构的学习算法,与DBN不同,它属于区分性训练算法。受视觉系统结构的启示,当具有相同参数的神经元应用于前一层的不同位置时,就可获取一种变换不变性特征。后来LeCun等人沿着这种思路,利用BP算法设计并训练了CNN。CNN作为深度学习框架是基于最小化预处理数据要求而产生的。受早期的时间延迟神经网络影响,CNN靠共享时域权值降低复杂度。CNN是利用空间关系减少参数数目以改善一般前向BP训练的一种拓扑结构,并在多个实验中获取了较好性能。在CNN中被称为局部感受区域的图像的一小部分作为分层结构的最底层输入。信息通过不同的网络层次进行传递,因此在每一层能够获取对平移、缩放和旋转不变的观测数据的显著特征。
3.混合型结构
混合型结构的学习过程包含两个部分,即生成性部分和区分性部分。现有典型的生成性单元通常最终用于区分性任务,生成性模型应用于分类任务时,预训练可结合其他典型区分性学习算法对所有权值进行优化。这个区分性寻优过程通常是附加一个顶层变量来表示训练集提供的期望输出或标签。BP算法可用于优化DBN权值,它的初始权值在RBM和DBN预训练中得到而非随机产生,这样的网络通常会比仅通过BP算法单独训练的网络性能优越。可以认为BP对DBN训练仅完成局部参数空间搜索,与前馈型神经网络相比加速了训练和收敛。
(三)从机器学习到深度学习
机器学习算法无一例外要对数据集进行各种人工干预,具体来说,分为两个阶段的干预。首先,机器学习需要把数据表示成特征的集合,究竟用何种特征表示数据是由实现该算法的程序员决定的,这是第一阶段的人工干预,称为特征选择。第二阶段的人工干预产生于人们对于机器学习算法的选择,一旦选择了某种算法,就相当于假设数据集与这个算法的模型相似。
机器学习的终极目标是让计算机能够自己从数据中学习知识,从而为人服务。但是机器学习的人工干预使得这个目标无法实现,既然需要人工干预,就无法实现知识产生的自动化,不过是将人的想法用代码实现而已。但是在这些机器学习算法中,人工神经网络与其他算法有着明显的不同:①多层神经网络可以实现一种叫作自动编码器的算法,自动编码器的隐藏层实际上相当于一个自动的特征筛选过程,这个过程称为表示学习;②神经网络从理论上来讲,与大多数机器学习算法相似,因此可以实现模型选择的自动化。
但是目前基于神经网络的特征表示基本都可以看成浅层学习,因为这些神经网络的隐藏层都很少。这是由于传统神经网络训练过程有很多局限性:①梯度扩散,传统算法在求解过程中依赖于后向传播的梯度信号,但是随着层数的增加,梯度误差矫正信号的强度会逐渐变小,以至于最后不可用;②容易得到局部最优解,而非全局最优解;③对数据要求高,尤其是要求数据必须是有标签的数据,在实际中有标签的数据很难获得,而神经网络参数有很多,很可能无法训练出有效的模型。
虽然面对诸多困难,但浅层神经网络目前依然广泛应用于图像识别等领域,这说明少量的隐藏层在合理的调试下,依然能够被应用到现实中。但正因为调试困难,神经网络在数据挖掘中的应用没有其他机器学习算法广泛。
深度学习的出现,使得这个窘境有了解决的思路。深度学习的主要思想是增加神经网络中隐藏层的数量,使用大量的隐藏层来增强神经网络对特征筛选的能力,从而能够用较少的参数表达出复杂的模型函数,逼近机器学习的终极目标——知识的自动发现。
深度学习的核心技术就是一个能够有效解决传统神经训练方法种种问题的算法,这个算法将在后续部分中阐述。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。