深度学习笔记 - RBM

合集下载

Deep Learning论文笔记之(七)深度网络高层特征可视化

Deep Learning论文笔记之(七)深度网络高层特征可视化

Deep Learning论文笔记之(七)深度网络高层特征可视化Deep Learning论文笔记之(七)深度网络高层特征可视化zouxy09@/zouxy09自己平时看了一些论文,但老感觉看完过后就会慢慢的淡忘,某一天重新拾起来的时候又好像没有看过一样。

所以想习惯地把一些感觉有用的论文中的知识点总结整理一下,一方面在整理过程中,自己的理解也会更深,另一方面也方便未来自己的勘察。

更好的还可以放到博客上面与大家交流。

因为基础有限,所以对论文的一些理解可能不太正确,还望大家不吝指正交流,谢谢。

本文的论文来自:Dumitru Erhan, Aaron Courville, Yoshua Bengio, and Pascal Vincent. Visualizing Higher Layer Features of a Deep Network. Spotlight presentation and poster at the ICML 2009 Workshop on Learning Feature Hierarchies, Montréal, Canada 下面是自己对其中的一些知识点的理解:《Visualizing Higher-Layer Features of a Deep Network》Deep Learning很吸引人,也很玄乎的一个点就是大家都说它可以提取到分级的逐层抽象的特征。

但对我们来说,总是耳听为虚,眼见为实。

所以,每当我们训练完一个深度模型后,我们还特别想把这个深度模型学到的东西给可视化出来,好弄明白它到底学到了什么东西,是不是有意义的,是不是像传说中的那样神奇。

那怎样有意义的可视化呢?对了,我们用deep net来做什么的了?来提取特征的。

那它提取什么特征呢?如果它像我们所说的提取的是底层到高层的特征,例如边缘,到形状,到目标等等,那就证明我们的目的是达到的。

另外,在对深度模型定量的分析上,我们还需要一个定性的分析方法去比较不同的深度架构学习到的特征。

一种基于深度学习的异构多模态目标识别方法

一种基于深度学习的异构多模态目标识别方法

一种基于深度学习的异构多模态目标识别方法孟飞;胡超;刘伟荣【摘要】The heterogeneous multimodal object recognition method was proposed based on deep learning. Firstly, based on the video and audioco-existing feature of media data, a heterogeneous multimodal structure was constructed to incorporate the convolutional neural network(CNN)and the restricted boltzmann machine(RBM). The audio and video information were processed respectively, generating the share characteristic representation by using the canonical correlationanalysis(CCA). Then the temporal coherence of video frame was utilized to improve the recognizing accuracy further. The experiments were implemented based on the standard audio & face library and the actual movie video fragments. The results show thatforboth the two kinds ofvideo sources, the proposed method improves the accuracy of target recognition significantly.%提出一种基于深度学习的异构多模态目标识别方法。

深度学习--深度信念网络(Deep-Belief-Network)

深度学习--深度信念网络(Deep-Belief-Network)

深度学习--深度信念网络(Deep Belief Network)概述深度信念网络(Deep Belief Network, DBN) 由Geoffrey Hinton 在2006 年提出。

它是一种生成模型,通过训练其神经元间的权重,我们可以让整个神经网络按照最大概率来生成训练数据。

我们不仅可以使用DBN 识别特征、分类数据,还可以用它来生成数据。

下面的图片展示的是用DBN 识别手写数字:图 1 用深度信念网络识别手写数字。

图中右下角是待识别数字的黑白位图,它的上方有三层隐性神经元。

每一个黑色矩形代表一层神经元,白点代表处于开启状态的神经元,黑色代表处于关闭状态的神经元。

注意顶层神经元的左下方即使别结果,与画面左上角的对应表比对,得知这个DBN 正确地识别了该数字。

下面是展示了一个学习了大量英文维基百科文章的DBN 所生成的自然语言段落:In 1974 Northern Denver had been overshadowed by CNL, and several Irish intelligence agencies in the Mediterranean region. However, on the Victoria, Kings Hebrew stated that Charles decided to escape during analliance. The mansion house was completed in 1882, the second in its bridge are omitted, while closing is the proton reticulum composed below it aims, such that it is the blurring of appearing on any well-paid type of box printer.DBN 由多层神经元构成,这些神经元又分为显性神经元和隐性神经元(以下简称显元和隐元)。

RBM理解

