1. 结构
受限玻尔兹曼机(RBM)在我看来是一种generative model的图模型,其结构是两层双向的网络,如下:
(图片来源于网络)
其中$\mathbf{W}$是共用权重(双向网络),$\mathbf{a}$、$\mathbf{b}$是两个方向的bias,$\mathbf{v}$和$\mathbf{h}$分别是可见层和隐藏层。
2. 数学模型
RBM有多种切入点,我也没有考证哪种是最原始最权威的版本,我们这里从联合分布入手。首先我们假设$\mathbf{v}$和$\mathbf{h}$的联合分布为:
$p(\mathbf{v},\mathbf{h}) = \frac{exp(-E(\mathbf{v},\mathbf{h}))}{Z_0}$
其中$Z_0$是归一化系数。能量函数 $E(\mathbf{v},\mathbf{h})$ 为
有了联合分布,那么边缘分布$p(\mathbf{v})$和$p(\mathbf{h})$、条件分布$p(\mathbf{v}|\mathbf{h})$和$p(\mathbf{h}|\mathbf{v})$都能得到。
3. 训练
有了model以后,我们要做的就是利用训练样本确定model的参数。这里我们使用最大释然估计方法,即使得$lnp(\mathbf{v})$最大。这个最优化问题没有闭式解,所以要使用梯度下降法来处理。那么这中间关键的问题就是$lnp(\mathbf{v})$对参数求导的问题。这里有一篇博客讲的非常的好:http://blog.csdn.net/itplus/article/details/19207371。有时间我也要来推导一下。最后得到的结果就是:
其中方括号中第二项对v的累加时间复杂度很高,我们可以使用Gibbs采样的方法来近似实现。
4. 算法(矩阵形式)