生活随笔
收集整理的這篇文章主要介紹了
7.6 EM算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
7.6 EM算法
- 在前面的討論中,我們一直假設訓練樣本所有屬性變量的值都已經被觀測到,即訓練樣本是”完整的“。但是顯示世界中往往會遇到”不完整“的訓練樣本。例如由于西瓜的根蒂已經脫落,無法看出是”蜷縮“還是”硬挺“,則訓練樣本的”根蒂“屬性變量值未知。在這種存在”未觀測“變量的情形下,是否能夠對模型參數進行估計呢?
- 未觀測變量的學名叫做”隱變量“,令 X表示已經觀測變量集,Z表示隱變量集,誰他 表示模型參數。欲對誰他做極大似然估計,則最大化對數似然
- L L(誰他 |X,Z) = ln P(X,Z | 誰他)
- 然而由于 Z 是隱變量,上式無法直接求解。此時我們可以通過對Z 計算期望,來最大化已經觀測數據的對數”邊際似然“
- L L(誰他| X) =ln P(X |誰他) =ln 求和z P(X,Z |誰他)
- EM算法是常用的估計參數隱變量的利器,它是一種迭代式的方法。其基本想法是:若參數誰他已經知道,則可以根據訓練數據推斷出最優隱變量Z的數值(E),反之,若Z的數值已經知道,則可以方便的對參數誰他做極大似然估計(M)
- 于是,以初始值 誰他0為起點,可迭代的執行以下的步驟直到收斂:
- 基于 誰他t推斷隱變量Z的期望,記作Zt
- 基于已經觀測變量 X 和 Zt對參數 誰他做極大似然估計,記作誰他t+1
- 這就是 EM算法的原型
- 進一步,若我們不是取 Z 的期望,而是基于 誰他t計算隱變量Z的概率分布P(Z | X,誰他t),則EM算法的兩個步驟是
- E 步,以當前參數誰他t推斷變量分布 P(Z | X,誰他t),并且計算對數似然 L L(誰他 | X,Z)關于Z 的期望
- Q(誰他 |誰他t) = E z|X,誰他t L L(誰他 | X,Z)
- M步,尋找參數最大化期望似然
- 誰他t+1 =arg max Q(誰他 | 誰他t)
- 簡要來說,EM算法使用兩個步驟交替計算:第一步是期望E步,利用當前估計的參數值來計算對數似然的期望值,第二部是最大化M步,尋找能使E步產生的似然期望最大化的參數值。然后,新得到的參數值重新被用于E步,……直到收斂到局部最優解
- 事實上,隱變量估計問題也可以通過梯度下降等優化算法來求解,但是由于求和的項數會隨著隱函數的數量以指數級上升,給梯度下降法帶來麻煩。而EM算法可以看作是一種非梯度下降法
總結
以上是生活随笔為你收集整理的7.6 EM算法的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。