先備知識
- 多變量高斯分佈 (Multivariate Gaussian Distribution)
- 最大似然估計 (Maximum Likelihood Estimation, MLE)
- 矩陣代數中的跡數技巧 (Trace Trick): xTAx=tr(xTAx)=tr(AxxT)
- 矩陣微積分 (Matrix Calculus)
逐步推導 (Step-by-Step Derivation)
1. 回顧對數似然函數 (Log-Likelihood Function)
根據第 (a) 部分的推導,來自多變量高斯分佈的 N 個 i.i.d. 樣本的對數似然函數為:
ℓ(μ,Σ)=i=1∑N(−2dlog(2π)−21log∣Σ∣−21(xi−μ)TΣ−1(xi−μ))
我們希望相對於 Σ 將其最大化。提取出只包含 Σ 的項:
J(Σ)=−2Nlog∣Σ∣−21i=1∑N(xi−μ)TΣ−1(xi−μ)
2. 應用跡數技巧 (Trace Trick)
項 (xi−μ)TΣ−1(xi−μ) 是一個標量 (scalar)。標量的跡數 (trace) 等於它本身。根據跡運算的循環性質 tr(ABC)=tr(CAB)=tr(BCA),我們可以重新排列因子:
(xi−μ)TΣ−1(xi−μ)=tr((xi−μ)TΣ−1(xi−μ))=tr((xi−μ)(xi−μ)TΣ−1)
現在,將其代回 J(Σ) 並交換求和與跡數操作(因為跡數是一個線性算子):
J(Σ)=−2Nlog∣Σ∣−21tr(i=1∑N(xi−μ)(xi−μ)TΣ−1)
我們定義散佈矩陣 (scatter matrix) S=∑i=1N(xi−μ)(xi−μ)T。請注意 S 是一個 d×d 的對稱矩陣。目標函數簡化為:
J(Σ)=−2Nlog∣Σ∣−21tr(SΣ−1)
3. 計算矩陣導數 (Compute Matrix Derivative)
現在我們對 J(Σ) 關於矩陣 Σ 求偏導。
使用提示給出的公式:
- ∂Σ∂log∣Σ∣=Σ−T
- ∂Σ∂tr(SΣ−1)=−(Σ−TSTΣ−T)
應用這些規則:
∂Σ∂J(Σ)=−2NΣ−T−21(−(Σ−TSTΣ−T))
由於 Σ 是對稱矩陣,ΣT=Σ,因此 Σ−T=(Σ−1)T=Σ−1。
由於 S 是外積項 (xi−μ)(xi−μ)T 的和,S 同樣是對稱的 (ST=S)。
因此,方程式可以簡化為:
∂Σ∂ℓ=−2NΣ−1+21Σ−1SΣ−1
4. 設為零並求解 Σ^
將導數設為零矩陣:
−2NΣ−1+21Σ−1SΣ−1=0
2NΣ−1=21Σ−1SΣ−1
在等式兩側分別從左邊乘上 Σ,然後再從右邊乘上 Σ:
NΣΣ−1Σ=ΣΣ−1SΣ−1Σ
NΣ=S
求解估計值 Σ^:
Σ^ML=N1S=N1i=1∑N(xi−μ)(xi−μ)T
假設我們用第 (a) 部分推導出來的最大似然估計 μ^ 來替換真實的均值 μ,那麼最終協方差矩陣的最大似然估計為:
Σ^ML=N1i=1∑N(xi−μ^)(xi−μ^)T