限制玻尔兹曼机(Restricted Boltzmann Machine)学习笔记(一)

源链接  http://blog.csdn.net/roger__wong/article/details/43374343



一、限制玻尔兹曼机的感性认识

要回答这个问题大概还要从神经网络说起。
(1)人工神经网络(artificial neural network

一言以蔽之,人工神经网络用于学习一个输入到输出的映射,通常由三层组成,输入层,隐层和输出层。
各层之间的每个连接都有一个权值,人工神经网络的训练过程就是学习这个权值。典型的,可以使用随机梯度下降法。
(2)递归人工神经网络(recurrent neural network

递归人工神经网络的关键在于“递归”二字,其表现为各节点可以形成一个有向环。
可以看到,递归神经网络和普通的人工神经网络最大不同为各隐层节点之间也可以相互联系了,并组成有向环 的形式。
递归神经网络的种类有很多, 上图所示为 "simple recurrent networks" (SRN)。
Hopfield网络也是一种递归神经网络。
(3)玻尔兹曼机
A graphical representation of an example Boltzmann machine.
如图所示为一个玻尔兹曼机,其蓝色节点为隐层,白色节点为输入层。
玻尔兹曼机和递归神经网络相比,区别体现在以下几点:
1、递归神经网络本质是学习一个函数,因此有输入和输出层的概念,而玻尔兹曼机的用处在于学习一组数据的“内在表示”,因此其没有输出层的概念。
2、递归神经网络各节点链接为有向环,而玻尔兹曼机各节点连接成无向完全图。
(4)限制玻尔兹曼机

限制玻尔兹曼机和玻尔兹曼机相比,主要是加入了“限制”(这不是废话么)。
所谓的限制就是,将完全图变成了二分图。如图所示,限制玻尔兹曼机由三个显层节点和四个隐层节点组成。
限制玻尔兹曼机可以用于降维(隐层少一点),学习特征(隐层输出就是特征),深度信念网络(多个RBM堆叠而成)等。


二、Hopfield网络及能量函数

再谈RBM之前,必须说一下Hopfield网络。
Hopfield网络是一种循环型神经网络,如下图:

对于Hopfield神经网络来说,当信号输入后,各神经元的状态会不断变化,最后趋于稳定,或呈现周期性震荡。
假设神经元i连接其它神经元j的权重为w(i,j),则在Hopfield中,有W(i,i)=0,即神经元不与自己连接,W(i,j)=W(j,i),即权重矩阵对称。
以上图所示,假设输入的变量为(a1,a2,a3,a4),而在每一轮t神经元i的状态用y(i,t)来表示,再假设神经元激发函数为sigmod,其中激发界用t(i)表示,则容易得到以下递推式
y(i,0)=sigmod(ai-t(i))
Hopfield模型(公式1)
这个公式什么意思呢?简而言之就是这个神经元在下一轮是否激发,依赖原始的输入和其它神经元的反馈输入,这样整个神经元的状态就呈现一个随着时间进行变化的过程,而如果权值给定、输入给定,这个变化过程是确定的。
假设对于任意输入,对于任意节点i我们在有限的时刻内能得到y(i,t+1)=y(i,t),我们就说这个神经网络是稳定的,可以证明,当神经元激发函数是有界连续的,且神经网络各节点连接权重对阵,则Hopfield网络一定是稳定的。
对于一个稳定的神经网络。
我们定义“能量”的增量为以下式子:
Hopfield模型
则根据公式1可以推导出来,节点j的能量增量是小于0的。(如何证明?考虑y取值只能是0或1,再考虑sigmod函数特性很容易得到)
所以我们就能把能量的增量再时间域上进行积分,得到每个节点的能量,再把所有节点的能量加起来,看得到这个神经网络的能量。
推导出来的结果是这样子的:
E = -\frac12\sum_{i,j}{w_{ij}{s_i}{s_j}}+\sum_i{\theta_i\ s_i}
可以看到,神经网络的变化过程,实质是一个能量不断减少的过程,最终达到能量的极小值点,也就是稳态。

总结一下就是:递归神经网络由于其结构特性,神经元状态可随时间而变化,将此过程可以抽象成能量递减过程,变化最终会导致稳态,此稳态为能量极小值点。


(未完待续)


参考资料:
http://en.wikipedia.org/wiki/Restricted_Boltzmann_machine
http://wenku.baidu.com/view/735f472a647d27284b7351dd.html
http://www.zhihu.com/question/22981388/answer/23259540
http://blog.sina.com.cn/s/blog_631475300100oo93.html


一、限制玻尔兹曼机的感性认识

要回答这个问题大概还要从神经网络说起。
(1)人工神经网络(artificial neural network

一言以蔽之,人工神经网络用于学习一个输入到输出的映射,通常由三层组成,输入层,隐层和输出层。
各层之间的每个连接都有一个权值,人工神经网络的训练过程就是学习这个权值。典型的,可以使用随机梯度下降法。
(2)递归人工神经网络(recurrent neural network

递归人工神经网络的关键在于“递归”二字,其表现为各节点可以形成一个有向环。
可以看到,递归神经网络和普通的人工神经网络最大不同为各隐层节点之间也可以相互联系了,并组成有向环 的形式。
递归神经网络的种类有很多, 上图所示为 "simple recurrent networks" (SRN)。
Hopfield网络也是一种递归神经网络。
(3)玻尔兹曼机
A graphical representation of an example Boltzmann machine.
如图所示为一个玻尔兹曼机,其蓝色节点为隐层,白色节点为输入层。
玻尔兹曼机和递归神经网络相比,区别体现在以下几点:
1、递归神经网络本质是学习一个函数,因此有输入和输出层的概念,而玻尔兹曼机的用处在于学习一组数据的“内在表示”,因此其没有输出层的概念。
2、递归神经网络各节点链接为有向环,而玻尔兹曼机各节点连接成无向完全图。
(4)限制玻尔兹曼机

限制玻尔兹曼机和玻尔兹曼机相比,主要是加入了“限制”(这不是废话么)。
所谓的限制就是,将完全图变成了二分图。如图所示,限制玻尔兹曼机由三个显层节点和四个隐层节点组成。
限制玻尔兹曼机可以用于降维(隐层少一点),学习特征(隐层输出就是特征),深度信念网络(多个RBM堆叠而成)等。


二、Hopfield网络及能量函数

再谈RBM之前,必须说一下Hopfield网络。
Hopfield网络是一种循环型神经网络,如下图:

对于Hopfield神经网络来说,当信号输入后,各神经元的状态会不断变化,最后趋于稳定,或呈现周期性震荡。
假设神经元i连接其它神经元j的权重为w(i,j),则在Hopfield中,有W(i,i)=0,即神经元不与自己连接,W(i,j)=W(j,i),即权重矩阵对称。
以上图所示,假设输入的变量为(a1,a2,a3,a4),而在每一轮t神经元i的状态用y(i,t)来表示,再假设神经元激发函数为sigmod,其中激发界用t(i)表示,则容易得到以下递推式
y(i,0)=sigmod(ai-t(i))
Hopfield模型(公式1)
这个公式什么意思呢?简而言之就是这个神经元在下一轮是否激发,依赖原始的输入和其它神经元的反馈输入,这样整个神经元的状态就呈现一个随着时间进行变化的过程,而如果权值给定、输入给定,这个变化过程是确定的。
假设对于任意输入,对于任意节点i我们在有限的时刻内能得到y(i,t+1)=y(i,t),我们就说这个神经网络是稳定的,可以证明,当神经元激发函数是有界连续的,且神经网络各节点连接权重对阵,则Hopfield网络一定是稳定的。
对于一个稳定的神经网络。
我们定义“能量”的增量为以下式子:
Hopfield模型
则根据公式1可以推导出来,节点j的能量增量是小于0的。(如何证明?考虑y取值只能是0或1,再考虑sigmod函数特性很容易得到)
所以我们就能把能量的增量再时间域上进行积分,得到每个节点的能量,再把所有节点的能量加起来,看得到这个神经网络的能量。
推导出来的结果是这样子的:
E = -\frac12\sum_{i,j}{w_{ij}{s_i}{s_j}}+\sum_i{\theta_i\ s_i}
可以看到,神经网络的变化过程,实质是一个能量不断减少的过程,最终达到能量的极小值点,也就是稳态。

总结一下就是:递归神经网络由于其结构特性,神经元状态可随时间而变化,将此过程可以抽象成能量递减过程,变化最终会导致稳态,此稳态为能量极小值点。


(未完待续)


参考资料:
http://en.wikipedia.org/wiki/Restricted_Boltzmann_machine
http://wenku.baidu.com/view/735f472a647d27284b7351dd.html
http://www.zhihu.com/question/22981388/answer/23259540
http://blog.sina.com.cn/s/blog_631475300100oo93.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值