機器學習4——參數估計之貝葉斯估計

貝葉斯估計

問題建模:

后驗概率公式:

P ( ω i ∣ x , D ) = P ( x ∣ ω i , D i ) P ( ω i ) ∑ j = 1 c P ( x ∣ ω j , D j ) P ( ω j ) P\left(\omega_i \mid \mathbf{x}, \mathcal{D}\right)=\frac{P\left(\mathbf{x} \mid \omega_i, \mathcal{D}_i\right) P\left(\omega_i\right)}{\sum_{j=1}^c P\left(\mathbf{x} \mid \omega_j, \mathcal{D}_j\right) P\left(\omega_j\right)} P(ωi?x,D)=j=1c?P(xωj?,Dj?)P(ωj?)P(xωi?,Di?)P(ωi?)?

由于我們在做分類器時,手上其實是有訓練數據的,也就是每一類 ω i \omega_i ωi? 都有自己對應的訓練數據集合 D i \mathcal{D}_i Di?。因此,我們真正能估計的是:
P ( x ∣ ω i , D i ) P(\mathbf{x} \mid \omega_i, \mathcal{D}_i) P(xωi?,Di?)
也就是說,“在知道類別是 ω i \omega_i ωi?” 且 “在我們擁有第 i 類的數據 D i \mathcal{D}_i Di?” 的情況下,輸入 x \mathbf{x} x 出現的概率。我們在每個類別內部進行建模的時候,類別標簽已經是已知的固定量。所以:

  • 給定 D i \mathcal{D}_i Di? ,我們知道這些數據都是屬于 ω i \omega_i ωi? 類別的。
  • 那我們就可以只用這些數據來建模"類別 ω i \omega_i ωi? 的條件概率分布"。

也就是說,一旦我們知道了 D i \mathcal{D}_i Di? 是哪一類的,我們已經隱含地知道了類別標簽 ω i \omega_i ωi? ,所以再寫 ω i \omega_i ωi? 就是多余了。于是就可以簡寫為:

P ( x ∣ ω i , D i ) = P ( x ∣ D i ) P\left(\mathbf{x} \mid \omega_i, \mathcal{D}_i\right)=P\left(\mathbf{x} \mid \mathcal{D}_i\right) P(xωi?,Di?)=P(xDi?)
所以,問題的核心在于**估計 P ( x ∣ D ) P(\mathbf{x} \mid \mathcal{D}) P(xD)。**這里省略下標表示對所有類別通用的求解方式。
p ( x ∣ D ) = ∫ p ( x , θ ∣ D ) d θ = ∫ p ( x ∣ θ , D ) p ( θ ∣ D ) d θ = ∫ p ( x ∣ θ ) p ( θ ∣ D ) d θ \begin{aligned} p(\mathbf{x} \mid \mathcal{D}) & =\int p(\mathbf{x}, \boldsymbol{\theta} \mid \mathcal{D}) d \boldsymbol{\theta} \\ & =\int p(\mathbf{x} \mid \boldsymbol{\theta}, \mathcal{D}) p(\boldsymbol{\theta} \mid \mathcal{D}) d \boldsymbol{\theta} \\ & =\int p(\mathbf{x} \mid \boldsymbol{\theta}) p(\boldsymbol{\theta} \mid \mathcal{D}) d \boldsymbol{\theta}\end{aligned} p(xD)?=p(x,θD)dθ=p(xθ,D)p(θD)dθ=p(xθ)p(θD)dθ?
這是一種對概率密度求積分的思想。因為在貝葉斯方法中,參數 θ \theta θ 不是固定的值,而是一個不確定的變量!

  • 傳統頻率派做法通常是:
    直接用最大似然估計或MAP估計得出一個具體的 θ ^ \hat{\theta} θ^ ,然后用 p ( x ∣ θ ^ ) p(\mathbf{x} \mid \hat{\theta}) p(xθ^) 來做預測。

  • 而貝葉斯派則認為:

    我們應該考慮所有可能的參數值,不要只依賴一個點估計!要用加權平均 的方式整合所有參數不確定性。所以我們不是用一個固定參數預測 x \mathbf{x} x ,而是用下面這個**"平均版本"**:

