隱馬爾科夫模型

2022-07-22 15:57:21 字數 3760 閱讀 7809

一:介紹(introduction)

我們通常都習慣尋找乙個事物在一段時間裡的變化模式(規律),這些模式發生在很多領域,比如計算機中的指令序列,句子中的詞語順序和口語單詞的因素修咧等等,事實上任何領域中的一系列事件都有可能產生有用的模式。

考慮乙個簡單的例子,有人試圖通過一片海藻推斷天氣——民間傳說告訴我們,濕透的海藻意味著潮濕陰雨(雨天),而乾燥的海藻則意味著陽光燦爛(晴天)。如果它處於乙個中間狀態(有濕氣),我們就無法確定天氣如何。然而,天氣的狀態並沒有受限於海藻的狀態,所以我們可以在觀察的基礎上**天氣是雨天或晴天的可能性。另乙個有用的線索是前一天的天氣狀態(或者,至少是它的可能狀態)——通過綜合昨天的天氣及相應觀察的海藻狀態,我們有可能更好的**今天的天氣。

這是本教程中我們將考慮的乙個典型的系統型別。

首先,我們將介紹產生概率模式的系統,如晴天及雨天間的天氣波動。

然後,我們將會看到這樣乙個系統,我們希望**的狀態並不是觀察到的——其底層系統是隱藏的。在上面的例子中,觀察到的序列將是海藻,而隱藏的系統將是實際的天氣。

最後,我們會利用已經建立的模型解決一些實際的問題,對於上述例子,我們想知道:

1.給出乙個星期每天的海藻觀察狀態,之後的天氣將會是什麼?

2.給出乙個海藻的觀察狀態序列,**一下此時是冬季還是夏季?直觀地,如果一段時間內海藻都是乾燥的,那麼這段時間很可能是夏季,反之,如果,一段時間內海藻都是潮濕的,那麼這段時間可能是冬季。

二、生成模式(generating patterns)

1、確定模式(deterministic patterns)

考慮一套交通訊號燈,燈的顏色變化序列依次是 紅色——紅色/黃色——綠色——黃色——紅色,這個序列可以作為乙個狀態機器,交通訊號燈的不同狀態都緊跟著上乙個狀態。

2、非確定性模式(non-deterministic patterns)

為了使天氣那個例子更符合實際,加入第三個狀態——多雲。與交通訊號燈例子不同,我們並不期望這三個天氣狀態之間的變化是確定性的,但是我們依然希望對這個系統建模以便生成乙個天氣變化模式(規律)。

乙個做法是假設模型的當前狀態僅僅依賴於前面的幾個狀態,這被稱為 馬爾科夫假設,他極大地簡化了問題。顯然。它可能是一種粗糙的假設,並且因此可能將一些非常重要的資訊丟失。

當考慮天氣問題時,馬爾科夫假設假定今天的天氣只能通過過去幾天已知的天氣情況進行**---而對於其他因素,譬如風力、氣壓等沒有考慮。在這個例子及其他相似的例子中,這樣的假設顯然不現實。然而,由於這樣經過簡化的系統可以用來分析,我們常常接受這樣的假設,雖然它產生的某些資訊不完全正確。

乙個馬爾科夫過程是狀態間的轉移僅依賴於前n個狀態的過程。這個過程被稱為n階馬爾科夫模型,其中n是影響下乙個狀態選擇的前 n個狀態。最簡單的馬爾科夫過程是一階模型,它的狀態選擇僅與前乙個狀態有關。這裡要注意它與確定性系統並不相同,因為下乙個狀態的選擇由相應的概率決定,並不是確定性的。

下圖是天氣例子中狀態間所有可能的一階狀態轉移情況:

對於有m個狀態的一階馬爾科夫模型,共有m^2個狀態轉移,因為任何乙個狀態都有可能是所有狀態的下乙個轉移狀態。每乙個狀態都有乙個概率值,稱為狀態轉移概率——即從乙個狀態轉移到另乙個狀態的概率。所有的m^2個概率可以用乙個狀態轉移矩陣表示。注意這些概率並不隨時間變化而不同——這是乙個非常重要(但常常不符合實際)的假設。

下面的狀態轉移矩陣顯示的是天氣例子中可能的狀態轉移概率:

也就是說,如果昨天是晴天,那麼今天是晴天的概率為0.5,是多雲的概率為0.375。注意,每一行的概率之和為1。

要初始化這樣乙個系統,我們需要確定起始日天氣(或可能的)情況,定義其中初始概率向量,稱為pi向量:

現在我們定義乙個一階馬爾科夫過程如下:

狀態:三個狀態——晴天、多雲、雨天

pi向量:定義系統初始化時每乙個狀態的概率。

狀態轉移矩陣:給定前一天天氣情況下的當前天氣概率。

任何乙個可以用這種方式描述的系統都是乙個馬爾科夫過程。

3、總結

