这篇文章主要针对深信度网络(DBN)来展开的,文章的主要工作有两个方面:第一,描述了当限制玻尔兹曼机(RBM)的输入是连续时,所利用的公式该如何变化;第二,当输入数据的分布并不是很明显时,又应该如何处理的问题。
文章的开头就阐明了深层网络较浅层网络的优势所在:因为深层网络具有较多层的非线性计算单元,因此深层网络能够更好的表示高度非线性的和high-varying(这个概念的含义可以参见“Learning Deep Architectures for AI”这篇文章,该文章特别值得一读)的函数。
首先对DBN做一些简单的介绍。DBN的结构如下图所示:
从图中可以看出,整个模型的下层是一个有向图。而模型的最上两层是无向图,其实就是一个限制玻尔兹曼机,我们通常称之为联想记忆层。不知道大家有没有想过这样一个问题,这里权值连接的方向是向下的,但是网络中数值的传播是向上的。这样的话,传播的方向与连接权值的方向相反,我们应该如何训练连接的权值呢?其实在DBN的训练中还是将每一层视作是一个RBM,利用对比分歧算法来进行训练。最后来对整个模型进行调参,无监督的学习算法包括wake-sleep算法、BP算法,监督型学习算法就会有mean-field approximation算法。
其联合概率分布为:
其中,x表示模型的输入,
表示第i层隐藏层。右式中的最后一项就对应着DBN最上两层的RBM。将左式表示成条件概率相乘的形式好处就是对其的采样更加容易。
如果第i层隐藏层
中有
个元素
,那么: