一文讓你完全入門EM算法

2021-03-06 機器學習初學者

EM(Expectation Maximum,期望最大化)是一種迭代算法,用於對含有隱變量概率參數模型的極大似然估計或極大後驗估計。模型參數的每一次迭代,含有隱變量概率參數模型的似然函數都會增加,當似然函數不再增加或增加的值小於設置的閾值時,迭代結束。

 

EM算法在機器學習和計算機視覺的數據聚類領域有廣泛的應用,只要是涉及到後驗概率的應用,我們都可以考慮用EM算法去解決問題。EM算法更像是一種數值分析方法,正確理解了EM算法,會增強你機器學習的自學能力,也能讓你對機器學習算法有新的認識,本文詳細總結了EM算法原理。

目錄

1. 只含有觀測變量的模型估計

2. 含有觀測變量和未觀測變量的模型參數估計

3. EM算法流程

4. 拋硬幣問題舉例

5. 高斯混合模型的參數估計

6. 聚類蘊含的EM算法思想

7. 小結

我們首先考慮比較簡單的情況,即模型只含有觀測變量不含有隱藏變量,如何估計模型的參數?我們用邏輯斯蒂回歸模型(logistic regression model)來解釋這一過程。

假設數據集有d維的特徵向量X和相應的目標向量Y,其中,。下圖表示邏輯斯蒂回歸模型:

由之前的文章介紹,邏輯斯蒂回歸模型的目標預測概率是S型函數計算得到,定義為:

,則目標預測變量為1;反之,目標預測變量為0。其中w是待估計的模型參數向量。

機器學習模型的核心問題是如何通過觀測變量來構建模型參數w,最大似然方法是使觀測數據的概率最大化,下面介紹用最大似然方法(Maximum Likelihood Approach)求解模型參數w。

假設數據集,樣本數據,模型參數

觀測數據的對數似然函數可寫為:

由對數性質可知,上式等價於:

式(1)代入式(2),得:

其中:

由於(3)式是各個樣本的和且模型參數間並無耦合,因此用類似梯度上升的迭代優化算法去求解模型參數w。

因為:

由式(4)(5)(6)可得:

因此,模型參數w的更新方程為:

其中η是學習率。

根據梯度更新方程(7)迭代參數w,似然函數L(w)逐漸增加,當似然函數收斂時,模型參數w不再更新,這種參數估計方法稱為最大似然估計。

上節介紹當模型只含有觀測變量時,我們用極大似然估計方法計算模型參數w。但是當模型含有隱變量或潛在變量(latent)時,是否可以用極大似然估計方法去估計模型參數,下面我們討論這一問題:

假設V是觀測變量,Z是隱變量,是模型參數,我們考慮用極大似然估計方法去計算模型參數:

由於隱變量在log內部求和,造成不同參數間相互耦合,因此用極大似然方法估計模型參數非常難。(8)式不能估計模型參數的主要原因是隱變量,若隱變量Z已知,完全數據的似然函數為,為了書寫方便,觀測變量V,Y統一用V表示,即

那麼問題來了,如何通過已觀測變量估計隱變量Z的值?這個時候我們想到了後驗概率:

EM算法最大化完全數據在隱變量分布的對數似然函數期望,得到模型參數,即:

現在我們總結EM算法的流程:

1)初始化模型參數

2)E步估計隱變量的後驗概率分布:

3)M步估計模型參數

4)當模型參數或對數似然函數收斂時,迭代結束;反之,返回第(2)步,繼續迭代。

上節我們介紹了EM算法的模型參數估計過程,相信大家會有個疑問:為什麼最大化下式來構建模型參數。

下面我給大家解釋這一算法的推導過程以及其中蘊含的含義:

假設隱藏變量的理論分布為,觀測數據的對數似然函數可以分解為下式:

由貝葉斯理論可知:

(9)式得:

分子分母除q(Z),得:

(10)式第二項表示相對熵,含義為隱變量後驗概率分布與理論概率分布的差異,相對熵的一個性質是:

根據(10)式我們推斷:

因此觀測數據的對數似然函數的下界為,如果我們能夠極大化這個下界,那麼同時也極大化了可觀測數據的對數似然函數。

當相對熵等於0時,即:

由上式得到隱藏變量的後驗概率分布與理論分布相等,即:

進而(11)式等號成立,即:

取得上界,現在我們需要最大化的上界,即:

當相對熵等於0時,式(12)代入式(13)得到的上界為:

