Restricted Boltzmann Machine(to be continued)

1,受限玻尔兹曼机,思想似乎是源自于热力学,因为有一个玻尔兹曼分布律的东西,具体还没学习,不过可见机器学习中不同学科的思想融合,往往是idea/innovation 的发源地。

2,想迅速入门,受知乎指引看了Hugo Larochelle在YouTube上的神经网络课第五章的Restricted Boltzmann machine. 在[5.2]中讲到了P(h|x)的条件概率的推导,感觉不错,截图如下:
这里写图片描述

然后就可以很容易地推出隐层是可见层的logistic函数了:
这里写图片描述

接着,不知道怎么和local markov property扯上关系了,截图放这里:
这里写图片描述

[5.3]接着讲
先回顾RBM的定义(因为我自己不太记得了,以便连着看):
这里写图片描述

冒出一个free energy的概念:
这里写图片描述

推导:
这里写图片描述

换汤不换药,但是能更清晰地看到各个参数是怎么影响到最后的p(x)的,能对以后的学习过程获得更多insight:
这里写图片描述

[5.3] over!

[5.4] 开始讲怎么train RBM了
这里写图片描述

上图中的Loss function选择的是负对数似然函数,其实就是要最大化可见层数据的出现概率,至于为什么要选择负对数似然函数,从一个博客上看到一个解释:

“这里顺便解释一下为什么大家都喜欢负对数似然而不是直接最大化似然,其实如果你有一台可以表示任何数值的超级计算机,那么取不取对数真的没什么关系,但是现实中的计算机表示能力有限,N个训练样本似然乘积很小很小,小到计算机都无法表示了,所以最好取log,概率的和不会有这样的问题;另外,在优化理论中,优化问题的标准形式就是最小化某个目标函数,所以最好加个负号,最小化负对数似然。”

使用随机梯度下降算法,对 θ  求偏导得到的那两项乍一看没看明白(其中的第二项很难计算),但是在“《受限玻尔兹曼机简介》张春霞etc.“中找到了相关的推导,还是很好懂(其中的一些文字也有助于理解),截图如下:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

继续说(8)式对 θ  求偏导得到的两项:
其中第一项比较好计算,具体原因,比如说我们让 θ  (注意: θ  是模型参数的抽象化表征,可以是W, a, b的任何一个)代表权重矩阵 W ij   ,观察最后那张截图可以发现,第一项成了 <v i h j > data   <script id="MathJax-Element-20" type="math/tex"> _{data}</script> 意思是 v i h j   期望,只需要求 v i h j   在全部数据集上的平均值即可,而第二项计算却涉及到v,h的全部 2 |v|+|h|   种组合,计算量非常大(基本不可解)。

正是为了解决这个问题,Hinton等人于2002年提出了一种高效的学习算法——contrastive divergence算法
(核心感觉就是Gibbs采样,用采样来approximate先前的第二项,不过还没认真学那篇论文):
这里写图片描述

[5.4]最后的两页ppt:
Drawing
Drawing

对这两页的解释是:算法的目的就是要尽量降低在data上的能量(等同于增加其出现的概率),增加在噪声上的能量? 不太懂。。。但是,又从先前那个博客看到一个解释(那位兄台做的挺好的):

式子的第一项称为positive phrase,通过减小对应的FreeEnergy增大训练样本的概率;第二项是negative phrase,作用是增大对应的FreeEnergy来减小模型产生的样本的概率。这句话不难理解,因为两项分别是往 FreeEnergy(x)  的梯度下降和 FreeEnergy(x ~ )  的梯度上升方向改变。这也符合最大似然标准,在训练样本上有较大的似然而在其他样本上概率较小。从分类的角度来看,训练样本是正样本,而模型样本是负样本(Negative samples)。

[5.5]RBM-contrastive divergence (parameter update),具体讲CD算法的参数更新,其实在前面我贴出来的几张来自“《受限玻尔兹曼机简介》张春霞etc.“的截图已经有了(最后一张图的三个偏导),但是这里再“多此一举”的写一遍,可以看到具体公式的来由,并加深印象。视频课程中主要是对权重矩阵 W ij   的参数更新做了一个介绍:

回顾一下目标函数和随机梯度下降的求导公式:
这里写图片描述

玻尔兹曼能量函数关于 W ij   求偏导,并且矢量化(表示成向量内积的形式,见图片左下角,图片右下角给出了h 的定义,是一个概率向量):
这里写图片描述

于是得到W矩阵的更新规则,注意到 h(x ~ )x ~  T   体现出CD算法的Gibbs采样:
这里写图片描述

以W矩阵为例,其他参数更新也类似,那么就可以写出整个CD算法的伪代码了:
这里写图片描述

最后说到了Gibbs采样的次数问题,K取得越大,估计值就会越接近期望值(虽然原因我也不知道,不好意思,Gibbs采样还没认真学)。但是实际上,预训练或者目的只是想利用神经网络extract the feature,那么K=1就足够好了:
这里写图片描述

以上就是CD算法的一个简单总结。
[5.5] over!

[5.6]讲一个CD算法的变种——Persistent CD

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值