EM算法
原文鏈接:https://www.cnblogs.com/zdz8207/p/DeepLearning-em-gosimix.html
本文經過一定修改,個人認爲原文中存在符號混用情況,對Q函數的角碼使用不太清晰,容易暈
假設訓練集是由m個獨立的樣本構成。我們的目的是要對概率密度函數進行參數估計。它的似然函數爲:
然而僅僅憑藉似然函數,無法對參數進行求解。因爲這裏的隨機變量是未知的。
EM算法提供了一種巧妙的方式,可以通過逐步迭代逼近最大似然值。下面就來介紹下EM算法:
假設對於所有j,爲隨機變量的第j個分佈函數(在此時i爲固定量即:。那麼:
其中第(2)步至第(3)步的推導就使用了Jensen不等式。其中:f(x)=log x,,因此爲凸函數;表示隨機變量爲概率分佈函數爲的期望。因此有:
這樣,對於任意分佈,(3)都給出了的一個下界。如果我們現在通過猜測初始化了一個的值,我們希望得到在這個特定的下,更緊密的下界,也就是使等號成立。根據Jensen不等式等號成立的條件,當爲一常數時,等號成立。即:
上述等式最後一步使用了貝葉斯公示。最後一個公式表示第i個樣本屬於隱含變量的第j個分佈的概率
結論:得出了Q函數公式,在EM算法中可以直接使用,
EM算法有兩個步驟:
(1)通過設置初始化值,求出使似然方程最大的值,此步驟稱爲E-步(E-step)
(2)利用求出的值,更新。此步驟稱爲M-步(M-step)。過程如下:
repeat until convergence{
(E-step) for each i, set
(M-step) set