p ( x ∣ D ) = E θ ~ p ( θ ∣ D ) [ p ( x ∣ θ ) ] p(\mathbf{x} \mid \mathcal{D})=\mathbb{E}_{\theta \sim p(\theta \mid \mathcal{D})}[p(\mathbf{x} \mid \theta)] p(xD)=Eθp(θD)?[p(xθ)]

  • 舉個例子:

    假設我們要預測某人是否患病(1 or 0),你用邏輯回歸來建模,參數是 θ \theta θ。現在你已經看到了一些訓練數據 D \mathcal{D} D

    • 如果你直接用最大似然:
      θ ^ = argmax θ p ( D ∣ θ ) \hat{\theta} = \text{argmax}_\theta p(\mathcal{D} \mid \theta) θ^=argmaxθ?p(Dθ),然后預測:
      p ( 患病 ∣ 特征 ) ≈ p ( 患病 ∣ 特征 , θ ^ ) p(\text{患病} \mid \text{特征}) \approx p(\text{患病} \mid \text{特征}, \hat{\theta}) p(患病特征)p(患病特征,θ^)

    • 如果你用貝葉斯預測:
      你承認你對 θ \theta θ 沒有那么確定,只能說它服從某個后驗分布:
      p ( 患病 ∣ 特征 ) = ∫ p ( 患病 ∣ 特征 , θ ) ? p ( θ ∣ D ) d θ p(\text{患病} \mid \text{特征}) = \int p(\text{患病} \mid \text{特征}, \theta) \cdot p(\theta \mid \mathcal{D}) d\theta p(患病特征)=p(患病特征,θ)?p(θD)dθ

    這就是貝葉斯方法“把模型參數的不確定性也考慮進來”的精髓。

繼續看上面的公式: ∫ p ( x ∣ θ ) p ( θ ∣ D ) d θ \int p(\mathbf{x} \mid \boldsymbol{\theta}) p(\boldsymbol{\theta} \mid \mathcal{D}) d \boldsymbol{\theta} p(xθ)p(θD)dθ

  • p ( x ∣ θ ) p(\mathbf{x} \mid \theta) p(xθ):似然函數,形式已知(如高斯分布)。

  • p ( θ ∣ D ) p(\theta \mid \mathcal{D}) p(θD):參數的后驗分布,需通過訓練數據計算。計算過程:
    p ( θ ∣ D ) = p ( θ , D ) p ( D ) = p ( θ ) p ( D ∣ θ ) ∫ p ( θ , D ) d θ = p ( θ ) p ( D ∣ θ ) ∫ p ( θ ) p ( D ∣ θ ) d θ p ( D ∣ θ ) = ∏ i = 1 n p ( x k ∣ θ ) \begin{aligned} p(\boldsymbol{\theta} \mid \mathcal{D}) & =\frac{p(\boldsymbol{\theta}, \mathcal{D})}{p(\mathcal{D})} \\ & =\frac{p(\boldsymbol{\theta}) p(\mathcal{D} \mid \boldsymbol{\theta})}{\int p(\boldsymbol{\theta}, \mathcal{D}) d \boldsymbol{\theta}} \\ & =\frac{p(\boldsymbol{\theta}) p(\mathcal{D} \mid \boldsymbol{\theta})}{\int p(\boldsymbol{\theta}) p(\mathcal{D} \mid \boldsymbol{\theta}) d \boldsymbol{\theta}} \\ p(\mathcal{D} \mid \boldsymbol{\theta}) & =\prod_{i=1}^n p\left(\mathbf{x}_k \mid \boldsymbol{\theta}\right) \end{aligned} p(θD)p(Dθ)?=p(D)p(θ,D)?=p(θ,D)dθp(θ)p(Dθ)?=p(θ)p(Dθ)dθp(θ)p(Dθ)?=i=1n?p(xk?θ)?

