Mora, T., & Bialek, W. (2011). Are biological systems poised at criticality? Journal of Statistical Physics, 144(2), 268-302.
论文笔记的第二部分
上回说到
生物中的临界现象
生物系统处于定态 stationary state,有大量状态参数。
系统一方面不关心状态的具体取值,
另一方面需要不同取值能给出不同的功能(函数值)。
这就要求模型存在多个不同的相 (phase),相与相之间的边界就是临界面 (critical surface)。
文章标题的含义就是作者的假说:在可以于状态参数空间任意位置取值的情况下,生物系统的取值往往不平凡地位于临界点(一维)/临界面(多维)附近。
只是一个关于客观现象的特称命题,不是全称命题,也不解释为什么。
Knowledge based 基于知识的……
系统的状态 σ ⃗ \vec\sigma σ 的取值的概率符合波尔兹曼分布:
P ( σ ⃗ ) = 1 Z e − E ( σ ⃗ ) / k B T P(\vec\sigma)=\frac{1}{Z}e^{-E(\vec\sigma)/k_BT} P ( σ ) = Z 1 e − E ( σ ) / k B T
其中 Z 是配分函数 (partition function),E 是能量,k B k_B k B 是波尔兹曼常数,T 是温度。
将无关的量纲都压缩之后:
E ( σ ⃗ ) = − log P ( σ ⃗ ) E(\vec\sigma)=-\log{P(\vec\sigma)} E ( σ ) = − log P ( σ )
等号右边可以从实验数据统计出来,左边的能量就可以喂给各种物理模型。
最大熵模型 (maximum entropy models)
从实验数据统计说起来容易,但是实验对象的自由度越多,覆盖参数空间所需要的观测数据量越大,需求增长是指数级的,这种困难叫做“维度的诅咒”(curse of dimensionality )。
解决方法?方法就是不解决,承认自己掌握的信息是有限的,有几分证据说几分话。用数学的语言把这种谨慎定量地陈述出来,就是最大熵原则。
因为——
信息即负熵
之前《比较两个概率分布/两条信息》一文中提到过,解答了人心中的某个疑问的,可以用逻辑命题表达的信息,在得到确切的回答之前,有众多其他命题也有可能是问题的答案。
所有这些可能成为答案的命题一起,构成一个随机变量空间。正确的答案是这个空间中的一个概率分布函数。(决定论下答案的分布是一个(可能有很多维度的)狄拉克 Delta 函数。)
本例中,
系统的状态 σ ⃗ \vec\sigma σ 的所有可能取值构成一个随机变量空间,
系统实际取值的概率分布记作 P r ( σ ⃗ ) P_r(\vec\sigma) P r ( σ ) ,统计自实验数据,r 表示 reality。
科学的目标是让建模的的分布 P m ( σ ⃗ ) P_m(\vec\sigma) P m ( σ ) 拟合 P r ( σ ⃗ ) P_r(\vec\sigma) P r ( σ ) ,m 表示 model。
最大熵原则
信息熵定量地描述了一个上述概率分布所含的信息量。
逆练“谁主张谁举证”的原则,既然我们能举证的实验数据有限,那么就需要让主张的信息量尽可能小,信息熵尽可能大。也就是——
在保证对于每一个可观测量 O i \mathcal O_i O i ,模型能给出和真值相同的期望值的约束下
< O i ( σ ⃗ ) > ≡ ∑ σ ⃗ O i ( σ ⃗ ) P ( σ ⃗ ) = ∑ σ ⃗ O i ( σ ⃗ ) P r ( σ ⃗ ) ≡ < O i ( σ ⃗ ) > r \begin{array}{rll}
\left<\mathcal O_i(\vec\sigma)\right> \equiv & \sum_{\vec\sigma}\mathcal O_i(\vec\sigma)P(\vec\sigma) &\\
=&\sum_{\vec\sigma}\mathcal O_i(\vec\sigma)P_r(\vec\sigma) & \equiv \left<\mathcal O_i(\vec\sigma)\right>_r
\end{array} ⟨ O i ( σ ) ⟩ ≡ = ∑ σ O i ( σ ) P ( σ ) ∑ σ O i ( σ ) P r ( σ ) ≡ ⟨ O i ( σ ) ⟩ r
选择信息熵最大的分布作为解
P m = arg max S [ P ] = arg max ( − ∑ σ ⃗ P ( σ ⃗ ) log P ( σ ⃗ ) ) P_m = \argmax{S[P]}= \argmax{\left(-\sum_{\vec\sigma}P(\vec\sigma)\log{P(\vec\sigma)}\right)} P m = arg max S [ P ] = arg max ( − σ ∑ P ( σ ) log P ( σ ) )
拉格朗日乘子
一看到“在……约束下,求……的最值”,就应该想到拉格朗日乘子法。
高数课上学的拉格朗日乘子法是针对某个函数 f,求极值出现时变量 x 的取值;
这里的拉格朗日乘子法是针对作为泛函的熵 S,求极值出现时函数 P 的表达式。
对于每一个可观测量 O i \mathcal O_i O i ,设一个拉格朗日乘子 β i \beta_i β i ,P m P_m P m 出现在下面泛函取极值的位置:
L [ P ] = − ∑ σ ⃗ P ( σ ⃗ ) log P ( σ ⃗ ) − α ( ∑ σ ⃗ P ( σ ⃗ ) − 1 ) − ∑ i β i ( ∑ σ ⃗ P ( σ ⃗ ) O i ( σ ⃗ ) − < O i ( σ ⃗ ) > r ) L[P]=-\sum_{\vec\sigma}P(\vec\sigma)\log P(\vec\sigma)-\alpha\left(\sum_{\vec\sigma}P(\vec\sigma)-1\right)-\sum_{i}\beta_i\left(\sum_{\vec\sigma}P(\vec\sigma)\mathcal O_i(\vec\sigma)-\left<\mathcal O_i(\vec\sigma)\right>_r\right) L [ P ] = − σ ∑ P ( σ ) log P ( σ ) − α ( σ ∑ P ( σ ) − 1 ) − i ∑ β i ( σ ∑ P ( σ ) O i ( σ ) − ⟨ O i ( σ ) ⟩ r )
上式中的 α 也是一个拉格朗日乘子,用来保证 P 像概率一样归一。
通过求解(泛函的 δ 和函数偏微分的计算法则类似)
δ L δ P ( σ ⃗ ) = 0 \frac{\delta L}{\delta P(\vec\sigma)}=0 δ P ( σ ) δ L = 0
就得到
P m ( σ ⃗ ) = 1 Z e − ∑ i β i O i ( σ ⃗ ) P_m(\vec\sigma)=\frac{1}{Z}e^{-\sum_{i}\beta_i\mathcal O_i(\vec\sigma)} P m ( σ ) = Z 1 e − ∑ i β i O i ( σ )
其中 Z ≡ e 1 + α Z\equiv e^{1+\alpha} Z ≡ e 1 + α 符合 α 乘子把整个表达式凑成概率的作用。
已知的可观测量只有能量 E 的时候
令 O ( σ ⃗ ) = − E ( σ ⃗ ) \mathcal O(\vec\sigma)=-E(\vec\sigma) O ( σ ) = − E ( σ ) ,P m P_m P m 就成了玻尔兹曼分布
P m ( σ ⃗ ) = 1 Z e − β E ( σ ⃗ ) P_m(\vec\sigma)=\frac{1}{Z}e^{-\beta E(\vec\sigma)} P m ( σ ) = Z 1 e − βE ( σ )
对比开头的玻尔兹曼分布表达式,β = 1 / k B T \beta=1/k_BT β = 1/ k B T .
反过来,上式也可以启发我们,在研究中上手一个陌生系统的时候,可以根据可观测量来定义系统的能量:
E ( σ ⃗ ) = − ∑ i β i O i ( σ ⃗ ) E(\vec\sigma)=-\sum_{i}\beta_i \mathcal O_i(\vec\sigma) E ( σ ) = − i ∑ β i O i ( σ )
来点儿 机器学习 梯度下降
P m ( σ ⃗ ) P_m(\vec\sigma) P m ( σ ) 的表达式中包含了可观测量相关的拉格朗日乘子 β i \beta_i β i 。
从实验上已知的自变量-因变量对应关系,求函数参数 β i \beta_i β i 的问题,叫做 inverse problem。
直接精确求解的难度过大,通常都是用迭代的办法让 P m ( σ ⃗ ) P_m(\vec\sigma) P m ( σ ) 和 P r ( σ ⃗ ) P_r(\vec\sigma) P r ( σ ) 的差距逐渐缩小到可以接受的范围。
这个差距,也就是迭代的目标函数,最容易想到的就是 Kullback-Leibler divergence
D K L ( P r ∣ ∣ P m ) = ∑ σ ⃗ P r ( σ ⃗ ) log P r ( σ ⃗ ) P m ( σ ⃗ ) D_{KL}(P_r||P_m)=\sum_{\vec\sigma}P_r(\vec\sigma)\log\frac{P_r(\vec\sigma)}{P_m(\vec\sigma)} D K L ( P r ∣∣ P m ) = σ ∑ P r ( σ ) log P m ( σ ) P r ( σ )
当实验进行了 M 次独立重复测量,产生了 ( σ ⃗ ( 1 ) , … , σ ⃗ ( M ) ) (\vec\sigma^{(1)},\dots,\vec\sigma^{(M)}) ( σ ( 1 ) , … , σ ( M ) ) 的数据时,此时的目标函数可以选为“在 P m P_m P m 的参数 β ⃗ \vec\beta β 下得到数据的似然性 L \mathcal L L (likelihood)”,目标变为求最大值。
L = log ∏ i = 1 M P m ( σ ⃗ ( i ) ) = M ∑ σ ⃗ P r ( σ ⃗ ) log P m ( σ ⃗ ) = M { S [ P r ] − D K L ( P r ∣ ∣ P m ) } \mathcal L=\log\prod_{i=1}^M P_m(\vec\sigma^{(i)}) =M\sum_{\vec\sigma}P_r(\vec\sigma)\log P_m(\vec\sigma)=M\left\{S[P_r]-D_{KL}(P_r||P_m)\right\}
L = log i = 1 ∏ M P m ( σ ( i ) ) = M σ ∑ P r ( σ ) log P m ( σ ) = M { S [ P r ] − D K L ( P r ∣∣ P m ) }
第二个等号用到了概率分布的频率学派定义
P r ( σ ⃗ ) = 1 M ∑ i = 1 M δ σ ⃗ , σ ⃗ ( i ) P_r(\vec\sigma)=\frac{1}{M}\sum_{i=1}^M \delta_{\vec\sigma,\vec\sigma^{(i)}} P r ( σ ) = M 1 i = 1 ∑ M δ σ , σ ( i )
第三个等号是说目标函数有用的部分也还是 Kullback-Leibler divergence
把 P m ( σ ⃗ ) P_m(\vec\sigma) P m ( σ ) 的表达式代入
∂ D K L ( P r ∣ ∣ P m ) ∂ β i = < O i > m − < O i > r \frac{\partial D_{KL}(P_r||P_m)}{\partial\beta_i} = \left<\mathcal O_i\right>_m-\left<\mathcal O_i\right>_r ∂ β i ∂ D K L ( P r ∣∣ P m ) = ⟨ O i ⟩ m − ⟨ O i ⟩ r
这个形式启发我们,可以用梯度下降法,以 η 为学习率来进行迭代:
β i ( t + 1 ) = β i ( t ) + η ( < O i > r − < O i > m ) \beta_i^{(t+1)}=\beta_i^{(t)}+\eta(\left<\mathcal O_i\right>_r-\left<\mathcal O_i\right>_m) β i ( t + 1 ) = β i ( t ) + η ( ⟨ O i ⟩ r − ⟨ O i ⟩ m )
这下看懂了,机器学习嘛。
不止于此,此领域的一个比较先驱的工作是 Ackley, D., Hinton, G., Sejnowski, T.: A learning algorithm for Boltzmann machines . Cogn. Sci. 9(1), 147–169 (1985). 作者栏里的 Hinton, G. 就是颁给人工智能的 2024 年诺贝尔物理学奖的得主之一。
当初奖项公布的时候,不论是玩梗还是真情流露,觉得这奖发得流俗的议论不少,现在看来,谁对物理学的理解更深刻呢?
论文结构
这篇论文的几个小标题
简介
Zipf 定律
最大熵模型
神经元网络
生物序列的系综
鸟群
动力学 vs. 统计学上的临界性
展望
之间并不平等,而是有主从关系的:
简介
最大熵模型
动力学 vs. 统计学上的临界性
展望
这种内容逻辑和表达结构上的不匹配,是很多论文不好读的原因。很多学术出版物对投稿有严格的格式限制,导致作者需要削足适履。