深度学习 --- 玻尔兹曼分布详解

版权声明:转载请注明出处: https://blog.csdn.net/weixin_42398658/article/details/84060223

上一节我们从Hopfield神经网络存在伪吸引子的问题出发,为了解决伪吸引子带来的问题,详细介绍了模拟退火算法,本节也是基础性的讲解,为了解决伪吸引子还需要引入另外一个重要概念即:玻尔兹曼分布。本篇将详解玻尔兹曼分布,但是还是先说说为什么要引入玻尔兹曼分布,因为为了解决Hopfield神经网络的伪吸引子的问题,引入模拟退火算法和玻尔兹曼分布,下一节将在Hopfield神经网络中加入这两个算法,组合成一个新的神经网络即随机神经网络或者玻尔兹曼机。因为本人喜欢刨根问底,所以会深入挖掘引入的知识,这样下节讲起来就会很容易,也会更容易理解,不会觉的太突兀,另外一点就是希望能深入理解和掌握玻尔兹曼机,因为后面还会引入受限玻尔兹曼机、深度信念网络、CNN、RNN。因此我们正在慢慢的靠近深度学习的核心区域,前面就说过,所有的算法都不是拍着脑袋想出来的,他是根据出现的问题,慢慢研究出算法的,我们要想深入理解深度学习,沿着他的发展历程学习将更容易,更具有体系化,以后遇到问题也知道如何解决,您说呢?好,废话不多说,下面就开始主题:玻尔兹曼分布。

玻尔兹曼分布:

物理学(特别是统计力学)中,麦克斯韦 - 玻尔兹曼分布是以詹姆斯·克拉克斯·马克斯韦尔路德维希·波兹曼命名的特定概率分布

这是第一次定义,并且用于描述颗粒速度理想化的气体,其中所述颗粒的固定容器内自由移动,而不会彼此互动,除了非常简短的碰撞,其中它们与彼此或与它们的热环境交换能量和动量。在该上下文中,术语“颗粒”仅指气态颗粒(原子分子),并且假设颗粒系统已达到热力学平衡[1] 这种粒子的能量遵循所谓的 麦克斯韦 - 玻尔兹曼统计通过将粒子能量与动能等同来推导出速度的统计分布。(此来源维基百科,详情请点击了解),在这里我不会讲解的那么深,从容易接受的角度出发,因此会有点不严谨,但是对于我们理解已经够用了,想深入理解的请参考维基百科。

在一个封闭的空间中,温度为T,里面只有两种能级\large \varepsilon _{0},\varepsilon _1,粒子的总数为N,且两种能级对应的个数分别为:\large n_0,n_1,所以能级的粒子总和为\large n_0+n_1 = N。那么N个粒子的不同状态组合数记为\large w,且\large w为:

                                            \large w =C_{N}^{n_0} = \frac{N!}{n_0!n_1!}

通过组合数计算一下熵\large S,熵是来源热力学的概念,熵是衡量物质的混乱程度的量,通常和物质的状态有关,我们知道当物质的能量越高时混乱程度也越高,能量越低时混乱程度也越低,这和我们的常识认知是一致的(这里希望大家能彻底搞懂什么是熵,这个概念很重要,熵在自然语言处理中会大量的使用,大家先看看维基百科,然后在自己学习一下,熵我打算在自然语言处理中在详细讲解),下面给出熵的定义:

                                              \large S = K_Blogw

     其中\large K_B是玻尔兹曼常数,取log就是熵的来源。

\large w带进上式的:

                           \large S = K_Blogw = K_B[log(N!) - log(n_0!)-log(n_1!)]                                \large \left ( 1 \right )

现在我给空间增加少了的能量\large \varepsilon,此时封闭的空间的低能级的粒子\large \varepsilon _0就会越变到高能级\large \varepsilon _1,也就是说会有少量的\large n_0变为\large n_1即:

\large n_0\rightarrow n_0-\alpha ,n_1\rightarrow n_1+\alpha,其中\large \alpha是变化的粒子数,由此我们从新计算熵为:

                           \large S' = K_Blogw = K_B[log(N!) - log((n_0-\alpha )!)-log((n_1+\alpha )!)]       \large \left ( 2 \right )

\large \left ( 2 \right ) - \left ( 1 \right )得到:

                          \large \Delta S = K_Blog\left ( \frac{n_0(n_0-1)....(n_0-\alpha ))}{(n_1+\alpha )....(n_1+1)} \right )                                                          \large \left ( 3 \right )

我们知道上式的分子和分母项是一样多的,同时在封闭的空间中 \large n_0,n_1是足够大的,\large \alpha是很小的,因此可以把\large \left ( 3 \right )化简为:

                          \large \Delta S = K_Blog(\frac{n_0}{n_1})                                                                                                            \large \left ( 4 \right )

然而从热力学角度,熵的变化量和温度以及加入的能量\large \varepsilon有关(参考维基百科),因此有如下的公式;

                         \large \Delta S = \frac{\varepsilon }{T}                                                                                                                                \large \left ( 5 \right )

联立\large \left ( 4 \right )和 \large \left ( 5 \right )两式的到:

                         \large K_Blog(\frac{n_0}{n_1}) = \frac{\varepsilon }{T}

化简得到为:

                          \large \dpi{120} \large \frac{n_0}{n_1} = e^{}\frac{\varepsilon }{K_BT}                                                                                                                         \large \left ( 6 \right )

从上式我们看到,不同能级的比值和能量\large \varepsilon、温度T、玻尔兹曼常数都有关系,且上式等式右边的指数和我们的退火算法很像,同时上式就称为玻尔兹曼分布。

好,从上面我们推倒了玻尔兹曼分布的来历。他是来源于热力学,大家通过我讲的简单型的可以完全理解了,掌握这些东西就够用了,如果对此感兴趣的同学可以看看完整版的玻尔兹曼分布,那里比这里稍微复杂一点,但是有这里的基础,看完整版的就会很容易了,好了,玻尔兹曼分布到此结束,下一节我们将模拟退火算法、玻尔兹曼分布和Hopfield神经网络结合起来,构建一个新的神经网络即随机神经网络或者说是玻尔兹曼机。

猜你喜欢

转载自blog.csdn.net/weixin_42398658/article/details/84060223