機器學習模型之EM演算法

2022-05-07 02:00:07 字數 1821 閱讀 7258

目錄em演算法是針對含有隱變數的一種優化演算法,如果不含有隱變數,我們可以直接利用極大似然估計方法,對需要優化的變數求導,用梯度下降的方法進行引數的更新。而當變數中含有隱變數時,就無法用極大似然估計方法,就需要用到em演算法進行迭代的求解,em演算法分為兩步,第一步是e步,即得到隱變數的期望,第二步是m步,即需要更新需要優化的引數。公式如下所示

\[q(\theta,\theta^) = \sum\limits_ p(z | y, \theta^) \log p(y , z| \theta)

\]第一步是求期望,這裡的期望是對隱變數的期望,這裡,我們首先根據先驗知識獲得\(\theta^\),這樣我們便可以得到\(p(z | y, \theta^)\),這個公式表示在已知\(\theta^\)的情況下,我們通過樣本資料得到在每乙個隱變數上的概率值,通過該概率值,便可以求出\(p(y , z| \theta)\),但是這裡的\(\theta\)是未知變數,我們進而對\(\theta\)進行求導,並令求導公式等於0,得到更新的\(\theta^\),即m步。

\[\theta^ = \mathop_ q(\theta,\theta^)

\]下面,我們來講解em演算法是如何得出來的。首先,得到需要優化的函式

\[l(\theta) = \log p(y | \theta) \\

= \log \sum\limits_ p(y,z| \theta) \\

= \log \sum\limits_ p(z | \theta) p(y | z,\theta)

\]接下來,我們定義

\[l(\theta) - l(\theta^) = \log \sum\limits_ p(z | \theta) p(y | z,\theta) - \log p(y | \theta^) \\

= \log \sum\limits_ p(z | y, \theta^) \frac )} - \log p(y | \theta^) \\

根據jensen不等式可以得到 \\

>= \sum\limits_ p(z | y, \theta^) \log \frac )} - \log p(y | \theta^) \\

= \sum\limits_ p(z | y, \theta^) \log \frac ) p(y | \theta^)}

\]我們令

\[b(\theta,\theta^) = l(\theta^) + \sum\limits_ p(z | y, \theta^) \log \frac ) p(y | \theta^)} \\

則 l(\theta) >= b(\theta,\theta^)

\]在什麼時候\(l(\theta)\)和\(b(\theta,\theta^)\)兩者相等呢?其實在\(l(\theta^)=b(\theta^,\theta^)\)時兩者相等,即在\(\theta= \theta^\)的時候兩者相等,由這個等式可知,\(l(\theta^)\)和\(b(\theta^,\theta^)\)同增同減,那麼我們只需要最大化\(b(\theta,\theta^)\)就可以更新\(\theta\)了,即

\[\theta^ = \mathop_ b(\theta,\theta^) \\

= \mathop_ l(\theta^) + \sum\limits_ p(z | y, \theta^) \log \frac ) p(y | \theta^)} \\

= \mathop_ \sum\limits_ p(z | y, \theta^) \log p(z | \theta) p(y | z,\theta) \\

= \mathop_ q(\theta,\theta^)

\]

機器學習 EM演算法

em演算法 最大期望演算法 expectation maximization algorithm,em 是為處理缺失資料的引數的估計問題,主要分為e步和m步交替組成,對給定的初始引數依賴較大。from numpy import import numpy as np import matplotlib...

機器學習演算法 EM演算法

介紹 理論分析 現在,已經知道目標函式 似然函式 maxj p x 假設隱變數為z,那麼可以寫成j zp x z 我們假設當前的引數為 i 那麼可以得到 j j i logp x logp x i log zp x,z logp x i log z p z x,i p x z p z x,i log...

機器學習演算法 EM演算法

e步 利用當前估計的引數值,求出在該引數下隱含變數的條件概率值 計算對數似然的期望值 m步 結合e步求出的隱含變數條件概率,求出似然函式下界函式的最大值 尋找能使e步產生的似然期望最大化的引數 值 然後,新得到的引數值重新被用於e步.直到收斂到區域性最優解。note 每次迭代實際在求q函式及其極大,...