玻尔兹曼

限制玻尔兹曼机(Restricted Boltzmann Machine)RBM

浪子不回头ぞ 提交于 2020-03-31 06:30:48
假设有一个二部图,每一层的节点之间没有连接,一层是可视层,即输入数据是(v),一层是隐藏层(h),如果假设所有的节点都是随机二值变量节点(只能取0或者1值)同时假设全概率分布满足Boltzmann 分布,我们称这个模型是Restricted BoltzmannMachine (RBM)。 首先,这个模型因为是 二部图 , 所以在已知v的情况下,所有的隐藏节点之间是条件独立的(因为节点之间不存在连接) ,即p(h|v)=p(h 1 |v)…p(h n |v)。 同理,在已知隐藏层h的情况下,所有的可视节点都是条件独立的。 同时又由于所有的v和h满足 Boltzmann 分布 ,因此,当输入v的时候,通过p(h|v) 可以得到隐藏层h,而得到隐藏层h之后,通过p(v|h)又能得到可视层,通过调整参数, 我们就是要使得从隐藏层得到的可视层v1与原来的可视层v如果一样,那么得到的隐藏层就是可视层另外一种 表达 ,因此 隐藏层可以作为可视层输入数据的特征 ,所以它就是一种Deep Learning方法。 如何训练呢,也就是可视层节点和隐节点间的权值怎么确定呢?我们需要做一些数学分析。也就是模型了。 联合组态(jiont configuration)的能量可以表示为: 而 某个组态的联合概率分布 可以通过Boltzmann 分布(和这个组态的能量)来确定: partition function

连续受限玻尔兹曼机

断了今生、忘了曾经 提交于 2020-03-03 19:19:25
连续 RBM 连续 RBM 是受限玻尔兹曼机的一种形式,它通过不同类型的对比散度采样接受连续的输入(也就是比整数切割得更细的数字)。这允许 CRBM 处理图像像素或字数向量这类被归一化到 0 到 1 之间的小数的向量。 应该注意,深度学习网络的每一层都需要四个元素:输入、系数、偏置项以及变换(激活算法)。 输入是数值数据,是一个来自于前面层(或者原始数据)的向量。系数是通过每个节点层的特征的权重。偏置项确保部分节点无论如何都能够被激活。变换是一种额外的算法,它在数据通过每一层以后以一种使梯度(梯度是网络必须学习的)更容易被计算的方式压缩数据。 这些额外算法和它们的组合可以逐层变化。 一种有效的连续 RBM 在可见(或者输入)层上使用高斯变换,在隐藏层上使用整流线性单元(ReLU)变换。这在面部重建中特别有用。对于处理二进制数据的 RBM 而言,只需要进行二进制转换即可。 高斯变换在 RBM 的隐藏层上的表现不好。相反,使用 ReLU 变换能够表示比二进制变换更多的特征,我们在深度置信网络中使用了它。 REF https://baijiahao.baidu.com/s?id=1599798281463567369&wfr=spider&for=pc https://uwaterloo.ca/data-analytics/sites/ca.data-analytics/files

受限玻尔兹曼机 (Restricted Boltzmann Machines, RBM)

倖福魔咒の 提交于 2020-02-24 10:20:16
==================================================================== 结构 标准的受限玻尔兹曼机由二值( 布尔 / 伯努利 )隐层和可见层单元组成。权重矩阵 W=(w ij )中的每个元素指定了隐层单元 h j 和可见层单元 v i 之间边的权重。此外对于每个可见层单元 v i 有偏置 a i ,对每个隐层单元 h j 有偏置 b j 以及在这些定义下,一种受限玻尔兹曼机配置(即给定每个单元取值)的“能量” (v,h) 被定义为 或者用矩阵的形式表示如下: 这一能量函数的形式与 霍普菲尔德神经网络 相似。在一般的玻尔兹曼机中,隐层和可见层之间的联合概率分布由能量函数给出: 其中, Z 为 配分函数 ,定义为在节点的所有可能取值下 的和(亦即使得概率分布和为1的 归一化常数 )。类似地,可见层取值的 边缘分布 可通过对所有隐层配置求和得到: 由于RBM为一个二分图,层内没有边相连,因而隐层是否激活在给定可见层节点取值的情况下是条件独立的。类似地,可见层节点的激活状态在给定隐层取值的情况下也条件独立。亦即,对 m 个可见层节点和 n 个隐层节点,可见层的配置v对于隐层配置h的 条件概率 如下: 类似地,h对于v的条件概率为 其中,单个节点的激活概率为 和 其中 代表 逻辑函数 。 训练算法

