受限玻尔兹曼机——简单证明

花了很久看了一下玻尔兹曼机,感觉水有点深,总之一步一步来嘛~~~~

先说一下一个非常好的参考资料: 受限玻尔兹曼机(RBM)学习笔记 ,有兴趣的可以再看看这篇文章的参考文献或者博客,写的也非常好,本文就是基于这篇文章的理解,简单证明一下RBM

接下来开证,不对之处欢迎指正:

①我们首先要知道玻尔兹曼机是一种基于统计力学提出来的能量模型,是一个随机神经元模型,首先介绍一下各个参数

   

②已知条件:利用能量函数可以得到可见层和隐藏层的联合概率分布

   

 ③然后我们利用联合概率计算边缘分布函数可以得到可见层V的分布函数

,直接把和拿到分子的原因是,分母为归一化常量,为常量

④接下来我们就是要可见层数据最大性的拟合总体样本空间的分布,我们假设总体分布为q(x),总空间为Ω,然后我们用KL距离来计算样本分布和可见层分布的相似度

关于KL距离请看我前面写过的博客,它是一种不对称距离。既然我们要求P(x)拟合Q(x)损失的能量,那么就用下式计算


⑤然后我们会发现,只有当P(x)最大的时候,才能让KL距离最小,这时候损失能量最小,因为总样本空间是固定的,所以这个Q(x)也是固定,只需管P(x)即可。接下来我们来求这个P(v)的最大值,求关于概率函数的最大值,我们很快就能想到极大似然函数,当然求解的时候用取对数方法求解

 ☆ ☆ ☆ ☆ ☆ ☆一定要注意,这个式子就是我们需要解决的问题,最好把它列在稿纸一边) ☆ ☆ ☆ ☆ ☆

⑥接下来我们对模型参数中的权重W和偏置A,B分别求其偏导数,记住上式中,能量函数 E 在上面说过了,主要就是求前面的条件概率和联合概率

这里提前定义一个东西

先来逐步求解上式中第一项对模型参数中权重W,偏置A和B的偏导:

————————————————————————————————————————————————————————————————————

(红色部分等于1,这一部分自己好好想一下,文末举了个小例子)

————————————————————————————————————————————————————————————————————


————————————————————————————————————————————————————————————————————


————————————————————————————————————————————————————————————————————

细心的话会发现这个P(hj=1|v)没有求出来,接下来我们求这一项

这里我们将能量函数拆开成两个式子


那么可以开始求P(hj=1|v)了


随后也就得到了最终的激活概率


⑦第⑤步的第一项我们计算完毕,再来计算一下第二项

(这里面第二个∑ 已经在上面计算出来了)

⑧至此,我们基本求出了第⑤步中需要计算的所有参数,但是有一个没求出来,写出来以后就会发现


我们可以发现上面有一项∑[P(v)*....]是没有计算出来的,这个时候,我们就必须使用某些采样方法对此项进行估计。仔细观察, 发现他的形式是(概率*概率),如果你看过蒙特卡洛方法,就会发现蒙特卡洛是(函数*概率), 意思是这个函数再这个概率分布下的均值,因而可以采用蒙特卡洛方法来解决这一项无法求解问题. 大牛Hinton提出了对比散度算法,也就是把可见层输入数据当做起点,经过K次吉布斯采样的样本当做终点,近似计算上面三个式子,然后就变成了


—————————————————————————————————————————————————————————————————————————————

好了,做一下总结,其实这里面都是围绕着最终要解决的问题,也就是第⑤步提出的那个对模型参数求梯度的式子,针对第一项和第二项,我们分别求解,利用的知识点比较多,我第一次看的时候也不懂,但是看一次代码,然后再回头看这个也就差不多懂一部分了。

最后说一下哈,文章参考的是这篇文章:http://blog.csdn.net/itplus/article/details/19408143   有兴趣可以去详细看看的。

