天天看點

深入了解機器學習——EM算法/最大期望算法(Expectation-Maximization Algorithm, EM)

在前面的讨論中,我們一直假設訓練樣本所有屬性變量的值都已被觀測到,即訓練樣本是“完整”的。但在現實應用中往往會遇到“不完整”的訓練樣本。在這種存在“未觀測”變量的情形下,是否仍能對模型參數進行估計呢?未觀測變量的學名是“隐變量”(Latent Variable)。令表示已觀測變量集,表示隐變量集,表示模型參數。若欲對做極大似然估計,則應最大化對數似然:

然而由于是隐變量,上式無法直接求解。此時我們可通過對計算期望,來最大化已觀測資料的對數“邊際似然:

EM(Expectation-Maximization)算法是常用的估計參數隐變量的利器,它是一種送代式的方法,其基本想法是:若參數已知,則可根據訓練資料推斷出最優隐變量的值(E步);反之,若的值已知,則可友善地對參數做極大似然估計(M步)。

于是,以初始值為起點,對上式,可選代執行以下步驟直至收斂:

  • 基于推斷隐變量的期望,記為
  • 基于已觀測變量和對參數做極大似然估計,記為

這就是EM算法的原型。

進一步,若我們不是取的期望,而是基于計算隐變量的機率分布,則EM算法的兩個步驟是:

  • E步(Expectation):以目前參數推斷隐變量分布,并計算對數似然關于的期望:
  • M步卡(Maximization):尋找參數最大化期望似然,即:

繼續閱讀