精华内容
下载资源
问答
  • 受限玻尔兹曼机

    2018-07-23 23:45:21
    受限玻尔兹曼机是波尔滋蔓机去掉相同层间连接的网络。 即受限波尔滋蔓机可见层之间没有连接,隐藏层之间也没有连接,但是可见层和隐藏层之间是全连接。 受限玻尔兹曼机与玻尔兹曼机一样,是一个随机神经网络系统。...

    受限玻尔兹曼机是波尔滋蔓机去掉相同层间连接的网络。

    即受限波尔滋蔓机可见层之间没有连接,隐藏层之间也没有连接,但是可见层和隐藏层之间是全连接。

    受限玻尔兹曼机与玻尔兹曼机一样,是一个随机神经网络系统。

    特点:每个神经元的取值只能是0,或者1

    训练方法:对比散度

    受限玻尔兹曼机变化的过程,或者说是运行过程:

    给可见层一个输入,然后系统会开始震荡,最后所有的神经元稳定下来,在可见层得到一个输出。

    神经元的状态变化不是固定的,是以一定概率分布进行变化的。

    当网络进入稳定状态后,所有神经元的状态,包括隐藏层和可见层的联合分布是符合玻尔兹曼分布的。(此处需参考玻尔兹曼机的原理)

    因为受限玻尔兹曼机的神经元是异步更新的,所以在已知权值和偏置的情况下,第j个神经元更新,那么首先要计算出第j个神经元的输入,然后算出该神经元取1的概率,最后从[0,1]的均匀分布中随机产生一个数,如果该数大于取1的概率,那么就取0,如果小于等于取1的概率值,那么就取1。该神经元取1的概率是:

    玻尔兹曼机最优的权值和偏置是什么?

    在某种偏置和权值的状态下,输出的分布与训练集的分布越接近越好。那么就是说,对于任何一个输入来说,在已知输入的条件下,是训练集中的某个样本的概率P1,在受限波尔滋蔓机中输入一个测试数据,最终输出的数据即是在已知输入的条件下,是玻尔兹曼机某种输出状态的概率P2。玻尔兹曼机的输出分布与样本集的分布越接近,P1与P2越接近。

    那么首先我们要构造描述两个分布接近的函数(假设包含T个样本)。

    我们的训练玻尔兹曼机的目的就是找出权值与偏置,使得L函数的值最大。

    利用梯度上升的办法。可以得到梯度是两个期望的差值。

    其中比较难算的是v、h联合分布的期望。可以通过吉布斯采样得到稳定状态的样本,然后再根据大叔定理求期望。

    这样做还是很复杂。

    新的算法:如果初始时P0,,经过1步的迭代P1,经过无穷步的迭代之后收敛到P00,如果P0和P00的KL距离很小,那么说明P00收敛到P0,这正是我们想要的权值和偏置。那么如果P0||P00-P1||P00足够小,这就说明P0更接近P00。因此,我们可以找出一组权值和偏置,使得P0||P00-P1||P00最小。对上式求倒,忽略第三项(Hinton说可以这么干)

    玻尔兹曼机的训练过程:

     

     

     

     

     

     

     

    这样才能对第k个神经元进行抽样。由波尔滋蔓机的性质可知,所有神经元的联合分布是玻尔兹曼分布,(m+n)维联合分布已知,求解第k个神经元的分布函数即是m+n-1维的值,求解该维度的值。那么首先构造该维度的

    展开全文
  • 受限玻尔兹曼机概述

    2021-03-25 00:52:34
    受限玻尔兹曼机概述
  • 玻尔兹曼机 / 受限玻尔兹曼机

    千次阅读 2018-08-08 20:58:01
    玻尔兹曼机 / 受限玻尔兹曼机 是一种基于能量的模型,即能量最小化时网络模型达到理想状态。 网络结构上分两层: 显层用于数据的输入与输出,隐层则被理解为数据的内在表达。可见玻尔兹曼机的神经元状态都由0,1...

    玻尔兹曼机 / 受限玻尔兹曼机 是一种基于能量的模型,即能量最小化时网络模型达到理想状态。

    网络结构上分两层: 显层用于数据的输入与输出,隐层则被理解为数据的内在表达。可见玻尔兹曼机的神经元状态都由0,1组成。 

    受限玻尔兹曼机:

    数据集为,(本质上,玻尔兹曼机和受限玻尔兹曼机为自编码网络,是一种无监督学习方式),关于受限(同一层的单元互相不连接)玻尔兹曼机建立的能量函数为:

    基于能量函数,可以建立v,h的联合分布函数:

    以上是受限玻尔兹曼机工作。下面是玻尔兹曼机:

    展开全文
  • 张量环受限玻尔兹曼机
  • 高斯基数受限玻尔兹曼机
  • 受限玻尔兹曼机RBM

    2018-11-16 12:28:01
    受限玻尔兹曼机RBM,ppt
  • RBM受限玻尔兹曼机

    2017-10-10 20:22:37
    RBM受限玻尔兹曼机-An Introduction to Restricted Boltzmann Machines.pdf与受限波尔兹曼机_张春霞.pdf两篇文档,两者结合起来看,理解的更深刻。
  • 受限玻尔兹曼机二.pdf

    2021-09-14 17:35:50
    受限玻尔兹曼机二.pdf
  • 受限玻尔兹曼机(RBM)原理总结

    万次阅读 多人点赞 2018-08-12 20:28:00
    授权转发自:刘建平《受限玻尔兹曼机(RBM)原理总结》 地址:http://www.cnblogs.com/pinard/p/6530523.html   前 言 本文主要关注于这类模型中的受限玻尔兹曼机(Restricted Boltzmann Machine,以下简...

    https://blog.csdn.net/l7H9JA4/article/details/81463954

     

    授权转发自:刘建平《受限玻尔兹曼机(RBM)原理总结》

    地址:http://www.cnblogs.com/pinard/p/6530523.html


     

    前  言

    本文主要关注于这类模型中的受限玻尔兹曼机(Restricted Boltzmann Machine,以下简称RBM),RBM模型及其推广在工业界比如推荐系统中得到了广泛的应用。

    章节目录
     

    • RBM模型结构

    • RBM概率分布

    • RBM模型的损失函数与优化

    • RBM在实际中应用方法

    • RBM推广到DBM

    • RBM小结

     

     

    01

    RBM模型结构

    玻尔兹曼机是一大类的神经网络模型,但是在实际应用中使用最多的则是RBM。RBM本身模型很简单,只是一个两层的神经网络,因此严格意义上不能算深度学习的范畴。不过深度玻尔兹曼机(Deep Boltzmann Machine,以下简称DBM)可以看做是RBM的推广。理解了RBM再去研究DBM就不难了,因此本文主要关注于RBM。

    回到RBM的结构,它是一个个两层的神经网络,如下图所示:

    640?wx_fmt=jpeg

    上面一层神经元组成隐藏层(hidden layer), 用h向量隐藏层神经元的值。下面一层的神经元组成可见层(visible layer),用v向量表示可见层神经元的值。隐藏层和可见层之间是全连接的,这点和DNN类似, 隐藏层神经元之间是独立的,可见层神经元之间也是独立的。连接权重可以用矩阵W表示。和DNN的区别是,RBM不区分前向和反向,可见层的状态可以作用于隐藏层,而隐藏层的状态也可以作用于可见层。隐藏层的偏倚系数是向量b,而可见层的偏倚系数是向量a。

    常用的RBM一般是二值的,即不管是隐藏层还是可见层,它们的神经元的取值只为0或者1。本文只讨论二值RBM。

    总结下RBM模型结构的结构:主要是权重矩阵W, 偏倚系数向量a和b,隐藏层神经元状态向量h和可见层神经元状态向量v。

     

    02

    RBM概率分布

    RBM是基于基于能量的概率分布模型。怎么理解呢?分两部分理解,第一部分是能量函数,第二部分是基于能量函数的概率分布函数。

    对于给定的状态向量h和v,则RBM当前的能量函数可以表示为:

    640?wx_fmt=png

    有了能量函数,则我们可以定义RBM的状态为给定v,h的概率分布为:

    640?wx_fmt=png

    其中Z为归一化因子,类似于softmax中的归一化因子,表达式为:

    640?wx_fmt=png

    有了概率分布,我们现在来看条件分布P(h|v):

    640?wx_fmt=png

    其中Z′为新的归一化系数,表达式为:

    640?wx_fmt=png

      同样的方式,我们也可以求出P(v|h),这里就不再列出了。

    有了条件概率分布,现在我们来看看RBM的激活函数,提到神经网络,我们都绕不开激活函数,但是上面我们并没有提到。由于使用的是能量概率模型,RBM的基于条件分布的激活函数是很容易推导出来的。我们以P(hj=1|v)为例推导如下。

    640?wx_fmt=png

    从上面可以看出, RBM里从可见层到隐藏层用的其实就是sigmoid激活函数。同样的方法,我们也可以得到隐藏层到可见层用的也是sigmoid激活函数。即:

    640?wx_fmt=jpeg

    有了激活函数,我们就可以从可见层和参数推导出隐藏层的神经元的取值概率了。对于0,1取值的情况,则大于0.5即取值为1。从隐藏层和参数推导出可见的神经元的取值方法也是一样的。

     

     

    03

    RBM模型的损失函数与优化

     

    RBM模型的关键就是求出我们模型中的参数W,a,b。如果求出呢?对于训练集的m个样本,RBM一般采用对数损失函数,即期望最小化下式:

    640?wx_fmt=png

    对于优化过程,我们是首先想到的当然是梯度下降法来迭代求出W,a,b。我们首先来看单个样本的梯度计算, 单个样本的损失函数为:−ln(P(V)), 我们先看看−ln(P(V))具体的内容:

    640?wx_fmt=png

    注意,这里面V表示的是某个特定训练样本,而v指的是任意一个样本。

    我们以ai的梯度计算为例:

    640?wx_fmt=png

     其中用到了:

    640?wx_fmt=png

    同样的方法,可以得到W,b的梯度。这里就不推导了,直接给出结果:

    640?wx_fmt=png

    虽然梯度下降法可以从理论上解决RBM的优化,但是在实际应用中,由于概率分布的计算量大,因为概率分布有2^nv+nh种情况, 所以往往不直接按上面的梯度公式去求所有样本的梯度和,而是用基于MCMC的方法来模拟计算求解每个样本的梯度损失再求梯度和,常用的方法是基于Gibbs采样的对比散度方法来求解,对于对比散度方法,由于需要MCMC的知识,这里就不展开了。对对比散度方法感兴趣的可以看参考文献中2的《A Practical Guide to Training Restricted Boltzmann Machines》,对于MCMC,后面我专门开篇来讲。

     

    04

    RBM在实际中应用方法

    大家也许会疑惑,这么一个模型在实际中如何能够应用呢?比如在推荐系统中是如何应用的呢?这里概述下推荐系统中使用的常用思路。

    RBM可以看做是一个编码解码的过程,从可见层到隐藏层就是编码,而反过来从隐藏层到可见层就是解码。在推荐系统中,我们可以把每个用户对各个物品的评分做为可见层神经元的输入,然后有多少个用户就有了多少个训练样本。由于用户不是对所有的物品都有评分,所以任意样本有些可见层神经元没有值。但是这不影响我们的模型训练。在训练模型时,对于每个样本,我们仅仅用有用户数值的可见层神经元来训练模型。

    对于可见层输入的训练样本和随机初始化的W,a,我们可以用上面的sigmoid激活函数得到隐藏层的神经元的0,1值,这就是编码。然后反过来从隐藏层的神经元值和W,b可以得到可见层输出,这就是解码。对于每个训练样本, 我们期望编码解码后的可见层输出和我们的之前可见层输入的差距尽量的小,即上面的对数似然损失函数尽可能小。按照这个损失函数,我们通过迭代优化得到W,a,b,然后对于某个用于那些没有评分的物品,我们用解码的过程可以得到一个预测评分,取最高的若干评分对应物品即可做用户物品推荐了。

    如果大家对RBM在推荐系统的应用具体内容感兴趣,可以阅读参考文献3中的《Restricted Boltzmann Machines for Collaborative Filtering》

     

    05

    RBM推广到DBM

    RBM很容易推广到深层的RBM,即我们的DBM。推广的方法就是加入更多的隐藏层,比如一个三层的DBM如下:

    640?wx_fmt=png

    当然隐藏层的层数可以是任意的,随着层数越来越复杂,那模型怎么表示呢?其实DBM也可以看做是一个RBM,比如下图的一个4层DBM,稍微加以变换就可以看做是一个DBM。

    640?wx_fmt=png

    将可见层和偶数隐藏层放在一边,将奇数隐藏层放在另一边,我们就得到了RBM,和RBM的细微区别只是现在的RBM并不是全连接的,其实也可以看做部分权重为0的全连接RBM。RBM的算法思想可以在DBM上使用。只是此时我们的模型参数更加的多,而且迭代求解参数也更加复杂了。

     

    06

    RBM小结

     

    RBM所在的玻尔兹曼机流派是深度学习中三大流派之一,也是目前比较热门的创新区域之一,目前在实际应用中的比较成功的是推荐系统。以后应该会有更多类型的玻尔兹曼机及应用开发出来,让我们拭目以待吧!

     

     

     

     

     640?wx_fmt=gif

    END

     

     

     

     

     

    展开全文
  • 基于受限玻尔兹曼机的情感方面提取
  • 受限玻尔兹曼机--IIITB分配
  • 使用深度受限玻尔兹曼机的蛋白质功能预测
  • 项目类别基于条件受限玻尔兹曼机的建议
  • 受限玻尔兹曼机RBM最通俗易懂的教程

    万次阅读 多人点赞 2017-08-04 00:12:56
    本人来到CSDN已经有一段时间了,写文章也写了好几篇了,本人最喜欢的风格就是用白话讲解一些通俗易懂的东西,在之前,我讲了不少东西,也不知道...我们这次要讲的东西是受限玻尔兹曼机,英文名字是Restricted Boltzmann

    本人来到CSDN已经有一段时间了,写文章也写了好几篇了,本人最喜欢的风格就是用白话讲解一些通俗易懂的东西,在之前,我讲了不少东西,也不知道大家懂没懂,但没关系,你们爱懂不懂,哈哈哈哈哈哈哈哈哈哈。

    但这次,我要讲的东西我觉得你们都能懂,不懂我认作你爹,哈哈哈哈哈哈哈哈哈哈哈哈哈,哈哈哈哈哈哈哈哈哈哈哈哈哈

    我们这次要讲的东西是受限玻尔兹曼机,英文名字是Restricted Boltzmann Machine,简称RBM。解释一下这个高大上的名词吧,受限指的是限制,限制啥东西?能量!什么叫能量,我给大家举个例子,天上掉下去一滴水,这水肯定是向下的,为啥,因为重力的原因,它因为重力把高度(叫做势能)给变换为速度(叫做动能),受到一个向下的拉力,然后才能把求往下拉。这个高度和速度其实说白了就是能量,它们互相转化,不消不灭。稍有常识的人都会看出,人往高处走,水往低处流,看我这篇文章的人就是为了往高处走,那水为啥往低处流呢,因为能量总是往势能最小的地方走,直到平衡为止。

    能量给大家解释完了,那就说一下限制,这个限制很简单,意思就是水往低处流。这个“能量的受限”跟RBM模型有啥联系,其实吧,联系不是很大,只是在推导公式的时候用到而已。

    下面说一下玻尔兹曼机的意思,玻尔兹曼是个学霸,他发明的模型,所以叫玻尔兹曼机。

    名字我解释完了,下面我给出一张受限玻尔兹曼机的图片:


    图1

    如图1所示就为玻尔兹曼机的模型,它一共有两层,下面的四个圆圈叫做可视层,上面三个叫做隐含层。大家看看这个模型,它是箭头全链接,且双向的,这说明啥?没啥!我们管下面四圆圈叫可视层,其实说白了就是输入层,将原始数据给输入进去就行。隐含层是啥意思,就是说我通过一个公式,把可视层的数据给算成隐含数据。

    于是我们就得说一下怎么算的了,首先介绍一个概念叫做权值,权值就是值每个小圆圈之间的连线的加权数,比如下面有4个圆圈,上面有3个,那么就有12个权值,我们用wij表示,i指下面圆圈的编号,j是上面的。另一个概念叫做偏置量,怎么理解呢,一次函数写作y=kx+b,权值wij就是k,那么偏置量就是b,我们把这张图继续补完,如图2所示就清晰了,图中的bi,aj指的就是偏置量,w43指的就是可视层神经元4与隐含层神经元3连接的权值。

    图2

    如图2所示,下一步我们就是把导入可视层的原始数据计算为隐含数据了,怎么计算,那可多了神马tansig,sigmoid,pureline等等,但是我们都不讲,我们就讲最简单的,举个粒子计算隐含层y编号为1的圆圈(左上角)的值,计算方式很简单,我就告诉你 用可视层x1~x4四个数据与权值相乘,然后加和,之后再把偏置量b1加上,就完事儿了。其公式可以写作 y1=x1*w11+x2*w21+x3*w31+x4*w41+b1。按照这个方法,即可把3个圆圈的值都算出来。

    算完之后,我们通过算出来的y1,y2,y3在回求一遍x1~x4,为了方便区分,回求的值我们叫做x‘1~x’4。举个例子求x'1,把隐含层3个数据与权值相乘,之后把偏置量a1给加上就完事儿了,公式写作x1=y1*w11+y2*w12+y3*w13+a1。其余3个也按照这个方式求出。

    求完x‘1~x’4后用x‘1~x’4对隐含层再次求一遍值,得到y'1~y'3三个数。

    这些都完毕之后,我们要做的就是让我们求得x与x',但是我们通过计算他们的差值,不为0,那怎么办呢,那就是反向传播,第一步我们x和y的矢量做乘积,x'与y'做乘积,求出z与z'两个矩阵,这两个矩阵行数为x的数目,列数为y的数目,然后我们把z与z'给相减一下,然后加入到权值里面,例如w11,那么新的w11值就为:w11=w11+alpha*(z11-z'11),这里的alpha叫做学习速率,取值在0~1之间,大家自己一个数一个数的试试就知道多少好了,其它的权值也是一样计算。偏置量计算就是用以前的偏置量加上x-x'或y-y‘。如隐含层偏置量b1更新值为:b1=b1+alpha*(y1-y'1),可视层偏置量a1=a1+alpha*(x1-x'1),其余偏置量同理计算。

    计算之后就是反向传播结束了,结束后在进行正向的运算,求一遍x与x'1的差值,看看想不想等,要是相等,行了,结束。不想等就反向传播运算,然后循环,知道近乎相等为止,这样一个RBM模型就建立好了。我讲的比较简单吧,懂了没?

    展开全文
  • 针对传统协同过滤算法所面临的稀疏性及预测准确度不高的问题,提出一种基于受限玻尔兹曼机与加权Slope One的混合推荐算法。首先通过受限玻尔兹曼机对评分矩阵的初步填充,缓解数据的稀疏性问题;然后通过一种混合...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,132
精华内容 1,252
关键字:

受限玻尔兹曼机