深度学习四种模型:卷积、递归神经、深度信念网络、自动编码器

2019年6月4日07:52:13 发表评论 157 views

深度学习源于神经网络的研究,可理解为深层的神经网络。通过它可以获得深层次的特征表示,免除人工选取特征的繁复冗杂和高维数据的维度灾难问题。目前较为公认的深度学习的基本模型包括:

  • 基于受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)的深度信念网络(Deep Belief Network,DBN);
  • 基于自动编码器(AutoEncoder, AE)的堆叠自动编码器(Stacked AutoEncoders,SAE);
  • 卷积神经网络(Convolutional Neural Networks,CNN);
  • 递归神经网络(Recurrent Neural Networks,RNN)。

1、深度信念网络DBN

DBN可用于特征提取和数据分类等。基于RBM的DBN由多个RBM堆叠而成,其结构如下图所示。

深度学习四种模型:卷积、递归神经、深度信念网络、自动编码器

网络前向运算时,输入数据从低层RBM输入网络,逐层向前运算,得到网络输出。网络训练过程,不同于传统的人工神经网络(Artificial Neural Network),分为两个阶段:

  • 预训练(Pretraining)
  • 全局微调(Fine tuning)

预训练阶段,从低层开始,每个RBM单独训练,以最小化RBM的网络能量为训练目标。低层RBM训练完成后,其隐层输出作为高层RBM的输入,继续训练高层RBM。以此类推,逐层训练,直至所有RBM训练完成。预训练阶段,只使用了输入数据,没有使用数据标签,属于无监督学习(Unsupervised Learning)。

全局微调阶段,以训练好的RBM之间的权重和偏置作为深度信念网络的初始权重和偏置,以数据的标签作为监督信号计算网络误差,利用BP(Back Propagation)算法计算各层误差,使用梯度下降法完成各层权重和偏置的调节。

2、堆叠自动编码器SAE

类似于DBN,SAE由多个AE堆叠而成,其结构如下图所示。

深度学习四种模型:卷积、递归神经、深度信念网络、自动编码器

SAE前向计算类似于DBN,其训练过程也分为预训练和全局微调两个阶段。不同于RBM的是,AE之间的连接是不对称的。每个AE可视为一个单隐层的人工神经网络,其输出目标即此AE的输入。

在预训练阶段,从低层开始,每个AE单独训练,以最小化其输出和输入之间的误差为目标。低层AE训练完成后,其隐层输出作为高层AE的输入,继续训练高层AE。以此类推,逐层训练,直至将所有AE训练完成。同样地,SAE的预训练阶段也只使用了输入数据,属于无监督学习。

在全局微调阶段,以训练好的AE的输入层和隐层之间的权重和偏置作为堆叠自动编码器的初始权重和偏置,以数据的标签作为监督信号计算网络误差,利用BP算法计算各层误差,使用梯度下降法完成各层权重和偏置的调节。

3、卷积神经网络CNN

CNN可提取输入数据的局部特征,并逐层组合抽象生成高层特征,可用于图像识别等。CNN由卷积层和次采样层(也叫Pooling层)交叉堆叠而成,其结构如下图所示。

深度学习四种模型:卷积、递归神经、深度信念网络、自动编码器

网络前向计算时,在卷积层,可同时有多个卷积核对输入进行卷积运算,生成多个特征图,每个特征图的维度相对于输入的维度有所降低。在次采样层,每个特征图经过池化(Pooling)得到维度进一步降低的对应图。

多个卷积层和次采样层交叉堆叠后,经过全连接层到达网络输出。网络的训练类似于传统的人工神经网络训练方法,采用BP算法将误差逐层反向传递,使用梯度下降法调整各层之间的参数。

4、递归神经网络RNN

RNN可用于处理时序数据或前后关联数据。RNN还可以和CNN结合使用,处理考虑样本之间相关性的问题。

深度学习四种模型:卷积、递归神经、深度信念网络、自动编码器

无论是DBN和SAE,还是CNN,都没有考虑样本之间的关联问题。RNN则考虑了样本之间的关联关系,将这种关联关系以神经网络之间的连接体现出来。一般情况下,单向RNN中,单个神经网络的隐层连接至下一个神经网络的隐层。这种连接方式考虑了前面样本对后面样本的影响。还有一种双向RNN的连接方式,单个神经网络的隐层连接了其前后神经网络的隐层,这种连接方式考虑了前后样本对当前样本的影响。

一般认为RNN的各个神经网络具有相同的权重和偏置。RNN训练时,可使用RBM或AE对其进行预训练来初始化网络参数,然后计算每个样本的输出误差,并以累积误差训练网络参数。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: