受限玻尔兹曼机——用在推荐系统里

from:http://blog.csdn.net/xbinworld/article/details/44901865

需要的背景知识

要学习RBM需要的一些基本的统计学习基础,包括贝叶斯定理,随机采样方法(Gibbs sampling)等。这些可以翻阅我之前写的一些博文可以看到相关的介绍,在本文中就不具体展开了。总体来说RBM还是相对比较独立的一个算法,不需要依赖太多的先验知识。

RBM基本概念

受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)是G.Hinton教授的一宝。Hinton教授是深度学习的开山鼻祖,也正是他在2006年的关于深度信念网络DBN的工作,以及逐层预训练的训练方法,开启了深度学习的序章。其中,DBN中在层间的预训练就采用了RBM算法模型。RBM是一种无向图模型,也是一种神经网络模型。

RBM具有两层:可见层(V层),以及隐藏层(H层),网络上比较常见的一张图是[1]: 
这里写图片描述

可以看到,两层神经元之间都是全连接的,但是每一层各自的神经元之间并没有连接,也就是说,RBM的图结构是一种二分图(bipartite graph)。正是这个特点,才叫受限玻尔兹曼及,玻尔兹曼机是允许同一层之间的神经元相连的。RBM其实是一种简化了的BM模型。

还有一个特点,RBM中的神经元都是二值化的,也就是说只有激活和不激活两种状态,也就是0或者1;可见层和隐藏层之间的边的权重可以用WW来表示,WW是一个|V|×|H||V|×|H|大小的实数矩阵。后面一篇讲RBM求解的时候可以看到,算法难点主要就是对WW求导(当然还有bias参数),用于梯度下降的更新;但是因为V和H都是二值化的,没有连续的可导函数去计算,实际中采用的sampling的方法来计算,这里面就可以用比如gibbs sampling的方法,当然,Hinton提出了对比散度CD方法,比gibbs方法更快,已经成为求解RBM的标准解法。RBM求解部分将在下一小篇中具体介绍。

OK,第一篇就到这里。

觉得有一点点价值,就支持一下哈!花了很多时间手打公式的说~更多内容请关注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 Igel,An 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/bonelee/p/8565869.html