RBM理解
• 在统计热力学上,当系统和它周围的环境处于热平衡时,一个基本的结 果是状态i发生的概率如下面的公式
(i ) 1 EkT p (i ) e Z
• 根据能量模型,借鉴统计热力学能量与概率的关系,就可以定义RBM的v 和h的联合概率
e E ( v ,h ) p(v, h) e E ( v ,h )
• Batchsize
• 对于权值矩阵等参数的更新,可以基于一个训练样本进行在线学习,但计算量很大 • 将数据事先分批,可以使计算更加高效
• 迭代遍数
• 主要看算法的收敛情况
RBM的变种
• 高斯RBM • CRBM • Conditional RBM • 三元因子RBM
RBM的变种
• 高斯RBM
3.如何使分布的距离最小?
3.如何使分布的距离最小?
3.如何使分布的距离最小?
3.如何使分布的距离最小?
• 将求得的结果带入之前计算偏导数的公式得到
3.如何使分布的距离最小?
3.如何使分布的距离最小?
3.如何使分布的距离最小?
3.如何使分布的距离最小?
3.如何使分布的距离最小?
3.如何使分布的距离最小?
• 2.如何对两种分布进行距离估计? • 3.如何使分布的距离最小?
2.如何对两种分布进行距离估计?
RBM目标
3.如何使分布的距离最小?
3.如何使分布的距离最小?3.如何使分布的距离最小?
3.如何使分布的距离最小?
3.如何使分布的距离最小?
• 3.2 如何保证第二项最大化?
• 3.2.1如何求导? • 先针对单个样本来求上述公式对应的导数 • 为不引起混淆,使用v表示单个样本,使用v表示任意样本
i, j, 有vi , hj {0,1}

受限玻尔兹曼机训练算法

受限玻尔兹曼机训练算法

受限玻尔兹曼机训练算法受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)是一种常用的深度学习模型,它属于生成模型,不同于其他深度学习模型如卷积神经网络和循环神经网络,RBM不是监督学习模型,而是一种无监督学习模型。

RBM的训练算法主要包括对数似然梯度下降和对比散度。

对数似然梯度下降是一种基于最大似然估计的训练算法,用于最大化模型生成样本的概率,即最大化训练样本的对数似然概率。

具体来说,对于一个给定的训练样本,RBM首先使用当前的模型参数来计算出生成样本的概率,然后根据计算得到的概率误差来更新模型参数,以使生成样本的概率最大化。

通过迭代更新参数,可以逐步提高RBM生成样本的能力。

对比散度(contrastive divergence)是RBM训练中的另一种常用算法。

它是一种近似训练方法,利用Gibbs采样来近似计算模型的梯度。

对比散度算法的基本思想是从训练样本中抽样一个可见层的样本,然后通过RBM模型来生成一个隐层的样本,再通过RBM模型来重新生成一个可见层的样本。

通过比较生成的样本和原始的样本,可以得到一个度量生成样本概率的梯度,然后使用该梯度来更新模型参数。

对比散度算法通过简化计算,使得RBM的训练更加高效。

RBM的训练一般包括以下几个步骤:1.初始化模型参数:包括可见层和隐层的偏置和权重。

2.正向传播:根据当前模型参数,从可见层到隐层进行采样,然后从隐层到可见层进行采样,得到生成的样本。

3.反向传播:根据生成样本和原始样本的差异,计算模型参数的梯度。

4.更新模型参数:利用梯度信息,根据梯度下降算法更新模型参数。

5.重复上述步骤:重复进行正向传播、反向传播和更新模型参数的步骤,直到满足停止条件。

实际中,RBM的训练算法可能会涉及到一些改进和优化的技巧,如批处理、动量方法、学习率调整等。

这些技巧可以提高RBM的训练效果和收敛速度。

总结起来,RBM的训练算法主要是基于对数似然梯度下降和对比散度的方法,通过最大化模型生成样本的概率来提高模型的生成能力。

RBM DBN RNN资料综合

RBM DBN RNN资料综合

RBM DBN RNN资料综合9.3、Restricted Boltzmann Machine (RBM)限制波尔兹曼机假设有一个二部图,每一层的节点之间没有链接,一层是可视层,即输入数据层(v),一层是隐藏层(h),如果假设所有的节点都是随机二值变量节点(只能取0或者1值),同时假设全概率分布p(v,h)满足Boltzmann 分布,我们称这个模型是RestrictedBoltzmannMachine (RBM)。

下面我们来看看为什么它是Deep Learning方法。

首先,这个模型因为是二部图,所以在已知v的情况下,所有的隐藏节点之间是条件独立的(因为节点之间不存在连接),即p(h|v)=p(h1|v)…p(h n|v)。

同理,在已知隐藏层h的情况下,所有的可视节点都是条件独立的。

