本文是我在阅读[1]之后做的一个读书笔记,所以这里的内容几乎也是翻译外加一些自己的理解,希望对读者有益。
概括地说,RBM根据MLE原理来估计预定义分布中的参数,以便预定义分布能尽可能地逼近产生观测数据的未知分布。多个RBM分层堆叠而成的DBN(deep belief networks)构成深度学习的主要框架。
RBM是一个随机无向图模型(上图),分为可见层和隐层
。可见层中单元的个数与观测数据的维数相同,用于输入观测数据,隐层则用于刻画观测数据每个维度之间的依赖关系。每个可见层单元和隐层单元都有一个偏置参数
,并且每个隐层单元
和所有的可见层单元都有一个权重为
的无向连接边,这些都是RBM需要学习的参数,记为
。另外,每个可见层单元和每个隐层单元的取值是一个0-1随机变量。RBM可以用于提取特征,每当向可见层输入一个观测值时,每个隐层单元取值为1和取值为0的概率便可以确定,此时我们可以将每个隐层单元的期望作为特征输出。
RBM假设观测数据的概率分布为:
其中是可见层和隐层的联合概率分布,
称作能量函数,由可见层取值
,隐层取值
以及RBM的参数确定。可以看出在所有参数确定以后,任给一个观测值
,RBM都可以计算出一个对应的估计概率值。为了使得估计概率值能很接近真实的概率值,RBM需要从观测数据中学习适当的参数。RBM采用的MLE来学习参数,假设只要一个观测数据
,那么相应的似然函数为,
为了求得参数的最大似然估计,我们对似然函数进行求导,
注意
如果,给定一个训练样本可以快速计算得到似然函数的梯度,那么我们就可以采用梯度上升算法学习参数,然而似然函数的梯度直接计算起来却非常耗时,因为似然函数梯度的第二项是对所有可能的取值全部进行累加。下面我们就来探讨如何快速准确地计算似然函数的梯度。
标准的RBM中的能量函数为:
另外,RBM有一个重要的条件概率独立假设,这个假设可以大大简化模型的计算,注意这是一个预定义的模型假设,而非由其他模型中的定义经过数学推导得到的。
通过已有的模型相关定义和假设,我们可以证明如下两个结论,
其中
,上式的具体证明可以参考[1]中的第27式。给定能量函数和条件概率独立假设,并令表示多维随机变量
去掉第
维分量后形成的随机变量,那么
如此一来,我们就可以很容易地计算似然函数梯度的第一项,而第二项我们可以重写为:
我们可以通过采样从分布获得一些样本值
,然后代入进去近似地计算第二项,如果采样方法恰当,那么这样的近似也将很好。问题是分布
的计算很费时,不过好在我们知道
,而且这两个分布也容易计算,那么那么我们可以通过Gibbs采样获得样本。
相对于其他参数的梯度可以类似地计算。然而,现在的问题是Gibbs采样算法的原理是基于Markov链的,往往Markov链需要做很多次转移(也即是Gibbs采样算法中的要变得很大)才能到达稳态分布,而只有到达稳态分布才能得到真正来自
的采样值。另外,不容易确定究竟什么时候才能到达稳态分布。 所以提出了对比散度(CD,Contrastive Divergence) 算法.CD算法只进行
步采样,便将得到的
带入计算,也就是似然函数的梯度按如下方式计算,
CD算法的详细步骤如下,实验中一般。
我们现在想知道为什么CD算法可行。其实有下面两个定理保证了CD算法合理性。这两个定理的意思就是,CD算法中对似然函数梯度的近似误差的期望随着会随着 k 的增大会快速趋近于0.
[1] Asja Fischer and Christian Igel. An introduction to restricted boltzmann machines.In Progress in Pattern Recognition, Image Analysis, Computer Vision, and Applications, volume 7441, pages 14 –36. ,2012.
http://blog.sciencenet.cn/blog-798994-789555.html