深度信念网络(DBN)和堆叠自编码(SAE)、深度自编码器(DAE)的区别
深度信念网络(DBN)和堆叠自编码(SAE)、深度自编码器(DAE)具有类似的思想,因此很容易混淆。
受限制玻尔兹曼机(Restricted Bolzmann Machine)以及自编码器(Autoencoder)
一、线路
受限制玻尔兹曼机 -> 深度信念网络(Deep Blief Network, DBN)
自编码器 -> 堆叠自编码器(Stacked Autoencoderm, SAE)
二、自编码器
自编码器的输入维度与输出维度相等,训练目的是使数据的特征得到最大的保留,去除冗余信息,一个单层的自编码器结构如下图
当然一个自编码器也可以有很多层:
三、受限制玻尔兹曼机
受限制玻尔兹曼机是一个双层结构,可见层(visible)与隐藏层(hidden),图结构为一个二分图,即可见层只与隐藏层之间有连接,但是层内是无连接的(即受限制的玻尔兹曼机),因此RBM的性质:当给定可见层神经元的状态时,各隐藏层神经元的激活条件独立;反之当给定隐藏层神经元的状态时,可见层神经元的激活也条件独立。基本结构如下:
受限制玻尔兹曼机的训练目的是为了最大程度的保留概率分布,定义了一个能量函数的概念
用矩阵来表示就是
a与b分别是可视层与隐藏层的偏置项(bias)
v, h联合概率分布是
其中Z是所有[v, h]对对应的能量的总和,v的边缘概率分布如下,h同理
由于受限玻尔兹曼机结构上的特点,所以各隐藏层之间的神经元条件概率独立,即
可见层v同理
能量函数的具体推导过程将会在后面的文章中详细解释。
四、训练方法
就像RBM是由物理模型转化过来一样,训练方法与传统的反向传播(BP)也不一样
RBM最早的训练方法有Gibbs sampling,通过不断地来回采样来训练,如下图:
然而这样的方法太慢,所以Hinton大神又提出了CD-k(contrastive divergence)算法,即只需要来回重复k次就可以,以CD-1为例:
五、深度信念网络与逐层训练
由多层受限制玻尔兹曼机堆叠起来的网络叫作深度信念网络(DBN)。深度信念网络在最后一层接入一个Softmax层用作分类,训练的时候采取逐层训练+微调的方式
- 逐层训练就是从输入层开始将网络的相邻两层当作一个受限制玻尔兹曼机进行无监督训练,训练方法见上一节,训练后将上一个RBM的隐藏层当作下一个RBM的可见层继续
- 逐层无监督训练完毕后,将进行反向传播训练对模型进行微调,从输入端输入数据,最后从输出端开始进行反向传播
自编码器虽然只是要保证输出端与输入端尽量接近,但是随着自编码器堆叠深度的加深,就会出现类似梯度扩散(Gradient diffusion)与梯度爆炸等问题,Hinton大神同样也使用了类似RBM的训练方法对深度自编码器进行逐层训练,使模型的得到了很好的初始化,加快了模型的解的最优性和收敛速度。
六、参考
- 受限玻尔兹曼机与深度置信网络
- Hinton G E. A practical guide to training restricted Boltzmann machines[M]//Neural networks: Tricks of the trade. Springer, Berlin, Heidelberg, 2012: 599-619.
- Bengio Y, Lamblin P, Popovici D, et al. Greedy layer-wise training of deep networks[C]//Advances in neural information processing systems. 2007: 153-160.
- Hinton G E, Osindero S, Teh Y W. A fast learning algorithm for deep belief nets[J]. Neural computation, 2006, 18(7): 1527-1554.
- Hinton G E, Salakhutdinov R R. Reducing the dimensionality of data with neural networks[J]. science, 2006, 313(5786): 504-507.
作者:Ph0en1x
链接:https://zhuanlan.zhihu.com/p/36079450
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。