数学狂想曲(四)——玻尔兹曼分布

http://antkillerfarm.github.io

玻尔兹曼分布

Boltzmann distribution(又叫Gibbs distribution)本来是脱胎于热力学和统计力学的分布,但在量子力学和机器学习领域也得到了广泛的应用。

注:Ludwig Eduard Boltzmann,1844~1906,奥地利物理学家,统计力学的奠基人之一。维也纳大学博士,先后执教于格拉茨大学、维也纳大学、慕尼黑大学和莱比锡大学。英国皇家学会会员。

信息熵

设概率实验X有n个可能的独立结局,即n个随机事件 A1,,An ,每个随机事件的概率为 p1,,pn 。则信息熵的定义为:

Hn=ki=1npilnpi(1)

其中k为一正常数。可以看出 Hn 实际上是 pi 的泛函。

以下我们主要从信息熵的角度出发研究玻尔兹曼分布。但不能忽视的是,玻尔兹曼分布最早脱胎于热力学,而信息熵与热力学统计物理中的熵,虽然数学形式一致,但本质是不同的。两者相差一个玻尔兹曼常数。参见:

https://www.zhihu.com/question/20992022/answer/50458123

信息熵与热力学统计物理中的熵有什么区别和联系?

注:信息熵的定义有多种,公式1给出的是Shannon熵的定义,除此之外还有von Neumann熵、Renyi熵等。以下如无特殊指出,信息熵均指Shannon熵。

最大信息熵原理

事实上,有些随机事件其概率往往不可能直接计算,平常我们对具体问题作出处理时,掌握的仅仅是一些与随机事件有关的随机变量的统计平均值,以及某些其他制约条件。而当一个随机变量的平均值给定时,还可以有多种概率分布与之相容。现在的问题是如何从这些相容的概率分布中挑选出“最可几”的分布来作为实际上的分布。显然,要做到这点,必须有个挑选标准,最大信息熵原理就可作为这种挑选标准。

注:最可几分布(Most Probable Distribution),又称最概然分布。它表征在特定系统的特定状态下,出现概率最大的分布。从它的定义可以看出,它实际上并不是某种具体的分布,而更像是符合某一特定目标的分布。
比如,麦克斯韦-玻尔兹曼分布、费米-狄拉克分布和玻色-爱因斯坦分布,是热力学常见的三种最可几分布。但它们所处的系统,以及系统的状态各不相同。

最大熵原理是1957年由E.T.Jaynes提出的,其主要思想是,在只掌握关于未知分布的部分知识时,应该选取符合这些知识但熵值最大的概率分布。其实质就是,在已知部分知识的前提下,关于未知分布最合理的推断就是符合已知知识最不确定或最随机的推断,这是我们可以作出的唯一不偏不倚的选择,任何其它的选择都意味着我们增加了其它的约束和假设,这些约束和假设根据我们掌握的信息无法作出。

注:Edwin Thompson Jaynes,1922~1998,美国统计学家。普林斯顿大学博士,华盛顿大学教授。

假定系统涉及的M个随机变量 f(j)i(j=1,,M) 的期望值 Fj 已知,即:

Fj=i=1nf(j)ipi(2)

其中 f(j)i 表示第j个随机变量在状态i中的取值。 pi 满足归一化条件:

i=1npi=1(3)

将公式2和公式3所述的两个约束,代入公式1,可得如下Lagrange乘子:

J(pi)=Hn/kα(i=1npi1)j=1Mβj(i=1nf(j)ipiFj)=i=1npilnpiαi=1npi+αj=1Mi=1nβjf(j)ipi+j=1MβjFj

pi 求导,可得:

J(pi)pi=lnpi1αj=1Mβjf(j)i

令上式等于0,可得:

pi=exp(1αj=1Mβjf(j)i)(4)

公式4就是一般情况下的最大信息熵公式。

相关名词辨析

这里有三个非常容易混淆的名词需要解释。

Maxwell–Boltzmann statistics是研究热平衡状态下无相互作用的物体粒子的能量均值分布的统计学分支。

Boltzmann distribution表征一个包含各种能量状态的系统中粒子的概率分布。

Maxwell-Boltzmann distribution表征粒子的能级和速度的分布。

简而言之,Maxwell–Boltzmann statistics是基于特定假设的统计学分支。而后两者则是具体情况下的概率分布。

与Maxwell–Boltzmann statistics相对应的概念是Bose–Einstein statistics和Fermi–Dirac statistics。后两者分别对应玻色子和费米子的热力学统计。