同时又由于所有的v和h满足Boltzmann 分布,因此,当输入v的时候,通过p(h|v) 可以得到隐藏层h,而得到隐藏层h之后,通过p(v|h)又能得到可视层,通过调整参数,我们就是要使得从隐藏层得到的可视层v1与原来的可视层v如果一样,那么得到的隐藏层就是可视层另外一种表达,因此隐藏层可以作为可视层输入数据的特征,所以它就是一种Deep Learning方法。

如何训练呢?也就是可视层节点和隐节点间的权值怎么确定呢?我们需要做一些数学分析。

也就是模型了。

联合组态(jointconfiguration)的能量可以表示为:而某个组态的联合概率分布可以通过Boltzmann 分布(和这个组态的能量)来确定:因为隐藏节点之间是条件独立的(因为节点之间不存在连接),即:然后我们可以比较容易(对上式进行因子分解Factorizes)得到在给定可视层v的基础上,隐层第j个节点为1或者为0的概率:同理,在给定隐层h的基础上,可视层第i个节点为1或者为0的概率也可以容易得到:给定一个满足独立同分布的样本集:D={v(1), v(2),…, v(N)},我们需要学习参数θ={W,a,b}。

Deeplearning:十九(RBM简单理解)

Deeplearning:十九(RBM简单理解)

Deeplearning:⼗九(RBM简单理解) 这篇博客主要⽤来简单介绍下RBM⽹络,因为deep learning中的⼀个重要⽹络结构DBN就可以由RBM⽹络叠加⽽成,所以对RBM的理解有利于我们对DBN算法以及deep learning算法的进⼀步理解。

Deep learning是从06年开始⽕得,得益于⼤⽜Hinton的⽂章,不过这位⼤⽜的⽂章⽐较晦涩难懂,公式太多,对于我这种菜鸟级别来说读懂它的paper压⼒太⼤。

纵观⼤部分介绍RBM的paper,都会提到能量函数。

因此有必要先了解下能量函数的概念。

参考⽹页关于能量函数的介绍: ⼀个事物有相应的稳态,如在⼀个碗内的⼩球会停留在碗底,即使受到扰动偏离了碗底,在扰动消失后,它会回到碗底。

学过物理的⼈都知道,稳态是它势能最低的状态。

因此稳态对应与某⼀种能量的最低状态。

将这种概念引⽤到Hopfield⽹络中去,Hopfield构造了⼀种能量函数的定义。

这是他所作的⼀⼤贡献。

引进能量函数概念可以进⼀步加深对这⼀类动⼒系统性质的认识,可以把求稳态变成⼀个求极值与优化的问题,从⽽为Hopfield⽹络找到⼀个解优化问题的应⽤。

下⾯来看看RBM⽹络,其结构图如下所⽰: 可以看到RBM⽹络共有2层,其中第⼀层称为可视层,⼀般来说是输⼊层,另⼀层是隐含层,也就是我们⼀般指的特征提取层。

在⼀般的⽂章中,都把这2层的节点看做是⼆值的,也就是只能取0或1,当然了,RBM中节点是可以取实数值的,这⾥取⼆值只是为了更好的解释各种公式⽽已。

在前⾯⼀系列的博⽂中可以知道,我们设计⼀个⽹络结构后,接下来就应该想⽅设法来求解⽹络中的参数值。

⽽这⼜⼀般是通过最⼩化损失函数值来解得的,⽐如在autoencoder中是通过重构值和输⼊值之间的误差作为损失函数(当然了,⼀般都会对参数进⾏规制化的);在logistic回归中损失函数是与输出值和样本标注值的差有关。

那么在RBM⽹络中,我们的损失函数的表达式是什么呢,损失函数的偏导函数⼜该怎么求呢? 在了解这个问题之前,我们还是先从能量函数出发。

rbm

rbm

