深度学习笔记-RBM

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1深度学习读书笔记by北流浪子博客地址:三.限制波尔兹曼机3.1限制波尔兹曼机(RBM)使用方法3.1.1RBM的使用说明一个普通的RBM网络结构如下。以上的RBM网络结构有m个可视节点和n个隐藏节点,其中每个可视节点只和n个隐藏节点相关,和其他可视节点是独立的,就是这个可视节点的状态只受n个隐藏节点的影响,对于每个隐藏节点也是,只受m个可视节点的影响,这个特点使得RBM的训练变得容易了。RBM网络有几个参数,一个是可视层与隐藏层之间的权重矩阵𝑊𝑛×𝑚,一个是可视节点的偏移量b=(b1,b2⋯bm),一个是隐藏节点的偏移量c=(c1,c2⋯cn),这几个参数决定了RBM网络将一个m维的样本编码成一个什么样的n维的样本。RBM网络的功能有下面的几种,就简单地先描述一下。首先为了描述容易,先假设每个节点取值都在集合{0,1}中,即∀i,j,𝑣𝑗∈{0,1},ℎ𝑖∈{0,1}。一个训练样本𝑥过来了取值为x=(x1,x2⋯xm),根据RBM网络,可以得到这个样本的m维的编码后的样本y=(y1,y2⋯yn),这n维的编码也可以认为是抽取了n个特征的样本。而这个m维的编码后的样本是按照下面的规则生成的:对于给定的x=(x1,x2⋯xm),隐藏层的第i个节点的取值为1(编码后的样本的第i个特征的取值为1)的概率为p(hi=1|v)=σ(∑𝑤𝑖𝑗×vj𝑚𝑗=1+ci),其中的v取值就是x,hi的取值就是yi,其中σ(x)=1/(1+𝑒−𝑥),是sigmoid函数。也就是说,编码后的样本y的第i个位置的取值为1的概率是p(hi=1|v)。所2以,生成yi的过程就是:i)先利用公式p(hi=1|v)=σ(∑𝑤𝑖𝑗×vj𝑚𝑗=1+ci),根据x的值计算概率p(hi=1|v),其中vj的取值就是xj的值。ii)然后产生一个0到1之间的随机数,如果它小于p(hi=1|v),yi的取值就是1,否则就是0(假如p(hi=1|v)=0.6,这里就是因为yi的取值就是1的概率是,0.6,而这个随机数小于0.6的概率也是0.6;如果这个随机数小于0.6,就是这个事件发生了,那就可以认为yi的取值是1这个事件发生了,所以把yi取值为1)。反过来,现在知道了一个编码后的样本y,想要知道原来的样本x,即解码过程,跟上面也是同理,过程如下:i)先利用公式p(vj=1|h)=σ(∑𝑤𝑖𝑗×hi𝑛𝑖=1+bj),根据y的值计算概率p(vj=1|h),其中hi的取值就是yi的值。ii)然后产生一个0到1之间的随机数,如果它小于p(vj=1|h),vj的取值就是1,否则就是0。对于(ii)的说明:不说别的——比如吧,你现在出去逛街,走到一个岔路口,你只想随便逛逛,所以你是有0.5的概率往左边的路,0.5的概率往右边的路;但是你不知道怎么选择哪个路,所以你选择了抛硬币,正面朝上你就向左,反面朝上就向右。现在你只抛一次,发现他是正面朝上的,你就向左走了。——回到上面的问题,某节点A取值为1的概率是0.6(假如),也可以看做一个找不均匀的硬币,正面朝上的概率是0.6,反面朝上的概率是0.4;现在要给节点A取值,就拿这个硬币抛一下,正面朝上就取值1,反面朝上就取值0,这个就相当于抛硬币决定走哪个路的那个过程。——现在假如找不到这样的不均匀的硬币,就拿随机数生成器来代替(生成的数是0-1之间的浮点数);因为随机数生成器取值小于0.6的概率也是0.6,大于0.6的概率是0.4。3.1.2RBM的用途RBM的用途主要是两种,一是对数据进行编码,然后交给监督学习方法去进行分类或回归,二是得到了权重矩阵和偏移量,供BP神经网络初始化训练。第一种可以说是把它当做一个降维的方法来使用。第二种就用途比较奇怪。其中的原因就是神经网络也是要训练一个权重矩阵和偏移量,但是如果直接用BP神经网络,初始值选得不好的话,往往会陷入局部极小值。根据实际应用结果表明,直接把RBM训练得到的权重矩阵和偏移量作为BP神经网络初始值,得到的结果会非常地好。这就类似爬山,如果一个风景点里面有很多个山峰,如果让你随便选个山就爬,希望你能爬上最高那个山的山顶,但是你的精力是有限的,只能爬一座山,而你也不知道哪座山最高,这样,你就很容易爬到一座不是最高的山上。但是,如果用直升机把你送到最高的那个山上的靠近山顶处,那你就能很容易地爬上最高的那座山。这个时候,RBM就的角色就是那个直升机。其实还有两种用途的,下面说说。第三种,RBM可以估计联合概率p(v,h),如果把v当做训练样本,h当成类别标签(隐藏节点只有一个的情况,能得到一个隐藏节点取值为1的概率),就可以利用利用贝叶斯公式求p(h|v),然后就可以进行分类,类似朴素贝叶斯、LDA、HMM。说得专业点,RBM可以作为一个生成模型(Generativemodel)使用。3第四种,RBM可以直接计算条件概率p(h|v),如果把v当做训练样本,h当成类别标签(隐藏节点只有一个的情况,能得到一个隐藏节点取值为1的概率),RBM就可以用来进行分类。说得专业点,RBM可以作为一个判别模型(Discriminativemodel)使用。3.2限制波尔兹曼机(RBM)能量模型3.2.1能量模型定义在说RBM之前,先来说点其他的,就是能量模型。能量模型是个什么样的东西呢?直观上的理解就是,把一个表面粗糙又不太圆的小球,放到一个表面也比较粗糙的碗里,就随便往里面一扔,看看小球停在碗的哪个地方。一般来说停在碗底的可能性比较大,停在靠近碗底的其他地方也可能,甚至运气好还会停在碗口附近(这个碗是比较浅的一个碗);能量模型把小球停在哪个地方定义为一种状态,每种状态都对应着一个能量,这个能量由能量函数来定义,小球处在某种状态的概率(如停在碗底的概率跟停在碗口的概率当然不一样)可以通过这种状态下小球具有的能量来定义(换个说法,如小球停在了碗口附近,这是一种状态,这个状态对应着一个能量E,而发生“小球停在碗口附近”这种状态的概率p,可以用E来表示,表示成p=f(E),其中f是能量函数),这就是我认为的能量模型。这样,就有了能量函数,概率之类的东西。波尔兹曼网络是一种随机网络。描述一个随机网络,总结起来主要有两点。第一,概率分布函数。由于网络节点的取值状态是随机的,从贝叶斯网的观点来看,要描述整个网络,需要用三种概率分布来描述系统。即联合概率分布,边缘概率分布和条件概率分布。要搞清楚这三种不同的概率分布,是理解随机网络的关键,这里向大家推荐的书籍是张连文所著的《贝叶斯网引论》。很多文献上说受限波尔兹曼是一个无向图,从贝叶斯网的观点看,受限波尔兹曼网络也可以看作一个双向的有向图,即从输入层节点可以计算隐层节点取某一种状态值的概率,反之亦然。第二,能量函数。随机神经网络是根植于统计力学的。受统计力学中能量泛函的启发,引入了能量函数。能量函数是描述整个系统状态的一种测度。系统越有序或者概率分布越集中,系统的能量越小。反之,系统越无序或者概率分布越趋于均匀分布,则系统的能量越大。能量函数的最小值,对应于系统的最稳定状态。3.2.2能量模型作用为什么要弄这个能量模型呢?原因有几个。第一、RBM网络是一种无监督学习的方法,无监督学习的目的是最大可能的拟合输入数据,所以学习RBM网络的目的是让RBM网络最大可能地拟合输入数据。第二、对于一组输入数据来说,现在还不知道它符合那个分布,那是非常难学的。例如,知道它符合高斯分布,那就可以写出似然函数,然后求解,就能求出这个是一个什么样个高4斯分布;但是要是不知道它符合一个什么分布,那可是连似然函数都没法写的,问题都没有,根本就无从下手。好在天无绝人之路——统计力学的结论表明,任何概率分布都可以转变成基于能量的模型,而且很多的分布都可以利用能量模型的特有的性质和学习过程,有些甚至从能量模型中找到了通用的学习方法。有这样一个好东西,当然要用了。第三、在马尔科夫随机场(MRF)中能量模型主要扮演着两个作用:一、全局解的度量(目标函数);二、能量最小时的解(各种变量对应的配置)为目标解。也就是能量模型能为无监督学习方法提供两个东西:a)目标函数;b)目标解。换句话说,就是——使用能量模型使得学习一个数据的分布变得容易可行了。能否把最优解嵌入到能量函数中至关重要,决定着我们具体问题求解的好坏。统计模式识别主要工作之一就是捕获变量之间的相关性,同样能量模型也要捕获变量之间的相关性,变量之间的相关程度决定了能量的高低。把变量的相关关系用图表示出来,并引入概率测度方式就构成了概率图模型的能量模型。RBM作为一种概率图模型,引入了概率就可以使用采样技术求解,在CD(contrastivedivergence)算法中采样部分扮演着模拟求解梯度的角色。能量模型需要一个定义能量函数,RBM的能量函数的定义如下E(v,h)=−∑∑𝑤𝑖𝑗ℎ𝑖𝑣𝑗𝑚𝑗=1𝑛𝑖=1−∑𝑏𝑗𝑣𝑗𝑚𝑗=1−∑𝑐𝑖ℎ𝑖𝑛𝑖=1这个能量函数的意思就是,每个可视节点和隐藏节点之间的连接结构都有一个能量,通俗来说就是可视节点的每一组取值和隐藏节点的每一组取值都有一个能量,如果可视节点的一组取值(也就是一个训练样本的值)为(1,0,1,0,1,0),隐藏节点的一组取值(也就是这个训练样本编码后的值)为(1,0,1),然后分别代入上面的公式,就能得到这个连接结构之间的能量。能量函数的意义是有一个解释的,叫做专家乘积系统(POE,productofexpert),这个理论也是hinton发明的,他把每个隐藏节点看做一个“专家”,每个“专家”都能对可视节点的状态分布产生影响,可能单个“专家”对可视节点的状态分布不够强,但是所有的“专家”的观察结果连乘起来就够强了。具体我也看不太懂,各位有兴趣看hinton的论文吧,中文的也有,叫《专家乘积系统的原理及应用,孙征,李宁》。另外的一个问题是:为什么要搞概率呢?下面就是解释。能量模型需要两个东西,一个是能量函数,另一个是概率,有了概率才能跟要求解的问题联合起来。下面就介绍从能量模型到概率吧。3.3从能量模型到概率3.3.1从能量函数到概率为了引入概率,需要定义概率分布。根据能量模型,有了能量函数,就可以定义一个可视节点和隐藏节点的联合概率p(v,h)=𝑒−𝐸(𝑣,ℎ)∑𝑒−𝐸(𝑣,ℎ)𝑣,ℎ也就是一个可视节点的一组取值(一个状态)和一个隐藏节点的一组取值(一个状态)发生的概率p(v,h)是由能量函数来定义的。5这个概率不是随便定义的,而是有统计热力学的解释的——在统计热力学上,当系统和它周围的环境处于热平衡时,一个基本的结果是状态i发生的概率如下面的公式p𝑖=1𝑍×𝑒−𝐸𝑖𝑘𝑏×𝑇其中E𝑖表示系统在状态i时的能量,T为开尔文绝对温度,𝑘B为Boltzmann常数,Z为与状态无关的常数。我们这里的E𝑖变成了E(v,h),因为(v,h)也是一个状态,其他的参数T和𝑘B由于跟求解无关,就都设置为1了,Z就是我们上面联合概率分布的分母,这个分母是为了让我们的概率的和为1,这样才能保证p(v,h)是一个概率。现在我们得到了一个概率,其实也得到了一个分布,其实这个分布还有一个好听点的名字,可以叫做Gibbs分布,当然不是一个标准的Gibbs分布,而是一个特殊的Gibbs分布,这个分布是有一组参数的,就是能量函数的那几个参数w,b,c。有了这个联合概率,就可以得到一些条件概率,是用积分去掉一些不想要的量得到的。3.3.2从概率到极大似然上面得到了一个样本和其对应编码的联合概率,也就是得到了RBM网络的Gibbs分布的概率密度函数,引入能量模型的目的是为了方便求解的。现在回到求解的目标——让RBM网络的表示Gibbs分布最大可能的拟合输入数据。其实求解的目标也可以认为是让RBM网络表示的Gibbs分布与输入样本的分布尽可能地接近。现在看看“最大可能的拟合输入数据”这怎么定义。

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功