目錄
- 1. 似然函數的定義
- 2. 對數似然函數的定義
- 3. 負對數似然函數的定義
- 4. 負對數似然函數的優化
- 5. 具體應用示例
- 5.1 邏輯回歸中的負對數似然函數
- 5.2 優化邏輯回歸的負對數似然函數
1. 似然函數的定義
似然函數L(θ∣X)L(\theta | X)L(θ∣X)是在給定參數θ\thetaθ 下,觀測數據XXX出現的概率。它是統計推斷中的一個核心概念,用于衡量在特定參數假設下,觀測數據的合理性。
假設我們有一組觀測數據X={x1,x2,…,xn}X = \{x_1, x_2, \dots, x_n\}X={x1?,x2?,…,xn?},并且假設這些數據是獨立同分布的(i.i.d.)(i.i.d.)(i.i.d.),那么似然函數可以表示為所有觀測數據概率的乘積:
L(θ∣X)=∏i=1nP(xi∣θ)L(\theta | X) = \prod_{i=1}^{n} P(x_i | \theta) L(θ∣X)=i=1∏n?P(xi?∣θ)
其中:
- θ\thetaθ是模型的參數,例如線性回歸中的權重和偏置,或者邏輯回歸中的權重向量。
- P(xi∣θ)P(x_i | \theta)P(xi?∣θ)是在參數 θ\thetaθ下,第iii 個數據點 xix_ixi?出現的概率。
示例:假設有一個簡單的硬幣拋擲實驗,硬幣正面朝上的概率為θ\thetaθ,反面朝上的概率為 1?θ1 - \theta1?θ。如果進行了 nnn 次獨立的拋擲,觀察到正面朝上的次數為 kkk,那么似然函數可以表示為:
L(θ∣k,n)=θk(1?θ)n?kL(\theta | k, n) = \theta^k (1 - \theta)^{n - k} L(θ∣k,n)=θk(1?θ)n?k
2. 對數似然函數的定義
對數似然函數 ?(θ∣X)\ell(\theta | X)?(θ∣X)是似然函數的自然對數。它將似然函數的乘積形式轉換為求和形式,便于計算和優化。
?(θ∣X)=log?L(θ∣X)=log?(∏i=1nP(xi∣θ))=∑i=1nlog?P(xi∣θ)\ell(\theta | X) = \log L(\theta | X) = \log \left( \prod_{i=1}^{n} P(x_i | \theta) \right) = \sum_{i=1}^{n} \log P(x_i | \theta) ?(θ∣X)=logL(θ∣X)=log(i=1∏n?P(xi?∣θ))=i=1∑n?logP(xi?∣θ)
為什么要取對數?
- 簡化計算:將乘積轉換為求和,避免數值下溢或上溢問題。
- 數學性質:對數函數是單調遞增的,因此最大化對數似然函數等價于最大化似然函數。
- 統計意義:對數似然函數在統計推斷中具有良好的性質,例如漸近正態性。
3. 負對數似然函數的定義
負對數似然函數 NLL(θ∣X)\text{NLL}(\theta | X)NLL(θ∣X)是對數似然函數的負值。它將最大化似然函數的問題轉化為最小化損失函數的問題,便于在機器學習中使用優化算法。
NLL(θ∣X)=??(θ∣X)=?∑i=1nlog?P(xi∣θ)\text{NLL}(\theta | X) = -\ell(\theta | X) = -\sum_{i=1}^{n} \log P(x_i | \theta) NLL(θ∣X)=??(θ∣X)=?i=1∑n?logP(xi?∣θ)
為什么要取負值?
在機器學習中,優化問題通常被表述為最小化某個損失函數。取負對數似然函數的目的是將最大化似然函數的問題轉化為最小化損失函數的問題。具體來說:
- 最大化似然函數:max?θ?(θ∣X)\max_{\theta} \ell(\theta | X)maxθ??(θ∣X)
- 最小化負對數似然函數: min?θNLL(θ∣X)\min_{\theta} \text{NLL}(\theta | X)minθ?NLL(θ∣X)
這兩個優化問題是等價的,因為對數函數是單調遞增的。
4. 負對數似然函數的優化
在實際應用中,通常通過最小化負對數似然函數來估計模型參數 θ\thetaθ。具體步驟如下:
- 定義模型:選擇一個概率模型 P(x∣θ)P(x | \theta)P(x∣θ),例如高斯分布、伯努利分布等。
- 計算負對數似然函數:根據模型和數據,計算負對數似然函數 NLL(θ∣X)\text{NLL}(\theta | X)NLL(θ∣X)。
- 優化參數:通過梯度下降或其他優化算法,最小化負對數似然函數,找到最優參數 θ^\hat{\theta}θ^。
梯度下降法:假設使用梯度下降法來優化參數θ\thetaθ。梯度下降的更新規則為:
θnew=θold?η?θNLL(θ∣X)\theta_{\text{new}} = \theta_{\text{old}} - \eta \nabla_{\theta} \text{NLL}(\theta | X) θnew?=θold??η?θ?NLL(θ∣X)
其中:
- η\etaη 是學習率,控制每次迭代的步長。
- ?θNLL(θ∣X)\nabla_{\theta} \text{NLL}(\theta | X)?θ?NLL(θ∣X) 是負對數似然函數對參數θ\thetaθ 的梯度。
5. 具體應用示例
5.1 邏輯回歸中的負對數似然函數
假設有一個二分類問題,使用邏輯回歸模型。邏輯回歸模型的輸出是樣本屬于類別 1 的概率:
P(y=1∣x,θ)=σ(θTx)P(y = 1 | x, \theta) = \sigma(\theta^T x) P(y=1∣x,θ)=σ(θTx)
其中 σ(z)=11+e?z\sigma(z) = \frac{1}{1 + e^{-z}}σ(z)=1+e?z1?是 Sigmoid 函數。
對于二分類問題,似然函數可以表示為:
L(θ∣X,y)=∏i=1nP(yi∣xi,θ)L(\theta | X, y) = \prod_{i=1}^{n} P(y_i | x_i, \theta) L(θ∣X,y)=i=1∏n?P(yi?∣xi?,θ)
其中yi∈{0,1}y_i \in \{0, 1\}yi?∈{0,1}是第 iii個樣本的標簽。
對數似然函數為:
?(θ∣X,y)=∑i=1nlog?P(yi∣xi,θ)=∑i=1n[yilog?σ(θTxi)+(1?yi)log?(1?σ(θTxi))]\ell(\theta | X, y) = \sum_{i=1}^{n} \log P(y_i | x_i, \theta) = \sum_{i=1}^{n} \left[ y_i \log \sigma(\theta^T x_i) + (1 - y_i) \log (1 - \sigma(\theta^T x_i)) \right] ?(θ∣X,y)=i=1∑n?logP(yi?∣xi?,θ)=i=1∑n?[yi?logσ(θTxi?)+(1?yi?)log(1?σ(θTxi?))]
負對數似然函數為:
NLL(θ∣X,y)=?∑i=1n[yilog?σ(θTxi)+(1?yi)log?(1?σ(θTxi))]\text{NLL}(\theta | X, y) = -\sum_{i=1}^{n} \left[ y_i \log \sigma(\theta^T x_i) + (1 - y_i) \log (1 - \sigma(\theta^T x_i)) \right] NLL(θ∣X,y)=?i=1∑n?[yi?logσ(θTxi?)+(1?yi?)log(1?σ(θTxi?))]
5.2 優化邏輯回歸的負對數似然函數
為了優化邏輯回歸模型的參數θ\thetaθ,需要計算負對數似然函數的梯度:
?θNLL(θ∣X,y)=?∑i=1n[yi??θlog?σ(θTxi)+(1?yi)??θlog?(1?σ(θTxi))]\nabla_{\theta} \text{NLL}(\theta | X, y) = -\sum_{i=1}^{n} \left[ y_i \frac{\partial}{\partial \theta} \log \sigma(\theta^T x_i) + (1 - y_i) \frac{\partial}{\partial \theta} \log (1 - \sigma(\theta^T x_i)) \right] ?θ?NLL(θ∣X,y)=?i=1∑n?[yi??θ??logσ(θTxi?)+(1?yi?)?θ??log(1?σ(θTxi?))]
通過鏈式法則,可以得到:
??θlog?σ(θTxi)=σ′(θTxi)σ(θTxi)xi\frac{\partial}{\partial \theta} \log \sigma(\theta^T x_i) = \frac{\sigma'(\theta^T x_i)}{\sigma(\theta^T x_i)} x_i ?θ??logσ(θTxi?)=σ(θTxi?)σ′(θTxi?)?xi?
??θlog?(1?σ(θTxi))=?σ′(θTxi)1?σ(θTxi)xi\frac{\partial}{\partial \theta} \log (1 - \sigma(\theta^T x_i)) = \frac{-\sigma'(\theta^T x_i)}{1 - \sigma(\theta^T x_i)} x_i ?θ??log(1?σ(θTxi?))=1?σ(θTxi?)?σ′(θTxi?)?xi?
其中 σ′(z)=σ(z)(1?σ(z))\sigma'(z) = \sigma(z)(1 - \sigma(z))σ′(z)=σ(z)(1?σ(z))是 Sigmoid 函數的導數。
因此,負對數似然函數的梯度可以簡化為:
?θNLL(θ∣X,y)=?∑i=1n[yiσ(θTxi)(1?σ(θTxi))σ(θTxi)xi?(1?yi)σ(θTxi)(1?σ(θTxi))1?σ(θTxi)xi]\nabla_{\theta} \text{NLL}(\theta | X, y) = -\sum_{i=1}^{n} \left[ y_i \frac{\sigma(\theta^T x_i)(1 - \sigma(\theta^T x_i))}{\sigma(\theta^T x_i)} x_i - (1 - y_i) \frac{\sigma(\theta^T x_i)(1 - \sigma(\theta^T x_i))}{1 - \sigma(\theta^T x_i)} x_i \right] ?θ?NLL(θ∣X,y)=?i=1∑n?[yi?σ(θTxi?)σ(θTxi?)(1?σ(θTxi?))?xi??(1?yi?)1?σ(θTxi?)σ(θTxi?)(1?σ(θTxi?))?xi?]
進一步簡化為:
?θNLL(θ∣X,y)=?∑i=1n[yi(1?σ(θTxi))?(1?yi)σ(θTxi)]xi\nabla_{\theta} \text{NLL}(\theta | X, y) = -\sum_{i=1}^{n} \left[ y_i (1 - \sigma(\theta^T x_i)) - (1 - y_i) \sigma(\theta^T x_i) \right] x_i ?θ?NLL(θ∣X,y)=?i=1∑n?[yi?(1?σ(θTxi?))?(1?yi?)σ(θTxi?)]xi?
最終得到:
?θNLL(θ∣X,y)=?∑i=1n[yi?σ(θTxi)]xi\nabla_{\theta} \text{NLL}(\theta | X, y) = -\sum_{i=1}^{n} \left[ y_i - \sigma(\theta^T x_i) \right] x_i ?θ?NLL(θ∣X,y)=?i=1∑n?[yi??σ(θTxi?)]xi?
這個公式是邏輯回歸模型中負對數似然函數的梯度,它在模型訓練中用于參數的優化。