上一节我们从Hopfield神经网络存在伪吸引子的问题出发,为了解决伪吸引子带来的问题,详细介绍了模拟退火算法,本节也是基础性的讲解,为了解决伪吸引子还需要引入另外一个重要概念即:玻尔兹曼分布。本篇将详解玻尔兹曼分布,但是还是先说说为什么要引入玻尔兹曼分布,因为为了解决Hopfield神经网络的伪吸引子的问题,引入模拟退火算法和玻尔兹曼分布,下一节将在Hopfield神经网络中加入这两个算法,组合成一个新的神经网络即随机神经网络或者玻尔兹曼机。因为本人喜欢刨根问底,所以会深入挖掘引入的知识,这样下节讲起来就会很容易,也会更容易理解,不会觉的太突兀,另外一点就是希望能深入理解和掌握玻尔兹曼机,因为后面还会引入受限玻尔兹曼机、深度信念网络、CNN、RNN。因此我们正在慢慢的靠近深度学习的核心区域,前面就说过,所有的算法都不是拍着脑袋想出来的,他是根据出现的问题,慢慢研究出算法的,我们要想深入理解深度学习,沿着他的发展历程学习将更容易,更具有体系化,以后遇到问题也知道如何解决,您说呢?好,废话不多说,下面就开始主题:玻尔兹曼分布。
玻尔兹曼分布:
在物理学(特别是统计力学)中,麦克斯韦 - 玻尔兹曼分布是以詹姆斯·克拉克斯·马克斯韦尔和路德维希·波兹曼命名的特定概率分布。
这是第一次定义,并且用于描述颗粒速度在理想化的气体,其中所述颗粒的固定容器内自由移动,而不会彼此互动,除了非常简短的碰撞,其中它们与彼此或与它们的热环境交换能量和动量。在该上下文中,术语“颗粒”仅指气态颗粒(原子或分子),并且假设颗粒系统已达到热力学平衡。[1] 这种粒子的能量遵循所谓的 麦克斯韦 - 玻尔兹曼统计通过将粒子能量与动能等同来推导出速度的统计分布。(此来源维基百科,详情请点击了解),在这里我不会讲解的那么深,从容易接受的角度出发,因此会有点不严谨,但是对于我们理解已经够用了,想深入理解的请参考维基百科。
在一个封闭的空间中,温度为T,里面只有两种能级,粒子的总数为N,且两种能级对应的个数分别为:,所以能级的粒子总和为。那么N个粒子的不同状态组合数记为,且为:
通过组合数计算一下熵,熵是来源热力学的概念,熵是衡量物质的混乱程度的量,通常和物质的状态有关,我们知道当物质的能量越高时混乱程度也越高,能量越低时混乱程度也越低,这和我们的常识认知是一致的(这里希望大家能彻底搞懂什么是熵,这个概念很重要,熵在自然语言处理中会大量的使用,大家先看看维基百科,然后在自己学习一下,熵我打算在自然语言处理中在详细讲解),下面给出熵的定义:
其中是玻尔兹曼常数,取log就是熵的来源。
把带进上式的:
现在我给空间增加少了的能量,此时封闭的空间的低能级的粒子就会越变到高能级,也就是说会有少量的变为即:
,其中是变化的粒子数,由此我们从新计算熵为:
得到:
我们知道上式的分子和分母项是一样多的,同时在封闭的空间中 是足够大的,是很小的,因此可以把化简为:
然而从热力学角度,熵的变化量和温度以及加入的能量有关(参考维基百科),因此有如下的公式;
联立和 两式的到:
化简得到为:
从上式我们看到,不同能级的比值和能量、温度T、玻尔兹曼常数都有关系,且上式等式右边的指数和我们的退火算法很像,同时上式就称为玻尔兹曼分布。
好,从上面我们推倒了玻尔兹曼分布的来历。他是来源于热力学,大家通过我讲的简单型的可以完全理解了,掌握这些东西就够用了,如果对此感兴趣的同学可以看看完整版的玻尔兹曼分布,那里比这里稍微复杂一点,但是有这里的基础,看完整版的就会很容易了,好了,玻尔兹曼分布到此结束,下一节我们将模拟退火算法、玻尔兹曼分布和Hopfield神经网络结合起来,构建一个新的神经网络即随机神经网络或者说是玻尔兹曼机。