深度学习深入浅出:受限玻尔兹曼机RBM(一)基本概念

技术交流QQ群:433250724,欢迎对算法、技术、应用感兴趣的同学加入。

最近在复习经典机器学习算法的同时,也仔细看了一些深度学习的典型算法。深度学习是机器学习的“新浪潮”,它的成功主要得益于深度“神经网络模型”的优异效果。这个小系列打算深入浅出地记录一下深度学习中常用的一些算法。第一篇先写一下“受限玻尔兹曼机”RBM,会分若干个小段写,这是第一段,关于RBM的基本概念。

网上有很多关于RBM的介绍,但是很多写的比较简略,跳过了很多细节,本文尽量追求扣一下细节的同时,做到深入浅出。推荐的参考资料可以看最后的参考文献。

需要的背景知识

要学习RBM需要的一些基本的统计学习基础,包括贝叶斯定理,随机采样方法(Gibbs sampling)等。这些可以翻阅我之前写的一些博文可以看到相关的介绍,在本文中就不具体展开了。总体来说RBM还是相对比较独立的一个算法,不需要依赖太多的先验知识。

RBM基本概念

受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)是G.Hinton教授的一宝。Hinton教授是深度学习的开山鼻祖,也正是他在2006年的关于深度信念网络DBN的工作,以及逐层预训练的训练方法,开启了深度学习的序章。其中,DBN中在层间的预训练就采用了RBM算法模型。RBM是一种无向图模型,也是一种神经网络模型。

RBM具有两层:可见层(V层),以及隐藏层(H层),网络上比较常见的一张图是[1]:

可以看到,两层神经元之间都是全连接的,但是每一层各自的神经元之间并没有连接,也就是说,RBM的图结构是一种二分图(bipartite graph)。正是这个特点,才叫受限玻尔兹曼及,玻尔兹曼机是允许同一层之间的神经元相连的。RBM其实是一种简化了的BM模型。

还有一个特点,RBM中的神经元都是二值化的,也就是说只有激活和不激活两种状态,也就是0或者1;可见层和隐藏层之间的边的权重可以用W来表示,W是一个|V|×|H|大小的实数矩阵。后面一篇讲RBM求解的时候可以看到,算法难点主要就是对W求导(当然还有bias参数),用于梯度下降的更新;但是因为V和H都是二值化的,没有连续的可导函数去计算,实际中采用的sampling的方法来计算,这里面就可以用比如gibbs sampling的方法,当然,Hinton提出了对比散度CD方法,比gibbs方法更快,已经成为求解RBM的标准解法。RBM求解部分将在下一小篇中具体介绍。

OK,第一篇就到这里。

参考资料

[1] http://www.chawenti.com/articles/17243.html

[2] 张春霞,受限波尔兹曼机简介

[3] http://www.cnblogs.com/tornadomeet/archive/2013/03/27/2984725.html

[4] http://deeplearning.net/tutorial/rbm.html

[5] Asja Fischer, and Christian Igel,An Introduction to RBM

[6] G.Hinton, A Practical Guide to Training Restricted Boltzmann Machines

[7] http://blog.csdn.net/itplus/article/details/19168937

时间: 2024-10-14 16:32:56

深度学习深入浅出:受限玻尔兹曼机RBM(一)基本概念的相关文章

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

技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 接下来重点讲一下RBM模型求解方法,其实用的依然是梯度优化方法,但是求解需要用到随机采样的方法,常见的有:Gibbs Sampling和对比散度(contrastive divergence, CD[8])算法. RBM目标函数 假设给定的训练集合是S={vi},总数是ns,其中每个样本表示为vi=(vi1,vi2,-,vinv),且都是独立同分布i.i.d的.RBM采用最大似然估计,即最大化 lnLS=ln∏i=1n

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