式(15)的第二項對應隱變量的熵,可看成是常數,因此最大化(15)式等價於最大化,其中:

最大化(16)式對應上節介紹EM算法的M步。

是不是對EM算法有了新的認識,本節重新整理算法EM的流程:

1)初始化模型參數為

2)當等式(12)成立時,取得上界,最大化等價於最大化下式:

3)最大化,返回參數

4)當收斂時,迭代結束;否則,算法返回到第(2)步繼續迭代;

為了大家清晰理解這一算法流程,下面用圖形表示EM算法的含義。

E步:模型參數是時,由(13)式可知,用黑色實心點標記;

M步:最大化,返回參數,用紅色實心點標記;

,重複E步和M步,當收斂時,迭代結束。

我們有兩種硬幣A和B,選擇硬幣A和硬幣B的概率分別為π和(1-π),硬幣A和硬幣B正面向上的概率分別為p和q,假設觀測變量為,1,0表示正面和反面,i表示硬幣拋擲次數;隱變量,1,0表示選擇硬幣A和硬幣B進行拋擲。

問題:硬幣共拋擲n次,觀測變量已知的情況下求模型參數的更新表達式。

根據EM算法,完全數據的對數似然函數的期望:

其中表示觀測數據來自擲硬幣A的概率,用表示:

最大化,得到如下更新表達式:

現在我們知道了模型參數的更新方程,假設共拋擲硬幣10次,觀測結果如下:1,1,0,1,0,0,1,0,1,1。

初始化模型參數為:

由式(18)得:

利用模型參數更新得:

由式(18),得:

模型參數繼續更新:

因此,收斂時,最終的模型參數為:

表示選擇硬幣A和硬幣B的概率是一樣的,如果模型參數的初始值不同,得到的最終模型參數也可能不同,模型參數的初始化和先驗經驗有關。

一維變量的高斯分布:

其中u和分別表示均值和標準差。

n維變量的高斯分布:

其中u是n維均值向量,是n×n的協方差矩陣。

n維變量的混合高斯分布:

該分布共由k個混合成分組成,每個混合成分對應一個高斯分布,其中是第k個高斯混合成分的均值和協方差。

是歸一化混合係數,含義為選擇第k個高斯混合成分的概率,滿足以下條件:

下圖為k=3的高斯混合成分的概率分布圖(紅色):

假設由高斯混合分布生成的觀測數據,其對數似然函數:

我們用EM算法估計模型參數,其中隱變量對應模型的高斯混合成分,即對於給定的數據x,計算該數據屬於第k個高斯混合分布生成的後驗概率,記為

根據貝葉斯定律:

最大化式(19),令

由式(20)(21)(22)(23)可得模型參數:

下面小結EM算法構建高斯混合模型的流程:

1)初始化高斯混合模型的均值,協方差和混合係數,計算完全數據的對數似然值(式(19));

2)E步:使用當前的參數值,通過下式計算均值:

表示觀測數據x屬於第k個高斯混合成分的後驗概率;

3)M步:最大化對數似然函數,得到式(24)(25)(26)的模型更新參數;

4)根據更新的參數值,重新計算完全數據的對數似然函數:

若收斂,則得到最終的模型參數值;反之,回到算法第(2)步繼續迭代。

我們可以把聚類理解為:計算觀測數據x屬於不同簇類的後驗概率,記為,其中j是簇類個數(j=1,2,...,K),觀測數據x所屬的簇標記由如下確定:

我們可以用EM算法計算每個樣本由不同高斯混合成分生成的後驗概率,步驟可參考上一節。

【例】 如下的觀測數據,假設簇類個數K=2,初始化每個高斯混合參數得到,根據式(27)得到聚類結果:

根據上一節介紹的EM算法步驟,迭代1次後得到,根據式(27)得到聚類結果:

迭代5次後得到,根據式(27)得到聚類結果:

迭代20次後的,根據式(27)得到聚類結果:

k均值聚類是高斯混合聚類的特例,k均值假設各個維是相互獨立的,其算法過程也可用EM思想去理解:

1)初始化簇類中心;

2)E步:通過簇類中心計算每個樣本所屬簇類的後驗概率

3)M步:最大化當前觀測數據的對數似然函數,更新簇類中心

4)當觀測數據的對數似然函數不再增加時,迭代結束;反之,返回(2)步繼續迭代;

