DBN(Deep Belief Network)是深度学习中的一个重要模型,受限波尔兹曼机(RBM: Restricted Boltzmann Machine)则是DBN的主要组成部件。而RBM的含义和训练比较难以理解。这里试图以直观明白的方式来解释RBM的模型及学习算法。

RBM模型

RBM是一个由神经元组成的两层模型,分别为显式层和隐藏层,层次之间全链接,层次之内无链接,“受限”的限制就是层次之间的神经元之间无链接。如图1所示。


图1 RBM模型

用vv和hh来代表显式层和隐藏层,它们之间的链接上都有权重,可以使用一个矩阵WW来表示。WijW_{ij}表示从显式层神经元viv_i到隐藏层神经元hih_i之间的边上的权重。两个层次都有一个对应的偏移向量,用aa和bb来表示。
当权重和偏移都给定的时候,以显式层为输入,隐藏层为输出,就可以建立一个输入与输出之间的关系。RBM是深度学习领域中的一个简单的生成式(Generative)训练模型。训练的目的是,把训练样本从输入层输入,可以在输出层获得维度不同的输出向量,而这些输出向量可以被视为从输入样本中提取的特征,反映了样本集中某些更“本质”的东西。
我们用viv_i和hjh_j代表显式层上第ii个神经元和隐藏层上第jj个神经元的取值。按照模型的描述,给定一个输入向量vv,输出层神经元jj的值为1 的概率由以下式子给出。

P(hj=1|v)=σ(bj+Σmi=1Wijvi)

P(h_j = 1 | v) = \sigma(b_j + \Sigma_{i=1}^mW_{ij}v_i)其中, σ\sigma是一个取值区间为 [0,1][0, 1]的函数。
同样,在输出层给定的情况下。

P(vi=1|h)=σ(ai+Σnj=1Wijhj)

P(v_i = 1 | h) = \sigma(a_i + \Sigma_{j=1}^nW_{ij}h_j)把条件概率从神经元的取值提升到层次对应的向量的取值,可以有以下式子。

P(h|v)=Πnj=1P(hj|v)

P(h|v)=\Pi_{j=1}^nP(h_j|v)

P(v|h)=Πmi=1P(vi|h)

P(v|h)=\Pi_{i=1}^mP(v_i|h)根据概率论中的原理,在条件概率计算方法已知的情况下,可以计算 vv和hh的联合概率。为此,需要定义一个能量函数。

E(v,h)=−Σiaivi−Σjbjhj−ΣiΣjviWijhj

E(v, h)=-\Sigma_ia_iv_i-\Sigma_jb_jh_j-\Sigma_i\Sigma_jv_iW_{ij}h_j输入层向量 vv和输出层向量hh之间的联合概率分布为

P(v,h)=1Ze−E(v,h)

P(v,h)=\frac{1}{Z}e^{-E(v,h)} ZZ是所有格局的概率之和,也即

Z=ΣvΣhe−E(v,h)

Z=\Sigma_v\Sigma_he^{-E(v,h)}而对于输入层而言,在模型的参数都给定的情况下,输入层中向量的分布也是确定的,由下面式子给出。

P(v)=1ZΣhe−E(v,h)

P(v)=\frac{1}{Z}\Sigma_he^{-E(v,h)}
RBM学习算法的目的就是,给定一个训练样本集合,在学习的过程中不断调整模型中的参数,从而使得从模型中计算出的输入层向量的分布与训练样本集合中的尽量一致,而此时输出层向量的分布,就是从输入样本集中提取的特征。

RBM学习算法

针对一个训练样本集合VV,学习算法需要调整模型中的参数,使得参数所决定的输入向量的分布与训练集合VV最接近,使用数学式子描述如下。

arg(W,a,b) max(Πv∈VP(v))

arg_{(W,a,b)}\ max(\Pi_{v\in V}P(v))也就是选取适当的 W,a,bW,a,b,使得训练样本集中的样本具有最大的概率。
学习过程采用了CD(Contrastive Divergence)学习算法,每次只取一个学习样本的叫做CD-1算法,描述如下。

  • 从训练样本集VV中取出一个样本vv,按照公式,计算出各个隐藏神经元的取值概率,然后按照这个概率分布,采样出一个输出向量hh。
  • 计算出vv和hh的点乘积,称之为正梯度。
  • 从hh出发,计算输入向量的分布情况。然后从输入向量分布中采样出v′v'。再次计算输出向量的分布,从中采样出h′h'。
  • 计算出v′v'和h′h'的点乘积,称之为负梯度。
  • 更新权重,ΔW=ϵ(vhT−v′h′T)\Delta W=\epsilon(vh^T-v'h'^T)。
  • 更新偏移aa和bb。Δa=ϵ(v−v′),Δb=ϵ(h−h′)。\Delta a=\epsilon(v-v'), \Delta b=\epsilon(h-h')。

