花了很久看了一下玻尔兹曼机,感觉水有点深,总之一步一步来嘛~~~~
先说一下一个非常好的参考资料: 受限玻尔兹曼机(RBM)学习笔记 ,有兴趣的可以再看看这篇文章的参考文献或者博客,写的也非常好,本文就是基于这篇文章的理解,简单证明一下RBM
接下来开证,不对之处欢迎指正:
①我们首先要知道玻尔兹曼机是一种基于统计力学提出来的能量模型,是一个随机神经元模型,首先介绍一下各个参数
②已知条件:利用能量函数可以得到可见层和隐藏层的联合概率分布
③然后我们利用联合概率计算边缘分布函数可以得到可见层V的分布函数
④接下来我们就是要可见层数据最大性的拟合总体样本空间的分布,我们假设总体分布为q(x),总空间为Ω,然后我们用KL距离来计算样本分布和可见层分布的相似度
关于KL距离请看我前面写过的博客,它是一种不对称距离。既然我们要求P(x)拟合Q(x)损失的能量,那么就用下式计算
⑤然后我们会发现,只有当P(x)最大的时候,才能让KL距离最小,这时候损失能量最小,因为总样本空间是固定的,所以这个Q(x)也是固定,只需管P(x)即可。接下来我们来求这个P(v)的最大值,求关于概率函数的最大值,我们很快就能想到极大似然函数,当然求解的时候用取对数方法求解
☆ ☆ ☆ ☆ ☆ ☆一定要注意,这个式子就是我们需要解决的问题,最好把它列在稿纸一边) ☆ ☆ ☆ ☆ ☆
⑥接下来我们对模型参数中的权重W和偏置A,B分别求其偏导数,记住上式中,能量函数 E 在上面说过了,主要就是求前面的条件概率和联合概率
先来逐步求解上式中第一项对模型参数中权重W,偏置A和B的偏导:
————————————————————————————————————————————————————————————————————
————————————————————————————————————————————————————————————————————
————————————————————————————————————————————————————————————————————
————————————————————————————————————————————————————————————————————
细心的话会发现这个P(hj=1|v)没有求出来,接下来我们求这一项
这里我们将能量函数拆开成两个式子
那么可以开始求P(hj=1|v)了
随后也就得到了最终的激活概率
⑦第⑤步的第一项我们计算完毕,再来计算一下第二项
⑧至此,我们基本求出了第⑤步中需要计算的所有参数,但是有一个没求出来,写出来以后就会发现
⑨我们可以发现上面有一项∑P(v)是没有计算出来的,这个时候,我们就必须使用某些采样方法对此项进行估计,大牛Hinton提出了对比散度算法,也就是把可见层输入数据当做起点,经过K次吉布斯采样的样本当做终点,近似计算上面三个式子,然后就变成了
—————————————————————————————————————————————————————————————————————————————
好了,做一下总结,其实这里面都是围绕着最终要解决的问题,也就是第⑤步提出的那个对模型参数求梯度的式子,针对第一项和第二项,我们分别求解,利用的知识点比较多,我第一次看的时候也不懂,但是看一次代码,然后再回头看这个也就差不多懂一部分了。
最后说一下哈,文章参考的是这篇文章:http://blog.csdn.net/itplus/article/details/19408143 有兴趣可以去详细看看的。
有不对的地方,谢谢大家指正~~~~