- 智能語音處理
- 張雄偉 孫蒙 楊吉斌
- 2521字
- 2020-11-05 10:07:12
3.3.1 基本概念
1. 馬爾可夫鏈
給定隨機過程{X(t),t∈T},若它滿足如下馬爾可夫性質,則稱{X(t),t∈T}為馬爾可夫過程。狀態離散的馬爾可夫過程簡稱為馬爾可夫鏈。假設=(X1,X2,…,Xn)是一馬爾可夫鏈,根據貝葉斯規則,有
其中,,最后一個等式即為馬爾可夫性質:
馬爾可夫性質又稱無后效性,即i時刻的條件概率分布只和其先前i-1時刻的狀態有關。
以每日的天氣狀況為例,天氣在晴、多云或陰雨幾種狀態下變化。若假設當天的天氣狀況只和前一天的天氣狀況有關,那么天氣狀況就可以用馬爾可夫鏈表示。當然,實際天氣狀況可能遠比這種假設復雜,可能要回溯好幾天的天氣狀況。因此,也存在更為寬松的馬爾可夫假設,即i時刻的條件概率分布只和其先前i-n時刻的狀態有關,這種情況下的馬爾可夫鏈稱為n階馬爾可夫鏈。
當不考慮時間序號i時,可以將馬爾可夫鏈描述成一個有限狀態過程,狀態Xi間的轉移用概率函數P(s|s′)描述,這時可以用來對平穩系統進行建模:
P(Xi=s|Xi-1=s′)=P(s|s′)
(3-8)
考慮有N個離散狀態{1,2,…,N}的馬爾可夫鏈,時刻t時所處的狀態記為st。該馬爾可夫鏈共有N2種狀態轉移,每一個狀態轉移都有一個概率值,稱為狀態轉移概率——這是從一個狀態轉移到另一個狀態的概率。同時,每個狀態還有一個初始概率,因此馬爾可夫鏈的參數可以定義為
aij=P(st=j|st-1=i), 1≤i,j≤N
(3-9a)
πi=P(s1=i), 1≤i≤N
(3-9b)
其中,aij是從狀態i變化到狀態j的轉移概率,πi是馬爾可夫鏈從狀態i開始的初始概率。所有的概率都滿足約束條件:
仍以天氣為例。經過觀測,晴、多云和陰雨三個狀態的轉移概率如表3-1所示,那么根據某一天的觀測,就可以計算出若干天后天氣狀況的概率了。例如,今天天氣晴朗,那么明天還是晴天的可能性就為50%。
馬爾可夫鏈之間的狀態轉移也常用圖3-2所示的狀態圖表示,其中各節點之間的有向連線表示轉移關系,連線旁的數字表示轉移概率。指向節點自身的連線表示狀態沒有改變。使用狀態圖,可以很方便地分析多步轉移的情況。例如,今天是晴天,那么后天依然是晴天的概率是多少呢?從圖3-2中可以看出,從“晴”狀態出發的路徑有三條,再次回到“晴”的路徑也是三條,因此經過兩步返回晴天的情況就分為三種,即“晴、晴、晴”,“晴、多云、晴”和“晴、陰雨、晴”。那么根據加法原理和乘法原理,可以計算得到概率為0.5×0.5+0.2×0.3+0.3×0.3=0.4。
對于更長時間的狀態轉移,還可以利用狀態轉移網格圖進行示意。圖3-3所示即為對應圖3-2的天氣狀況狀態轉移網格圖。圖3-2中同一時刻的所有狀態按列排列,相鄰時刻的狀態通過連線相連,可以根據需要對該圖延伸以涵蓋足夠長的時間片段。根據該圖去分析狀態間的轉移,可以繪制出不同階段的多條可能路徑,便于分析和計算。圖3-3中,用加粗線條標識了由“晴”狀態經過兩步以后到達“晴”狀態的可能路徑。
2. HMM
在上述例子中,天氣的陰晴是可以直接觀測到的。也就是說,在觀測事件序列X和馬爾可夫鏈狀態序列S={s1,s2,…,sn}間存在著一一對應的關系。然而在更多的實際問題中,時間序列的狀態輸出都無法和狀態一一對應,它們只在給定的狀態下隨機地輸出觀測。例如,如果只有濕度狀態的記錄,人們無法直接判斷是否下雨,但可以直觀地估計降雨的概率。此時,濕度狀態是一個觀測變量,而是否下雨這個事件就是一個隱含變量,它和觀測變量之間存在著概率關系。
為描述上述過程,可將馬爾可夫鏈推廣為隱馬爾可夫模型(HMM)。與基本馬爾可夫鏈不同,HMM的輸出觀測值是根據每個狀態對應的輸出概率函數產生的隨機變量X。因此,與基本馬爾可夫鏈相比,HMM的參數多了輸出概率矩陣。
O={o1,o2,…,oM}是輸出的觀測符號集。觀測到的符號對應于模型描述的系統的物理輸出;
Ω={1,2,…,N}表示系統的狀態空間,時刻t時系統所處的狀態st位于該集合中;
A={aij}是系統轉移概率矩陣,其中aij是從狀態i變化到狀態j的轉移概率,它滿足aij=P(st=j|st-1=i),其中1≤i,j≤N;
B={bi(k)}是輸出概率矩陣,其中bi(k)表示系統處于狀態i時產生輸出ok的概率,它的定義為bi(k)=P(Xt=ok|st=i),其中Xt表示HMM在時刻t的觀測輸出;
Π={πj}是初始分布,其中πj=P(s0=i),1≤i≤N。
由于aij、bi(k)和πj都是概率,因此它們必須滿足歸一化條件。
為便于表示,使用三元組記號Φ=(A,B,Π)來描述整個HMM,有時也可簡記為Φ。
在HMM中,除了一個馬爾可夫性質的假設外,還有一個輸出獨立假設,即P(Xt|)=P(Xt|st)。輸出獨立假設說明在時刻t產生的特定符號的概率只依賴于當前模型所處的狀態,而與過去的模型輸出觀測值相獨立。雖然采用上述兩個假設降低了對實際過程建模的準確性,但由于它們最大限度地降低了HMM的記憶性,減少了需要估計的參數數量,因此在使用時非常有效。
下面舉例說明。對于天氣狀況來說,依然可用三個狀態(晴、多云、陰雨)來描述天氣的變化。一般空氣濕度可以分為干燥、舒適、潮濕三個等級,這與家用溫濕度計上的常用標記方式相對應,可以直接觀測到。構造一個包含三個隱含狀態和三個觀測狀態的HMM模型來刻畫天氣狀況。在實際系統中,隱含狀態和觀測狀態的數量不一定相等,例如空氣濕度可以采用干燥、稍干、舒適、潮濕、高濕等更多狀態來描述。
圖3-4顯示了天氣HMM中的隱含狀態和觀測狀態。假設天氣的陰晴變化可以用一個簡單的馬爾可夫鏈描述,那么隱含狀態之間的轉移使用有向曲線連接,隱含狀態和觀測狀態之間的概率關系用無向連線連接。各條連線邊的數值是對應的概率值。隱含狀態轉移概率取值和表3-1中的相同。輸出概率取值如表3-2所示。
另一個實際的例子是語音識別。語音識別系統將語音作為觀測數據,需要找到語音與其內容的對應關系。由于發聲內容受聲帶、喉嚨、舌頭位置等發聲器官狀態的控制,直接采用這些器官的生理參數來描述發聲狀態較為復雜,并且麥克風也無法直接觀測這些發聲器官的狀態,因此一般按照獨立發音建立隱含狀態,為語音構造HMM。例如,在英語語音識別中,可以用80個音素來描述,因此可以相應地選擇80個隱含狀態。在漢語語音識別中,也可以用音節來描述,因此也可以選擇音節作為隱含基本單元。在建立HMM之后,語音識別的任務就變成根據觀測到的狀態序列去估計隱含狀態序列的問題。