围上如何做快递查单网站,做网站 珠海,掉发脱发严重是什么原因,wordpress memcache欢迎转载#xff0c;转载请注明#xff1a;本文出自Bin的专栏blog.csdn.net/xbinworld。 技术交流QQ群#xff1a;433250724#xff0c;欢迎对算法、技术、应用感兴趣的同学加入。 接下来重点讲一下RBM模型求解方法#xff0c;其实用的依然是梯度优化方法#xff0c;但是… 欢迎转载转载请注明本文出自Bin的专栏blog.csdn.net/xbinworld。 技术交流QQ群433250724欢迎对算法、技术、应用感兴趣的同学加入。 接下来重点讲一下RBM模型求解方法其实用的依然是梯度优化方法但是求解需要用到随机采样的方法常见的有Gibbs Sampling和对比散度(contrastive divergence, CD[8])算法。 RBM目标函数 假设给定的训练集合是S{vi}总数是ns其中每个样本表示为vi(vi1,vi2,…,vinv)且都是独立同分布i.i.d的。RBM采用最大似然估计即最大化 lnLSln∏i1nsP(vi)∑i1nslnP(vi) 参数表示为θ(W,a,b)因此统一的参数更新表达式为 θθη∂lnLS∂θ 其中η表示学习速率。因此很明显只要我们可以求解出参数的梯度我们就可以求解RMB模型了。我们先考虑任意单个训练样本v0的情况即 LSlnP(v0)ln(1Z∑he−E(v0,h))ln∑he−E(v0,h)−ln∑v,he−E(v,h) 其中v表示任意的训练样本而v0则表示一个特定的样本。 ∂LS∂θ∂lnP(v0)∂θ∂∂θ(ln∑he−E(v0,h))−∂∂θ(ln∑v,he−E(v,h))−1∑he−E(v0,h)∑he−E(v0,h)∂E(v0,h)∂θ1∑v,he−E(v,h)∑v,he−E(v,h)∂E(v,h)∂θ−∑hP(h|v0)∂E(v0,h)∂θ∑v,hP(h,v)∂E(v,h)∂θ 其中第3个等式左边内条件概率P(h|v0)因为e−E(v0,h)∑he−E(v0,h)e−E(v0,h)/Z∑he−E(v0,h)/ZP(v0,h)P(v0)P(h|v0) 上面式子的两个部分的含义是期望——左边是梯度∂E(v0,h)∂θ在条件概率分布P(h|v0)下的期望右边是梯度∂E(v,h)∂θ在联合概率分布P(h,v)下的期望。要求前面的条件概率是比较容易一些的而要求后面的联合概率分布是非常困难的因为它包含了归一化因子Z对所有可能的取值求和连续的情况下是积分因此我们采用一些随机采样来近似求解。把上面式子再推导一步可以得到 ∂LS∂θ−∑hP(h|v0)∂E(v0,h)∂θ∑vP(v)∑hP(h|v)∂E(v,h)∂θ 因此我们重点就是需要就算∑hP(h|v)∂E(v,h)∂θ特别的针对参数W,a,b来说有 ∑hP(h|v)∂E(v,h)∂wij−∑hP(h|v)hivj−∑hP(hi|v)P(h−i|v)hivj−∑hiP(hi|v)∑h−iP(h−i|v)hivj−∑hiP(hi|v)hivj−(P(hi1|v)⋅1⋅vjP(hi0|v)⋅0⋅vj)−P(hi1|v)vj 类似的我们可以很容易得到 ∑hP(h|v)∂E(v,h)∂ai−vi ∑hP(h|v)∂E(v,h)∂bj−P(hi1|v) 于是我们很容易得到 ∂lnP(v0)∂wij−∑hP(h|v0)∂E(v0,h)∂wij∑vP(v)∑hP(h|v)∂E(v,h)∂wijP(hi1|v0)v0j−∑vP(v)P(hi1|v)vj ∂lnP(v0)∂aiv0i−∑vP(v)vi ∂lnP(v0)∂biP(hi1|v0)−∑vP(v)P(hi1|v) 上面求出了一个样本的梯度对于ns个样本有 ∂LS∂wij∑m1ns[P(hi1|vm)vmj−∑vP(v)P(hi1|v)vj] ∂LS∂ai∑m1ns[vmi−∑vP(v)vi] ∂LS∂bi∑m1ns[P(hi1|vm)−∑vP(v)P(hi1|v)] 到这里就比较明确了主要就是要求出上面三个梯度但是因为不好直接求概率分布P(v)前面分析过计算复杂度非常大因此采用一些随机采样的方法来得到近似的解。看这三个梯度的第二项实际上都是求期望而我们知道样本的均值是随机变量期望的无偏估计。 Gibbs Sampling 很多资料都有提到RBM可以用Gibbs Sampling来做但是具体怎么做不讲是不是有点蛋疼可能很多人也不清楚到底怎么做。下面稍微介绍一下。 吉布斯采样Gibbs sampling是MCMC方法的一种具体可以看我前面整理的随机采样MCMC的文章。总的来说Gibbs采样可以从一个复杂概率分布P(X)下生成数据只要我们知道它每一个分量的相对于其他分量的条件概率P(Xk|X−k)就可以对其进行采样。而RBM模型的特殊性隐藏层神经元的状态只受可见层影响反之亦然而且同一层神经元之间是相互独立的那么就可以根据如下方法依次采样 也就是说hi是以概率P(hi|v0)为1其他的都类似。这样当我们迭代足够次以后我们就可以得到满足联合概率分布P(v,h)下的样本(v,h)其中样本(v)可以近似认为是P(v)下的样本下图也说明了这个迭代采样的过程 有了样本(v)就可以求出上面写到的三个梯度∂LS∂wij,∂LS∂ai,∂LS∂bi了用梯度上升就可以对参数进行更新了。实际中可以在k次迭代以后得到样本集合{v}比如迭代100次取后面一半带入上面梯度公式的后半部分计算平均值。 看起来很简单是不是但是问题是每一次gibbs采样过程都需要反复迭代很多次以保证马尔科夫链收敛而这只是一次梯度更新多次梯度更新需要反复使用gibbs采样使得算法运行效率非常低。为了加速RBM的训练过程Hinton等人提出了对比散度Contrastive Divergence方法大大加快了RBM的训练速度将在下一篇重点讲一下。 OK本篇先到这里。平时工作比较忙加班什么的IT的都这样晚上回到家比较晚每天只能挤一点点时间写写的比较慢见谅。RBM这一块可以看的资料很多网上一搜一大堆还包括hinton的一些论文和Bengio的综述[9]不过具体手写出来的思路还是借鉴了[7]看归看我会自己推导并用自己的语言写出来大家有什么问题都可以留言讨论。下一篇最后讲一下CD算法后面有时间再拿code出来剖析一下。 觉得有一点点价值就支持一下哈花了很多时间手打公式的说~更多内容请关注Bin的专栏 参考资料 [1] http://www.chawenti.com/articles/17243.html [2] 张春霞受限波尔兹曼机简介 [3] http://www.cnblogs.com/tornadomeet/archive/2013/03/27/2984725.html [4] http://deeplearning.net/tutorial/rbm.html [5] Asja Fischer, and Christian IgelAn Introduction to RBM [6] G.Hinton, A Practical Guide to Training Restricted Boltzmann Machines [7] http://blog.csdn.net/itplus/article/details/19168937 [8] G.Hinton, Training products of experts by minimizing contrastive divergence, 2002. [9] Bengio, Learning Deep Architectures for AI, 2009 转载于:https://www.cnblogs.com/yihaha/p/7265316.html