深度学习算法常见的模型主要有:栈式自动编码器(stacked auto-encoder,SAE)、CNN、受限玻尔兹曼机(restricted boltzmann machine,RBM)、深度置信网络(deep belief network,DBN)、深度玻尔兹曼机(deep Boltzmann machine,DBM)和循环神经网络(recurrent neural network,RNN)等。模型大致可分为3类,即多层感知机模型、深度神经网络模型和递归神经网络模型。本小节分别以DBN、CNN和RNN作为这3类模型的代表,对其原理进行简述。
1)DBN原理
DBN由多个RBM和一层反向传播网络(back prop agation network,BPN)堆叠而成,一个RBM是一个双层模型,包括m个神经元组成的一个可见层和n个神经元组成的一个隐藏层,可见层与隐藏层之间的连接权重是双向的,同一层内神经元相互独立,降低概率分布和训练的复杂度,层与层之间神经元全连接(图21.3)。

图21.3 DBN及RBM网络架构
DBN训练包括两部分:预训练和微调整训练。预训练用于对每层的每个RBM进行训练,每一层的输出是下一层的输入。在微调整阶段,采用反向传播算法将训练误差逐层向后传播,对整个DBN的权值参数进行调整训练。由于DBN的预训练,使得网络中各层参数权重通过训练获得,这与传统神经网络的随机初始化不同,经过预训练获得的网络训练效率高且避免了传统神经网络训练过程中容易陷入局部最优的问题。DBN的输入数据需将二维信息矩阵转化为一维向量,因此在训练过程中没有考虑图像二维结构信息,对数据分类精度有一定影响。
2)CNN原理
CNN以数据为驱动进行模型训练,是人工神经网络不断发展产生的一种方法。CNN是一个多层神经网络,由卷积、池化(下采样)、全连接和识别等运算组成(图21.4)。
(https://www.xing528.com)
图21.4 一种CNN网络模型示意
CNN每一层的输出作为下一层的输入,每一层由神经元节点组成,每一个神经元的输出是神经元节点特征以一定的权重乘以上一层特征的输入值,再加上偏差值,后经过非线性变换得到。神经元输出的集合组成一个特征图,卷积运算作用于特征图,用于特征提取。池化运算等同于下采样,应用对特征图进行局部平均、对相似的特征进行合并从而减少数据量,降低特征提取结果对图像变形的敏感度,泛化出更一般的特征。全连接运算将经过多次卷积池化后输出的多组信号组合为一组信号。识别运算则根据应用需求增加一层网络用于对信号进行分类识别。CNN网络中神经元权值共享减少了网络训练参数的个数,降低了网络训练复杂度。此外,CNN可以用于对多数组形式的数据进行处理,包括一维的信号和序列、二维的图像、三维的影像或体数据。
3)RNN原理

图21.5 RNN网络原理示意
x—输入层;h—隐藏层;o—输出层;W—神经网络的主体结构
RNN亦称递归神经网络,通过网络中的环状结构将神经元的输出在下一时间点作用于自身,从而达到RNN对上一时间点的输出进行“记忆”并影响下一时间点的目的,因此通常用于序列数据的处理,结构如图21.5所示。RNN的网络深度即时间长度,通过神经网络主体结构W将历史输入状态进行总结,使得隐藏层h包含现有的输入和过去的“记忆”。其优点是可以处理序列数据,缺点则是容易随迭代的进行,历史输入对隐含层作用会逐渐减小乃至消失,即出现梯度消失问题。此外,RNN不具备特征学习能力。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
