隐马尔科夫模型HMM自学(1)
介紹
崔曉源 翻譯
我們通常都習慣尋找一個事物在一段時間里的變化規律。在很多領域我們都希望找到這個規律,比如計算機中的指令順序,句子中的詞順序和語音中的詞順序等等。一個最適用的例子就是天氣的預測。
首先,本文會介紹聲稱概率模式的系統,用來預測天氣的變化
然后,我們會分析這樣一個系統,我們希望預測的狀態是隱藏在表象之后的,并不是我們觀察到的現象。比如,我們會根據觀察到的植物海藻的表象來預測天氣的狀態變化。
最后,我們會利用已經建立的模型解決一些實際的問題,比如根據一些列海藻的觀察記錄,分析出這幾天的天氣狀態。
Generating Patterns
有兩種生成模式:確定性的和非確定性的。
確定性的生成模式:就好比日常生活中的紅綠燈,我們知道每個燈的變化規律是固定的。我們可以輕松的根據當前的燈的狀態,判斷出下一狀態。
?
非確定性的生成模式:比如說天氣晴、多云、和雨。與紅綠燈不同,我們不能確定下一時刻的天氣狀態,但是我們希望能夠生成一個模式來得出天氣的變化規律。我們可以簡單的假設當前的天氣只與以前的天氣情況有關,這被稱為馬爾科夫假設。雖然這是一個大概的估計,會丟失一些信息。但是這個方法非常適于分析。
馬爾科夫過程就是當前的狀態只與前n個狀態有關。這被稱作n階馬爾科夫模型。最簡單的模型就當n=1時的一階模型。就當前的狀態只與前一狀態有關。(這里要注意它和確定性生成模式的區別,這里我們得到的是一個概率模型)。下圖是所有可能的天氣轉變情況:
?
對于有M個狀態的一階馬爾科夫模型,共有M*M個狀態轉移。每一個狀態轉移都有其一定的概率,我們叫做轉移概率,所有的轉移概率可以用一個矩陣表示。在整個建模的過程中,我們假設這個轉移矩陣是不變的。
?
該矩陣的意義是:如果昨天是晴,那么今天是晴的概率為0.5,多云的概率是0.25,雨的概率是0.25。注意每一行和每一列的概率之和為1。
另外,在一個系統開始的時候,我們需要知道一個初始概率,稱為?向量。
?
到現在,我們定義了一個一階馬爾科夫模型,包括如下概念:
狀態:晴、多云、雨
狀態轉移概率
初始概率
馬爾科夫模型也需要改進!
崔曉源 翻譯
當一個隱士不能通過直接觀察天氣狀態來預測天氣時,但他有一些水藻。民間的傳說告訴我們水藻的狀態與天氣有一定的概率關系。也就是說,水藻的狀態與天氣時緊密相關的。此時,我們就有兩組狀態:觀察狀態(水藻的狀態)和隱含狀態(天氣狀態)。因此,我們希望得到一個算法可以為隱士通過水藻和馬爾科夫過程,在沒有直接觀察天氣的情況下得到天氣的變化情況。
更容易理解的一個應用就是語音識別,我們的問題定義就是如何通過給出的語音信號預測出原來的文字信息。在這里,語音信號就是觀察狀態,識別出的文字就是隱含狀態。
這里需要注意的是,在任何一種應用中,觀察狀態的個數與隱含狀態的個數有可能不一樣的。下面我們就用隱馬爾科夫模型HMM來解決這類問題。
HMM
下圖是天氣例子中兩類狀態的轉移圖,我們假設隱狀態是由一階馬爾科夫過程描述,因此他們相互連接。
隱狀態和觀察狀態之間的連線表示:在給定的馬爾科夫過程中,一個特定的隱狀態對應的觀察狀態的概率。我們同樣可以得到一個矩陣: 注意每一行(隱狀態對應的所有觀察狀態)之和為1。 到此,我們可以得到HMM的所有要素:兩類狀態和三組概率 兩類狀態:觀察狀態和隱狀態; 三組概率:初始概率、狀態轉移概率和兩態對應概率(confusion matrix)總結
以上是生活随笔為你收集整理的隐马尔科夫模型HMM自学(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 准确率召回率
- 下一篇: 隐马尔科夫模型HMM自学 (2)