格子玻尔兹曼机(Lattice Boltzmann Method)系列1:LBM用于流体模拟的基本原理

此生再无相见时 提交于 2020-02-23 01:18:39
1.从粒子碰撞模型到玻尔兹曼方程 首先引入一个分布函数f: LBM在推理过程中的思想实际上跟分子动力学模拟(MD)或是SPH算法很类似,只是推导的过程会相对地十分繁琐,且方向不同导致模型在尺度上的适用性也相差十分大。这些模型中的粒子都规定了一个速度空间和位置空间,以及相应的时间。区别在于,SPH或是MD中,规定的粒子都是可以移动的。而格子玻尔兹曼算法中,粒子被束缚在相应的网格点上,粒子的移动依赖分布函数、密度等参数之间的信息传递来实现。 上述的公式中的右项,可以被划分为两部分:分布函数的变化一部分来源于外力场的影响(下标为d的项),另一部分则来源于粒子碰撞(下标为c的项)。 如果有力学系背景的话,在《弹性力学》课程中,第一课就会提到一个十分基础的定理:刘维尔定理(Liouville’s theorem): 刘维尔定理是《弹性力学》的几个基础定理之一,无法从任何一个已知定理中推理得到,但是也不具有“公理”的显然性和一般性。 接下来再看一个粒子的碰撞模型: 在这个粒子碰撞的模型中,可以总结出一个碰撞的公式,这个公式来源于牛顿的力学碰撞体系。因此我们也可以很容易地发现为什么格子玻尔兹曼机不会适用于纳米级的体系。无论是SPH算法还是MD,在进入纳米级时,都会考虑原子之间的作用势函数,但是LBM并不会将其纳入考量。 以上的两个公式描述了分布函数f控制下,速度空间

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

爱⌒轻易说出口 提交于 2020-02-15 15:23:36
2016-07-20 11:21:33 1受限玻尔兹曼机 梯度下降法 (以及相关的L-BFGS算法等)在使用随机初始化权重的深度网络上效果不好的技术原因是:梯度会变得非常小。具体而言,当使用 反向传播方法 计算导数的时候,随着网络的深度的增加,反向传播的梯度(从输出层到网络的最初几层)的幅度值会急剧地减小。结果就造成了整体的损失函数相对于最初几层的权重的导数非常小。这样,当使用梯度下降法的时候,最初几层的权重变化非常缓慢,以至于它们不能够从样本中进行有效的学习。这种问题通常被称为“梯度的弥散”[4]。 与梯度弥散问题紧密相关的问题是:当神经网络中的最后几层含有足够数量神经元的时候,可能单独这几层就足以对有标签数据进行建模,而不用最初几层的帮助。因此,对所有层都使用随机初始化的方法训练得到的整个网络的性能将会与训练得到的浅层网络(仅由深度网络的最后几层组成的浅层网络)的性能相似。 梯度弥散一直是困扰着深度神经网络的发展,那么如何解决梯度弥散问题呢?多伦多大学的Geoff Hinton提出了设想:受限玻尔兹曼机(Restricted Boltzmann Machines, RBM)[1],即一类具有两层结构的、对称链接无自反馈的随机神经网络模型(一种特殊的马尔科夫随机场)。 如图1所示,一个RBM包含一个由随机的隐单元构成的 隐藏层 (一般是伯努利分布)和一个由随机的可见(观测