技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 上篇讲到,如果用Gibbs Sampling方法来训练rbm会非常慢,本篇中介绍一下对比散度contrastive divergence, CD算法. 我们希望得到P(v)分布下的样本,而我们有训练样本,可以认为训练样本就是服从P(v)的.因此,就不需要从随机的状态开始gibbs采样,而从训练样本开始. CD算法大概思路是这样的,从样本集任意一个样本v0开始,经过k次Gibbs采样(实际中k=1往往就足够了),即每一步

深度学习入门必须理解这25个概念

深度学习入门必须理解这25个概念 2017年05月22日 21:11:51 Star先生 阅读数:30013 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/pangjiuzala/article/details/72630166 神经网络基础 1)神经元(Neuron)--就像形成我们大脑基本元素的神经元一样,神经元形成神经网络的基本结构.想象一下,当我们得到新信息时我们该怎么做.当我们获取信息时,我们一般会处理它,然后生成一个输出.类似地,在

深度学习深入浅出:受限玻尔兹曼机RBM(二)模型与目标函数

技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 上解上一篇RBM(一)基本概念,本篇记叙一下RBM的模型结构,以及RBM的目标函数(能量函数),通过这篇就可以了解RBM到底是要求解什么问题.在下一篇(三)中将具体描述RBM的训练/求解方法,包括Gibbs sampling和对比散度DC方法. RBM模型结构 因为RBM隐层和可见层是全连接的,为了描述清楚与容易理解,把每一层的神经元展平即可,见下图[7],本文后面所有的推导都采用下图中的标记来表示. 再重提一下,经典

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

[深度学习]受限玻尔兹曼机生成手写数字训练样本分析

基于能量的模型(EBM) 基于能量的模型将每一个我们感兴趣的变量构造联系到一个标量能量上. 学习就是修改能量方程从而使得它的外形有我们需要的特点. 举例来说, 我们希望的是: 期望构造的能量低. 基于能量的概率性模型定义了一个概率分布, 它是由能量方程决定的: 归一化因子Z被称为配分函数, 类比于物理系统. 基于能量的模型可以通过SGD(随机梯度下降)算法基于数据的负值对数相似性(NLL)学习得到. 对于对数回归我们首先定义了对数相似性, 之后是损耗函数, 即 负值对数相似性(NLL). 使用随

受限玻尔兹曼机和深度置信网络

2016-07-20   11:21:33 1受限玻尔兹曼机 受限玻尔兹曼机(Restricted Boltzmann Machines, RBM)[1]由深度学习专家Hinton提出,有很多方面的应用,最成熟的有图像领域的图像识别和手写体数字识别,作为协同过滤算法对某一个未知值做预测,针对具有高维时间序列属性的数据,如人体移动的特征,同样也是做预测,还有针对文档数据分类和音频数据识别等等. 受限玻尔兹曼机RBM是一种特殊的马尔科夫随机场(Markov Random Field, MRF).一个

RBM(受限玻尔兹曼机)

基于能量模型 (EBM) 基于能量模型将关联到感兴趣的变量每个配置的标量能量.学习修改的能量函数使他它的形状具有最好的性能.例如,我们想的得到最好的参量拥有较低的能量. EBM的概率模型定义通过能量函数的概率分布,如下所示: 规则化系数 Z 称为分区函数和物理系统的能量模型相似. 一种基于能量模型可以学习通过随机梯度下降的方法处理负对数似然训练数据的.至于 logistic 回归分析我们将首次作为负对数似然定义对数似然然后损失函数. 使用随机梯度  更新参数权值,  是模型中的各种参数. EBM

各种编程语言的深度学习库整理

Python 1. Theano是一个python类库,用数组向量来定义和计算数学表达式.它使得在Python环境下编写深度学习算法变得简单.在它基础之上还搭建了许多类库. 1.Keras是一个简洁.高度模块化的神经网络库,它的设计参考了Torch,用Python语言编写,支持调用GPU和CPU优化后的Theano运算. 2.Pylearn2是一个集成大量深度学习常见模型和训练算法的库,如随机梯度下降等.它的功能库都是基于Theano之上. 3.Lasagne是一个搭建和训练神经网络的轻量级封装