受限玻尔兹曼机(Restricted Boltzmann Machine, RBM) 简介

简介:   受限玻尔兹曼机(Restricted Boltzmann Machine,简称RBM)是由Hinton和Sejnowski于1986年提出的一种生成式随机神经网络(generative stochastic neural network),该网络由一些可见单元(visible unit,对应可见变量,亦即数据样本)和一些隐藏单元(hidden unit,对应隐藏变量)构成,可见变量和隐藏变量都是二元变量,亦即其状态取{0,1}。

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

 

  

1. RBM的学习目标-最大化似然(Maximizing likelihood)

  RBM是一种基于能量(Energy-based)的模型,其可见变量v和隐藏变量h的联合配置(joint configuration)的能量为:

  (式子-1)

  其中θ是RBM的参数{W, a, b}, W为可见单元和隐藏单元之间的边的权重,b和a分别为可见单元和隐藏单元的偏置(bias)。

  有了v和h的联合配置的能量之后,我们就可以得到v和h的联合概率:

                     (式子-2)

  其中Z(θ)是归一化因子,也称为配分函数(partition function)。根据式子-1,可以将上式写为:

    (式子-3)

  我们希望最大化观测数据的似然函数P(v),P(v)可由式子-3求P(v,h)对h的边缘分布得到:

       (式子-4)

  我们通过最大化P(v)来得到RBM的参数,最大化P(v)等同于最大化log(P(v))=L(θ):

                       (式子-5)

2. RBM的学习方法-CD(Contrastive Divergence,对比散列)

  可以通过随机梯度下降(stichastic gradient descent)来最大化L(θ),首先需要求得L(θ)对W的导数:

       (式子-6)

  经过简化可以得到:

     (式子-7)

  后者等于

                           (式子-8)

  式子-7中的前者比较好计算,只需要求vihj在全部数据集上的平均值即可,而后者涉及到v,h的全部2|v|+|h|种组合,计算量非常大(基本不可解)。

  为了解决式子-8的计算问题,Hinton等人提出了一种高效的学习算法-CD(Contrastive Divergence),其基本思想如下图所示:

    

  首先根据数据v来得到h的状态,然后通过h来重构(Reconstruct)可见向量v1,然后再根据v1来生成新的隐藏向量h1。因为RBM的特殊结构(层内无连接,层间有连接), 所以在给定v时,各个隐藏单元hj的激活状态之间是相互独立的,反之,在给定h时,各个可见单元的激活状态vi也是相互独立的,亦即:

  (式子-9)

  重构的可见向量v1和隐藏向量h1就是对P(v,h)的一次抽样,多次抽样得到的样本集合可以看做是对P(v,h)的一种近似,使得式子-7的计算变得可行。

  RBM的权重的学习算法:

  1. 取一个样本数据,把可见变量的状态设置为这个样本数据。随机初始化W。
  2. 根据式子-9的第一个公式来更新隐藏变量的状态,亦即hj以P(hj=1|v)的概率设置为状态1,否则为0。然后对于每个边vihj,计算Pdata(vihj)=vi*hj(注意,vi和hj的状态都是取{0,1})。
  3. 根据h的状态和式子-9的第二个公式来重构v1,并且根据v1和式子-9的第一个公式来求得h1,计算Pmodel(v1ih1j)=v1i*h1j
  4. 更新边vihj的权重Wij为Wij=Wij+L*(Pdata(vihj)=Pmodel(v1ih1j))。
  5. 取下一个数据样本,重复1-4的步骤。
  6. 以上过程迭代K次。

 

  参考文献:

  1. R. Salakhutdinov. Deep Learning Tutorial.

  2. 张春霞, 姬楠楠, 王冠伟. 受限玻尔兹曼机简介.

  3. Wikipedia: Restricted Boltzmann Machine

  4. Edwin Chen: Introduction to Retricted Boltzmann Machine  

目录
相关文章
|
机器学习/深度学习 计算机视觉
Mobile-Unet网络综述
Mobile-Unet网络综述
1433 0
Mobile-Unet网络综述
|
4月前
|
机器学习/深度学习 存储 缓存
2024机器遗忘(Machine Unlearning)技术分类-思维导图
本文通过思维导图的形式,详细介绍了机器遗忘技术的分类、优缺点、面临的威胁和攻击以及防御机制,并探讨了评估机器遗忘系统有效性的方法,包括精确遗忘和近似遗忘技术,以及在数据隐私保护和法律遵从方面的应用。
243 5
|
6月前
|
人工智能 自然语言处理
ACL 2024论文盖棺定论:大语言模型≠世界模拟器
【6月更文挑战第23天】ACL 2024研究揭示:大语言模型GPT-4虽强,但不适合作为世界模拟器。新基准BYTE-SIZED32-State-Prediction显示,GPT-4在模拟复杂状态变化时遇到挑战,尤其在算术、常识推理及环境动态方面。论文指出,LLMs需增强推理能力并改进评估标准,以迈向可靠的世界模拟器。[https://arxiv.org/pdf/2406.06485](https://arxiv.org/pdf/2406.06485)**
73 6
|
机器学习/深度学习 数据采集 监控
转:如何利用BP神经网络算法实现对内网管理软件中的预测与管理
关于在内网管理软件里用BP神经网络算法来搞预测和管理,你可以把它想象成是探险,得跨过不少的障碍。但不要紧,因为每个软件和场景都有独特之处,所以需要根据具体情况来调整和优化。接下来我会详细地聊一聊,在内网管理软件中引入BP神经网络算法来进行预测和管理所需要考虑的一些步骤——
48 0
|
移动开发 并行计算 IDE
【MASK-RCNN配置】Windows环境下配置完整方案
一、配置python环境 1下载Python Python Releases for Windows | Python.org 2下载PyCharm Download PyCharm: Python IDE for Professional Developers by JetBrains 2.OpenCV_Python 软件环境的搭建:为人脸检测,人脸采集,人眼检测项目做准备_哔哩哔哩_bilibili ............
431 0
|
并行计算 开发工具 vr&ar
|
机器学习/深度学习 数据采集 自然语言处理
使用向量机(SVM)算法的推荐系统部署实现
使用向量机(SVM)算法的推荐系统部署实现
155 0
|
PyTorch 算法框架/工具
【pytorch】孪生网络Siamese network入门教程
孪生网络Siamese network入门教程,内含详细代码
【pytorch】孪生网络Siamese network入门教程
|
机器学习/深度学习 搜索推荐
因子分解机(Factorization machine,FM),DIFM模型
因子分解机(Factorization machine,FM),DIFM模型
293 0
因子分解机(Factorization machine,FM),DIFM模型