wiki上一個比較好的HMM例子

來源:互聯網
上載者:User

HMM(隱馬爾科夫模型)是自然語言處理中的一個基本模型,用途比較廣泛,如漢語分詞、詞性標註及語音辨識等,在NLP中佔有很重要的地位。網上關於HMM的介紹講解文檔很多,我自己當時開始看的時候也有點稀裡糊塗。後來看到wiki上舉得一個關於HMM的例子才如醍醐灌頂,忽然間明白HMM的三大問題是怎麼回事了。例子我藉助中文wiki重新翻譯了一下,並對三大基本問題進行說明,希望對讀者朋友有所協助:

  Alice 和Bob是好朋友,但是他們離得比較遠,每天都是通過電話瞭解對方那天作了什麼.Bob僅僅對三種活動感興趣:公園散步,購物以及清理房間.他選擇做什麼事情只憑當天天氣.Alice對於Bob所住的地方的天氣情況並不瞭解,但是知道總的趨勢.在Bob告訴Alice每天所做的事情基礎上,Alice想要猜測Bob所在地的天氣情況.
  Alice認為天氣的運行就像一個馬爾可夫鏈. 其有兩個狀態 “雨”和”晴”,但是無法直接觀察它們,也就是說,它們對於Alice是隱藏的.每天,Bob有一定的機率進行下列活動:”散步”, “購物”, 或 “清理”. 因為Bob會告訴Alice他的活動,所以這些活動就是Alice的觀察資料.這整個系統就是一個隱馬爾可夫模型HMM.
  Alice知道這個地區的總的天氣趨勢,並且平時知道Bob會做的事情.也就是說這個隱馬爾可夫模型的參數是已知的.可以用程式語言(Python)寫下來:
   // 狀態數目,兩個狀態:雨或晴
   states = (‘Rainy’, ‘Sunny’)
   // 每個狀態下可能的觀察值
   observations = (‘walk’, ‘shop’, ‘clean’)            
   //初始狀態空間的機率分布
   start_probability = {‘Rainy’: 0.6, ‘Sunny’: 0.4}
   // 與時間無關的狀態轉移機率矩陣
   transition_probability = {
   ’Rainy’ : {‘Rainy’: 0.7, ‘Sunny’: 0.3},
   ’Sunny’ : {‘Rainy’: 0.4, ‘Sunny’: 0.6},
   }
   //給定狀態下,觀察值機率分布,發射機率
   emission_probability = {
   ’Rainy’ : {‘walk’: 0.1, ‘shop’: 0.4, ‘clean’: 0.5},
   ’Sunny’ : {‘walk’: 0.6, ‘shop’: 0.3, ‘clean’: 0.1},
   }
  在這些代碼中,start_probability代表了Alice對於Bob第一次給她打電話時的天氣情況的不確定性(Alice知道的只是那個地方平均起來下雨多些).在這裡,這個特定的機率分布並非平衡的,平衡機率應該接近(在給定變遷機率的情況下){‘Rainy’: 0.571, ‘Sunny’: 0.429}。 transition_probability 表示馬爾可夫鏈下的天氣變遷情況,在這個例子中,如果今天下雨,那麼明天天晴的機率只有30%.代碼emission_probability 表示了Bob每天作某件事的機率.如果下雨,有
50% 的機率他在清理房間;如果天晴,則有60%的機率他在外頭散步。
  Alice和Bob通了三天電話後發現第一天Bob去散步了,第二天他去購物了,第三天他清理房間了。Alice現在有兩個問題:這個觀察序列“散步、購物、清理”的總的機率是多少?(註:這個問題對應於HMM的基本問題之一:已知HMM模型λ及觀察序列O,如何計算P(O|λ)?) 最能解釋這個觀察序列的狀態序列(晴/雨)又是什嗎?(註:這個問題對應HMM基本問題之二:給定觀察序列O=O1,O2,…OT以及模型λ,如何選擇一個對應的狀態序列S = q1,q2,…qT,使得S能夠最為合理的解釋觀察序列O?)
  至於HMM的基本問題之三:如何調整模型參數, 使得P(O|λ)最大?這個問題事實上就是給出很多個觀察序列值,來訓練以上幾個參數的問題。

註:原創文章,轉載請註明出處“我愛自然語言處理”:www.52nlp.cn

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.