Fisher信息矩阵与Hessian矩阵:区别与联系全解析

Fisher信息矩阵与Hessian矩阵:区别与联系全解析

在统计学和机器学习中,Fisher信息矩阵(FIM)和Hessian矩阵是两个经常出现的概念,它们都与“二阶信息”有关,常用来描述函数的曲率或参数的敏感性。你可能听说过,Fisher信息矩阵可以定义为对数似然函数二阶导数的负期望值,看起来很像Hessian矩阵的某种形式。那么,这两者到底有什么区别,又有哪些联系呢?今天我们就来一探究竟。


Fisher信息矩阵是什么?

Fisher信息矩阵是统计学中的一个核心工具,用来衡量概率分布 ( p ( x ∣ θ ) p(x|\theta) p(xθ) ) 中包含的参数 ( θ \theta θ ) 的信息量。它有两种等价定义:

  1. 基于得分函数(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[θilogp(xθ)θjlogp(xθ) θ]
    这是得分函数的协方差,反映了参数变化引起的似然波动。

  2. 基于二阶导数
    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θj2logp(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θj2f(θ)

在统计学或机器学习中,如果 ( 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θj2logp(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θj2logp(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θj2logp(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θj2logp] )?我们来推导一下:

得分函数 ( s i = ∂ log ⁡ p ∂ θ i s_i = \frac{\partial \log p}{\partial \theta_i} si=θilogp ),其二阶导数为:

∂ 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} θjsi=θiθj2logp

计算得分函数的协方差:

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[θjsi]=E[θiθj2logp]

另一方面:

∂ 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} θjsi=θj(p1θip)=p21θjpθip+p1θiθj2p

= − 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θj2logp

取期望:

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θj2logp]=E[sisj]+E[θjsi]

由于 ( 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[θjsi]=θjE[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θj2logp]=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θj2logp]

这证明了两种定义的等价性。


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) xN(μ,σ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μμ=μ22logp=σ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=1nH(θ;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大模型辅助下完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/25333.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

APISIX Dashboard上的配置操作

文章目录 登录配置路由配置消费者创建后端服务项目配置上游再创建一个路由测试 登录 http://192.168.10.101:9000/user/login?redirect%2Fdashboard 根据docker 容器里的指定端口: 配置路由 通过apisix 的API管理接口来创建(此路由,直接…

【Mac电脑本地部署Deepseek-r1:详细教程与Openwebui配置指南】

文章目录 前言电脑配置:安装的Deepseek版本:使用的UI框架:体验效果展示:本地部署体验总结 部署过程Ollama部署拉取模型运行模型Openwebui部署运行Ollama服务在Openwebui中配置ollama的服务 后话 前言 deepseek最近火的一塌糊涂&a…

老旧android项目编译指南(持续更)

原因 编译了很多项目,找到了一些可观的解决办法 1. android studio里面的jdk版本切换 jdk版本切换在这里,一般安卓开发需要用到4个版本的jdk,jdk8, jdk11, jdk17, jdk21新版的android stuio是默认使用高版本的jdk,所以切换版本是很有必要的 2. 命令…

CST的UAV无人机RCS --- A求解器 - 一维距离像(HRRP)和正弦图(Sinogram)

“高分辨距离像(HRRP,high resolution range profile)是用宽带雷达信号获取的目标散射点复子回波在雷达射线上投影的向量和,它提供了目标散射点沿距离方向的分布信息,其特点是通过发出某一波长的高频信号,通过反射成像时间和位置,…

centos 7 安装python3 及pycharm远程连接方法

安装openssl及python3 cd /tmp #将python3.11.11的安装包下载/tmp目录下 ​ #将python3.11.11的安装包下载/tmp目录下 ​cd /tmp #下载最新的软件安装包 wget https://www.python.org/ftp/python/3.11.11/Python-3.11.11.tgz#安装源码编译需要的编译环境 yum -y install gcc z…

smolagents学习笔记系列(番外一)使用DeepSeek API Key + CodeAgent

这篇文章是在 smolagents 官方教程结束后的番外篇,实现了如何使用 DeepSeek API Key CodeAgent 执行你的提示词。 之所以写这篇文章是因为 smolagents 没有提供 DeepSeek 的模型接口,尽管可以通过 HfApiModel 这个类来指定使用与 DeepSeek 相关的模型&…

20250227使用mount命令挂载飞凌OK3588-C的linux R4的文件系统rootfs.img以备修改

rootrootrootroot-X99-Turbo:~/version/OK3588_Linux_fs/linuxfs$ mv m2/ R4 rootrootrootroot-X99-Turbo:~/version/OK3588_Linux_fs/linuxfs$ sudo mount rootfs.img R4/ rootrootrootroot-X99-Turbo:~/version/OK3588_Linux_fs/linuxfs$ sudo umount R4 20250227使用mount命…

【前端基础】Day 1 HTML

总结: 1. Web标准的构成 2. 基本标签 目录 1. Web标准的构成 2. 基本标签 2.1快捷键 2.2.1标题标签 2.2.2段落和换行标签 2.2.3文本格式化标签 2.2.4div和span标签 2.3.1 图像标签和路径 2.3.2路径 2.3.3超链接标签 2.4注释标签 2.5特殊字符 1. Web标准…

推荐3个背景渐变色的wordpress主题

干净、清爽、背景渐变色的wordpress企业主题 ​ 服务类公司wordpress企业主题https://www.jianzhanpress.com/?p8255 红色大气的wordpress企业主题,适合服务行业的公司搭建企业官方网站使用。 ​ wordpress询盘型独立站主题https://www.jianzhanpress.com/?p8258…

LlamaFactory-webui:训练大语言模型的入门级教程

LlamaFactory是一个开源框架,支持多种流行的语言模型,及多种微调技术,同时,以友好的交互式界面,简化了大语言模型的学习。 本章内容,从如何拉取,我已经搭建好的Llamafactory镜像开始&#xff0…

微信小程序-二维码绘制

wxml <view bindlongtap"saveQrcode"><!-- 二维码 --><view style"position: absolute;background-color: #FFFAEC;width: 100%;height: 100vh;"><canvas canvas-id"myQrcode" style"width: 200px; height: 200px;ba…

Python—Excel全字段转json文件(极速版+GUI界面打包)

目录 专栏导读1、背景介绍2、库的安装3、核心代码4、完整代码(简易版)5、进阶版(GUI)总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文章专栏:请点击——…

游戏引擎学习第124天

仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾/复习 今天是继续完善和调试多线程的任务队列。之前的几天&#xff0c;我们已经介绍了多线程的一些基础知识&#xff0c;包括如何创建工作队列以及如何在线程中处理任务。今天&#xff0c;重点是解决那些我们之前没有注意到…

Sqlserver安全篇之_启用TLS即配置SQL Server 数据库引擎以加密连接

官方文档 https://learn.microsoft.com/zh-cn/sql/database-engine/configure-windows/configure-sql-server-encryption?viewsql-server-ver16 https://learn.microsoft.com/zh-cn/sql/database-engine/configure-windows/manage-certificates?viewsql-server-ver15&pre…

hbase笔记总结1

hbase是nosql的一种&#xff0c;非关系型数据库&#xff0c;not only sql&#xff0c;可处理大规模、高并发的数据&#xff0c;是web2.0以后的产物hbase的扩展性和灵活性更好&#xff0c;而且筛选能力相较于MySQL更优nosql的四大特点&#xff1a; 灵活的数据模型 &#xff08;1…

RabbitMq高级

目录 1.发送者的可靠性 1.1 .生产者重试机制 1.2.生产者确认机制 1.3.实现生产者确认 1.3.1.开启生产者确认 1.3.2.定义ReturnCallback 1.3.3.定义ConfirmCallback 2.MQ的可靠性 2.1.数据持久化 2.1.1.交换机持久化 2.1.2.队列持久化 2.1.3.消息持久化 2.2.LazyQueu…

kafka-web管理工具cmak

一. 背景&#xff1a; 日常运维工作中&#xff0c;采用cli的方式进行kafka集群的管理&#xff0c;还是比较繁琐的(指令复杂&#xff1f;)。为方便管理&#xff0c;可以选择一些开源的webui工具。 推荐使用cmak。 二. 关于cmak&#xff1a; cmak是 Yahoo 贡献的一款强大的 Apac…

Android应用app实现AI电话机器人接打电话

Android应用app实现AI电话机器人接打电话 --安卓AI电话机器人 一、前言 【Dialer3.0智能拨号器】Android版手机app&#xff0c;由于采用蓝牙电话的方式来调用手机SIM卡发起呼叫、接听来电&#xff0c;并接收和处理通话的声音&#xff0c;通常我们以“蓝牙电话方案”来称呼它。 …

docker简介-学习与参考

docker Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。 容器是完全使用沙箱…

【leetcode hot 100 42】接雨水

错误解法&#xff1a;若height[left]>height[right]则代表有坑 class Solution {public int trap(int[] height) {int left 0;int area 0;while(left<height.length-1){// 找坑int right left1;while(right<height.length-1 && height[left]>height[ri…