NLP-隱馬爾可夫模型及使用例項
- 說明:學習筆記,內容來自周志華的‘機器學習’書籍和加號的‘七月線上’視訊。
隱馬爾可夫模型
隱馬爾可夫模型(Hidden Markov Model,簡稱HMM)是結構最簡單的動態貝葉斯網,這是一種著名的有向圖模型,主要用於時序資料建模,在語音識別、自然語言處理等領域有廣泛應用。——周志華《機器學習》
1.隱馬爾可夫模型的結構資訊:
隱馬爾可夫模型中的變數可以分為兩組,第一組是狀態變數{ y1,y2,...,yn y 1 , y 2 , . . . , y n
y_1,y_2,...,y_n
},,其中
yi∈y
y
i
∈
y
y_i\in y
表示第
i
i
i
時刻的系統狀態,通常假定狀態變數是隱藏的、不可被觀測的,因此狀態變數也被稱為隱變數。第二組是觀測變數{x_1,x_2,..,x_n
},其中
xi∈x
x
i
∈
x
x_i\in x
表示第
i
i
i
時刻的觀測值,如下圖所示: 模型的圖結構看起來有點類似於我們熟知的RNN模型。圖中的箭頭表示變數之間的依賴關係。在任意時刻,觀測變數的取值僅依賴於狀態變數,與其他狀態變數和觀測變數的取值無關。同時,
t
時刻的狀態僅依賴於
t−1
t
−
1
t-1
時刻的狀態,與其餘狀態無關,這就是所謂的馬爾可夫鏈。 基於上述的依賴關係,我們得到所有變數的聯合概率分佈為:
P(x1,y1,...,xn,yn)=P(y1)P(x1|y1)∏i=2nP(yi|yi−1)P(xi|yi)
P
(
x
1
,
y
1
,
.
.
.
,
x
n
,
y
n
)
=
P
(
y
1
)
P
(
x
1
|
y
1
)
∏
i
=
2
n
P
(
y
i
|
y
i
−
1
)
P
(
x
i
|
y
i
)
P(x_1,y_1,...,x_n,y_n)=P(y_1)P(x_1|y_1)\prod_{i=2}^n P(y_i|y_i-1)P(x_i|y_i)
2.確定一個隱馬爾可夫模型需要以下三組引數:
- 狀態轉移概率:
模型在各個狀態間轉換的概率,可以用矩陣 A AA表示 - 輸出觀測概率:
模型根據當前狀態獲得各個觀測值的概率,可以用矩陣B=[b_{ij}]_ {N*M}表示, N NN大小為隱藏狀態數,M大小為觀測值數 - 初始狀態概率:
模型在初始時刻各狀態出現的概率,通常記為 π=(π1,π2,..,πn) π = ( π 1 , π 2 , . . , π n )\pi=(\pi_1,\pi_2,..,\pi_n)
通過 λ=[A,B,π] λ = [ A , B , π ]
\lambda=[A,B,\pi]
就可以指代一個隱馬爾可夫模型。 我們使用一個用爛了的例子來對這幾種引數進行說明,如下圖所示:
說明:
①圖中start表示初始狀態,則 π=(0.6,0.4) π = ( 0.6 , 0.4 )
\pi=(0.6,0.4)
; ②rainy表示下雨天,sunny表示晴天,當第一天是下雨天的時候,第二天仍然是下雨天的概率是0.7,晴天的概率是0.3;當第一天是晴天時候,第二天是下雨天的概率是0.4,仍然是晴天的概率是0.6;這裡的晴天和雨天就是我們模型中所說的隱藏狀態。
狀態轉換概率矩陣 A A
A
:
A= \left[
\begin{matrix}
0.7& 0.3 \\
0.4 & 0.6
\end{matrix}
\right]
③walk、shop、clean表示在下雨天或者晴天的時候我們散步、逛街和打掃房間的可能情況,也就是模型中所說的觀測變數,在下雨天打掃房間的概率是0.5;晴天的時候更可能出去逛街,所以概率是0.6,通過該圖我們可以得到輸出觀測概率矩陣 B B
B
:
B= \left[
\begin{matrix}
0.1& 0.4& 0.5 \\
0.6& 0.3& 0.1
\end{matrix}
\right]
3.實際應用中人們常關注的HMM模型的三個基本問題:
- 評估模型與觀測序列之間的匹配程度:
給定模型 λ λ\lambda,如何計算其產生觀測序列{ x1,x2,..,xn x 1 , x 2 , . . , x nx_1,x_2,..,x_n}的概率 P(x|λ) P ( x | λ )P(x|\lambda)? - 根據觀測序列推斷隱藏的模型狀態:
給定模型 λ λ\lambda以及觀測序列{ x1,x2,..,xn x 1 , x 2 , . . , x nx_1,x_2,..,x_n},如何找到與此觀測序列最匹配的狀態序列{ y1,y2,...,yn y 1 , y 2 , . . . , y ny_1,y_2,...,y_n}? - 訓練模型使其更好的描述觀測序列:
給定觀測序列{ x1,x2,..,xn x 1 , x 2 , . . , x nx_1,x_2,..,x_n},如何調整引數 λ λ\lambda,使得該序列出現的概率 P(x|λ) P ( x | λ )P(x|\lambda)最大?
針對上面的是哪個問題,分別有下面幾種解決方法:
- 問題1:遍歷演算法、前向演算法、後向演算法
- 問題2:Viterbi 維特比演算法
- 問題3:Baum-Welch 鮑姆-韋爾奇演算法
相關文章
- 10_隱馬爾可夫模型隱馬爾可夫模型
- 隱馬爾可夫模型詳解隱馬爾可夫模型
- ML-隱馬爾可夫模型隱馬爾可夫模型
- 隱馬爾可夫模型 | 賽爾筆記隱馬爾可夫模型筆記
- 隱馬爾可夫模型(HMM)詳解隱馬爾可夫模型HMM
- 機器學習之隱馬爾可夫模型機器學習隱馬爾可夫模型
- HMM隱馬爾可夫模型來龍去脈(二)HMM隱馬爾可夫模型
- 用簡單易懂的例子解釋隱馬爾可夫模型隱馬爾可夫模型
- 一個馬爾科夫鏈例項馬爾科夫
- CVPR 2021 | 時間序列疾病預測的因果隱馬爾可夫模型隱馬爾可夫模型
- 維特比演算法和隱馬爾可夫模型的解碼維特比演算法隱馬爾可夫模型
- 域結構進化的馬爾可夫模型馬爾可夫模型
- 2022-05-17-馬爾科夫鏈之傳統馬爾可夫鏈馬爾科夫馬爾可夫
- 在 Swift 中使用馬爾可夫鏈生成文字Swift馬爾可夫
- [work] 一階 二階馬爾可夫馬爾可夫
- 理解馬爾可夫決策過程馬爾可夫
- 【機器學習】--隱含馬爾科夫模型從初識到應用機器學習馬爾科夫模型
- 「馬爾可夫決策過程」學習筆記馬爾可夫筆記
- AI產品經理必修:揭開演算法的面紗(隱含馬爾可夫)AI演算法馬爾可夫
- 馬爾可夫鏈你知道多少?Python視覺化解析MCMC馬爾可夫Python視覺化
- [譯] 用 Python 實現馬爾可夫鏈的初級教程Python馬爾可夫
- R資料分析:縱向分類結局的分析-馬爾可夫多型模型的理解與實操馬爾可夫多型模型
- 中文分詞的探索,CRF(條件隨機場)和HMM(隱馬爾可夫模型)用於分詞的對比,以及中文分詞的評估中文分詞CRF條件隨機場HMM隱馬爾可夫模型
- 強化學習組隊學習task02——馬爾可夫決策過程及表格型方法強化學習馬爾可夫
- 馬爾可夫鏈是個什麼鬼?圖文詳解告訴你!馬爾可夫
- 今天是霧霾,明天是什麼?馬爾可夫鏈告訴你馬爾可夫
- 馬爾科夫鏈的穩態分佈馬爾科夫
- 馬爾科夫鏈隨機文字生成器馬爾科夫隨機
- ActiveMQ的使用及整合spring的使用例項MQSpring
- 2022-05-21-空間馬爾科夫鏈工具馬爾科夫
- OpenShift 使用者許可權管理例項
- 【火爐煉AI】機器學習045-對股票資料進行隱馬爾科夫建模AI機器學習馬爾科夫
- vue、react隱式例項化VueReact
- guava之ImmutableMap使用例項及好處Guava
- JSTL的標籤及使用,包含例項JS
- 可變引數例項
- NIO原理及例項
- 強化學習(二)馬爾科夫決策過程(MDP)強化學習馬爾科夫