請問一下大佬們,變分推斷是怎麼優化了EM演算法的,能否說得通俗易懂點?

時間 2021-06-06 01:24:17

1樓:包包

EM演算法是在具有無法觀測的隱變數 的概率模型中尋找引數最大似然估計或者最大後驗估計的演算法

其基本步驟如下:

計算期望(E步),基於現有的模型引數(或者隨機初始化的模型)對隱含變數的值進行猜測(估計),利用隱含變數現有的估計值,計算其最大似然的估計值。

最大化(M步),最大化在E步上求得的最大似然值來計算引數的值。M步上找到的引數估計值被用於下乙個E步計算中,這個過程是乙個啟發式的迭代演算法

乙個最直觀的EM演算法是K-Means。在K-Means聚類時,每個聚類的質心可以看成是隱含資料。我們會假設 個初始化質心,即EM演算法的E步;然後計算每個樣本和 個質心之間的距離,並把樣本聚類到最近的那個質心類中,即EM演算法的M步。

重複這個E步和M步質心不在變化為止。

這裡我假設提問者已經對EM演算法和變分推斷VI有一定的了解,所以就進行一點簡單的介紹。

對 個樣本觀察資料 中,找出樣本的模型引數 ,最大化模型分布的對數似然函式如下:

如果我們得到的觀察資料有未觀察到的隱含資料 ,此時我們模型的最大化(極大化)模型分布的對數似然函式如下:

對於引數估計,我們本質上還是想獲得乙個使似然函式最大化的那個引數 ,現在的上式與之前不同的是我們似然函式之中多了乙個未知的變數 。那麼也就是說我們的目標是找到合適的 和 使得似然函式最大。

第一步我們引入了乙個未知分布(隱變數 的概率分布) ,其中 。(這一步其實我們什麼都沒有做,只是對分子分母進行了縮放)。第二步我們使用的是Jensen不等式。

根據Jensen不等式中等式成立的條件 為常數,這裡等式成立的條件為:

, c為常數

因此我們可以得到:

至此,我們推出了在固定之後,如何選擇的問題——使下界拉公升的的計算公式就是條件概率(後驗概率)。這一步就是E步,固定,建立的下界,並求得使等於下界時等號成立的.

接下來是M步,就是在E步求出後,固定,調整,去最大化下界,畢竟在固定後,下界還可以更大。

關於EM的詳細推導:

EM(Expectation Maximum) 演算法總結

分割線

從上面的推導可以看出,EM演算法的E步中,固定 後,使下界拉公升的 這一後驗概率。然而,當隱變數 是服從一些複雜的離散分布或連續分布,此時這個後驗概率 一般是很難求的intractable。這就需要用到一類「近似推斷」方法。

這類方法分為兩類,一類是隨機抽樣,如MCMC;另一類是通過解析法求解近似值,如變分推斷。

採用變分推斷來優化EM,此時稱為變分EM演算法。

ELBO如下:

關於變分推斷可以參考:

小白學變分推斷(1)--變分推斷概述_Marcus_Bob's Blog-CSDN部落格_變分推斷

其基本思想就是通過乙個簡單的分布 來近似原來複雜的後驗分布 ,而這個分布之間相似性度量最基本的就是通過KL散度。

此時,求解EM演算法的步驟變為:

E步:固定 ,找出最大化期望的 (這一步就是所謂的「變分」)

M步:固定 ,最大化引數

注意:此時 不直接等於上面EM演算法的後驗,這就是區別!

變分推斷求解的方法有很多,具體的、簡答的方法可以假設分布 是mean-field的:

隨後,通過關於 的每個因子 進行最優化來完成最大化:

(為了方便用latex寫了,下面 ):

ELBO:(需要注意的是 是分布 的引數,而 是近似後驗分布 的引數)

此時令:

則:於是,當我們保持所有 不變,去最優化 時,可以看到此時 就是 和之間KL散度的負值。當取得最小值時 有:

這個解表明,為了得到 得最優解的對數,只需要考慮所有隱含變數和可見變數上的聯合概率分布的對數,然後關於所有 的因子求期望即可,這是乙個不斷進行迭代的過程。

關於變分EM演算法的應用很多比如LDA的求解。實踐中對於變分推斷的使用:

首先,對隱變數進行拆解,假設各個分量服從何種分布

再利用上述最優分布求解,對隱變數的後驗概率分布進行估計

通過EM方法迭代求解,得到最終概率圖模型的推斷和引數估計

請問一下優衣庫全職是怎麼上班的?

上班體驗 1.心理上 每天都會深深陷入高度自我懷疑中,覺得書都白讀了,渾身 武藝 可以說是沒有絲毫用武之地。2.生理上 偏向於純體力的勞力輸出,與工廠類似,工資卻沒有工廠高,可以說是吹著空調幹著工廠的活兒。忙的時候連續幾天5點多起,加到上限12個鐘才下班,上班途中一刻不能停歇,手上絕對不可以閒下來,...

請問一下知乎的大佬們這是什麼字元?

阿夙青宇 基本都是拉丁文本元 分 英語 cent 是世界範圍內廣泛使用的乙個輔幣單位 日語 通貨 補助単位 通常為貨幣基本單位的百分之一。帶分音符的e 是阿爾巴尼亞語 荷蘭語和卡舒比語的乙個字母。這個字母在法語中,也作變音字母使用。西里爾字母 帶尖音符的i 是法羅語 匈牙利語 冰島語 捷克語 斯洛伐...

請問一下大佬們啊,玩遊戲被嘲諷了,被罵了怎麼回擊啊?

Whitesoul 遮蔽我以前也喜歡和別人對噴,自稱鋼琴大師,但是慢慢地我發現他們說的一些話總會讓我難受,總有那麼一句讓我很生氣,就算我噴回去我也不知道我有沒有激怒到他所以很難受,所以我選擇遮蔽,可能你會覺得沒面子,相信我,一時遮蔽一時爽,一直遮蔽一直爽,我要壓縮訊號我都遮蔽你,你發的問號我也看不見...