有不对的地方,谢谢大家指正~~~~

更新日志2017-8-30

关于⑥中红字部分的概率和为什么等于1,其实我也不太好说明我的想法对不对,我当时以一个小例子想的:

1.比如有编号为1-6的六个球,那么随便取出来一个它的概率和为1

2.因为每次取球相互独立(类比隐神经元相互独立),所以可以把球拆成两部分1-4一组,5-6一组,每组自己的概率和为1

3.然后我们用加和的方法写出从1→2的数学表达式变换方法


如果此变换没错(问了几个同学,表示应该没问题,特别强调独立),那么很容易发现


这样,如果我们把RBM证明中的h当做1-6的球空间,hj为1-4的球空间,h-j为5-6的球空间,然后替换上式就得到了


理解了这个,就知道为什么上面那个条件概率和为1了。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

受限玻尔兹曼机RBM实现及能量值思考——matlab实现

网址:http://www.cs.toronto.edu/~hinton/MatlabForSciencePaper.html 这个代码主要是在mnist上做手写数字识别的代码,贴出来的目的主要是想研究一下在迭代过程中能量的变化情况。 1. 标准能量函数 标准的能量函数的表达式为: 那么就将这个…

Cheat_Sheet ---Keras、Matlab、Matplotlib、Numpy、Pandas、Scikit-Learn、SciPy

Cheat_Sheet ---KerasCheat_Sheet ---MatlabCheat_Sheet ---MatplotlibCheat_Sheet ---NumpyCheat_Sheet ---PandasCheat_Sheet ---Scikit-LearnCheat_Sheet ---SciPy参考文献 http://ddl.escience.cn/f/IDkq#path%2F8215264

WPF中DataContext的绑定技巧-粉丝专栏

(关注博主后,在“粉丝专栏”,可免费阅读此文) 先看效果: 上面的绑定值都是我们自定义的属性,有了以上的提示,那么我们可以轻松绑定字段,再也不用担心错误了。附带源码。 …

matlab实现unix时间戳到标准时间的转换

【注】给定时间精确到小时的情况下的转换 函数: function [ date ] ConvertDate( x ) %将unix时间戳转换为标准时间 % date datestr(1426406400/86400 datenum(1970,1,1)); date datestr((x-3600*248*3600)/86400 70*36519datenum(1900,1,0)); end结果&#…

failed to initialize nvml driver/library version mismatch ubuntu

英伟达驱动版本是384.130显示的NVRM version: NVIDIA UNIX x86_64 Kernel Module是:384.130。 若是旧的版本就会出现如下问题。 这个问题出现的原因是kernel mod 的 Nvidia driver 的版本没有更新,一般情况下,重启机器就能够解决,…

关于机器学习你必须要了解的事情

原文:Pedro Domingos, A Few Useful Things to Know about Machine Learning 1. 泛化效果是机器学习的唯一目标 训练集上的效果无关紧要,泛化效果是机器学习的唯一目标。稍极端的例子,如果训练集准确率为0%,但随机取的…

matlab标准化和反标准化——zscore