我們嘗試識別時間變化中的模式,並且為了達到這個目的,我們試圖對這個過程建模以便產生這樣的模式。我們使用了離散時間點、離散狀態以及做了馬爾科夫假設。在採用了這些假設之後,系統產生了這個被描述為馬爾科夫過程的模式,它包含了乙個pi向量(初始概率)和乙個狀態轉移矩陣。關於假設,重要的一點是狀態轉移矩陣。關於假設,重要的一點是狀態轉移矩陣並不隨時間的改變而改變——這個矩陣在整個系統的生命週期中是固定不變的。

三、隱藏模式(hidden patterns)

1、馬爾科夫過程的侷限性

在某些情況下,我們希望找到的模式用馬爾科夫過程描述還顯得不充分。回顧一下天氣那個例子,乙個隱士也許不能夠直接獲取到天氣的觀察情況,但是他有一些水藻。民間傳說告訴我們水藻的狀態與天氣狀態有一定的概率關係——天氣和水藻的狀態是緊密相關的。在這個例子中我們有兩組狀態,觀察的狀態(水藻的狀態)和隱藏的狀態(天氣的狀態)。我們希望為隱士設計一種演算法,在不能夠直接觀察天氣的情況下,通過水藻和馬爾科夫假設來觀測天氣。

乙個更實際的問題是語音識別,我們聽到的聲音是來自於聲帶、喉嚨大小、舌頭位置以及其他一些東西的組合結果。所有這些因素相互作用產生乙個單詞的聲音,一套語音識別系統檢測的聲音就是來自於個人發音時身體內部物理變化所引起的不斷改變的聲音。

乙個語音識別裝置工作的原理是將內部的語音產生看作是隱藏的狀態,而將聲音結果作為一系列觀察的狀態,這些由語音過程生成並且最好的近似了實際(隱藏)的狀態。在這兩個例子中,需要著重指出的是。隱藏狀態的數目與觀察狀態的數目可以是不同的。乙個包含三個狀態的天氣系統(晴天、多雲、雨天)中,可以觀察到4個等級的海藻濕潤情況(乾燥、稍幹、潮濕、濕潤)。純粹的語音可以有80個音素描述,而身體的發聲系統會產生出不同數目的聲音,或者比80多,或者比80少。

在這種情況下,觀察到的狀態序列與隱藏過程有一定的概率關係。我們使用隱馬爾科夫模型對這樣的過程建模,這個模型包含乙個底層隱藏的隨時間改變的馬爾科夫過程,以及乙個與隱藏狀態某種程度相關的可觀察到的狀態集合。

2、隱馬爾科夫模型(hidden markov models)

下圖顯示的天氣例子中的隱藏狀態和觀察狀態。假設隱藏狀態(實際的天氣)由乙個簡單的一階馬爾科夫過程描述,那麼它們之間都相互連線。

隱藏狀態和觀察狀態之間的連線表示:在給定的馬爾科夫過程中,乙個特定的隱藏狀態生成特定的觀察狀態的概率。這很清晰的表示了進入乙個觀察狀態的所有概率之和1,在上面這個例子中就是,,

。除了定義了馬爾科夫過程的概率關係,我們還有另乙個矩陣,定義了馬爾科夫過程的概率關係,我們還有另乙個矩陣,定義為混淆矩陣(confusion matrix),它包含了給定乙個隱藏狀態後得到的觀察狀態的概率。對於天氣例子,混淆矩陣是:

注意矩陣的每一行之和是1。

3、總結(summary)

我們已經看到在一些過程中乙個觀察序列與乙個底層馬爾科夫過程是概率相關的。在這些例子中,觀察狀態的數目可以和隱藏狀態的數碼不同。

我們使用乙個隱馬爾科夫模型(hmm)對這些例子建模。這個模型包含兩組狀態集合和三組概率集合:

因此乙個隱馬爾科夫模型是乙個標準的馬爾科夫過程中引入一組觀察狀態,以及其與隱藏狀態間的概率關係。

引自:

馬爾科夫模型與隱馬爾科夫模型

隨機過程 是隨時間而隨機變化的過程。又稱為隨機函式。馬爾科夫模型 vmm 它描述了一類重要的隨機過程。乙個系統有有限個狀態集s 隨時間推移,該系統將同某一狀態轉移到另一狀態。q s1,s2,sn 為一隨機變數序列,隨機變數取值為狀態集s中的乙個狀態,設時間t時狀態為qt。對系統的描述通常是給出當前時...

隱馬爾科夫模型

隱馬爾科夫 hiddenmarkov model 簡稱為hmm,hmm資料相當豐富,推薦參見 hmm學習最佳範例與崔曉源的部落格 一文,本文只對hmm進行簡要介紹,然後說明開源ghmm實現在linux環境的搭建,hmm的開源實現有眾多不同語言的實現。馬爾科夫模型 一階馬爾科夫模型假設為 1 t l時...

隱馬爾科夫模型

一 問題 狀態隨時間變化,需要跟蹤 二 基本思想 在每個時間點,根據新的證據變數來更新世界狀態 三 時間上的概率推理 建立 轉移模型 感測器模型 先驗概率分別 1.轉移模型 世界如何演變,在描述了給定過去的時間的世界狀態下,當前時間世界的狀態變數 2.感測器模型,觀察模型 描述了給定當前世界狀態條件...