1. RBM 的提出

BM 的缺点:

  • 计算时间漫长,尤其是无约束自由迭代的负向阶段;
  • 对抽样噪音敏感;
  • 流行软件的不支持;

受限玻尔兹曼机(Restricted Boltzmann Machine,简称 RBM,以解决 BM 的学习效率过慢的严重缺陷)是由 Hinton 和 Sejnowski 于 1986 年提出的一种生成式随机神经网络(generative stochastic neural network),该网络由一些可见单元(visible unit,对应可见变量,亦即数据样本)和一些隐藏单元(hidden unit,对应隐藏变量)构成,可见变量和隐藏变量都是二元变量,亦即其状态取{0,1}。整个网络是一个二部图,只有可见单元和隐藏单元之间才会存在边,可见单元之间以及隐藏单元之间都不会有边连接,如下图所示:

2. BM 与 RBM 的对比

  • RBM 和 BM 一样,都可视为一种无向图(undirected graph),所谓无向的涵义即在于,权值对称,wji=wij(自然对于有向图而言,与指向有关;)

  • RBM 同层节点之间没有连接(BM 有连接),

    • 可见层,隐层:结点之间彼此独立(简化的思路)(条件独立假设),

3. 数学记号

  • 能量函数的定义:

    E(v,h|θ)=−∑iaivi−∑jbjhj−∑in∑jmaiWijbj
    • 显然可以将上述公式简化为:一种向量的记法;
    • ai:可见层的偏置(bias)
    • bj:隐层的偏置(bias)
    • 竖线右边的 θ 就像条件概率的形式一样,一般理解为固定 θ(θ={Wij,ai,bj})的条件下,E 关于 v,h 的函数;
  • v,h 的联合概率分布为(由玻尔兹曼分布而来):

    P(v,h)=e−E(v,h|θ)Z(θ)

    Z 十分难计算(2n+m 种组合)

4. CD 算法

θ∗=argmaxL(θ)=argmax∑t=1TlogP(v(t)|θ)

目标函数,即在参数(θ)确定的情况,最大化重现(再现)输入;

5. AE 与 RBM

  • AE:

    • 出于简化的考虑:输入层,隐层,输出层;
    • 因为通过低维的隐层,可以重构出输出层,可见低维的隐层,是一种对输入本质特征的描述,又可从侧面说明,输入层是可以被压缩,也即存在冗余,进一步我们可认为其是可以被稀疏表示的;
      • 平方损失,BP反向传播,
  • RBM:
    • 可见层,隐层,可见层,隐层 ,,, ,是一种横向的展开;
    • 这种周期性的循环结构可以被视为:不同的可见层其实是相互重叠的;
    • 可见层既作为输入,也作为输出,(之所以称其为可见层,隐层,而不是输入层,隐层,输出层,就在于,可见层既作为输入层,也作为输出层)
    • -

受限玻尔兹曼机(RBM)以及对比散度(CD)的更多相关文章

  1. 深度学习方法:受限玻尔兹曼机RBM(一)基本概念

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 最近在复习经典机器学习算法的同 ...

  2. 基于受限玻尔兹曼机(RBM)的协同过滤

    受限玻尔兹曼机是一种生成式随机神经网络(generative stochastic neural network), 详细介绍可见我的博文<受限玻尔兹曼机(RBM)简介>, 本文主要介绍R ...

  3. 深度学习方法:受限玻尔兹曼机RBM(四)对比散度contrastive divergence,CD

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入 上篇讲到,如果用Gibbs Sa ...

  4. 深度学习方法:受限玻尔兹曼机RBM(三)模型求解,Gibbs sampling

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 接下来重点讲一下RBM模型求解 ...

  5. 深度学习方法:受限玻尔兹曼机RBM(二)网络模型

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入 上解上一篇RBM(一)基本概念, ...

  6. 受限玻尔兹曼机RBM

    相关算法 python代码参考http://blog.csdn.net/zc02051126/article/details/9668439#(作少量修改与注释) #coding:utf8 impor ...

  7. 受限玻尔兹曼机RBM—简易详解

  8. 受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)

    这篇写的主要是翻译网上一篇关于受限玻尔兹曼机的tutorial,看了那篇博文之后感觉算法方面讲的很清楚,自己收获很大,这里写下来作为学习之用. 原文网址为:http://imonad.com/rbm/ ...

  9. 受限玻尔兹曼机(RBM)学习笔记(六)对比散度算法

      去年 6 月份写的博文<Yusuke Sugomori 的 C 语言 Deep Learning 程序解读>是囫囵吞枣地读完一个关于 DBN 算法的开源代码后的笔记,当时对其中涉及的算 ...

随机推荐

  1. Linux上制作Window启动盘

    Linux上制作Window启动盘 注意: U盘在Linux中的标签(依具体情况而定:执行df查看) U盘 ----- /dev/sdb4 格式化U盘 建立U盘的启动分区 安装关键工具 ms-sys ...

  2. 解决java中ZipFile解压缩时候的中文路径和乱码问题

    JAVA中对jar文件或zip文件解压的时候,能够使用JDK内置的API:JarFile和ZipFile,在windows下解压这2种格式文件的时候,常常报下面错误: Exception in thr ...

  3. Codeforces 138C(区间更新+离散化)

    题意:有n棵树在水平线上,给出每棵树的坐标和高度,然后向左倒的概率和向右倒的概率,和为1,然后给出了m个蘑菇的位置,每一个蘑菇都有一个魔法值,假设蘑菇被压死了,也就是在某棵树[a[i] - h[i], ...

  4. DI:依赖注入详解

    DI(依赖注入) 依赖注入的理解: 一般写程序的时候service层都需要用到dao层,所以一般都是在service层里面new  dao ,而现在利用依赖注入的方式,直接把dao给了service层 ...

  5. php实现求扑克牌顺子(*****)(AC)(分类:把问题分小,利于排错)

    php实现求扑克牌顺子(*****)(AC)(分类:把问题分小,利于排错) 一.总结 分类(那就可以把问题分小而逐步完成每个板块,这样是很简单的) 分类还有助于查错 二.php实现求扑克牌顺子 题目描 ...

  6. BigDecimal 舍入模式(Rounding mode)介绍

    BigDecimal 舍入模式(Rounding mode)介绍 什么样的经历,才能领悟成为架构师? >>>   1 RoundingMode介绍 package java.math ...

  7. 云平台DevOps实践

    基于TFS的.net技术路线的云平台DevOps实践   DevOps是近几年非常流行的系统研发管理模式,很多公司都或多或少在践行DevOps.那么,今天就说说特来电云平台在DevOps方面的实践吧. ...

  8. UIPasteboard粘贴板:UIMenuController自定义(三)

    这篇咱总结总结自定义剪贴板的使用 其实自定义剪贴板也非常简单,无非是放开响应时间,通过UIMenuController自定义剪贴板,然后就是最关键的实现你所用的copy方法拉. 为了方便实用,我给ce ...

  9. erlang---启动参数学习/研究

    erlang启动参数有3种:emulator flags, flags 和plain arguments. emulator flags 是以“+”开头的,用来控制模拟器的行为,附送一个非常实用的例子 ...

  10. 解决eclipse 保存卡顿的问题

    开发十年,就只剩下这套Java开发体系了 >>>   eclipse 如果启动慢,还可以接收. 可是如果是 保存的时候卡顿, 有时候会 卡顿 3秒-5 秒的,感觉到写代码特别的不顺畅 ...