隱馬爾科夫模型(Hidden Markov Models) 系列之一

來源:互聯網
上載者:User
  • 介紹(introduction)
  • 產生模式(Generating Patterns)
  • 隱含模式(Hidden Patterns)
  • 隱馬爾科夫模型(Hidden Markov Models)
  • 前向演算法(Forward Algorithm)
  • 維特比演算法(Viterbi Algorithm)
  • 前向後向演算法(Forward-Backward Algorithm)
  • 總結

 

 

介紹(introduction)

通常我們總是對尋找某一段時間上的模式感興趣,這些模式可能出現在很多領域:一個人在使用電腦的時候使用的命令的序列模式;一句話中的單詞的序列;口語中的音素序列。總之能產生一系列事件的地方都能產生有用的模式。

考慮一個最簡單的情況:有人(柯南?)試圖從一塊海藻來推斷天氣的情況。一些民間的傳說認為“soggy”的海藻意味著潮濕(wet)的天氣,“dry”的 海藻預示著晴朗(sun)。如果海藻處於中間狀態“damp”,那就無法確定了。但是,天氣的情況不可能嚴格的按照海藻的狀態來變化,所以我們可以說在一 定程度上可能是雨天或是晴天。另一個有價值的資訊是之前某些天的天氣情況,結合昨天的天氣和可以觀察到的海藻的狀態,我們就可以為今天的天氣做一個較好的 預報。

這是在我們這個系列的介紹中一個非常典型的系統。

  • 首先我們介紹一個可以隨時間產生機率性模型的系統,例如天氣在晴天或者雨天之間變動。
  • 接下來我們試圖去預言我們所不能觀察到的"隱形"的系統狀態,在上面的例子中,能被觀察到的序列就是海藻的狀態嗎,隱形的系統就是天氣情況
  • 然後我們看一下關於我們這個模型的一些問題,在上面那個例子中,也許我們想知道

 

  1. 如果我們觀察一個星期每一天的海藻的狀態,我們是否能知相應的其天氣情況
  2. 如果給出一個海藻狀態的序列,我們是否能判斷是冬天還是夏天?我們假設,如果海藻幹(dry)了一段時間,那就意味著是夏天如果海藻潮濕(soggy)了一段時間,那可能就是冬天。

 

 

產生模式(Generating Patterns)

 

  • 確定的模式(Deterministic Patterns)

考慮交通燈的例子,一個序列可能是紅-紅/橙-綠-橙-紅。這個序列可以畫成一個狀態機器,不同的狀態按照這個狀態機器互相交替

 

我們可以注意到,每一個狀態都只依賴於此前的狀態,如果當前的是綠燈,那麼接下來就是橙燈,這就是一個確定型的系統。確定型的系統更容易理解和分析,只要這些狀態轉移都是已知的。

 

 

  • 不確定的模式(Non-Deterministic Patterns)

為了讓之前那個天氣的例子更貼近現實,我們可以添加一個狀態-多雲。和交通燈的例子不同,我們不能得到一個確定的狀態轉移系統,但是我們還是希望能得到一個天氣的模式。

一種辦法就是假設這個模型的每個狀態都只依賴於之前的狀態,這個假設被稱為馬爾科夫假設,這個假設可以大大的簡化這個問題。顯然,這個假設可能是一個非常糟糕的假設,導致很多重要的資訊都丟失了。

當涉及到天氣的時候,馬爾科夫假設假設如果我們知道之間一些天 的天氣的資訊,不考慮風力、氣壓等因素,那麼我們就能預言今天的天氣。當然,和其他許多例子一樣,這個列子也是不合實際的。但是,這樣一個簡化的系統可以 有利於我們的分析,所以我們通常接受這樣的假設,因為我們知道這樣的系統能讓我們獲得一些有用的資訊,儘管不是十分準確的。

一個馬 爾科夫過程就是指過程中的每個狀態的轉移只依賴於之前的n個狀態,這個過程被稱為1個n階的模型,其中n是影響轉移的狀態的數目。最簡單的馬爾科夫過程就 是一階過程,每一個狀態的轉移只依賴於其之間的那一個狀態。注意這和確定型的系統不一樣,因為這種裝因是有機率的,而不是確定的。下面這個圖展示了天氣這 個例子中所有可能的一階轉移:

注意一個含有M個狀態的一階過程有M的平方個狀態轉移。每一個轉移的機率叫做狀態轉移機率(state transition probability),就是從一個狀態轉移到另一個狀態的機率。這所有的M的平方個機率可以用一個狀態轉移矩陣來表示。注意這裡有一個假設,機率不隨時間的變化而變化,這又是一個不現實但很重要的假設。下面就是一個狀態轉移矩陣的列子:

這個矩陣的意思是,如果昨天是晴天,那麼今天又50%的可能是晴天,37.5%的機率是陰天,12.5%的機率會下雨,很明顯,每一行的和都是1。

為了初始化這樣一個系統,我們需要一個初始的機率向量:

這個向量表示第一天是晴天。

到這裡,我們就為一階馬爾科夫流程定義了以下三個部分:

  • 狀態:晴天、陰天和下雨
  • 初始向量:定義系統在時間為0的時候的狀態的機率
  • 狀態轉移矩陣:每種天氣轉換的機率

所有的能被這樣描述的系統都是一個馬爾科夫過程。

 

  • 總結(Summary)

我們為了找到隨時間變化的模式,就試圖去建立一個可以產生模式的過程模型。我們使用了具體的時間步驟、狀態、並且做了馬爾科夫假設。有了這些假設,這個能產生模式系統就是一個馬爾科夫過程。一個馬爾科夫過程包括一個初始向量和一個狀態轉移矩陣。關於這個假設需要注意的一點是狀態轉移機率不隨時間變化。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.