進行貝葉斯參數估計的一般階段:

  • 階段 I:訓練(后驗分布)

    輸入:

    • 數據集 D = { x 1 , x 2 , . . . , x n } \mathcal{D} = \{x_1, x_2, ..., x_n\} D={x1?,x2?,...,xn?}
    • 參數的先驗分布 p ( θ ) p(\theta) p(θ):比如說你覺得 θ \theta θ 是某個高斯分布。

    核心公式:
    p ( θ ∣ D ) = p ( D ∣ θ ) p ( θ ) p ( D ) p(\theta \mid \mathcal{D}) = \frac{p(\mathcal{D} \mid \theta) p(\theta)}{p(\mathcal{D})} p(θD)=p(D)p(Dθ)p(θ)?
    逐項理解:

    • p ( θ ) p(\theta) p(θ):我們對參數的先驗認知
    • p ( D ∣ θ ) p(\mathcal{D} \mid \theta) p(Dθ):參數下,數據出現的可能性(似然)
    • p ( θ ∣ D ) p(\theta \mid \mathcal{D}) p(θD):數據觀察之后,對參數的更新信念
    • p ( D ) = ∫ p ( D ∣ θ ) p ( θ ) d θ p(\mathcal{D}) = \int p(\mathcal{D} \mid \theta)p(\theta)d\theta p(D)=p(Dθ)p(θ)dθ歸一化項,保證后驗是概率分布。

    目標: 求出后驗分布 p ( θ ∣ D ) p(\theta \mid \mathcal{D}) p(θD)

  • 階段 II:估計類條件密度(積分)

    我們要干嘛?
    在數據集下,我們想知道觀測到新樣本 x \mathbf{x} x的可能性是多少?但我們不能只用某一個 θ \theta θ,因為我們不確定。所以我們把所有可能的 θ \theta θ 都考慮進去,做一個加權平均(加權方式是后驗概率):
    p ( x ∣ D ) = ∫ p ( x ∣ θ ) ? p ( θ ∣ D ) d θ p(\mathbf{x} \mid \mathcal{D}) = \int p(\mathbf{x} \mid \theta) \cdot p(\theta \mid \mathcal{D}) d\theta p(xD)=p(xθ)?p(θD)dθ

    • p ( x ∣ θ ) p(\mathbf{x} \mid \theta) p(xθ):在參數 θ \theta θ 下,x 的生成概率(比如說高斯密度);
    • p ( θ ∣ D ) p(\theta \mid \mathcal{D}) p(θD):階段 I 得到的后驗分布;
    • 積分的結果:在參數不確定的前提下, x \mathbf{x} x總體生成可能性

    這一步的意義是: 我們不是像MLE那樣說“ θ \theta θ 就是這個”,而是說“我們不知道 θ \theta θ 到底是哪個,所以我們把所有可能的 θ \theta θ 的解釋能力都考慮進來”,這叫邊際化參數

  • 階段 III:分類

    現在我們有了每個類 ω i \omega_i ωi? 的條件密度估計:
    p ( x ∣ ω i , D i ) p(\mathbf{x} \mid \omega_i, \mathcal{D}_i) p(xωi?,Di?)
    我們還可以提前給出類的先驗概率 P ( ω i ) P(\omega_i) P(ωi?),比如所有類是等概率的就是均勻先驗。

    最后就可以通過貝葉斯規則,計算某個類的后驗概率(重點是“對這個樣本來說,它屬于哪個類更有可能”):
    P ( ω i ∣ x , D ) = P ( x ∣ ω i , D i ) P ( ω i ) ∑ j = 1 c P ( x ∣ ω j , D j ) P ( ω j ) P(\omega_i \mid \mathbf{x}, \mathcal{D}) = \frac{P(\mathbf{x} \mid \omega_i, \mathcal{D}_i) P(\omega_i)}{\sum_{j=1}^c P(\mathbf{x} \mid \omega_j, \mathcal{D}_j) P(\omega_j)} P(ωi?x,D)=j=1c?P(xωj?,Dj?)P(ωj?)P(xωi?,Di?)P(ωi?)?

    • 分子是“這個類解釋當前樣本的能力 × 這個類本身的先驗”;
    • 分母是對所有類的分子求和(歸一化);
    • 最后就可以取最大后驗的類作為分類結果。

比較最大似然估計和貝葉斯估計的哲學思想

為什么最大似然估計認為能讓似然函數最大的參數值即為所求?

