應用:貝氏推論、資訊與模擬

隱藏馬可夫模型與 EM 演算法(hidden Markov models and the EM algorithm)

許多系統把它真實的狀態藏起來,只讓你看到關於它的雜訊線索:你無法直接觀測一位說話者想說的詞,只有聲音;你看不到一座遠方城市正在經歷的天氣,只看得到那裡一位朋友碰巧做的事。隱藏馬可夫模型(HMM)是處理這件事的標準機率機器。它假設一串看不見的狀態,依一條馬可夫鏈演化——每個狀態只依賴前一個——而每個隱藏狀態透過一個雜訊分布發出一個可觀測的輸出。你看到輸出;你必須推論狀態。

一個 HMM 有三個零件:轉移機率(隱藏狀態如何一步步移動)、發射機率(每個隱藏狀態如何產生一個觀測),與一個初始狀態分布。有了這些,經典演算法精確地回答實用問題:前向-後向演算法算出觀測序列的機率與每個隱藏狀態的後驗,而維特比演算法找出單一最可能的隱藏路徑。但當你必須從資料「學出」這些機率時,有個雞生蛋蛋生雞的難關:要估計轉移與發射參數你得知道隱藏狀態,但要推論隱藏狀態你又需要參數。EM(期望最大化)演算法打破這個迴圈。它交替兩步:E 步用當前參數算出隱藏狀態上的後驗分布(期望的「軟」指派),M 步再用最大概似重新估計參數,彷彿那些軟指派就是資料。反覆進行保證概似永不下降,所以它穩定地攀向一個(局部)極大。

這些想法驅動了語音辨識、詞性標註、基因尋找與金融,而 EM 本身遠比 HMM 廣——它是處理帶有隱藏或缺失資料的最大概似的「那個」通用配方,包括高斯混合模型與用未標記資料的單純貝氏。誠實的提醒:EM 只找到一個「局部」極大,所以起點很重要,多次重啟是明智的;它可能收斂得慢;而一個 HMM 的全部威力倚靠它的強假設(隱藏狀態的馬可夫性,與每個觀測在給定其狀態下的條件獨立),而真實資料可能違反這些。

另一座城市的朋友每天傳訊告訴你她做了什麼——散步、購物或打掃——而你想推論隱藏的天氣(雨或晴)。有了轉移機率(雨天傾向接著雨天)與發射機率(下雨時她比較常打掃),維特比演算法光憑她的活動就重建出最可能的天氣序列。若你連那些機率都不知道,EM 會藉由交替學出它們:猜天氣、重新估計機率、重複。

HMM 從雜訊輸出推論隱藏狀態;當狀態未觀測時,EM 學出參數。

EM 保證概似永不下降,但只收斂到一個「局部」極大,所以初始化很重要,多次重啟是明智的;而一個 HMM 也只跟它的馬可夫與條件獨立假設一樣好。

又称
HMMexpectation-maximizationEM隱馬可夫模型期望最大化演算法