EM算法在各領域應用極廣,運用了後驗概率,極大似然方法和迭代思想構建最優模型參數,後續文章會介紹EM算法在馬爾科夫模型的應用,希望通過這篇文章能讓讀者對EM算法不再陌生。

參考

https://towardsdatascience.com

備註:加入本站微信群或者qq群,請回復「加群

加入知識星球(4400+用戶,ID:92416895),請回復「知識星球

相關焦點

  • EM算法入門教程
    EM算法在機器學習和計算機視覺的數據聚類領域有廣泛的應用,只要是涉及到後驗概率的應用,我們都可以考慮用EM算法去解決問題。EM算法更像是一種數值分析方法,正確理解了EM算法,會增強你機器學習的自學能力,也能讓你對機器學習算法有新的認識,本文詳細總結了EM算法原理。目錄1.
  • EM算法簡介
    一 初識EM算法EM算法全稱Expectation Maximization算法,即期望最大化算法。四 推導接近EM的優化算法小綠同學算法分為1.0和2.0兩個版本對該小紅一頓瞎扔製造的難題進行了嘗試:a) 小綠算法1.0: 迭代,分步計算未知量借鑑KMeans算法的思想,小綠構造出這樣一個迭代算法,我們稱之為小綠算法1.0:1 設定各個硬幣的參數的初始估計值
  • EM算法詳解
    EM算法若干思考    5.1 對EM算法的初始化研究    5.2 EM算法是否一定收斂?    5.3 如果EM算法收斂,能否保證收斂到全局最大值?6. EM算法實例7. 對EM算法總結1.證明過程如下:【1】EM算法原理總結 - 劉建平Pinard - 博客園地址:http://www.cnblogs.com/pinard/p/6912636.html6. EM算法實例EM算法是在數據不完全的情況下的參數估計。我們用一個投硬幣的例子來解釋EM算法流程。
  • 數據挖掘算法:EM算法
    (點擊上方公眾號,可快速關注)轉自:Treanthttp://www.cnblogs.com/en-heng/p/5994192.html好文投稿
  • 小夕的算法入門之路
    小夕都快要成XX入門指導專業戶了QAQ,小夕是要寫人工智慧和計算機乾貨的啊喂~好吧,問小夕如何入門算法的小夥伴太多了,還是寫一篇文章吧。
  • 聚類之EM算法
    定義:在統計計算中,最大期望(EM)算法是在概率模型中(E步)尋找參數最大似然估計或者最大後驗估計(M步)的算法,其中概率模型依賴於無法觀測的隱藏變量(LatentVariable),聚類應用中就是隱藏的類別。
  • 深入理解EM算法
    還是用一男一女比較身高為例,假設有一個人比另一個人高,反推他可能是男性。最大似然估計是一種通過已知結果,估計參數的方法。」上面說的這些是啥?EM 算法到底是什麼?它和最大似然估計又有什麼關係呢?你知道嗎?一開始我提到這樣一句話:★如果使用基於最大似然估計的模型,模型中存在隱變量的時候,就要用到EM算法去做估計」這裡的第二列,就是隱含的數據,而A和B就是隱變量。實際中我們是不知道這一列的,就是開始給你的只有實驗組數和正面的次數, 那麼你該怎麼辦呢?
  • 新手入門 | 算法書籍推薦
    書籍語言一般是C或者C++語言,因此在學習下面這些書籍時,希望你能夠已經掌握了C語言的基礎知識,後面公眾號也將陸續簡單的補上C語言的學習和回顧,這樣對於連C語言都不熟的萌新,也可以在這裡多看多提問。        好了,讓我們開始吧!        這本書相對於算法導論要簡單一些,更適合入門。算法導論其實有比較強的理論性,看起來比較吃力。
  • EM算法初探
    EM算法詳解EM算法,全稱為Expectation Maximum Algorithm,是一個基礎算法,是很多機器學習領域算法的基礎(如HMM,LDA等)。EM算法是在「概率模型中尋找參數最大似然估計或者最大後驗估計的算法,其中概率模型依賴於無法觀測的隱含變量。」
  • EM算法
    在推導EM算法之前,先引用《統計學習方法》中EM算法的例子:例1.
  • EM算法的九層境界:​Hinton和Jordan理解的EM算法
    是什麼原因使得EM算法這麼流行呢?EM算法是Hinton和Jordan強強發力的領域,本文作者縱向解析EM算法的9層境界,深入淺出,值得一讀。Hinton, 這個深度學習的締造者( 參考 攢說 Geoff Hinton ) , Jordan 當世概率圖模型的集大成者(參考 「喬丹上海行」), 他們碰撞的領域,EM算法!這個是PCA外的,另外一個無監督學習的經典,是我們的主題。
  • 學會這10種機器學習算法你才算入門
    v=jbwSCwoT51M這是大家最喜歡的無監督聚類算法。給定一組向量形式的數據點,我們可以根據它們之間的距離製作點集群。這是一個期望最大化算法,它迭代地移動集群中心,然後架構每集群中心點聚焦在一起。該算法所採用的輸入是將要生成的集群的數量,以及它將嘗試聚集集群的迭代次數。
  • 入門 | 從Q學習到DDPG,一文簡述多種強化學習算法
    、SARSA、DQN 和 DDPG 算法。強化學習入門通常,強化學習的設置由兩部分組成,一個是智能體(agent),另一個是環境(environment)。大多數強化學習算法遵循這一模式。下面我將簡要介紹強化學習中的一些術語,以方便下一節的討論。定義1. 動作(A):智能體可以採取的所有可能的行動。2. 狀態(S):環境返回的當前情況。3. 獎勵(R):環境的即時返回值,以評估智能體的上一個動作。4.
  • EM算法原理總結
    EM算法也稱期望最大化(Expectation-Maximum,簡稱EM)算法,它是一個基礎算法,是很多機器學習領域算法的基礎,比如隱式馬爾科夫算法(HMM), LDA主題模型的變分推斷等等。本文就對EM算法的原理做一個總結。EM算法要解決的問題我們經常會從樣本觀察數據中,找出樣本的模型參數。
  • EM算法是鍊金術嗎?
    我近兩年碰巧在研究用以改進EM算法的新算法:http://survivor99.com/lcg/CM/Recent.html,對EM算法存在的問題比較清楚。我的初步結論是:EM算法雖然在理論上有問題,但是確實煉出金子了。反過來也可以說,雖然EM算法練出金子了,但是收斂很不可靠,流行的解釋EM算法的收斂理由更是似是而非。
  • 五大常用算法:一文搞懂分治算法
    ,本篇就帶你較為全面的去認識和了解分治算法。在學習分治算法之前,問你一個問題,相信大家小時候都有存錢罐的經歷,父母親人如果給錢都會往自己的寶藏中存錢,我們每隔一段時間都會清點清點錢。分治算法經典問題對於分治算法的經典問題,重要的是其思想,因為我們大部分藉助遞歸去實現,所以在代碼實現上大部分都是很簡單,而本篇也重在講述思想。分治算法的經典問題,個人將它分成兩大類:子問題完全獨立和子問題不完全獨立。1 .
  • 邀請你加入算法每日一題組織!
    我們來自世界各地,因算法題而相遇。我們中有分布在全球的本科生、研究生,也有各個領域的資深開發者;我們中有剛剛入門的算法小白,也有在算法競賽中排名全球前列的選手;我們在不到兩個月的時間內,吸引了800多位成員加入。我們聚集在一起,就是為了:攻克算法題!
  • 從最大似然到EM算法淺解
    如果只講簡單的,就丟失了EM算法的精髓,如果只講數學推理,又過於枯燥和生澀,但另一方面,想把兩者結合起來也不是件容易的事。所以,我也沒法期待我能把它講得怎樣。希望各位不吝指導。一、最大似然扯了太多,得入正題了。
  • 長文分享:AI算法工程師煉成之路
    作者回顧了自己成長為一名算法工程師,並分享了入門機器學習的經驗,以及學習資源。這是一篇關於如何成為一名AI算法工程師的長文。作者回顧了自己成長為一名算法工程師,進行了經驗總結。然後如果你要做智能問答你要知道現在最發達的技術是深度學習,使用的算法有RNN/LSTM/Seq2Seq/等等一系列。而我的清晰目標是在實習的時候給我的任務。當任務很明確的時候,所需要的語言就明確了,所要學習的算法也就明確了,很多東西就順理成章了不用一頭亂撞了。
  • 【教程】html+css零基礎入門教程(十)
    為了避免出現這種顯示問題,建議針對負縮進再設置一個外邊距或一些內邊距:p{text-indent: -5em; padding-left: 5em;}效果如下:F2E.TMING F2E.TMING F2E.TMING使用百分比值text-indent 可以使用所有長度單位,包括百分比值。