最大似然估計的基本假設是:

現實中觀測到的數據是由某個“真實參數”控制的概率模型生成的,而我們不知道這個參數是多少。

所以我們要“反過來推”,從數據出發,倒推出這個參數。這就是最大似然的直覺: “哪個參數讓我們實際觀測到的數據最可能發生?”

  • 似然函數是對“模型如何解釋數據”的度量

    似然函數 L ( θ ) = p ( D ∣ θ ) L(\theta) = p(D \mid \theta) L(θ)=p(Dθ)
    它表示在參數為 θ \theta θ 的前提下,我們實際看到數據 D D D 的概率。

    MLE 就是選擇那個讓這件事發生得最自然、最不意外的 θ \theta θ

  • 和頻率學派的統計思想一致

    頻率學派認為:

    • 參數是“固定不變”的(雖然我們不知道它是多少);
    • 數據是“可重復的隨機樣本”。

    那么,從一堆樣本中,我們就用 MLE 來尋找最有可能產生這堆樣本的參數值,這是頻率學派最常見的估計方法之一。

  • 從極大化聯合概率來看

    假設數據是獨立同分布的:
    D = { x 1 , x 2 , … , x n } D = \{x_1, x_2, \ldots, x_n\} D={x1?,x2?,,xn?},則似然函數是:
    L ( θ ) = ∏ i = 1 n p ( x i ∣ θ ) L(\theta) = \prod_{i=1}^n p(x_i \mid \theta) L(θ)=i=1n?p(xi?θ)
    你會發現:MLE 尋找的是哪個 θ \theta θ,能讓這些樣本的聯合概率最大

    這等價于:

    選擇一個最能“復現”這些樣本的參數值。

  • 和“最大后驗估計”也有關聯

    當你加上先驗知識 p ( θ ) p(\theta) p(θ) 的時候,你得到的是最大后驗估計(MAP)
    θ MAP = arg ? max ? θ p ( θ ∣ D ) = arg ? max ? θ p ( D ∣ θ ) p ( θ ) \theta_{\text{MAP}} = \arg\max_\theta p(\theta \mid D) = \arg\max_\theta p(D \mid \theta)p(\theta) θMAP?=argθmax?p(θD)=argθmax?p(Dθ)p(θ)
    當先驗是均勻分布(對所有參數值一視同仁)時:
    θ MAP = θ MLE \theta_{\text{MAP}} = \theta_{\text{MLE}} θMAP?=θMLE?
    所以 MLE 可以被看作一種“沒有先驗信息時的貝葉斯估計”。

貝葉斯學派認為:“參數本身也是不確定的,是一個概率分布。”我們根據數據不斷地更新我們對參數的信念

頻率學派貝葉斯學派
參數是固定的,數據是隨機的數據是確定的,參數是不確定的
用樣本來推斷固定參數用數據來更新我們對參數的信念
不談“參數的概率”,只談樣本概率參數也有概率分布

p ( θ ∣ D ) ? 后驗? = p ( D ∣ θ ) ? 似然? ? p ( θ ) ? 先驗? p ( D ) ? 邊際似然? \underbrace{p(\theta \mid D)}_{\text {后驗 }}=\frac{\underbrace{p(D \mid \theta)}_{\text {似然 }} \cdot \underbrace{p(\theta)}_{\text {先驗 }}}{\underbrace{p(D)}_{\text {邊際似然 }}} 后驗? p(θD)??=邊際似然? p(D)??似然? p(Dθ)???先驗? p(θ)???

這表達了:

我們通過觀察數據 D,把原先對參數 θ \theta θ 的“信念” p ( θ ) p(\theta) p(θ),更新為一個新的“信念” p ( θ ∣ D ) p(\theta \mid D) p(θD)

類比為“科學實驗”

  1. 我們對一個理論(參數)有一個初步的信念(先驗);
  2. 我們進行實驗,收集數據(似然);
  3. 我們更新我們的信念,得到一個更加可信的理論(后驗). “新信念的比例 = 舊信念的比例 × 數據支持程度的比例”。。