∑ ∞ π=1
i=0
7
π 即可被称为是马氏链的平稳分布。 这个重要的定理告诉我们,马氏链随时间运 行过程中所到达的每一个状态 πi(x) 虽然不独立,但都是同分布的。如果我们从 一个具体的初始状态x0开始,沿着马氏链做跳转,那么我们就可以得到一个转移 序列x0, x1, ..., xn,由于马氏链的收敛行为,xn, xn+1, ...及其之后的所有分布都将是 稳态分布π(x)的样本。
迭代训练Boltzmann Machine的目的是使网络达到热平衡.一般地,可以对神经 元使用Gibbs采样进行更新。即,开始时给网络赋予任意状态,神经元以它们的自 然顺序依次重复访问,每次访问选择一个神经元,根据其它神经元的值来确定该
2
Figure 1: General Boltzmann Machine Structure
(d) 否则不接受转移,即 Xt+1 = xt
4.2 吉布思采样法(Gibbs Sample)
对于高维情况,由于接收率的存在,会导致MCMC算法的效率不够高,如果能够找
到Q使接收率为1,那么就可以避免因为频繁的拒绝转移而带来的收敛慢问题。假设
原始数据的概率分布为 p(x, y),考察x轴坐标相同的两个点 A(x1, y1), B(x1, y2), 发现
p(i)q(i, j)α(i, j) = p(j)q(j, i)α(j, i)
(4.2)
MCMC算法描述: 1. 初始化马氏链的状态 X0 = x0 2. 对 t = 0, 1, 2, 3, ...循环以下过程进行采样: (a) 第t个时刻马氏链状态为 Xt = xt,采样 y q(x|xt) (b) 从均匀分布采样u U nif orm[0, 1] (c) 如果u < α(xt, y) = p(y)q(xt|y)则接受转移xt → y, 即Xt+1 = y 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

