深度学习笔记---RBM.pdf
文本预览下载声明
深度学习读书笔记
三.限制波尔兹曼机
3.1 限制波尔兹曼机 (RBM)使用方法
3.1.1 RBM 的使用说明
一个普通的RBM 网络结构如下。
以上的RBM 网络结构有n 个可视节点和 m 个隐藏节点,其中每个可视节点只和m 个
隐藏节点相关,和其他可视节点是独立的,就是这个可视节点的状态只受 m 个隐藏节点的
影响,对于每个隐藏节点也是,只受n 个可视节点的影响,这个特点使得RBM 的训练变得
容易了。
RBM 网络有几个参数,一个是可视层与隐藏层之间的权重矩阵 ,一个是可视节点
×
的偏移量b = (b1,b2⋯bn),一个是隐藏节点的偏移量c = (c1,c2⋯cm),这几个参数决定了
RBM 网络将一个n 维的样本编码成一个什么样的m 维的样本。
RBM 网络的功能有下面的几种,就简单地先描述一下。
* +
首先为了描述容易,先假设每个节点取值都在集合*0,1+中,即∀i,j, ∈ 0,1 ,ℎ ∈ *0,1+。
一个训练样本过来了取值为x = (x1,x2⋯xn),根据 RBM 网络,可以得到这个样本的
m 维的编码后的样本y = (y1,y2 ⋯ym),这m 维的编码也可以认为是抽取了m 个特征的样
本。而这个 m 维的编码后的样本是按照下面的规则生成的:对于给定的x = (x1,x2⋯xn),
( | ) ∑
隐藏节点的第j 个特征的取值为1 的概率为p hj = 1 v = σ( =1 ×vi +cj),其中的v 取
值就是x ,hj 的取值就是yj ,也就是说,编码后的样本y 的第j 个位置的取值为1 的概率是
p(hj = 1|v)。所以,生成yj 的过程就是:
( | ) ∑
i )先利用公式p hj = 1 v = σ( =1 ×vi +cj),根据x 的值计算概率p(hj = 1|v),其
中vi 的取值就是xi 的值。
ii )然后产生一个0 到1 之间的随机数,如果它小于p(hj = 1|v),yj 的取值就是1,否则
就是0 。
反过来,现在知道了一个编码后的样本y ,想要知道原来的样本x ,即解码过程,跟上
面也是同理,过程如下:
( | ) ∑
i )先利用公式p vi = 1 h = σ( =1 ×hj +bi),根据y 的值计算概率p(hj = 1|v),
其中hj 的取值就是yj 的值。
ii )然后产生一个0 到1 之间的随机数,如果它小于p(vi = 1|h),hi 的取值就是1,否
则就是0 。
3.1.2 RBM 的用途
RBM 的用途主要是两种,一是对数据进行编码,然后交给监督学习方法去进行分类或
回归,二是得到了权重矩阵和偏移量,供BP 神经网络初始化训练。
第一种可以说是把它当做一个降维的方法来使用。
第二种就用途比较奇怪。其中的原因就是神经网络也是要训练一个权重矩阵和偏移量,
但是如果直接用BP 神经网络,初始值选得不好的话,往往会陷入局部极小值。根据实际应
用结果表明,直接把RBM 训练得到的权重矩阵和偏移量作为BP 神经网络初始值,得到的结
果会非常地好。
这就类似爬山,如果一个风景点里面有很多个山峰,如果让你随便选个山就爬,希望你
能爬上最高那个山的山顶,但是你的精力是有限的,只能爬一座山,而你也不知道哪座山最
高,这样,你就很容易爬到一座不是最高的山上。但是,如果用直升机把你送到最高的那个
山上的靠近山顶处,那你就能很容易地爬上最高的那座山。这个时候,RBM 就的角色就是
那个直升机。
其实还有两种用途的,下面说说。
第三种,RBM 可
显示全部