分母實際上是一個歸一化常數, p ( D ) = ∫ p ( D ∣ θ ) ? p ( θ ) d θ p(D)=\int p(D \mid \theta) \cdot p(\theta) d \theta p(D)=p(Dθ)?p(θ)dθ

它的作用是對所有可能的 θ \theta θ 情況歸一化,讓后驗 p ( θ ∣ D ) p(\theta \mid D) p(θD) 的積分為 1。來保證這個式子符合概率的形式. 核心思想體現在分子.

  • 主觀信念更新是核心:我們不是問“誰生成了數據”,而是“在看到數據后我們應該相信誰?”
  • 信念更新的比例邏輯:比例推理形式強調的是“相對可信度”的更新,而不是絕對頻率。
  • 概率的可解釋性來自先驗:先驗并不等于胡說,而是代表我們對問題背景的理解,是模型的一部分。
  • 貝葉斯定理并不是從頻率定義出發的數學技巧,而是從“主觀信念更新的理性原則”出發,用似然函數衡量數據的支持程度,用先驗表示我們原有的信念,再通過歸一化得到后驗信念。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912476.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912476.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912476.shtml

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

相關文章

【C++】命令模式

目錄 一、模式核心概念與結構二、C 實現示例:遙控器與家電控制三、命令模式的關鍵特性四、應用場景五、命令模式與其他設計模式的關系六、C 標準庫中的命令模式應用七、優缺點分析八、實戰案例:數據庫事務命令九、實現注意事項如果這篇文章對你有所幫助&…

基于librdkafka開發的C++客戶端,生產者生產發送數據失敗問題處理

