EM算法 大白话讲解
假設有一堆數據點,它是由兩個線性模型產生的。公式如下:
模型參數為a,b,n:a為線性權值或斜率,b為常數偏置量,n為誤差或者噪聲。
一方面,假如我們被告知這兩個模型的參數,則我們可以計算出損失。
對于第i個數據點,第k個模型會預測它的結果
則,與真實結果的差或者損失記為:
目標是最小化這個誤差。
但是仍然不知道具體哪些數據由對應的哪個模型產生的(缺失的信息)。
?
另一方面,假設我們被告知這些數據對應具體哪個模型,則問題簡化為求解約束條件下的線性方程解
(實際上可以計算出最小均分誤差下的解,^-^)。
?這兩個假設,都只知道其中的一部分信息,所以求解困難。
?EM算法就是重復迭代上述兩步,固定因素A,放開因素B,然后固定因素B,再放開因素A,直到模型收斂,
?如此迭代更新估計出模型的輸出值以及參數值。
?
具體如下:
--------------------------------------------------------------------------------------------------------
?在E步時,模型參數假定已知(隨機初始化或者聚類初始化,后續不斷迭代更新參數),
?計算出每個點屬于模型的似然度或者概率(軟判決,更加合理,后續可以不斷迭代優化,而硬判決不合理是因為之前的假定參數本身不可靠,判決準則也不可靠)。
根據模型參數,如何計算出每個點屬于模型的似然度或者概率?
計算出模型輸出值與真實值的殘差:
已知殘差,計算出i點屬于k模型的似然度(殘差與似然度建立關系):
貝葉斯展開
?
?=?,假設殘差與概率分布為高斯分布,殘差距離度量 轉換成 ?概率度量。
殘差越小,則由對應模型生成的概率越大。
根據產生的殘差,判斷i屬于模型k的歸屬概率
則,
?
完成點分配到模型的目的
--------------------------------------------------------------------------------------------------------
進入M步,知道各個點屬于對應模型的概率,估計出模型參數
絕對值差*概率,誤差(均方誤差)期望最小化
?最小化
求偏導:
置0,則上述兩公式展開為
?
改寫成 矩陣式:
?
?
完成計算出ak和bk參數
如此,反復迭代,收斂 ? ? ? ? ?
EM算法對敏感,每輪迭代它的更新推薦公式:
?--------------------------------------------------------------------------------
同樣地,在 GMM 中,我們就需要確定 影響因子pi(k)、各類均值pMiu(k)?和 各類協方差pSigma(k)?這些參數。 我們的想法是,找到這樣一組參數,它所確定的概率分布生成這些給定的數據點的概率最大,而這個概率實際上就等于??,我們把這個乘積稱作似然函數 (Likelihood Function)
沒法直接用求導解方程的辦法直接求得最大值。
不清楚這類數據是具體哪個高斯生成的,或者說生成的概率。
?E步中,確定出數據xi屬于第i個高斯的概率:通過計算各個高斯分量的后驗概率,占比求得。
?
解決了點歸屬哪個高斯的問題,這是缺失的信息。
M步中,重新計算出各個參數。
根據似然概率最大化,可以推出均值、方差、權重更新公式。
另外知道了各個點屬于各個高斯的概率,也可以直接計算求出 均值、方差、權重
如此E步和M步重復。 ? ? ? ? ? ? ? ?
參考:http://blog.csdn.net/abcjennifer/article/details/8198352 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
--------------------------------------------------------------------------------------------------------
?
總結
以上是生活随笔為你收集整理的EM算法 大白话讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全民直播CTO张云龙:已全面迁移至阿里云
- 下一篇: Maven FAQ