1. 程式人生 > >資料學習(9)·最大期望演算法·混合高斯模型(上)

資料學習(9)·最大期望演算法·混合高斯模型(上)

作者課堂筆記摘錄,有問題請聯絡 [email protected]

Preview

    1. 高斯混合模型(Mixture of Gaussians)
    1. 最大期望演算法(EM)
    1. 因子分析(Factor Analysis)

1 高斯混合(Mixture of Gaussians)

1
什麼是高斯混合模型,我們可以簡單理解為資料的生成來自不同的高斯分佈,如上的鳶尾花資料集的例子,我們可以理解資料的生成是通過不同的高斯分佈產生的,可推廣到一般混合模型,只不過高斯分佈我們使用的比較多而已。


一個混合模型假設資料產生於下列步驟:

  • <1> 隱變數 z ( i ) 1....
    K z^{(i)}\in{1....K}
    ,並且 z ( i )
    M u l t i n o m i a l ( ϕ ) z^{(i)}\sim Multinomial(\phi)

    p ( z ( i ) = j ) = ϕ j f o r a l l j p(z^{(i)}=j)=\phi_j \quad for \quad all\quad j
    我們可以理解這個 z z 為隱變數,也就是當資料產生時選擇第幾個高斯分佈來產生這個資料。
  • <2> 觀測資料 x ( i ) x^{(i)} 來自分佈 p ( z ( i ) , x ( i ) ) : p(z^{(i)},x^{(i)}):
    p ( z ( i ) , x ( i ) ) = p ( z ( i ) ) p ( x ( i ) z ( i ) ) p(z^{(i)},x^{(i)})=p(z^{(i)})p(x^{(i)}|z^{(i)})
    可以理解為觀測資料的產生也取決於隱變數,也就是當我們想要產生該資料時首先以一定的概率選擇適合的高斯分佈,之後在此分佈下產生資料。

z ( i ) M u l t i n o m i a l ( ϕ ) z^{(i)}\sim Multinomial(\phi)
x ( i ) z ( i ) N ( μ j , Σ j ) x^{(i)}|z^{(i)}\sim \N(\mu_j,\Sigma_j)
怎麼學習所有的引數 ϕ j , μ j , Σ j ? \phi_j,\mu_j,\Sigma_j?

  • 如果 z ( i ) z^{(i)} 是已知的:
    (監督學習)使用最大似然估計來學習引數,類比之前部落格二次判別分析.
  • 如果 z ( i ) z^{(i)} 是未知的:
    (無監督學習)使用最大期望演算法。

2 最大期望演算法(EM)

最大期望演算法是一種迭代演算法當模型中還有隱變數時,求最大似然估計的一種方法。
資料的最大似然估計:
l ( θ ) = i = 1 m l o g p ( x ; θ ) = i = 1 m l o g z p ( x , z ; θ ) l(\theta)=\sum_{i=1}^mlogp(x;\theta)=\sum_{i=1}^mlog\sum_zp(x,z;\theta)
我們可以如此理解上式,我們可以用X表示觀測隨機變數的資料,Z表示隱隨機變數的資料。X和Z連在一起稱為完全資料,觀測資料X又稱為不完全資料。假定給出觀測資料X,其概率分佈 P ( X θ ) P(X|\theta) 其中 θ \theta 是需要估計的模型引數,那麼不完全資料X的似然函式是 P ( X θ ) P(X|\theta) ,對數似然函式是 L ( θ ) = l o g P ( X θ ) L(\theta)=logP(X|\theta) ;假設X和Z的聯合概率分佈是 P ( X , Z θ ) P(X,Z|\theta) ,那麼完全資料對數似然函式是 l o g P ( X , Z θ ) logP(X,Z|\theta) .

EM 演算法通過迭代求 l o g P ( X θ ) logP(X|\theta) 的極大似然估計,每次迭代分為兩步:E步求期望,M步求極大值。


廣義的EM演算法:

  • 初始化 θ \theta
  • 重複直到收斂{

E-Step:

對於每個 i i ,使 Q i ( z ( i ) ) : = p ( z ( i ) x ( i ) ; θ ) Q_i(z^{(i)}):=p(z^{(i)}|x^{(i)};\theta)

M-Step:

使 θ : = a r g m a x θ i z ( i ) Q i ( z ( i ) ) l o g p ( x i , z ( i ) ; θ ) Q i ( z ( i ) ) ( ) \theta:=argmax_\theta\sum_i\sum_{z^{(i)}}Q_i(z^{(i)})log\frac{p(x^{i},z^{(i)};\theta)}{Q_i(z^{(i)})}(*)