受限波尔兹曼(Boltzmann)机简介相关推荐

  1. DL:受限波尔兹曼机(RBM)能量模型

    受限波尔兹曼机(RBM)能量模型 在学习Hinton的stack autoencoder算法(论文 Reducing the Dimensionality of Data with Neural Ne ...

  2. 受限Boltzmann机详解

    受限Boltzmann机 1. 马尔科夫过程 随机过程:设T是一个无限实数集,我们把依赖于参数t∈T的一族随机变量称为随机过程,记作{X(t),t∈T} 马尔科夫性:随机过程中的随机变量将来的取值只与 ...

  3. 深度学习(八)RBM受限波尔兹曼机学习-未完待续

    RBM受限波尔兹曼机学习 原文地址: 作者:hjimce [python] view plain copy #coding=utf-8 import timeit try: import PIL.Im ...

  4. 神经网络 | 受限波尔兹曼机(附源代码)

    ===================================================== github:https://github.com/MichaelBeechan CSDN: ...

  5. Boltzmann机详解

    基于热力学的随机型神经网络–Boltzmann机 1. 模拟退火算法 我们知道,Hopfield神经网络拥有联想记忆的能力,这也是对生物神经网络的一种模拟.但是,Hopfield神经网络也和BP神经网 ...

  6. 机器学习之Boltzmann 机算法

    Boltzmann 机也称为模拟退火算法,它是一种无监督网络.该算法和BP算法都是神经网络家族中的核心算法,这两个算法构成了后来深度学习算法的框架基础.该网络最早来源于对退火过程的一种模拟,使用了著名 ...

  7. 戴尔移动工作站 Precision7740拆机简介(4个 M.2固态)

    戴尔移动工作站 Precision7740拆机简介(4个 M.2固态) 视频一直上传失败,有兴趣的点击看优酷接口说明 ①:使用说明书PDF文档点击这里下载查看: ②:precision7740拆机报告 ...

  8. 戴尔移动工作站 Precision7540拆机简介(2个 M.2 2280+1个2.5英寸)

    戴尔移动工作站 Precision7540拆机简介(2个 M.2 2280+1个2.5英寸) 视频一直上传失败,有兴趣的点击看优酷接口说明 ①:使用说明书PDF文档点击这里下载查看: ②:precis ...

  9. 《人工神经网络原理》读书笔记(六)-Boltzmann机

    全部笔记的汇总贴:<人工神经网络原理>-读书笔记汇总 一.随机型神经网络的提出 BP和Hopfield网络陷入局部最小点的原因 网络误差或能量函数构成了含有多个极小点的非线性超曲面: 网络 ...

最新文章

  1. python有趣代码-你都知道哪些有趣的Python代码?
  2. css3 text-shadow 为网页字体添加阴影
  3. 快速了解 MySQL 的性能优化
  4. .net html转义字符,asp.net转义字符
  5. P1314,jzoj3028-聪明的质监员【二分答案,前缀和】
  6. 分布式理论:CAP、BASE | 分布式存储与一致性哈希
  7. MySQL-MySQL数据类型及占用字节数
  8. CodeProject每日精选: Progress controls 进度条
  9. 【python】filter()函数
  10. ipad safari php readfile mp4,php – 在mac上的safari中没有加载Wav文件
  11. Jenkins的系统设置
  12. 参数化测试 junit_JUnit参数化测试
  13. java随机一个数字和字母_java怎么实现随机4个带有数字和字母的验证码?
  14. python groupby用法_Python数据分析黑色星期五-知识点整理
  15. elasticsearch 7.0.1 + kibana + elasticsearch-analysis-ik 7.0.0 安装和配置过程中问题备忘录...
  16. java基础之static
  17. C语言显示图书信息的讲解,C语言图书信息管理系统解析.pdf
  18. python培训课程-python培训课程
  19. 深度学习第19天_项目1_文本分类的介绍
  20. 163VIP邮箱全新域名上线,见证蜕变开启全新的VIP邮箱体验!

热门文章

  1. Xshell基本命令指南
  2. 写一篇关于挠脚心的文章
  3. 【python】打卡学习第一天
  4. 2021年起重机械指挥考试技巧及起重机械指挥试题及解析
  5. 2015年蓝桥杯C/C++组B组第三题:三羊献瑞
  6. vlc android局域网rtsp,基于Rtsp推流,实现局域网无纸化会议直播
  7. 性能杀手之异常霸气外露!找死!
  8. 在Linux上如何快速搭建MongoDB集群
  9. MOOC数据结构与算法Python版-第五周编程作业
  10. Vue-ElementUI el-table表格中根据后端获取的0、1、2显式对应性别中文(未知、男、女)