Fisher信息矩阵与Hessian矩阵:区别与联系全解析
在统计学和机器学习中,Fisher信息矩阵(FIM)和Hessian矩阵是两个经常出现的概念,它们都与“二阶信息”有关,常用来描述函数的曲率或参数的敏感性。你可能听说过,Fisher信息矩阵可以定义为对数似然函数二阶导数的负期望值,看起来很像Hessian矩阵的某种形式。那么,这两者到底有什么区别,又有哪些联系呢?今天我们就来一探究竟。
Fisher信息矩阵是什么?
Fisher信息矩阵是统计学中的一个核心工具,用来衡量概率分布 ( p ( x ∣ θ ) p(x|\theta) p(x∣θ) ) 中包含的参数 ( θ \theta θ ) 的信息量。它有两种等价定义:
-
基于得分函数(Score Function):
I ( θ ) i j = E [ ∂ log p ( x ∣ θ ) ∂ θ i ∂ log p ( x ∣ θ ) ∂ θ j ∣ θ ] I(\theta)_{ij} = E\left[ \frac{\partial \log p(x|\theta)}{\partial \theta_i} \frac{\partial \log p(x|\theta)}{\partial \theta_j} \bigg| \theta \right] I(θ)ij=E[∂θi∂logp(x∣θ)∂θj∂logp(x∣θ) θ]
这是得分函数的协方差,反映了参数变化引起的似然波动。 -
基于二阶导数:
I ( θ ) i j = − E [ ∂ 2 log p ( x ∣ θ ) ∂ θ i ∂ θ j ∣ θ ] I(\theta)_{ij} = -E\left[ \frac{\partial^2 \log p(x|\theta)}{\partial \theta_i \partial \theta_j} \bigg| \theta \right] I(θ)ij=−E[∂θi∂θj∂2logp(x∣θ) θ]
这是对数似然函数二阶偏导数的负期望值。
这两种定义在正则条件下(比如可微性和积分交换性)是等价的,我们稍后会证明。
通俗理解
Fisher信息矩阵像一个“信息探测器”,告诉你通过数据能了解多少关于 ( θ \theta θ ) 的知识。它是期望值,代表分布的平均特性。
Hessian矩阵是什么?
Hessian矩阵则是一个更广义的概念,出现在数学和优化领域。对于任意函数 ( f ( θ ) f(\theta) f(θ) ),Hessian矩阵 ( H ( θ ) H(\theta) H(θ) ) 定义为:
H ( θ ) i j = ∂ 2 f ( θ ) ∂ θ i ∂ θ j H(\theta)_{ij} = \frac{\partial^2 f(\theta)}{\partial \theta_i \partial \theta_j} H(θ)ij=∂θi∂θj∂2f(θ)
在统计学或机器学习中,如果 ( f ( θ ) = − log p ( x ∣ θ ) f(\theta) = -\log p(x|\theta) f(θ)=−logp(x∣θ) )(负对数似然,作为损失函数),Hessian就是:
H ( θ ) i j = − ∂ 2 log p ( x ∣ θ ) ∂ θ i ∂ θ j H(\theta)_{ij} = -\frac{\partial^2 \log p(x|\theta)}{\partial \theta_i \partial \theta_j} H(θ)ij=−∂θi∂θj∂2logp(x∣θ)
注意,这里的Hessian是一个具体的数据函数,依赖于观测值 ( x x x )。
通俗理解
Hessian矩阵像一张“曲率地图”,告诉你函数在某一点的凹凸性或变化速度。在优化中(如牛顿法),它直接用来调整步长。
Fisher信息矩阵与Hessian的联系
从定义上看,Fisher信息矩阵和Hessian矩阵似乎很像,尤其是Fisher的二阶导数定义:
I ( θ ) i j = − E [ ∂ 2 log p ( x ∣ θ ) ∂ θ i ∂ θ j ∣ θ ] I(\theta)_{ij} = -E\left[ \frac{\partial^2 \log p(x|\theta)}{\partial \theta_i \partial \theta_j} \bigg| \theta \right] I(θ)ij=−E[∂θi∂θj∂2logp(x∣θ) θ]
而Hessian是:
H ( θ ) i j = − ∂ 2 log p ( x ∣ θ ) ∂ θ i ∂ θ j H(\theta)_{ij} = -\frac{\partial^2 \log p(x|\theta)}{\partial \theta_i \partial \theta_j} H(θ)ij=−∂θi∂θj∂2logp(x∣θ)
它们的联系显而易见:Fisher信息矩阵是Hessian矩阵在真实参数 ( θ \theta θ ) 下的期望值。换句话说,Fisher取了Hessian的平均,抹去了单个数据的随机性,反映了分布的整体特性。
证明两种定义的等价性
为什么 ( I ( θ ) i j = E [ s i s j ] = − E [ ∂ 2 log p ∂ θ i ∂ θ j ] I(\theta)_{ij} = E\left[ s_i s_j \right] = -E\left[ \frac{\partial^2 \log p}{\partial \theta_i \partial \theta_j} \right] I(θ)ij=E[sisj]=−E[∂θi∂θj∂2logp] )?我们来推导一下:
得分函数 ( s i = ∂ log p ∂ θ i s_i = \frac{\partial \log p}{\partial \theta_i} si=∂θi∂logp ),其二阶导数为:
∂ s i ∂ θ j = ∂ 2 log p ∂ θ i ∂ θ j \frac{\partial s_i}{\partial \theta_j} = \frac{\partial^2 \log p}{\partial \theta_i \partial \theta_j} ∂θj∂si=∂θi∂θj∂2logp
计算得分函数的协方差:
I ( θ ) i j = E [ s i s j ] I(\theta)_{ij} = E[s_i s_j] I(θ)ij=E[sisj]
考虑 ( E [ s i ] = 0 E[s_i] = 0 E[si]=0 )(得分函数期望为零,请参考笔者的另一篇博客:统计学中的得分函数(Score Function)是什么?它和Fisher信息矩阵有什么关系?),我们对 ( s i s_i si ) 求偏导的期望:
E [ ∂ s i ∂ θ j ] = E [ ∂ 2 log p ∂ θ i ∂ θ j ] E\left[ \frac{\partial s_i}{\partial \theta_j} \right] = E\left[ \frac{\partial^2 \log p}{\partial \theta_i \partial \theta_j} \right] E[∂θj∂si]=E[∂θi∂θj∂2logp]
另一方面:
∂ s i ∂ θ j = ∂ ∂ θ j ( 1 p ∂ p ∂ θ i ) = − 1 p 2 ∂ p ∂ θ j ∂ p ∂ θ i + 1 p ∂ 2 p ∂ θ i ∂ θ j \frac{\partial s_i}{\partial \theta_j} = \frac{\partial}{\partial \theta_j} \left( \frac{1}{p} \frac{\partial p}{\partial \theta_i} \right) = -\frac{1}{p^2} \frac{\partial p}{\partial \theta_j} \frac{\partial p}{\partial \theta_i} + \frac{1}{p} \frac{\partial^2 p}{\partial \theta_i \partial \theta_j} ∂θj∂si=∂θj∂(p1∂θi∂p)=−p21∂θj∂p∂θi∂p+p1∂θi∂θj∂2p
= − s i s j + ∂ 2 log p ∂ θ i ∂ θ j = -s_i s_j + \frac{\partial^2 \log p}{\partial \theta_i \partial \theta_j} =−sisj+∂θi∂θj∂2logp
取期望:
E [ ∂ 2 log p ∂ θ i ∂ θ j ] = E [ s i s j ] + E [ ∂ s i ∂ θ j ] E\left[ \frac{\partial^2 \log p}{\partial \theta_i \partial \theta_j} \right] = E[s_i s_j] + E\left[ \frac{\partial s_i}{\partial \theta_j} \right] E[∂θi∂θj∂2logp]=E[sisj]+E[∂θj∂si]
由于 ( E [ s i ] = 0 E[s_i] = 0 E[si]=0 ),且在正则条件下可以交换积分和导数:
E [ ∂ s i ∂ θ j ] = ∂ ∂ θ j E [ s i ] = 0 E\left[ \frac{\partial s_i}{\partial \theta_j} \right] = \frac{\partial}{\partial \theta_j} E[s_i] = 0 E[∂θj∂si]=∂θj∂E[si]=0
所以:
E [ ∂ 2 log p ∂ θ i ∂ θ j ] = E [ s i s j ] E\left[ \frac{\partial^2 \log p}{\partial \theta_i \partial \theta_j} \right] = E[s_i s_j] E[∂θi∂θj∂2logp]=E[sisj]
取负号:
I ( θ ) i j = E [ s i s j ] = − E [ ∂ 2 log p ∂ θ i ∂ θ j ] I(\theta)_{ij} = E[s_i s_j] = -E\left[ \frac{\partial^2 \log p}{\partial \theta_i \partial \theta_j} \right] I(θ)ij=E[sisj]=−E[∂θi∂θj∂2logp]
这证明了两种定义的等价性。
Fisher信息矩阵与Hessian的区别
尽管有联系,两者在使用和性质上有显著差别:
1. 定义基础
- Fisher信息矩阵:基于概率分布 ( p ( x ∣ θ ) p(x|\theta) p(x∣θ) ),是期望值,反映分布的统计特性。
- Hessian矩阵:基于具体函数(比如 ( − log p ( x ∣ θ ) -\log p(x|\theta) −logp(x∣θ) )),依赖特定数据 ( x x x ),是瞬时值。
2. 随机性
- Fisher:取了期望,消除了数据的随机波动,是理论上的平均曲率。
- Hessian:直接计算某次观测的二阶导数,受数据噪声影响,可能不稳定。
3. 应用场景
- Fisher:用于统计推断,比如Cramér-Rao下界,衡量参数估计的理论精度。
- Hessian:用于优化算法(如牛顿法),直接处理损失函数的局部曲率。
4. 计算复杂度
- Fisher:需要知道分布并计算期望,理论上精确但实践中常需近似(如K-FAC)。
- Hessian:只需对具体数据求二阶导数,但在大规模模型中计算和存储成本高。
举例:正态分布
对于 ( x ∼ N ( μ , σ 2 ) x \sim N(\mu, \sigma^2) x∼N(μ,σ2) ):
-
Fisher:
I μ μ = − E [ − 1 σ 2 ] = 1 σ 2 I_{\mu\mu} = -E\left[ -\frac{1}{\sigma^2} \right] = \frac{1}{\sigma^2} Iμμ=−E[−σ21]=σ21
(二阶导数为常数,期望不变) -
Hessian:
H μ μ = − ∂ 2 log p ∂ μ 2 = 1 σ 2 H_{\mu\mu} = -\frac{\partial^2 \log p}{\partial \mu^2} = \frac{1}{\sigma^2} Hμμ=−∂μ2∂2logp=σ21
(对于单次观测,值固定)
这里两者相等,但如果数据有噪声或分布复杂,Hessian会波动,而Fisher保持稳定。
实际中的联系与应用
1. 大样本近似
在最大似然估计(MLE)中,当样本量很大时,Hessian矩阵的平均值趋近于Fisher信息矩阵:
1 n ∑ i = 1 n H ( θ ; x i ) ≈ I ( θ ) \frac{1}{n} \sum_{i=1}^n H(\theta; x_i) \approx I(\theta) n1i=1∑nH(θ;xi)≈I(θ)
这为参数估计的协方差提供了近似:( Cov ( θ ^ ) ≈ I ( θ ) − 1 \text{Cov}(\hat{\theta}) \approx I(\theta)^{-1} Cov(θ^)≈I(θ)−1 )。
2. 优化中的融合
- 牛顿法:直接用Hessian调整步长,但计算昂贵。
- 自然梯度下降:用Fisher信息代替Hessian,结合统计特性,效率更高。
- 折中方案:如K-FAC,用Fisher的近似加速Hessian类优化。
3. 参数正交性
Fisher的非对角元素 ( I i j = 0 I_{ij} = 0 Iij=0 ) 表示参数正交,而Hessian的非对角元素反映具体数据的参数耦合。Fisher提供理论指导,Hessian提供实践反馈。
总结
Fisher信息矩阵和Hessian矩阵是一对“亲戚”:Fisher是Hessian的期望版本,前者关注分布的统计信息,后者关注具体数据的曲率。它们在统计推断和优化中各有侧重,但在理论和实践中常常相辅相成。理解它们的区别与联系,能帮助我们在模型设计和训练中更灵活地选择工具——是追求理论精度,还是优化实际收敛?答案就在这两者之中。
后记
2025年2月24日23点00分于上海,在Grok3大模型辅助下完成。