機器學習(七)EM算法、GMM
一、GMM算法
EM算法實在是難以介紹清楚,因此我們用EM算法的一個特例GMM算法作為引入。
1、GMM算法問題描述
GMM模型稱為混合高斯分布,顧名思義,它是由幾組分別符合不同參數的高斯分布的數據混合而成的。
假設有n個樣本點\(x_{1},x_{2},...,x_{n}\),它們來自K個不同的高斯分布。有如下參數:
1、不同高斯分布的數據占比:\(\pi_{i}\)
2、每個高斯分布的均值與方差:\(\pi_{i}~N(\mu_{i},\sigma_{i}^2)\)
我們的目的是求出每個\(\pi_{i}\),\(\mu_{i}\),\(\sigma_{i}\)
因此我們的目標即是求合適的\(\pi_{i}\),\(\mu_{i}\),\(\sigma_{i}\)來最大化對數似然函數。
\[l_{\pi,\mu\sigma}(x)=\sum^{N}_{i=1}log[\sum^{K}_{k=1}\pi_{k}N(x_{I}|\mu_{k},\sigma_{k})]
\]
這個目標函數中既有對數又有加和,因此不能直接求導因此我們采用迭代的方法。
2、GMM迭代方法描述
Step1:對于每一個樣本點i,計算它由不同組分(第k個組分)生成的概率$$r(i,k)=\dfrac{\pi_{k}N(x_{i}|\mu_{k},\sigma_{k})}{\sum^{K}{j=1}\piN(x_{i}|\mu_{j},\sigma_{j})}$$
Step2:由各個樣本點的\(r(i,k)\)更新參數\(\pi_{i}\),\(\mu_{i}\),\(\sigma_{I}\)
Step3:回到Step1,迭代更新
這其實就是EM算法的E步和M步的過程。
下面給出通用的EM算法偽代碼。
3、EM算法
其中,E步的那個\(Q\)就是第i個樣本的分布,就是那個\(r(i,k)\)
這個形式可以推導可得,其實是等價的
M步中,那個公式就是對數似然函數,求使它最大化的參數
總結:EM算法說到底是一個迭代更新的過程。它首先對各個樣本計算分布,然后更新參數;再計算分布,再更新參數……
浙公網安備 33010602011771號