参考:

https://en.wikipedia.org/wiki/Maxwell–Boltzmann_statistics

https://en.wikipedia.org/wiki/Boltzmann_distribution

https://en.wikipedia.org/wiki/Maxwell–Boltzmann_distribution

玻尔兹曼分布的推导

Maxwell–Boltzmann statistics研究的对象是一个由N(N很大)个微观粒子组成的近独立体系,体系的总能量E等于各个粒子能量之和。通常微观粒子的状态和能量是量子化的(即所谓能级),每一能级上又具有若干个量子态。为此,可引入下列符号:

名称符号
单粒子状态编号
1,,n
能级
E1,,En
量子态数
g1,,gn

m=g1++gn ps 为任何一个确定的微观粒子处于第s个量子态上的概率。因此,相应的信息熵和概率分布的归一化条件为:

Hm=ks=1mpslnps(5)

s=1mps=1(6)

由于N是个大数,可以认为第s个量子态上的微观粒子数为 Ns=Nps ,体系的总能量为:

E=s=1mEsNs=s=1mEsNps(7)

和公式4的推导过程类似,Maxwell–Boltzmann statistics条件下的信息熵最大值的概率分布为:

ps=exp(1αβEs)(8)

ps 的归一化条件可得:

ps=1ZeβEs(9)

其中:

Z=s=1meβEs

于是,当体系处于热平衡状态时,第s个量子态上的粒子数可表为:

Ns=Nps=NZeβEs(10)

考虑到同一单粒子能级 Ei 上的 gi 个量子态均具有相同的能量 Ei ,因此:

Ni=Nsgi(11)

由气体分子的速度分布可得:

β=1kT(12)

其中,k是Boltzmann常数,T是热力学温度。

将公式11、12代入公式10可得:

Ni=NgieEi/kTni=1gieEi/kT

上式就是Boltzmann distribution的PDF。

参考

http://wenku.baidu.com/view/ccb7956db84ae45c3b358ca7.html

http://www.cs.toronto.edu/~fritz/absps/cogscibm.pdf

http://www.cs.toronto.edu/~hinton/absps/dbm.pdf

http://www.cs.toronto.edu/~hinton/absps/guideTR.pdf

http://www.cnblogs.com/tianchi/archive/2013/03/14/2959716.html

  • 8
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
玻尔兹曼分布是一种统计分布,用于描述粒子在热力学平衡下的能量分布。在机器学习中,玻尔兹曼分布可以应用于受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)模型中。 受限玻尔兹曼机是一种生成式的机器学习模型,能够学习样本的概率分布。它是玻尔兹曼机的一个简化版本,因为玻尔兹曼机在实际应用中很复杂,所以不常被使用。受限玻尔兹曼机通过引入约束,使模型变得更加简单。它可以学习样本的概率分布,并根据学到的概率分布生成符合该分布的样本。例如,可以使用受限玻尔兹曼机学习人脸图片的概率分布,然后生成一张新的、在现实世界中不存在的人脸。 在Python中,可以使用scipy库的stats模块来进行玻尔兹曼分布的采样实验。具体操作可以参考以下代码: ```python from scipy.stats import bernoulli import numpy as np import matplotlib.pyplot as plt # 生成服从玻尔兹曼分布的随机数 p = 0.5 # 可根据需要设定概率参数 r = bernoulli.rvs(p, size=10000) # 统计随机数的特征 sample_mean = np.mean(r) sample_variance = np.var(r) # 绘制直方图 plt.hist(r, bins='auto', density=True) plt.title("Histogram with 'auto' bins") plt.grid() plt.show() # 输出统计特征 print('sample means of r = {0}'.format(sample_mean)) print('sample variance of r = {0}'.format(sample_variance)) ``` 以上代码首先导入了必要的库,包括scipy.stats的bernoulli模块用于生成服从玻尔兹曼分布的随机数。然后通过调用`bernoulli.rvs()`函数生成10000个服从指定概率分布的随机数。接下来,使用`np.mean()`和`np.var()`函数计算随机数的均值和方差,并使用`plt.hist()`函数绘制随机数的直方图。最后,使用`print()`函数输出统计特征。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [受限玻尔兹曼机的python参考实现](https://blog.csdn.net/u013749051/article/details/120670133)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [基于python/scipy学习概率统计(2):伯努利分布(Bernoulli Distribution)](https://blog.csdn.net/chenxy_bwave/article/details/120847774)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值