深度置信网络学习总结
深度置信网络学习总结
目录
深度置信网络学习总结... 1
一、 蒙特卡洛方法和Gibbs 采样... 2
1.1 随机模拟(蒙特卡罗方法)的作用... 2
3.2蒙特卡洛的基础——马氏链及其平稳分布... 3
3.3 举个例子——蒙特卡洛方法的使用步骤... 7
3.4 Gibbs 采样... 10
二.限制波尔兹曼机... 13
2.1限制波尔兹曼机(RBM)... 13
2.1.1 RBM的使用说明... 13
2.1.2 RBM的用途... 15
2.2限制波尔兹曼机(RBM)能量模型... 16
2.2.1 能量模型定义... 16
3.2.2 能量模型作用... 16
2.3从能量模型到概率... 18
2.3.1 从能量函数到概率... 18
2.3.2 从概率到极大似然... 19
2.4求解极大似然... 20
2.5用到的抽样方法... 23
3.6马尔科夫蒙特卡罗简介... 25
致谢... 26
参考文献... 26
一、 蒙特卡洛方法和Gibbs 采样
深度置信网络,是由多层限制波尔兹曼机组成,在网络学习过程中用到了蒙特卡洛方法,所以在学习深度置信网络的过程中,首先需要了解蒙特卡洛方法的作用、原理、使用方法。
1.1 随机模拟(蒙特卡罗方法)的作用
随机模拟(或者统计模拟)方法的别名是蒙特卡罗方法(Monte CarloSimulation)。现代的统计模拟方法最早由数学家乌拉姆提出,被命名为蒙特卡罗方法,蒙特卡罗是著名的赌场,赌博总是和统计密切关联的,所以这个命名风趣而贴切,很快被大家广泛接受。
统计模拟中有一个重要的问题就是给定一个概率分布p(x),我们如何在计算机中生成它的样本。可是,这些样本有什么用呢?举个例子,假设在一场射击比赛中,经过了多轮射击,最后要计算运动员的平均成绩。假如运动员射击了无数次,我们可以得到运动员射击点的分布函数 , 表示射击点与靶心的距离, 表示射击点在 处时的成绩,那么该运动员的平均成绩便可以通过下面的一个积分求得:
但显然,上述的 是很难求得的,因此在实际中,假设运动员射击了 次,我们可以将多次的成绩相加,然后平均来近似地表示成绩,即
要强调一点,利用蒙特卡洛思想的条件是,假设我们以及知道了概率 ,而且我们也已经得到了大量服从概率分布 的样本,再此基础上我们才能通过抽样来求解上面的积分。但这也造成了蒙特卡洛方法的一个缺陷,即有时候,我们虽然知道概率 ,但上述 太复杂,我们得不到,服从这一分布的样本我们也没有现成的,此时要使用蒙特卡洛方法,就要创造一批服从分布 随机样本,那应该怎么创造呢?
一般而言均匀分布Uniform(0,1)的样本是相对容易生成的。 通过线性同余发生器可以生成伪随机数,我们用确定性算法生成[0,1]之间的伪随机数序列后,这些序列的各种统计指标和均匀分布Uniform(0,1)的理论计算结果非常接近。这样的伪随机序列就有比较好的统计性质,可以被当成真实的随机数使用。
而我们常见的概率分布,无论是连续的还是离散的分布,都可以基于Uniform(0,1)的样本生成。例如正态分布可以通过著名的Box-Muller变换得到
如果随机变量 , 独立且 , 服从分布Uniform[0,1],
则 , 独立且服从标准正态分布。其它几个著名的连续分布,包括指数分布、Gamma分布、t分布、F分布、Beta分布、Dirichlet分布等等,也都可以通过类似的数学变换得到;离散的分布通过均匀分布更加容易生成。更多的统计分布如何通过均匀分布的变换生成出来,大家可以参考统计计算的书,其中SheldonM.Ross的《统计模拟》是写得非常通俗易懂的一本。
不过我们并不是总是这么幸运的,当p(x)的形式很复杂,或者p(x)是个高维的分布的时候,样本的生成就可能很困难了。譬如有如下的情况
§ ,而 我们是可以计算的,但是底下的积分式无法计算。
§ p(x,y)是一个二维的分布函数,这个函数本身计算很困难,但是条件分布p(x|y),p(y|x)的计算相对简单;如果p(x)是高维的,这种情形就更加明显。
此时就需要使用一些更加复杂的随机模拟的方法来生成样本。而本节中将要重点介绍的MCMC(Markov Chain MonteCarlo)和Gibbs Sampling算法就是最常用的一种,这两个方法在现代贝叶斯分析中被广泛使用。要了解这两个算法,我们首先要对马氏链的平稳分布的性质有基本的认识。
3.2蒙特卡洛的基础——马氏链及其平稳分布
马氏链的数学定义很简单:
也就是状态转移的概率只依赖于前一个状态。
我们先来看马氏链的一个具体的例子。社会学家经常把人按其经济状况分成3类:下层(lower-class)、中层 (middle-class)、上层 (upper-class),我们用1、2、3分别代表这三个阶层。社会学家们发现决定一个人的收入阶层的最重要的因素就是其父母的收入阶层。如果一个人的收入属于下层类别,那么他的孩子属于下层收入的概率是0.65,属于中层收入的概率是0.28,属于上层收入的概率是0.07。事实上,从父代到子代,收入阶层的变化的转移概率如下
假设初始概率分布为π0=[0.21,0.68,0.11],则我们可以计算前n代人的分布状况如下
我们发现从第7代人开始,这个分布就稳定不变了,这个是偶然的吗?我们换一个初始概率分布π0=[0.75,0.15,0.1]试试看,继续计算前n代人的分布状况如下
我们发现,到第9代人的时候,分布又收敛了。最为奇特的是,两次给定不同的初始概率分布,最终都收敛到概率分布π=[0.286,0.489,0.225],也就是说收敛的行为和初始概率分布π0无关。这说明这个收敛行为主要是由概率转移矩阵P决定的。我们计算一下Pn
我们发现,当n足够大的时候,这个Pn矩阵的每一行都是稳定地收敛到π=[0.286,0.489,0.225]这个概率分布。自然的,这个收敛现象是绝大多数马氏链的共同行为,关于马氏链的收敛我们有如下漂亮的定理:
马氏链定理:如果一个非周期马氏链具有转移概率矩阵P,且它的任何两个状态是连通的,经过足够多次的转移,状态j的概率是一定的,且与初始状态i无关,记 。请注意,这里的π指的是一种分布。此外我们有下面的推论
a)
b)
c) 是方程 的唯一非负解,其中, , 称为马氏链的平稳分布。
这个马氏链的收敛定理非常重要,所有的MCMC (Markov Chain MonteCarlo)方法都是以这个定理作为理论基础的。定理的证明相对复杂,一般的随机过程课本中也不给证明,所以我们就不用纠结它的证明了,直接用这个定理的结论就好了。我们对这个定理的内容做一些解释说明:
a) 该定理中马氏链的状态不要求有限,可以是有无穷多个的;
b) 两个状态i,j是连通并非指i可以直接一步转移到j (Pij>0),而是指i可以通过有限的n步转移到达j (Pijn>0)。
c) 我们用Xi表示在马氏链上跳转第i步后所处的状态,如果 存在,很容易证明以上定理的第二个结论。由于
上式两边取极限就得到
从初始概率分布π0出发,我们在马氏链上做状态转移,记马氏链上跳转第i步后的状态Xi的概率分布为πi,则有
由马氏链收敛的定理,概率分布πi(x)将收敛到平稳分布π(x)。假设到第n步的时候马氏链收敛,则有
所以Xn,Xn+1,Xn+2,⋯∼π(x)都是同分布的随机变量,当然他们并不独立。如果我们从一个具体的初始状态x0开始,沿着马氏链按照概率转移矩阵做跳转,那么我们得到一个转移序列x0,x1,x2,⋯xn,xn+1⋯,由于马氏链的收敛行为,xn,xn+1,⋯都将是平稳分布π(x)的样本。
3.3 举个例子——蒙特卡洛方法的使用步骤
对于给定的概率分布p(x),我们希望能有便捷的方式生成它对应的样本。由于马氏链能收敛到平稳分布,于是一个很的漂亮想法是:如果我们能构造一个转移矩阵为P的马氏链,使得该马氏链的平稳分布恰好是p(x),那么我们从任何一个初始状态x0出发沿着马氏链转移,得到一个转移序列x0,x1,x2,⋯xn,xn+1,…如果马氏链在第n步已经收敛了,于是我们就得到了π(x)的样本xn,xn+1⋯。
这个绝妙的想法在1953年被Metropolis想到了,为了研究粒子系统的平稳性质,Metropolis考虑了物理学中常见的波尔兹曼分布的采样问题,首次提出了基于马氏链的蒙特卡罗方法,即Metropolis算法,并在最早的计算机上编程实现。Metropolis算法是首个普适的采样方法,并启发了一系列MCMC方法,所以人们把它视为随机模拟技术腾飞的起点。Metropolis的这篇论文被收录在《统计学中的重大突破》中,Metropolis算法也被遴选为二十世纪的十个最重要的算法之一。
我们接下来介绍的MCMC算法是Metropolis算法的一个改进变种,即常用的Metropolis-Hastings算法。由上一节的例子和定理我们看到了,马氏链的收敛性质主要由转移矩阵P决定,所以基于蒙特卡洛方法做采样的关键问题是如何构造转移矩阵P,使得平稳分布恰好是我们要的分布p(x)。如何能做到这一点呢?我们主要使用如下的定理。
定理:[细致平稳条件]如果马氏链的转移矩阵P和分布π(x)满足
则π(x)是马氏链的平稳分布,上式被称为细致平稳条件(detailed balance condition)。其实这个定理是显而易见的,因为细致平稳条件的物理含义就是对于任何两个状态i和j,从i转移出去到j而丢失的概率质量,恰好会被从j转移回i的概率质量补充回来,所以状态i上的概率质量π(i)是稳定的,从而π(x)是马氏链的平稳分布。数学上的证明也很简单,由细致平稳条件可得
由于π是方程πP=π的解,所以π是平稳分布。
假设我们已经有一个转移矩阵为Q马氏链(Q是随意取的),其中 表示从状态i转移到状态j的概率,显然,通常情况下,细致平稳条件是不成立的,即
所以p(x)不太可能是这个马氏链的平稳分布。那么,我们可否对马氏链作一个改造,使得细致平稳条件成立呢?譬如,我们引入一个 ,我们希望
但是,取什么样的 和 可以使得以上等式能成立呢?最简单的,按照对称性,我们可以取
于是细致平稳条件就成立了。所以有
于是我们把原来具有转移矩阵Q的一个很普通的马氏链,改造为了具有转移矩阵Q′的马氏链,而且Q′的平稳分布就是p(x)!
在改造Q的过程中引入的 和 称为接受概率,物理意义可以理解为在原来的马氏链上,从状态i以 的概率转跳转到状态j的时候,我们以 的概率接受这个转移,于是得到新的马氏链 的转移概率为 。
把以上的过程整理一下,假设我们已经有一个转移矩阵Q(对应元素为 ),我们就得到了如下的用于采样概率分布p(x)的算法。
上述过程中p(x),q(x|y)说的都是离散的情形,事实上即便这两个分布是连续的,以上算法仍然是有效,于是就得到更一般的连续概率分布p(x)的采样算法,而q(x|y)就是任意一个连续二元概率分布对应的条件分布。
以上的MCMC采样算法已经能很漂亮的工作了,不过它有一个小的问题:马氏链Q在转移的过程中的接受率 可能偏小,这样采样过程中马氏链容易原地踏步,这使得马氏链遍历所有的状态空间要花费太长的时间,收敛到平稳分布p(x)的速度太慢。有没有办法提升一些接受率呢?
假设 、 ,假设此时满足细致平稳条件,于是
上式两边扩大5倍,我们改写为
看,我们提高了接受率,而细致平稳条件并没有打破!这启发我们可以把细致平稳条件的 和 同比例放大,使得两数中最大的一个放大到1,这样我们就提高了采样中的跳转接受率。所以我们可以取
于是,经过对上述MCMC采样算法中接受率的微小改造,我们就得到了如下教科书中最常见的Metropolis-Hastings算法。
3.4 Gibbs 采样
对于高维的情形,由于接受率α的存在(通常α<1),以上Metropolis-Hastings算法的效率不够高。能否找到一个转移矩阵Q使得接受率α=1呢?我们先看看二维的情形,假设有一个概率分布 ,考察x坐标相同的两个点A(x1,y1)、B(x1,y2),我们发现
所以得到
即
基于以上等式,我们发现,在x=x1这条平行于y轴的直线上,如果使用条件分布p(y|x1)做为任何两个点之间的转移概率,那么任何两个点之间的转移满足细致平稳条件。同样的,如果我们在y=y1这条直线上任意取两个点A(x1,y1),C(x2,y1),也有如下等式
因此,对于二维变量,我们可以如下构造平面上任意两点之间的转移概率矩阵Q
于是
如果
如果
其它
有了如上的转移矩阵Q,我们很容易验证对平面上任意两点X,Y,满足细致平稳条件
于是这个二维空间上的马氏链将收敛到平稳分布 。而这个算法就称为Gibbs Sampling算法,是Stuart Geman和Donald Geman这两兄弟于1984年提出来的,之所以叫做Gibbs Sampling是因为他们研究了Gibbs random field,这个算法在现代贝叶斯分析中占据重要位置。
以上采样过程中,如图所示,马氏链的转移只是轮换的沿着坐标轴x轴和y轴做转移,于是得到样本(x0,y0),(x0,y1),(x1,y1),(x1,y2),(x2,y2),⋯马氏链收敛后,最终得到的样本就是p(x,y)的样本,而收敛之前的阶段称为burn-in period。额外说明一下,我们看到教科书上的Gibbs Sampling算法大都是坐标轴轮换采样的,但是这其实是不强制要求的。最一般的情形可以是,在t时刻,可以在x轴和y轴之间随机的选一个坐标轴,然后按条件概率做转移,马氏链也是一样收敛的。轮换两个坐标轴只是一种方便的形式。
以上的过程我们很容易推广到高维的情形,如果x1变为多维情形x1,可以看出推导过程不变,所以细致平稳条件同样是成立的
此时转移矩阵Q由条件分布p(y|x1)定义。上式只是说明了一根坐标轴的情形,和二维情形类似,很容易验证对所有坐标轴都有类似的结论。所以n维空间中对于概率分布 可以如下定义转移矩阵
a) 如果当前状态为 ,马氏链转移的过程中,只能沿着坐标轴做转移。沿着xi这根坐标轴转移的时候,转移概率由条件概率p(xi|x1,⋯,xi−1,xi+1,⋯,xn)定义;
b) 其它无法沿着单根坐标轴进行的跳转,转移概率都设置为0。
c) 于是我们可以把Gibbs Smapling算法从采样二维的p(x,y)推广到采样n维的p(x1,x2,⋯,xn)
以上算法收敛后,得到的就是概率分布p(x1,x2,⋯,xn)的样本,当然这些样本并不独立,但是我们此处要求的是采样得到的样本符合给定的概率分布,并不要求独立。同样的,在以上算法中,坐标轴轮换采样不是必须的,可以在坐标轴轮换中引入随机性,这时候转移矩阵Q中任何两个点的转移概率中就会包含坐标轴选择的概率,而在通常的Gibbs Sampling算法中,坐标轴轮换是一个确定性的过程,也就是在给定时刻t,在一根固定的坐标轴上转移的概率是1。
二.限制波尔兹曼机
2.1限制波尔兹曼机(RBM)
2.1.1 RBM的使用说明
RBM网络有几个参数,一个是可视层与隐藏层之间的权重矩阵 ,一个是可视节点的偏移量 ,一个是隐藏节点的偏移量 ,这几个参数决定了RBM网络将一个m维的样本编码成一个什么样的n维的样本。
假如一个训练样本 的取值为 ,经过RBM网络,可以得到这一样本的n维编码, ,这n维的编码也可以认为是抽取了n个特征的样本。而这个n维的编码后的样本是按照下面的规则生成的:对于给定的 ,隐藏层的第i个节点的取值为1的概率为
其中的v取值就是x,hi的取值就是yi,其中 ,是sigmoid函数。也就是说,编码后的样本y的第i个位置的取值为1的概率是 。所以,生成yi的过程就是:
1)先利用公式 ,根据x的值计算概率 ,其中vj的取值就是xj的值。
2)然后产生一个0到1之间的随机数,如果它小于 ,yi的取值就是1,否则就是0(假如p(hi=1|v)=0.6,这里就是因为yi的取值就是1的概率是0.6,而这个随机数小于0.6的概率也是0.6;如果这个随机数小于0.6,就是这个事件发生了,那就可以认为yi的取值是1这个事件发生了,所以把yi取值为1)。上述步骤相当于得到了符合概率分布为 的一个样本,这样的采样方法称为Gibbs采样。
反过来,现在知道了一个编码后的样本y,想要知道原来的样本x,即解码过程,跟上面也是同理,过程如下:
3)先利用公式 ,根据y的值计算概率 ,其中hi的取值就是yi的值。
4)然后产生一个0到1之间的随机数,如果它小于 ,vj的取值就是1,否则就是0。
这里一定要记住 指的是通过隐藏节点所恢复的第i个可视节点的状态,不是输入xi。
2.1.2 RBM的用途
庆幸的是,利用下文的能量模型,我们发现通过隐藏层恢复的可视层节点服从Gibbs分布,但是里面的参数w,b,c是未知的,我们希望的就是学习到这些参数。
2.2限制波尔兹曼机(RBM)能量模型
2.2.1 能量模型定义
介绍RBM之前,首先需要了解能量模型。能量模型是个什么样的东西呢?直观上的理解就是,把一个表面粗糙又不太圆的小球,放到一个表面也比较粗糙的碗里,就随便往里面一扔,看看小球停在碗的哪个地方。一般来说停在碗底的可能性比较大,停在靠近碗底的其他地方也可能,甚至运气好还会停在碗口附近(这个碗是比较浅的一个碗);能量模型把小球停在哪个地方定义为一种状态,每种状态都对应着一个能量,这个能量由能量函数来定义,小球处在某种状态的概率(如停在碗底的概率跟停在碗口的概率当然不一样)可以通过这种状态下小球具有的能量来定义(换个说法,如小球停在了碗口附近,这是一种状态,这个状态对应着一个能量E,而发生“小球停在碗口附近”这种状态的概率p,可以用E来表示,表示成p=f(E),其中f是能量函数),这就是我认为的能量模型。
这样,就有了能量函数,概率之类的东西。波尔兹曼网络是一种随机网络。描述一个随机网络,总结起来主要有两点。
第一,概率分布函数。由于网络节点的取值状态是随机的,从贝叶斯网的观点来看,要描述整个网络,需要用三种概率分布来描述系统。即联合概率分布,边缘概率分布和条件概率分布。要搞清楚这三种不同的概率分布,是理解随机网络的关键,这里向大家推荐的书籍是张连文所著的《贝叶斯网引论》。很多文献上说受限波尔兹曼是一个无向图,从贝叶斯网的观点看,受限波尔兹曼网络也可以看作一个双向的有向图,即从输入层节点可以计算隐层节点取某一种状态值的概率,反之亦然。
2.2.2 能量模型作用
第一、RBM网络是一种无监督学习的方法,无监督学习的目的是最大可能的拟合输入数据,所以学习RBM网络的目的是让RBM网络最大可能地拟合输入数据。
第二、对于一组输入数据来说,现在还不知道它符合什么分布,学习起来是非常困难的。例如,知道它符合高斯分布,那就可以写出似然函数,然后求解,就能求出这是一个什么样的高斯分布;但如果不知道它符合一个什么分布,那可是连似然函数都没法写的,根本就无从下手。好在天无绝人之路——统计力学的结论表明,任何概率分布都可以转变成基于能量的模型,而且很多的分布都可以利用能量模型的特有的性质和学习过程,有些甚至从能量模型中找到了通用的学习方法。有这样一个好东西,当然要用了。
RBM作为一种概率图模型,引入了概率就可以使用采样技术求解,在CD(contrastivedivergence)算法中采样部分扮演着模拟求解梯度的角色。
另外的一个问题是:为什么要搞概率呢?下面就是解释。能量模型需要两个东西,一个是能量函数,另一个是概率,有了概率才能跟要求解的问题联合起来。下面就介绍从能量模型到概率。
2.3从能量模型到概率
2.3.1 从能量函数到概率
为了引入概率,需要定义概率分布。根据能量模型,有了能量函数,就可以定义一个可视节点和隐藏节点的联合概率
其中 表示系统在状态i时的能量,T为开尔文绝对温度, 为Boltzmann常数,Z为与状态无关的常数,用来归一化。
我们这里的 变成了 ,因为 也是一个状态,其他的参数T和 由于跟求解无关,就都设置为1了,Z就是我们上面联合概率分布的分母,这个分母是为了让我们的概率的和为1,这样才能保证 是一个概率。
现在我们得到了一个概率,其实也得到了一个分布,其实这个分布还有一个好听点的名字,可以叫做Gibbs分布,当然不是一个标准的Gibbs分布,而是一个特殊的Gibbs分布,这个分布是有一组参数的,就是能量函数的那几个参数w,b,c。
有了这个联合概率,就可以得到一些条件概率,是用积分去掉一些不想要的量得到的。
2.3.2 从概率到极大似然
上面得到了一个样本和其对应编码的联合概率,也就是得到了RBM网络的Gibbs分布的概率密度函数。现在回到求解的目标——让RBM网络表示的Gibbs分布与输入样本的分布尽可能地接近。
如果输入样本表示的分布与RBM表示的Gibbs分布完全符合,这个KL距离就是0,否则就是一个大于0的数。第一项其实就是输入样本的熵(熵的定义),输入样本定了熵就定了;第二项没法直接求,但是,偷懒一下,可以用蒙特卡罗抽样(后面有章节会详细介绍)来估算这个值。直接把输入样本当作利用抽样过程抽中的样本(输入样本肯定符合分布q(x)),第二项可以用 来估计,其中的l表示训练样本个数。
2.4求解极大似然
既然是求解极大似然,就要对似然函数求最大值,求解的过程就是对参数就导,然后用梯度上升法不断地把目标函数提升,最终到达停机条件(在这里看不懂的同学就去看参考文献中的《从极大似然到EM》)
为了省事 写成p(v)了,然后就可以对它的对数进行求导了(因为直接求一个连乘的导数太复杂,所以变成对数来求)
可以看到,是对每个p(v)求导后再加和,然后就有了下面的推导了。
根据蒙特卡洛方法的步骤,每一次输入 都是一个样本,我们都可以得到概率 ,然后产生一个随机数,如果随机数大于 , 的样本取1,否则样本取0,这样我们就得到了此时h的一个样本。而对于一个样本 ,它的 也是可以计算的,只求多个输入下的均值就可以估算出第一项。
但是第二项求解起来就比较复杂。因为我们没有RBM网络表示的Gibbs分布下的样本的(后面会介绍这些怎么抽)。
为了进行下面的讨论,把这个梯度再进一步化简,看看能得到什么。根据能量函数的公式,是有三个参数的w,b和c,就分别对这三个参数求导
到了这一步,我们来分析一下,从上面的联合概率那一堆,我们可以得到下面的
也就是说 是可以求的。剩下的麻烦全部集中在第二项了。第二项就是上面的导数化简后的减号后面的那一项。要求第二项,就要遍历所有可能的v的值,然后根据公式去计算几个梯度的值,那样够麻烦的了,还好蒙特卡罗给出了一个偷懒的方法。把上面的式子再写出来:
其中xk表示第k个训练样本,yk表示第k个训练样本对应的RBM网络表示的Gibbs分布(不妨将这个分布称为R)的样本(yk是根据分布R抽取的样本,而且这个样本是从xk出发,用Gibbs抽样抽取出来的,也就是说yk服从分布R,可以用来估算第二项,同时yk跟xk有关),Vyk表示可视节点取值为yk的时候的状态,那么Vykj就表示yk的第j个特征的取值。
这样,梯度出来了,这个极大似然问题可以解了,最终经过若干论迭代,就能得到那几个参数w,b,c的解。
2.5简单的抽样算法——CD-k
上面提到的“某种抽样方法”,现在一般就用Gibbs抽样,然后hinton教授还根据这个弄出了一个CD-k算法,就是用来解决RBM的抽样的。下面一章就介绍这个吧。
参考文献
[1] http://blog.csdn.net/mytestmy/article/details/9150213/,深度学习读书笔记之RBM(限制波尔兹曼机)
[2] http://www.52nlp.cn/lda-math-mcmc-%E5%92%8C-gibbs-sampling1 gibbs抽样相关
深度置信网络学习总结相关推荐
- 基于深度学习的安卓恶意应用检测----------android manfest.xml + run time opcode, use 深度置信网络(DBN)...
基于深度学习的安卓恶意应用检测 from:http://www.xml-data.org/JSJYY/2017-6-1650.htm 苏志达, 祝跃飞, 刘龙 摘要: 针对传统安卓恶意程序检测 ...
- 深度学习 --- 基于RBM的深度置信网络DBN-DNN详解
上一节我们详细的讲解了受限玻尔兹曼机RBM的原理,详细阐述了该网络的快速学习原理以及算法过程,不懂受限玻尔兹曼机的建议先好好理解上一节的内容,本节主要讲解的是使用RBM组成深层神经网络的深度置信网络D ...
- 深度学习DBN深度置信网络
之前的文章有些地方不太完善,故补充完善一下. 2017-4-10. 深度信念网络,DBN,Deep Belief Nets,神经网络的一种.既可以用于非监督学习,类似于一个自编码机:也可以用于监督学习 ...
- 深度学习基础--不同网络种类--深度置信网络(DBN)
深度置信网络(DBN) RBM的作用就是用来生成似然分布的互补先验分布,使得其后验分布具有因子形式. 因此,DBN算法解决了Wake-Sleep算法表示分布难以匹配生成分布的难题,通过RBM使 ...
- Python 3深度置信网络(DBN)在Tensorflow中的实现MNIST手写数字识别
任何程序错误,以及技术疑问或需要解答的,请扫码添加作者VX:1755337994 使用DBN识别手写体 传统的多层感知机或者神经网络的一个问题: 反向传播可能总是导致局部最小值. 当误差表面(erro ...
- 【DBN分类】基于matlab深度置信网络DBN变压器故障诊断【含Matlab源码 2284期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[DBN分类]基于matlab深度置信网络DBN变压器故障诊断[含Matlab源码 2284期] 获取代码方式2: 付费专栏Matlab智 ...
- 受限玻尔兹曼机和深度置信网络
从玻尔兹曼机到深度置信网络 本文仍处于草稿阶段,请慎重观看 引言 受限玻尔兹曼机(Restricted Boltzmann Machines, RBM)最初是在1986年由Paul Smolensky ...
- 【零散知识】受限波兹曼机(restricted Boltzmann machine,RBM)和深度置信网络(deep belief network,DBN)
前言: { 最近一直在想要不要去线下的英语学习机构学英语 (本人的英语口语能力实在是低).如果我想完成今年的年度计划,那么今年就没时间学英语了. 这次的内容是之前落下的深度置信网络(deep beli ...
- 【DBN分类】基于matlab麻雀算法优化深度置信网络SSA-DBN数据分类【含Matlab源码 2318期】
⛄一.DBN DBN由数个RBM堆叠构成,通常会在顶层加入一个BPNN来实现有监督的分类,DBN中下一层的隐藏层就是上一层的可见层.图1所示的DBN即由两个RBM和顶层一个BPNN构成. 图1 深度置 ...
- 【总结】关于玻尔兹曼机(BM)、受限玻尔兹曼机(RBM)、深度玻尔兹曼机(DBM)、深度置信网络(DBN)理论总结和代码实践
近期学习总结 前言 玻尔兹曼机(BM) 波尔兹曼分布推导过程 吉布斯采样 受限玻尔兹曼机(RBM) 能量函数 CD学习算法 代码实现受限玻尔兹曼机 深度玻尔兹曼机(DBM) 代码实现深度玻尔兹曼机 深 ...
最新文章
- SpringMVC注解整理
- Linux系统资源限制
- 13 个适合『中级开发者』练手的项目
- linux NAND驱动之一:内核中的NAND代码布局
- 中公事业单位计算机模拟试题,事业单位考试计算机基础知识模拟试题汇总—单选题(2)...
- 中国水培营养素行业市场供需与战略研究报告
- Flutter报错 Navigator operation requested with a context that does not include a Navigator.
- Android ListView的背景和黑色边缘化的问题
- mysql 大事物commit慢造成全库堵塞问题
- html 字符转换 ascii,HTML ASCII
- ARM64体系结构编程与实践:基础知识
- Keras机器翻译实战
- 二分图最大匹配与其应用
- 100道积分公式证明(71-100)
- arduino控制寻迹传感器
- mysql myisam表分区_MySQL分区表的局限和限制详解
- repo (一) 简介
- MTK开发 — touch key驱动
- MSN -- AIR客户端
- 阿里妈妈 广告部门 Java 一二面面经
热门文章
- 番茄时间管理法:一个番茄是如何让你工作更有效率的
- C语言编程实例——百钱买百鸡
- CNC编程工程师如何炼成?要哪些必备技能?
- Git 64位安装包下载
- java处理代码表_Java处理中华人民共和国行政区划代码
- 伺服速度控制模式接线图_伺服驱动器三种控制模式的接线
- [转]电子书收集工具
- Python网络爬虫实现音乐下载器和图片下载器功能
- android.dig机器人采访,机器人学导论心得 - osc_jjc36t9p的个人空间 - OSCHINA - 中文开源技术交流社区...
- 【新手基础教程】 硬件加速的图像处理