确定最佳深度可以降低运算成本,同时可以进一步提高精度。针对深度置信网络深度选择的问题,文章分析了通过设定阈值方法选择最佳深度的不足之处。从信息论的角度,验证了信息熵在每层玻尔兹曼机(RBM)训练达到稳态之后会达到收敛,以收敛之后的信息熵作为判断最佳层数的标准。通过手写数字识别的实验发现该方法可以作为最佳层数的判断标准。
*基金项目: 福建省自然科学基金资助项目(2014J01234);福建省教育厅基金资助项目(JA15061)
人工神经网络是从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。2006年之前,多数的分类、回归等学习方法通常都只是包含一层隐藏层的浅层学习模型,其局限性在于在有限样本和计算单元情况下对复杂函数的表示能力有限。在2006年,多伦多大学的Hinton教授提出的深度信念网络(Deep Belief Network,DBN)的深度学习,使得人工神经网络又掀起了另一次浪潮。传统的浅层神经网络随机初始化网络中的权值,容易出现收敛到局部最小值。针对这一问题,Hinton教授提出使用无监督训练的方法先初始化权值,再通过反向微调权值的方法来确定权值从而达到更好的效果。除此之外,Mikolov提出的基于时间的深度神经网络(Recurrent Neural Network,RNN)主要用于序列数据的预测,有一定的记忆效应。而之后对于DBN的研究又扩展了一些其他的变种,比如卷积深度置信网络(ConvoluTIonal Deep Belief Networks,CDBN)等。
目前深度学习在语音识别、计算机视觉等领域已经取得了巨大的成功。
但是对于深度学习的研究是近些年才开始的,建模问题是其中的关键问题之一,如何针对不同的应用构建合适的深度模型是一个很有挑战性的问题。DBN目前在应用中依然使用经验值法来判断DBN所选用的层数及其节点数,研究发现增加DBN的层数到一定的峰值之后,再次增加DBN的层数并不能提升系统性能,反而导致训练的时间过长,从而增加了计算成本。
近年来针对DBN层数的确定已经有了一些初步的进展,其中高强利用中心极限定理证明了在受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)训练达到稳态后对应的权值系数矩阵元素服从正态分布,随着层数的增加,权值系数矩阵越来越趋于正态分布,以权值权重最趋近于正态分布的程度作为确定深度信念网络层数的依据,通过求出正态分布满足率来选择合适的层数。潘广源等人利用设定重构误差的阈值来确定层数,在重构误差未达到这个阈值时则增加一层,虽然重构误差能够在一定程度上反映RBM对训练数据的似然度,不过并不完全可靠。可以看出现在的方法基本上是设定一个阈值来进行判断,这样的做法可能会导致虽然达到了阈值但是效果并不是很好的情况。综合上述情况,本文提出利用在RBM训练达到稳态后通过计算隐藏层的信息熵来判断最佳层数,当增加一层RBM后,信息熵也会增加,当信息熵不再增加时则选取该层作为最佳层数。
1深度信念网络层数的确定2006年,Hinton等人提出了深度置信神经网络,该模型是通过若干个RBM叠加而成。RBM是一个两层模型,分别为可见层和隐藏层,RBM的训练方法为首先随机初始化可见层,然后在可见层和隐藏层之间进行Gibbs采样,通过可见层用条件概率分布P(h|v)来得到隐藏层,之后同样利用P(v|h)来计算可见层,重复该过程使得可见层与隐藏层达到平衡,训练RBM网络的目标是使得计算后的可见层的分布最大可能地拟合初始可见层的分布。而以训练数据为初始状态,根据RBM的分布进行一次Gibbs采样后所获得样本与原数据的差异即为重构误差。
引入了RBM的训练精度随着深度的增加而提高,并且证明了重构误差与网络能量正相关,之后对重构误差的值设定一个阈值,如果没有达到该阈值则增加一层;如果达到该阈值则取该层为最佳层数。通过最后的实验可以发现,虽然选取第4层为最佳层数,但重构误差在第5层和第6层依然在降低,如果阈值选取得不好,虽然重构误差能够满足阈值的条件,但是选择的层数得出的结构并不能取得很好的效果。
故本文提出利用稳定后的隐藏层的信息熵来判断最佳层数。通过信息论可知,信息熵的物理含义表示信源输出后,信息所提供的平均信息量,以及信源输出前,信源的平均不确定性,同时信息熵也可以说是系统有序化程度的一个度量,一个系统越是有序,信息熵则越低,反之信息熵越高。而训练RBM的目标是使得系统的能量函数越小,使系统越有序。所以在RBM训练完之后,信息熵将会收敛于一个较小值。
假设输入的矩阵为V=(v1,v2,v3,…,vi),经过RBM训练之后的输出矩阵为Y=(y1,y2,y3,…,yj),经过RBM的训练模型可以通过已知的可视节点得到隐藏节点的值,即:
P(Y)=S(WV+B)(1)
其中W为权重矩阵,B为偏置矩阵,S(x)为激活函数,一般选取Sigmoid函数,即:
信息熵的求解公式为:
根据Hinton提出的对比散度的算法[13],权重和偏置会根据下式进行更新:
wi,j=wi,j+[P(hi=1|V(0))v(0)j-P(hi=1|V(k))v(k)j](4)
bi=bi+[P(hi=1|V(0))-P(hi=1|V(k))](5)
当RBM训练到达终态后,则权值wi,j和偏置bi会逐渐收敛,而v是输入数据,是确定值,所以在训练达到终态后,p(yi)也会逐渐收敛,同样信息熵H(Y)会收敛于一个较小值。
当训练完一层之后,将隐藏层作为第2层的可见层输入并开始训练第2层RBM。根据信息熵的另一个物理含义平均信息量可知,在消除不确定性后,信息熵越大则表示所获得的信息量越多,则隐藏层对于抽取的特征信息量也越大。所以当信息熵不再增加时,所表示的信息量也不再增大,将每层的RBM看作为一个信源,则最后一层的RBM收敛之后信息熵应该比其他层的大,这样输入到有监督学习中的信息量才会最大。所以当信息熵不再增加时,则选择该层作为最佳层数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)