值就是 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 的值。
3.3.2 从能量最小到极大似然
上面我们得到了一个样本和其对应编码的联合概率,也就是得到了一个 Gibbs 分布,我 们引人概率的目的是为了方便求解的。但是我们实际求解的目标是能量最小。
下面来看看怎么从能量最小变成用概率表示。内容是来自《神经网络原理》那本书。 在统计力学上的说法也是——能量低的状态比能量高的状态发生的概率高。 定义一个叫做自由能量的东西,是从统计力学来的概念,
变量之间的相关程度决定了能量的高低。把变量的相关关系用图表示出来,并引入概率测度
方式就构成了概率图模型的能量模型,其实实际中也可以不用概率表示,比如立体匹配中直
接用两个像素点的像素差作为能量,所有像素对之间的能量和最小时的配置即为目标解。
RBM 作为一种概率图模型,引入概率就是为了方便采样,因为在 CD(contrastive divergence)算法中采样部分扮演着模拟求解梯度的角色。
RBM 网络有几个参数,一个是可视层与隐藏层之间的权重矩阵������������×������,一个是可视节点 的偏移量b = (b1, b2 ⋯ bn),一个是隐藏节点的偏移量c = (c1, c2 ⋯ cm),这几个参数决定了 RBM 网络将一个 n 维的样本编码成一个什么样的 m 维的样本。
其中E������表示系统在状态 i 时的能量,T 为开尔文绝对温度,������B为 Boltzmann 常数,Z 为与 状态无关的常数。
我们这里的E������变成了 E(v,h),因为(v,h)也是一个状态,其他的参数 T 和������B由于跟求解无 关,就都设置为 1 了,Z 就是我们上面联合概率分布的分母,这个分母是为了让我们的概率
量。 下面就开始想办法求解这个能量模型了。但是要解一个问题得有一个东西,就是是目标
函数(也就是全局解的度量),我们对目标函数求个偏导,就可以用梯度法迭代地去解这个 问题了。
那么,我们可以把所有可视节点的取值和隐藏节点的取值的能量累加起来,累加的结果 作为 RBM 的目标函数。
然后解起来就麻烦了,对每个样本,都要列举它能对应的所有编码后的样本(隐藏节点 取值),这样才能计算能量,那指数级别的计算就难免了,这样,解这个问题恐怖就不实际 了,因为用穷举法计算梯度什么的,实在太耗计算资源。当然这个说法可能是我一人的片面 看法,大家有更好的解释麻烦提醒一下,我把它修改了。
ii)然后产生一个 0 到 1 之间的随机数,如果它小于p(vi = 1|h),hi 的取值就是 1,否 则就是 0。
3.1.2 RBM 的用途
RBM 的用途主要是两种,一是对数据进行编码,然后交给监督学习方法去进行分类或 回归,二是得到了权重矩阵和偏移量,供 BP 神经网络初始化训练。
第一种可以说是把它当做一个降维的方法来使用。 第二种就用途比较奇怪。其中的原因就是神经网络也是要训练一个权重矩阵和偏移量, 但是如果直接用 BP 神经网络,初始值选得不好的话,往往会陷入局部极小值。根据实际应 用结果表明,直接把 RBM 训练得到的权重矩阵和偏移量作为 BP 神经网络初始值,得到的结 果会非常地好。 这就类似爬山,如果一个风景点里面有很多个山峰,如果让你随便选个山就爬,希望你 能爬上最高那个山的山顶,但是你的精力是有限的,只能爬一座山,而你也不知道哪座山最 高,这样,你就很容易爬到一座不是最高的山上。但是,如果用直升机把你送到最高的那个 山上的靠近山顶处,那你就能很容易地爬上最高的那座山。这个时候,RBM 就的角色就是 那个直升机。 其实还有两种用途的,下面说说。 第三种,RBM 可以估计联合概率 p(v,h),如果把 v 当做训练样本,h 当成类别标签(隐 藏节点只有一个的情况,能得到一个隐藏节点取值为 1 的概率),就可以利用利用贝叶斯公 式求 p(h|v),然后就可以进行分类,类似朴素贝叶斯、LDA、HMM。说得专业点,RBM 可以 作为一个生成模型(Generative model)使用。 第四种,RBM 可以直接计算条件概率 p(h|v),如果把 v 当做训练样本,h 当成类别标签 (隐藏节点只有一个的情况,能得到一个隐藏节点取值为 1 的概率),RBM 就可以用来进行 分类。说得专业点,RBM 可以作为一个判别模型(Discriminative model)使用。
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 的值。
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 取
的和为 1,这样才能保证 p(v,h)是一个概率。
现在我们得到了一个概率,其实也得到了一个分布,其实这个分布还有一个好听点的名
字,可以叫做 Gibbs 分布,当然不是一个标准的 Gibbs 分布,而是一个特殊的 Gibbs 分布,
这个分布是有一组参数的,就是能量函数的那几个参数 w,b,c。
有了这个联合概率,就可以得到一些条件概率,是用积分去掉一些不想要的量得到的。
RBM 的能量函数的定义如下
������ ������
������
������
E(v, h) = − ∑ ∑ ������������������ℎ������������������ − ∑ ������������������������ − ∑ ������������ℎ������
������=1 ������=1
第二,能量函数。随机神经网络是根植于统计力学的。受统计力学中能量泛函的启发, 引入了能量函数。能量函数是描述整个系统状态的一种测度。系统越有序或者概率分布越集 中,系统的能量越小。反之,系统越无序或者概率分布越趋于均匀分布,则系统的能量越大。 能量函数的最小值,对应于系统的最稳定状态。
在统计力学中,基于能量函数的模型(Engery based model)称为能量模型。能量方法来源 于热动力学,分子在高温中运动剧烈,能够克服局部约束(分子之间的一些物理约束,比如 键值吸引力等),在逐步降到低温时,分子最终会排列出有规律的结构,此时也是低能量状 态。受此启发,早期的模拟退火算法就是在高温中试图跳出局部最小。随机场作为物理模型 之一,也引入了此方法。
lnp(v) = −FreeEnergy(v) − lnZ
从这里可以看出,自由能量可以用 lnp(v)来度量,当然,是反向的关系,自由能量小时
候 p(v)大,两边做个累加
∑ ������������������(������) = − ∑ FreeEnergy(v) − ∑ ������������������
v
������
������
最右边那个是常数,就忽略算了;右边的第一项就是整个网络的自由能量总和的负值,
左边可以认为是概率 p(v)的连乘的对数,也就是似然函数。这就得到了一个物理系统(RBM
网络)的自由能量的总和,跟 p(v)的对数和的关系,p(v)的对数和也可以称为对数似然函数。
这样就能得到一个结论了,一个系统的自由能量的总和最小的时候,正是∏v ������(������)最大 的时候,也就是说,用极大似然估计去求得的参数,能让 RBM 系统的自由能量的总和最小。
FreeEnergy(v) = −ln ∑ ������−������(������,ℎ)

然后 p(v)可以重新写成
������ −FreeEnergy(������)
p(v) =
������
其中Z = ∑������,ℎ ������−������(������,ℎ),然后对上面的等式两边取对数,可以得到
3.2.2 能量模型作用和定义
为什么要弄这个能量模型呢?,因为能凑出个问题来求解。在马尔科夫随机场(MRF) 中能量模型主要扮演着两个作用:一、全局解的度量(目标函数);二、能量最小时的解(各
种变量对应的配置)为目标解。
能否把最优解嵌入到能量函数中关重要,决定着我们具体问题求解的好坏。统计模式
识别主要工作之一就是捕获变量之间的相关性,同样能量模型也要捕获变量之间的相关性,
发生的概率 p(v,h)是由能量函数来定义的。
这个概率不是随便定义的,而是有统计热力学的解释的——在统计热力学上,当系统和
它周围的环境处于热平衡时,一个基本的结果是状态 i 发生的概率如下面的公式
p������
=
1 ������
相关文档
最新文档