先说一下一个小疑问: 目前所了解的归一化概念有点模棱两可,目前可能有三种理解 假设矩阵A大小n*m,n代表样本数,m代表每一个样本的维度 ①单独对每一列(全部…

Sublime优美设置(待续)

快捷键熟悉练习请查看 http://www.cnblogs.com/figure9/p/sublime-text-complete-guide.html 1.基础用户设置 工具栏 – Preferences – Settings – User {“theme”: “Soda Dark.sublime-theme”,“tab_size”: 4,“font_size”: 10.0,“font_face”: “Microsoft YaHei…

人工神经网络——笔记摘抄1

一、人工神经网络简介 人工神经网络(Artificial Neural Networks,ANN)基本组成成分是:输入(感知)器、加权求和(信息汇聚)、传递(信息传输)器、输出(响应)器组成。 决定神经网络信息处理性能的三大要素:激励函数、学习算法、拓扑结构。 二、人…

Recall(召回率) Precision(准确率) F-Measure E值 sensitivity(灵敏性) specificity(特异性)漏诊率 误诊率 ROC AUC

Berkeley Computer Vision page Performance Evaluation 机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率 True Positives, TP:预测为正样本,实际也为正样本的特征数 False Positives,FP:预测为正样本,实际为负…

人工神经网络——笔记摘抄2

一、模式识别系统的主要目标 模式识别系统的主要目标是在特征空间和解释空间之间找个一种映射关系。 二、模式识别系统的构成 ①数据获取:将对象属性转换为计算机可以接受的数值或者符号串集合。数值或者符号串组成的空间称为模式空间。 ②预处理:为…

防止过拟合以及解决过拟合

本文转载:http://blog.sina.com.cn/s/blog_53c47a2f0102vjyf.html 过拟合:为了得到一致假设而使假设变得过度复杂称为过拟合。“一个过拟合的模型试图连误差(噪音)都去解释(而实际上噪音又是不需要解释的)&…

关于协方差矩阵需要注意的一个事项

协方差矩阵是衡量样本的属性(即维度)之间的关系,而不是样本与样本之间的关系。 比如有100个样本,每个样本10个属性,那么计算得到的协方差矩阵一定是10*10的,而不是100*100的,这个一定要注意。 协方差矩阵主要是为了分…

多GPU运行Deep Learning 和 并行Deep Learning(待续)

本文论述了 Deep learning运行所需的硬件配置,多GPU运行Deep Learning,设置Deep Learning的数据并行和 模型并行。详情请参考下文 http://timdettmers.com/category/hardware/ http://blog.csdn.net/jiandanjinxin/article/details/74938468

牛人主页(主页有很多论文代码)【真的好强大】

转自:http://blog.sina.com.cn/s/blog_6833a4df01012bcf.html 牛人主页(主页有很多论文代码) Serge Belongie at UC San DiegoAntonio Torralba at MITAlexei Ffros at CMUCe Liu at Microsoft Research New EnglandVittorio Ferrari at Univ…

Linux的常用经典命令(持续更新)

找工作笔试面试那些事儿(16)—linux相关知识点(1) 找工作笔试面试那些事儿(17)—linux测试题 vim编辑器操作命令大全-绝对全 - CSDN博客 Linux进阶资源 Command line one-liners the-art-of-command-line Linux工具快速教程 快乐的 Linux 命令行 Linux Tutorial UNIX Tutoria…

[C语言]为什么要有include?——从Hello World说起

本文转自:http://mp.weixin.qq.com/s?__bizMzAwOTgzNzQyMw&mid433613487&idx1&sn803995d612faadce6e4418789a6a65a8&scene2&srcid0312ElIT9UmR0ZygPGHxDxs2&fromtimeline&isappinstalled0#wechat_redirect 大家都会写的Hello World程序…

【caffe-Windows】cifar实例编译之model的使用

本文讲解如何对网上下载的一个图片利用训练好的cifar模型进行分类 第一步 上一篇文章训练好以后会得到两个文件 从网上查阅资料解释来看,第一个caffemodel是训练完毕得到的模型参数文件,第二个solverstate是训练中断以后,可以用此文件从中断…

Python 命令汇总

python 库windows安装 兵种:python程序员。 等级:二级。 攻击:较高。 防御:普通。 价格:低。 天赋:胶水,我方有c程序员时,速度可达到c程序员的80%。 天赋:成熟&…

spectral hashing--谱哈希源码解析

论文里面看到了谱哈希用来找子集的用处,不管有没有用,先转再说 原文地址:http://blog.sina.com.cn/s/blog_67914f290101d2xp.html 最近看了有关谱哈希的一些东西,记录一下备忘。理解十分粗浅,敬请各位大牛指导。 一、…