隱馬爾可夫模型學習筆記

馬爾科鏈模型

  • 一個系統有\(N\)個狀態,隨着時間的推移,系統從某一狀態轉移到另外一個狀態,設爲時間t的狀態,系統在時間t處於狀態的機率取決於其在時間1,2,…,t-1的狀態,機率爲:
    \[P(q_t = S_j | q_{t-1}=S_i, q_{t-2}=S_k,..)\]算法

  • 若是系統在時間\(t\)時刻的狀態只與其在\(t-1\)時刻的狀態有關,則該系統構成一個離散的一階馬爾科夫鏈(馬爾科夫過程):
    \[ P(q_t=S_j | q_{t-1}=S_i,q_{t-2}=S_k,..)=P(q_t=S_j | q_{t-1}=S_i) \]函數

  • 若是隻考慮獨立於時間t的隨機過程:
    \[P(q_t=S_j | q_{t-1}=S_i)=a_{ij},1<=i,j<=N \]
    其中\(a_{ij}\)爲轉移機率,必須知足\(a_{ij}>=0\),且\(a_{ij}\)的和爲1。學習

例子

  • 假設一段時間的氣象能夠用三種狀態的馬爾科夫模型\(M\)描述,S1:雨,S2:多雲,S3:晴,狀態轉移矩陣爲:
    \[A = [a_{ij}] = [0.4, 0.4, 0.3; 0.2, 0.6, 0.2;0.1, 0.1, 0.8]\]url

  • 若是第一天爲晴天,根據這一模型,在從此七天中天氣O=「晴晴雨雨晴雲晴」的機率爲:spa

\begin{equation}
\begin{aligned}
&P(O|M)\
&= P(S_3,S_3,S_3,S_1,S_1,S_3,S_2,S_3|M)\
&=P(S_3)\cdot P(S_3|S_3)\cdot P(S_3|S_3)\cdot P(S_1|S_3)\cdot P(S_1|S_1)\cdot P(S_3|S_1)\cdot P(S_2|S_3)\cdot P(S_3|S_2)\
&=1 \cdot a_{33}\cdot a_{33}\cdot a_{31}\cdot a_{11}\cdot a_{13}\cdot a_{32} \cdot a_{23} \
&=1.536\times10^{-4}
\end{aligned}
\end{equation}.net

隱馬爾科夫模型(HMM)

  • 在馬爾科夫模型中,每個狀態表示一個能夠觀察的事件
  • 在HMM中觀察到的事件是狀態的隨機函數,所以該模型十一雙重隨機過程,其中狀態轉移過程是不可觀察的(隱蔽)的(馬爾科夫鏈),而可觀察的時間的隨機過程是隱蔽的狀態轉換過程的隨機函數(通常隨機過程)。

HMM的三個假設

對於一個隨機事件,有一觀察值序列:\(O=O_1,O_2,...,O_TQ=q_1,q_2,...,q_T\)blog

  • 假設1:馬爾科夫性假設(狀態構成一階馬爾科夫鏈)
  • 假設2:不動性假設(狀態與具體時間無關)
  • 假設3:輸出獨立性假設(輸出僅與當前的狀態有關)\[ P(O_1,...,O_T|q_1,...,q_T)= \prod P(O_t|q_t)\]

HMM定義

  • 一個因馬爾科夫模型(HMM)是有一個五元組描述的:\[ \lambda =(N,M,A,B,\pi )\]

其中事件

  • \(N\):狀態的有限集合
  • \(M\):觀察值的有限集合
  • \(A\):狀態轉移機率矩陣
  • \(B\):觀察值機率分佈
  • \(\pi={\pi_i},\pi _i=P(q_1=s_i)\):初始狀態分佈

觀察序列產生步驟

  • 1.根據初始狀態機率分佈\(\pi=\pi_i\),選擇一初始狀態
  • 2.設\(t=1\)
  • 3.根據狀態Si的輸出機率分佈b_{jk},輸出\(O_t=v_k\)
  • 4.根據狀態轉移機率分佈,轉移到新狀態\(q_{t+1}=S_j\)
  • 5.設\(t=t+1\),若是\(t<T\),重複步驟三、4,不然結束

HMM的三個基本問題

令爲給定HMM的參數

  • \(O=O_1,...,O_T\)爲觀察序列,則HMM的三個基本問題爲:評估問題、解碼問題、學習問題
  • 評估問題:
    對於給定模型,求某個觀察值序列的機率\(P(O|\lambda)\);
  • 解碼問題:
    對於給定模型和觀察值序列,求可能性最大的狀態序列\(max_Q {P(Q|O,\lambda)}\);
  • 學習問題:
    對於給定一個觀察值序列\(O\),調整參數\(\lambda\),使得觀察值出現的機率\(P(O|\lambda)\)

三個基本問題的求解算法

  • 評估問題:前向算法
    定義前向變量,採用動態規劃算法,複雜度\(O(N^2T)\)
  • 解碼問題:韋特比算法
    採用動態規劃算法,複雜度\(O(N^2T)\)
  • 學習問題:向前向後算法
    EM算法是一個特例,帶隱變量的最大似然估計

舉個例子——天氣與做習

舉個常見的例子來引出下文,同時方便你們理解!好比我在不一樣天氣狀態下去作一些事情的機率不一樣,天氣狀態集合爲{下雨,陰天,晴天},事情集合爲{宅着,自習,遊玩}。假如咱們已經有了轉移機率和輸出機率,即P(天氣A|天氣B)和P(事情a|天氣A)的機率都已知道,那麼則有幾個問題要問(注意,假設一天我那幾件事情中的一件)。v8

  • 1.假如一週內的天氣變化是 下雨->晴天->陰天->下雨->陰天->晴天->陰天,那麼我這一週 自習->宅着->遊玩->自習->遊玩->宅着->自習的機率是多大?
  • 2.假如我這一週作事序列是 自習->宅着->遊玩->自習->遊玩->宅着->自習,不知道天氣狀態的狀況下這個作事序列的機率是多大?
  • 3.假如一週內的天氣變化是 下雨->晴天->陰天->下雨->陰天->晴天->陰天,那咱們這一週最有可能的作事序列是什麼?
  • 4.假如我這一週作事序列是 自習->宅着->遊玩->自習->遊玩->宅着->自習,那麼這一週的天氣變化序列最有多是什麼?

參考網址:
http://blog.csdn.net/stdcoutzyx/article/details/8522078
http://wenku.baidu.com/link?url=mgefnHLJRHgX6zghIcnZPIU0KCW5A-R9BsSnwvvbTXwMuKrn5caBCOv860O1ICAUpdGtgElY5d6BcybY1mBfRCks2rKEz9dr9eIiP-s7HMmget

相關文章
相關標籤/搜索