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[?θi??logp(xθ)??θj??logp(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??θ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[si?sj?]=?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[si?sj?]

考慮 ( 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} =?si?sj?+?θ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[si?sj?]+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[si?sj?]

取負號:

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[si?sj?]=?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) 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μμ?=??μ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) n1?i=1n?H(θ;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.pswp.cn/web/70550.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70550.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70550.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python與C系列語言的差異總結(1)

/ 表示浮點除法 // 表示整數除法 print(8/3)print(8//3)布爾型 False/True 首字母大寫 整數的大小是沒有限制的,會根據需要自動增長,僅受限于可用內存的大小。 m**n表示m的n次方 x 4.3 ** 2.4print(x)print(3.5e30 * 2.77e45)print(1000000001.0 *…

Python selenium 庫

Selenium 是一個用于自動化 Web 瀏覽器操作的強大工具,廣泛應用于 Web 應用程序測試、網頁數據抓取和任務自動化等場景。 Selenium 為各種編程語言提供了 API,用作測試。 目前的官方 API 文檔有 C#、JavaScript、Java、Python、Ruby。 安裝 Selenium 和…

vllm部署LLM(qwen2.5,llama,deepseek)

目錄 環境 qwen2.5-1.5b-instruct 模型下載 vllm 安裝 驗證安裝 vllm 啟動 查看當前模型列表 OpenAI Completions API(文本生成) OpenAI Chat Completions API(chat 對話) vllm 進程查看,kill llama3 deep…

Python NumPy庫使用指南:從入門到精通

1. 引言 NumPy(Numerical Python)是 Python 中用于科學計算的核心庫之一。它提供了強大的多維數組對象(ndarray),以及一系列高效的數學函數,能夠輕松處理大規模的數值數據。NumPy 是許多其他科學計算庫(如 Pandas、Matplotlib、Scikit-learn 等)的基礎。 本文將詳細介…

15.2 智能銷售顧問系統技術架構解密:構建企業級知識驅動型對話引擎

智能銷售顧問系統技術架構解密:構建企業級知識驅動型對話引擎 關鍵詞:RAG 架構設計、銷售知識庫系統、LoRA 微調優化、多模態交互引擎、高并發服務部署 1. 系統技術架構全景解析 1.1 核心架構設計圖 #mermaid-svg-UBkTgaR5lf5WfGMa {font-family:"trebuchet ms",…

用PyTorch從零構建 DeepSeek R1:模型架構和分步訓練詳解

DeepSeek R1 的完整訓練流程核心在于,在其基礎模型 DeepSeek V3 之上,運用了多種強化學習策略。 本文將從一個可本地運行的基礎模型起步,并參照其技術報告,完全從零開始構建 DeepSeek R1,理論結合實踐,逐步…

爬蟲基礎入門之爬取豆瓣電影Top250-Re正則的使用

網址:豆瓣電影 Top 250 本案例所需要的模塊 requests (用于發送HTTP請求)re (用于字符串匹配和操作) 確定需要爬取的數據 : 電影的名稱電影的年份電影的評分電影評論人數 一. 發送請求 模擬瀏覽器向服務器發送請求 準備工作 -分析頁面: F12 or 右擊點擊檢查 查看…

力扣hot100——島嶼數量 島嶼問題經典dfs總結

給你一個由 1(陸地)和 0(水)組成的的二維網格,請你計算網格中島嶼的數量。 島嶼總是被水包圍,并且每座島嶼只能由水平方向和/或豎直方向上相鄰的陸地連接形成。 此外,你可以假設該網格的四條邊…

FPGA DSP:Vivado 中帶有 DDS 的 FIR 濾波器

本文使用 DDS 生成三個信號,并在 Vivado 中實現低通濾波器。低通濾波器將濾除相關信號。 介紹 用DDS生成三個信號,并在Vivado中實現低通濾波器。低通濾波器將濾除較快的信號。 本文分為幾個主要部分: 信號生成:展示如何使用DDS&am…

MessageAuthenticator

MessageAuthenticator https://coova.github.io/JRadius/ https://coova.github.io/JRadius/ import org.tinyradius.packet.RadiusPacket; import org.tinyradius.util.RadiusUtil; import java.nio.charset.StandardCharsets;public class RadiusAuthUtils {/*** 生成 RADI…

Spring Boot嵌入式服務器深度解析:從配置到調優的全方位指南

文章目錄 引言一、嵌入式服務器核心原理1.1 架構設計特點1.2 主流服務器對比 二、嵌入式服務器配置實戰2.1 基礎配置模板2.2 HTTPS安全配置 三、高級調優策略3.1 線程池優化(Tomcat示例)3.2 響應壓縮配置3.3 訪問日志配置 四、服務器切換實戰4.1 切換至U…

基于CentOS7安裝kubesphere和Kubernetes并接入外部ES收集日志

一、修改所有節點主機名 主節點就修改成master hostnamectl set-hostname master 然后輸入bash刷新當前主機名 工作節點1就修改成node1 hostnamectl set-hostname node1 然后輸入bash刷新當前主機名 二、全部節點安裝依賴并同步時間 yum -y install socat conntrack ebta…

探索與Cursor協作創建一個完整的前后端分離的項目的最佳實踐

探索與Cursor協作創建一個完整的前后端分離的項目的最佳實踐 Cursor簡介 Cursor在目前代表了AI編程技術的頂峰。在一定程度上可以說是當今AI時代的最強生產力代表。為此,不惜重金開了年費會員來緊跟時代步伐。當然cline、roo code、trae等開源或者免費產品也在緊追不舍。 C…

支持向量機(SVM)在 NLP 中的使用場景

支持向量機(Support Vector Machine, SVM)是一種強大的監督學習算法,廣泛應用于分類任務中。由于其出色的分類性能和高效的計算特點,SVM 已經成為自然語言處理(NLP)領域中的一種經典模型。SVM 在 NLP 中的應用非常廣泛,尤其在文本分類任務中,表現出色。 本文將探討 SV…

nodejs:vue 3 + vite 作為前端,將 html 填入<iframe>,在線查詢英漢詞典

向 doubao.com/chat/ 提問: node.js js-mdict 作為后端,vue 3 vite 作為前端,編寫在線查詢英漢詞典 后端部分(express js-mdict ) 詳見上一篇:nodejs:express js-mdict 作為后端&#xff…

Jenkins 部署在 Mac 并在局域網內通過 ip 訪問

Jenkins 部署在 Mac 并在局域網內通過 ip 訪問 一、修改配置文件 打開文件 ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist 打開文件 /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist 兩個文件目錄不同&#xff0c;內容一樣 <?xml version"1.0" e…

2通道12bit 10G USB高速示波器采集卡

概述 USB高速示波器采集卡 2通道&#xff0c;12位&#xff0c;10GSa/s 采樣率 DC~2.5GHz 帶寬 USB高速示波器采集卡是一款高速12bit多通道USB數字化儀它具有2通道10GSa/s采樣率&#xff0c;模擬前端帶寬從DC到2.5GHz&#xff0c;板載32GB DDR4存儲&#xff0c;使其能夠滿足長…

Python|OpenCV-實現人物眨眼檢測(21)

前言 本文是該專欄的第23篇,后面將持續分享OpenCV計算機視覺的干貨知識,記得關注。 通過OpenCV庫來實現人物的眨眼檢測,首先是需要了解眨眼檢測的基本原理。一般來說,是需要通過檢測眼睛的狀態,比如眼睛是否閉合來判斷是否眨眼。對此,如果基于OpenCV,通過Python如何去實…

Qt | Excel創建、打開、讀寫、另存和關閉

01 如何在Qt中使用QXlsx庫進行Excel文件的讀寫操作,包括創建新Excel、寫入數據、讀取數據以及文件保存和釋放資源。通過實例展示了如何加載庫、編寫.h和.cpp文件,并演示了使用單元格引用和行列號進行數據操作的方法。 QXlsx是一個可以讀寫Excel文件的庫。不依賴office以及…

AMBA-CHI協議詳解(十九)

文章目錄 4.6 Silent cache state transitions4.7 Cache state transitions at a Requester4.7.1 Read request transactions4.7.2 Dataless request transactions4.7.3 Write request transactions4.7.4 Atomic transactions4.7.5 Other request transactions4.6 Silent cache…