我們的項目使用了開源的librdkafka庫,實現向kafka服務器生產發送數據的功能。使用的librdkafka的版本是1.9.0。 作為客戶端程序,在開發時和客戶協商確認后,支持了SASL_PLAINTEXT認證。以下概念解釋引用自通義千問AI SASL (Simple Authentic…

OpenGL之yaw、pitch、fov 和 lookAt

在 3D 圖形學中,yaw、pitch、fov 和 lookAt 都是控制攝像機(Camera)行為的關鍵參數,但它們的 作用層級 和 使用場景 不同。 1. yaw、pitch、fov 的作用 (1) yaw(偏航角) 作用:控制攝像機 左右…

STM32-第一節-新建工程,GPIO,點亮LED,蜂鳴器

一、新建工程: 1.Keil中新建工程,選擇開發板型號。 2.工程文件夾建立Start,Library等分類,復制模版工程中的文件到工程文件夾中。 3.在Keil中添加分組,添加文件。 4.工程選項設置: c/c中:Inc…

Rust標量、復合類型與自定義類型、第三方并發結構

以下是 Rust 中標量類型、對象類型(含結構體、復合類型、堆分配類型)以及常用第三方并發數據結構的完整分類、示例和區別對比,幫助你系統掌握它們的本質異同: 🟢 一、標量類型(Scalar Types,存儲…

基于STM32溫濕度檢測—串口顯示

基于STM32溫濕度檢測 (仿真+程序) 功能介紹 具體功能: 1.使用DHT11檢測溫濕度; 2.單片機處理完控制LCD1602顯示溫濕度; 3.單片機也通過串口顯示檢測到的溫濕度; 添加圖片注釋,不…

Windows 10 查詢 Nginx 進程教程

1. 打開命令提示符(CMD) 按 Win R,輸入 cmd,回車。或者在開始菜單搜索欄輸入“cmd”,選擇“命令提示符”。 2. 查看是否有正在運行的 Nginx 進程 輸入命令: tasklist | findstr nginx這個命令會列出所有…

使用 Kafka 優化物流系統的實踐與思考

使用 Kafka 優化物流系統的實踐與思考 在現代物流系統中,訂單處理、倉儲管理、運輸調度等環節復雜且實時性要求高。為了滿足異步解耦、高吞吐、高可用、事件驅動和數據可靠性等需求,Kafka 作為分布式消息隊列和流處理平臺,成為了我們的首選。…

Rust中模式匹配let Some(gas_price) = tx.gas_price用法

你問得非常好,let Some(gas_price) tx.gas_price 是 Rust 中的一種模式匹配寫法,它用于從 Option 類型中提取值。 ? 背景知識:什么是 Option? 在 Rust 中,如果一個值可能存在也可能不存在,就會用 Option…

什么是LLM大語言模型

什么是LLM大語言模型 LLM的全稱是,Large Language Model,簡稱LLM,翻譯為大語言模型,其核心是模擬人類語言的復雜規律,實現語義理解、推理分析、文本生成等任務,主要目的是實現能讀懂和說出人類語言的模型。…

雜談-架構時代演進

關于未來 5-10 年軟件系統演化方向 1. 云原生 ? 超云原生(Post Cloud Native) Kubernetes 平臺自治化: K8s Operator 日益強大,逐步具備自愈、自動擴縮容、自動調優能力。 云廠商與企業私有云逐步融合為一體…

如何查看服務器的運行日志?

🟢 一、Linux服務器 Linux日志都在**/var/log**目錄下,最常用的有: 📂 常用日志文件 文件內容/var/log/messages大部分系統日志(CentOS常見)/var/log/syslog系統消息日志(Ubuntu/Debian常見&a…

在幸狐RV1106開發板上用gcc14.2本地編譯安裝postgresql 17.5數據庫

在幸狐RV1106開發板上用gcc14.2本地編譯安裝postgresql 17.5數據庫 編譯環境: RV1106G3 Linux luckfox-rv1106 5.10.160 #3 Fri Jun 27 14:16:20 AWST 2025 armv7l GNU/Linux BusyBox v1.36.1 gcc version 14.2.0 (GCC) GNU ld (GNU Binutils) 2.44 GNU Make 4.4 n…

Go語言中map[string]interface{} 和 map[string]string的區別

在 Go 語言中,map[string]interface{} 和 map[string]string 是兩種不同類型的 map,它們的主要區別在于值的類型以及這種差異帶來的使用場景和靈活性的不同。 1. 值的類型 map[string]interface{}:這里的 interface{} 表示 Go 中的空接口類型…

AdGuard Home 安裝及使用

AdGuard Home 是 AdGuard 開源的一個私人 DNS 服務端,只需在網關部署,即可實現全局域網的廣告攔截與隱私反追蹤。在 DNS 解析的過程中,匹配規則庫內的 URL 進行攔截,同時在客戶端中,還可以通過自定義過濾規則實現網頁 DOM 的攔截。 基于 Golang 編寫的 AdGuard Home,官方…

繞過 GraphQL 暴力破解保護

題目要求: 本實驗的用戶登錄機制由 GraphQL API 提供支持。API 終端節點有一個速率限制器,如果它在短時間內收到來自同一源的太多請求,則會返回錯誤。 要解決實驗問題,請暴力破解登錄機制以 .使用身份驗證實驗室密碼列表作為密碼…

C/C++ 使用rapidjson庫 操作Json格式文件(創建、插入、解析、修改、刪除)

目錄 一、前言 1.簡介 2.兼容性 3.下載 4.安裝 5.官方文檔 6.自述 二、封裝Json 1. 創建一個 Document 對象 2. "key":"value" 3. { } 4. [ ] 5. [ { }, { } ] 6. [ [ ], [ ] ] 7. { [ ], [ ] } 8. { { }, { } } 9. 將Document轉換為字符串…

免安裝一鍵修復網絡診斷 + 權限修復!打印機共享錯誤工具適配 Win7/10/11

各位打印小能手們!你們有沒有遇到過共享打印機出問題,搞得自己焦頭爛額的情況?比如系統一更新,打印機就連不上,打印任務失敗,真的是讓人崩潰啊!別慌,今天就給大家全面介紹一款打印機…

電腦分屏快捷鍵5

按window右箭頭: 按window左箭頭:

nt!CcFlushCache函數分析之nt!CcFindBcb

nt!CcFindBcb函數分析 第一部分: 1: kd> p nt!CcAcquireByteRangeForWrite0x377: 80a13c49 e866e4ffff call nt!CcFindBcb (80a120b4) 1: kd> t nt!CcFindBcb: 80a120b4 55 push ebp 1: kd> kc # 00 nt!CcFindBcb 01 nt!CcAcqu…