統計學習方法筆記-EM演算法
一 EM演算法引入
EM演算法是一種用於含有隱變數的概率模型引數的極大似然估計。 它分為兩步進行: 第一步E步,求期望。第二步M步,求極大。 所以也被稱為期望極大演算法。
看了上面的描述可能會有疑問,什麼叫做含有隱變數的概率模型引數的極大似然估計。
我們首先說一下什麼叫做似然函式和極大似然估計:
在數理統計學中,似然函式是一種關於統計模型中的引數的函式,表示模型中引數的似然性,似然性類似於概率,指某種事件發生的可能性。
在通常情況下我們是根據已知條件來推測結果的,但極大似然估計是已知結果,我們選取讓這種結果出現概率最大的條件。
舉個例子,現在有一張滿分試卷,並且跟你說了這張試卷可能是小花或者是小明的(小花是眾所周知的學霸,小明是眾所周知的學渣) 。 問你這張試卷是誰的? 潛意識中你會覺得這是小花的。 這其中其實就蘊含了極大似然估計的道理。
在上述例子中,我們可以認為,結果是一張滿分試卷,引數是寫卷子的人{小花,小明}。我們已知了結果,選取引數是小花,可以讓我們的結果(滿分試卷)出現的概率最大。
在上述例子中我們除了引數是未知的其餘都是已知的,所以可以直接極大化似然函式來求解引數,但是如果我們的模型中,除了未知引數外,還有一些隱變數,我們又該如何去求解未知的引數呢?
我們看一下著名的三硬幣模型(它就是一個既含有未知引數又含有隱變數的概率模型)
假設有 3 枚硬幣,分別記作 A, B, C。這些硬幣正面出現的概率分別是π, p 和 q。進行如下擲硬幣試驗: 先擲硬幣 A,根據其結果選出硬幣 B 或硬幣 C,正面選硬幣 B,反面選硬幣 C; 然後擲選出的硬幣,擲硬幣的結果,出現正面記作1,出現反面記作 0; 獨立地重複 n 次試驗(這裡, n= 10) ,觀測結果如下: 1,1,0,1,0,0,1,0,1,1
假設只能觀測到擲硬幣的結果,不能觀測擲硬幣的過程。問如何估計三硬幣正面出現的概率,即三硬幣模型的引數。
根據這個例子我們先明確幾個概念
觀測變數: 模型中可以直接觀測,即在研究中能夠收集到的變數成為觀測變數。
隱變數: 模型中不可觀測的隨機變數,我們通常通過可觀測變數的樣本對隱變數作出推斷。
在三硬幣模型中,我們通過拋擲硬幣A確定了拋硬幣B或者C,之後通過一次拋擲我們得到了一個結果1或者0 ,這一次的結果就是可觀測的,我們稱其為觀測變數 ,記作隨機變數y。 而拋擲硬幣A的結果是不可觀測的,它就是一個隱變數,記作隨機變數z。 而引數就是硬幣A,B,C 正面出現的概率π,p,q
明白了這些以後,回到我們的問題,在有隱變數z的情況下,我們如何估計模型的引數?
我們先來看一個簡單的情況, 有一個硬幣,拋正面的概率是p 則拋反面的概率是 1-p ,在將這個硬幣拋擲10次後,我們得到一個觀測序列1,1,0,1,0,0,1,0,1,1 , 如何估計它的引數p
這個問題很顯然就是我們前面說的,已知結果,如何讓我們的結果出現的概率最大,當然用極大似然估計了。
答案是p為0.6 我們從直覺上看也是這樣的
好了迴歸我們這個問題 ,比較一下這兩個問題。 那個簡單的問題姑且把它稱為單硬幣模型。 我們發現三硬幣模型中包含了兩個單硬幣模型(用硬幣B進行拋擲,或者用硬幣C拋擲) 但它讓人難受的地方是,我們不確定到底選擇哪一個模型(硬幣A的結果決定選擇哪一個模型,但是結果是不確定的)
我們先來看一下三硬幣模型的表示形式
y是觀測變數 我們觀測的結果 也就是那個結果序列 1,1,0,1,0,0,1,0,1,1
z是隱變數 硬幣A的拋擲結果
Θ是模型引數 Θ=(Π,p,q)
在本例中EM演算法的主要思想如下:
E步:先隨機設定一下各種引數,然後再算一下在當前情況下每個樣本點屬於哪一個模型的概率值
M步:此時我們知道了一個樣本點屬於某個模型的概率,然後再次計算各個模型的引數;然後返回上一步,直至演算法收斂。
在我們的三硬幣模型中EM演算法又是怎麼應用的呢?
首先我們選取一個初值
我們假設第i次迭代時 引數是
EM演算法第i+1次迭代如下
二 EM演算法的推導
下面正式介紹一下EM演算法
一般地,用 Y 表示觀測隨機變數的資料, Z 表示隱隨機變數的資料。 Y 和 Z 連 在一起稱為完全資料 ,觀測資料 Y 又稱為不完全資料 。
假設給定觀測資料 y, 其概率分佈是 P(YIΘ), 其中Θ是需要估計的模型引數, 那麼不完全資料 Y 的似然函式是 P(YIΘ), 對數似然函式 L(Θ) = log P(YIΘ); 假設 Y 和 Z 的聯合概率分佈是: P(Y, ZIΘ) ,那麼完全資料的對數似然函式是 logP(Y, ZIΘ)。
介紹一個函式—Q函式
給出EM演算法的推導
EM 演算法通過迭代求 L(Θ) = log P(YIΘ) 的極大似然估計。每次迭代包含兩步: E 步,求期望;M 步,求極大化。下面來介紹 EM 演算法。
三 EM演算法的收斂性
我們在前面已經介紹了,EM演算法是一種迭代型別的演算法,它是通過逐步迭代來逼近最大值的, 所以就會帶來兩個問題,EM演算法在不斷迭代過程中可以收斂到一個值嗎? 如果可以的話這個值是否是全域性最大值或者區域性極大值?
先看一個定理
該定理證明如下
以上我們證明出似然函式P(Y|Θ) 是單調遞增的,則對數似然函式也是單調遞增的。
定理只能保證引數估計序列收斂到對數似然函式序列的穩定點,不能保證收斂到極大值點。 所以在應用中,初值的選擇變得非常重要,常用的辦法是選取幾個不同的初值進行迭代,然後對得到的各個估計值加以 比較,從中選擇最好的。
參考
李航《統計學習方法》
相關文章
- python機器學習筆記:EM演算法Python機器學習筆記演算法
- 統計學習方法筆記筆記
- 統計學習方法筆記-感知機學習方法筆記
- 【統計學習方法|筆記】第1章 統計學習方法理論筆記
- 統計學習:EM演算法及其在高斯混合模型(GMM)中的應用演算法模型
- 演算法學習筆記演算法筆記
- GO 方法學習筆記Go筆記
- 機器學習演算法學習筆記機器學習演算法筆記
- Tarjan 演算法學習筆記演算法筆記
- Floyd演算法學習筆記演算法筆記
- LMF演算法學習筆記演算法筆記
- 匈牙利演算法學習筆記演算法筆記
- 學習筆記1熱力學與統計物理筆記
- 學習筆記——物件方法整理筆記物件
- 機器學習經典演算法之EM機器學習演算法
- 演算法學習筆記:Kosaraju演算法演算法筆記
- 統計學習方法
- 莫隊演算法學習筆記演算法筆記
- Golang學習筆記之方法(method)Golang筆記
- 演算法學習筆記(3.1): ST演算法演算法筆記
- 機器學習十大演算法之EM演算法機器學習演算法
- 設計模式學習筆記設計模式筆記
- 學習筆記-設計模式筆記設計模式
- Java設計模式學習筆記(三) 工廠方法模式Java設計模式筆記
- CSS 小結筆記之emCSS筆記
- [演算法學習筆記] 並查集演算法筆記並查集
- 演算法學習筆記:2-SAT演算法筆記
- 機器學習筆記(KNN演算法)機器學習筆記KNN演算法
- 機器學習演算法:Logistic迴歸學習筆記機器學習演算法筆記
- Linux學習/TCP程式設計學習筆記LinuxTCP程式設計筆記
- 演算法學習筆記(40): 具體數學演算法筆記
- JavaScript學習筆記1: JS引入方法JavaScript筆記JS
- Python學習筆記|Python之特殊方法Python筆記
- 分散式系統學習筆記分散式筆記
- 【學習筆記】計算幾何筆記
- JavaScript設計模式學習筆記JavaScript設計模式筆記
- php設計模式學習筆記PHP設計模式筆記
- 深入理解計算機系統-學習筆記 (1)計算機筆記