【隱馬爾可夫模型】用前向算法計算觀測序列概率P(O|λ)???????
【隱馬爾可夫模型】用后向算法計算觀測序列概率P(O|λ)
隱馬爾可夫模型是關于時序的概率模型,描述由一個隱藏的馬爾可夫鏈隨機生成不可觀測的狀志的序列,再由各個狀態隨機生成一個觀測而產生觀測的序列的過程。模型本身屬于生成模型,表示狀態序列和觀測序列的聯合分布,但是狀態序列是隱藏不可觀測的。
觀測序列概率的計算需要有效的算法支撐。
模型,A為狀態轉移概率矩陣,B為觀測概率矩陣,π 為初始狀態概率向量
直接計算法
直接計算法主要用于闡釋思路,概念上可行但計算上不可行(計算量過大)
思路:
1、列舉所有可能的長度為
的狀態序列
2、求各個狀態序列
與觀測序列
的聯合概率
3、對所有可能的狀態序列求和,得到
輸入:隱馬爾可夫模型和觀測序列
輸出:貫徹序列 出現的概率,
1)狀態序列的概率
2)對固定的狀態序列 , 觀測序列
的概率
3)和
同時出現的聯合概率
4)對所有可能的狀態序列求和,得到觀測序列
的概率
實際操作中,步驟四的計算量很大,是
階的
前向算法
前向概率:?給定隱馬爾可夫模型
,定義到時刻t 部分觀測序列為
且狀態為
?的概率為前向概率,記作
輸入:隱馬爾可夫模型和觀測序列
輸出:觀測序列 出現的概率
1)初值,
2)遞推,對
3)終止?
計算量
階
例: 盒子和球模型,狀態集合
,觀測集合
,用前向算法求
解答:
1)初值?
A為狀態轉移概率矩陣,B為觀測概率矩陣,π 為初始狀態概率向量,O為觀測序列
?——A的i行j列,
——B的i行
列
例如
對應Red,對應觀測集合V的第一列,對應觀測概率矩陣B的第一列
2)遞推
B的i行
列,
就是對應B的第一行第一列的元素
3)終止
遞推至T=3,對前向概率求和得到
后向算法
后向概率:?給定隱馬爾可夫模型
,定義到時刻t 狀態為
?的條件下,從t+1到T的部分觀測序列為
的概率為后向概率,記作
輸入:隱馬爾可夫模型和觀測序列
輸出:觀測序列出現的概率
1)初值,
2)遞推,對
3)終止?
計算量
階
例: 盒子和球模型,
,用后向算法求
解答:
1)初值?
A為狀態轉移概率矩陣,B為觀測概率矩陣,π 為初始狀態概率向量,O為觀測序列
從T=4向下遞推,一般設后向概率初值為1
2)遞推
遞推至
終止
?——A的i行j列,
——B的i行
列
B的i行
列,
就是對應B的第一行第一列的元素
3)終止