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   意思是v i h j   期望,只需要求v i h j  在全部数据集上的平均值即可,而第二项计算却涉及到v,h的全部2 |v|+|h|  种组合,计算量非常大(基本不可解)。

正是为了解决这个问题,Hinton等人于2002年提出了一种高效的学习算法——contrastive divergence算法

(核心感觉就是Gibbs采样,用采样来approximate先前的第二项,不过还没认真学那篇论文):

[5.4]最后的两页ppt:

对这两页的解释是:算法的目的就是要尽量降低在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

时间: 2024-11-06 03:26:34

Restricted Boltzmann Machine(to be continued)的相关文章

限制Boltzmann机(Restricted Boltzmann Machine)

限制Boltzmann机(Restricted Boltzmann Machine) 起源:Boltzmann神经网络 Boltzmann神经网络的结构是由Hopfield递归神经网络改良过来的,Hopfield中引入了统计物理学的能量函数的概念. 即,cost函数由统计物理学的能量函数给出,随着网络的训练,能量函数会逐渐变小. 可视为一动力系统,其能量函数的极小值对应系统的稳定平衡点. Hinton发明的Boltzmann中乘热打铁,对神经元输出引入了随机概率重构的概念.其想法来自于模拟退火算

受限玻尔兹曼机(Restricted Boltzmann Machine)

受限玻尔兹曼机(Restricted Boltzmann Machine) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. 生成模型 2. 参数学习 3. 对比散度学习算法 由于受限玻尔兹曼机的特殊结构,因此可以使用一种比吉布斯采样更有效 的学习算法,即对比散度(Contrastive Divergence)对比散度算法仅需k步吉布斯采样.为了提高效率,对比散度算法用一个训练样本作为可观测向量的初始值.然后,交替对可观测向量和隐藏向量进行吉布

受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)代码1

环境:python 2, 32位 https://www.cnblogs.com/tuhooo/p/5440473.html 备注:这个python代码需要用到psyco包,psyco包目前只有python2 32位版本.在windows 64+python 3环境下,如果下载psyco的源代码安装,比较麻烦. https://blog.csdn.net/qq_36965134/article/details/80039026 """ Continuous Restricte

受限波兹曼机导论Introduction to Restricted Boltzmann Machines

Suppose you ask a bunch of users to rate a set of movies on a 0-100 scale. In classical factor analysis, you could then try to explain each movie and user in terms of a set of latent factors. For example, movies like Star Wars and Lord of the Rings m

【转载】Boltzmann machine

Boltzmann machine Geoffrey E. Hinton (2007), Scholarpedia, 2(5):1668. doi:10.4249/scholarpedia.1668 revision #91075 [link to/cite this article] Post-publication activity Curator: Geoffrey E. Hinton Dr. Geoffrey E. Hinton, University of Toronto, CANAD

(六)6.14 Neurons Networks Restricted Boltzmann Machines

1.RBM简介 受限玻尔兹曼机(Restricted Boltzmann Machines,RBM)最早由hinton提出,是一种无监督学习方法,即对于给定数据,找到最大程度拟合这组数据的参数,其网络结构如下: 以上的RBM的贝叶斯网络图,该网络可网络结构有 n个可视节点和m个隐藏节点 ,其中每个可视节点只与m个隐藏节点相关,与其他可视节点独立,对于隐藏节点同理,RBM中的参数有隐层与可见层的权重参数,还有上图没给出的偏置项,为可见层的偏置,为隐藏层的偏置,以上便是RBM中的所有参数. RBM的

Restricted Boltzmann Machines(RBM限制玻尔兹曼机)

稍后补上Restricted Boltzmann Machines的东西,其实Boltzmann Machines搞懂了,Restricted Boltzmann Machines很简单的,就是加了几个限制条件而已. 计划再写一篇将DBN的,感觉只要Boltzmann Machines搞懂了,其他的都不是什么难题. Restricted Boltzmann Machines(RBM限制玻尔兹曼机)

[Machine Learning] RBM Brief Introduction

这里简单概括一下RBM模型构建.求解以及评估的基本思路,希望能给想了解RBM模型的同学一点帮助. Restricted Boltzmann Machine 是一个基于能量表示而定义的模型,其结构就是两层的神经网络,一个可见层V和一个隐层H,同一层之间的单元不存在连接,层之间全连接. 根据RBM的网络结构,可以定义出系统中的能量函数,我们称为E.在物理中,一个系统的能量越小,那么其稳定的概率越大.因此有了能量函数之后,就能定义该系统稳定的概率了,这里我们称为P,这个P是V和H的联合概率. 在RBM

[Machine Learning] 机器学习常见算法分类汇总

声明:本篇博文根据http://www.ctocio.com/hotnews/15919.html整理,原作者张萌,尊重原创. 机器学习无疑是当前数据分析领域的一个热点内容.很多人在平时的工作中都或多或少会用到机器学习的算法.本文为您总结一下常见的机器学习算法,以供您在工作和学习中参考. 机器学习的算法很多.很多时候困惑人们都是,很多算法是一类算法,而有些算法又是从其他算法中延伸出来的.这里,我们从两个方面来给大家介绍,第一个方面是学习的方式,第二个方面是算法的分类. 博主根据原创基础上加入了遗