配色: 字号:
漫话深度学习及其应用(2)
2024-05-11 | 阅:  转:  |  分享 
  
漫话深度学习及其应用(2)

胡经国



(续前)

四、深度学习的特点

区别于传统的“浅层学习”,深度学习的特点或不同点在于:

⑴、强调了模型结构的“深度”

通常具有5层、6层,甚至10多层的隐层节点(参见上图)。

⑵、明确了“特征学习”的重要性

也就是说,通过“逐层特征变换”,将样本在原空间的“特征表示”变换到一个“新的特征空间”,从而使“分类或预测”更加容易。与“人工规则构造特征的方法”相比,“利用大数据来学习特征”,更能够刻画数据丰富的内在信息。

通过设计建立适量的“神经元计算节点”和“多层运算层次结构”,选择合适的“输入层”和“输出层”;通过网络的学习和调优,建立起从输入到输出的函数关系。虽然不能100%地找到输入与输出之间的函数关系,但是可以尽可能地逼近现实的关联关系。使用“训练成功的网络模型”,就可以实现我们对复杂事务处理的自动化要求。

五、典型深度学习模型

典型的深度学习模型有:

卷积神经网络(Convolutional Neural Network,CNN)模型;

深度信任网络(Deep Belived Network,DBN)或译作(Deep Trust Network,DTN)模型(由Hinton等公司开发并且已被微软等公司用于语音识别中);

堆栈自编码网络(Stacked Auto-encoder Network,SAN)模型,等。

下面,对这些典型的深度学习模型进行简要介绍。

1、卷积神经网络模型

在“无监督预训练”出现之前,“训练深度神经网络”通常非常困难;而其中一个特例是“卷积神经网络”。

卷积神经网络,是受“视觉系统的结构”启发而产生的。第一个卷积神经网络计算模型,是在Fukushima的“神经认知机”中提出的。它基于神经元之间的局部连接和分层组织图像转换,将具有相同参数的神经元应用于前一层神经网络的不同位置,得到一种“平移不变神经网络结构形式”。后来,Le Cun等人在该思想的基础上,应用误差梯度设计并且训练卷积神经网络,在一些“模式识别任务”上得到了优越的性能。

至今,基于卷积神经网络的“模式识别系统”,是最好的实现系统之一;尤其在“手写体字符识别任务”上表现出非凡的性能。

下图为:卷积神经网络模型示意图(图源:网络)





图中:

input layer:输入层;

output layer:输出层;

hidden layer:隐层;

depth:深度

width:宽度

height:高度

2、深度信任网络模型

DBN(或DTN)模型可以解释为“贝叶斯概率”生成模型,由多层随机隐变量组成;上面的两层具有无向对称连接,下面的层得到来自上一层的自顶向下的有向连接,最底层单元的状态为可见输入数据向量。

DBN由若干“2F结构单元堆栈”组成;其结构单元通常为RBM(Restricted Boltzmann Machine,受限玻尔兹曼机)。在堆栈中,每个RBM单元的可视层神经元数量等于前一RBM单元的隐层神经元数量。

根据深度学习机制,采用“输入样例”训练第一层RBM单元,并且利用其输出训练第二层RBM模型,将“RBM模型进行堆栈”通过增加层来改善模型性能。在无监督预训练过程中,在DBN编码输入到顶层RBM以后,解码顶层的状态到最底层的单元,实现输入的重构。RBM作为DBN的结构单元,与每一层DBN共享参数。

3、堆栈自编码网络模型

堆栈自编码网络的结构与DBN类似,由若干“结构单元堆栈”组成;不同之处在于其结构单元为“自编码模型”(Auto-En-Coder)而不是RBM。自编码模型是一个两层的神经网络;第一层称为编码层,第二层称为解码层。

六、深度学习训练过程

2006年,Hinton提出了在“非监督数据”上建立“多层神经网络”的一个有效方法。该方法具体分为两步:首先逐层构建单层神经元,这样每次都是训练一个单层网络;然后,在所有层训练完成以后,使用Wake-Sleep(唤醒-睡眠)算法进行调优。

将除了最顶层以外的其他层之间的“权重”变为双向的;这样,最顶层仍然是一个单层神经网络,而其他的层则变成了“图模型”。向上的权重用于“认知”,向下的权重用于“生成”。然后,使用Wake-Sleep算法调整所有的权重。让“认知”和“生成”达成一致;也就是保证生成的最顶层表示“能够尽可能正确地复原底层的节点。比如,如果顶层的一个节点表示人脸,那么所有人脸的图像应该激活这个节点,并且这个结果向下生成的图像应该能够表现为一个大概的人脸图像。Wake-Sleep算法分为唤醒(Wake)和睡眠(Sleep)两个部分。

Wake阶段:为“认知”过程,通过外界特征和向上权重,产生每一层的“抽象表示”,并且使用“梯度下降”修改层间的下行权重。

Sleep阶段:为“生成”过程,通过顶层表示和向下权重,生成底层的“状态”,并且修改层间的上行权重。

1、自下上升的非监督学习

自下上升的非监督学习,就是从底层开始,一层一层地往顶层训练。

采用“无标定数据”(“有标定数据”也可以)分层训练各层参数。这一步可以看作是一个“无监督训练过程”,这也是与传统神经网络区别最大的部分,可以看作是“特征学习过程。

具体而言,首先用无标定数据训练第一层;训练时先学习第一层的参数。这一层可以看作是:得到一个使得输出和输入差别最小的三层神经网络的“隐层”。由于模型容量的限制以及稀疏性的约束,使得得到的模型能够学习到数据本身的结构,因而得到比输入更具有表示能力的特征。

在学习得到n-l层以后,将n-l层的输出作为第n层的输入,训练第n层,由此分别得到各层的参数。

2、自顶向下的监督学习

自顶向下的监督学习,就是采用“带标签的数据”去训练;误差自顶向下传输,对网络进行微调。基于第一步得到的各层参数,进一步优调整个多层模型的参数;这一步是一个“有监督训练过程”。第一步类似神经网络的随机初始化初值过程。由于第一步不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果。所以,深度学习的良好效果在很大程度上归功于第一步的“特征学习的过程”。

(未完待续)









1







献花(0)
+1
(本文系现代科普图...原创)