1. 程式人生 > >機器學習中的隱馬爾科夫模型(HMM)詳解

機器學習中的隱馬爾科夫模型(HMM)詳解

前導性推薦閱讀資料:

歡迎關注白馬負金羈的部落格 http://blog.csdn.net/baimafujinji,為保證公式、圖表得以正確顯示,強烈建議你從該地址上檢視原版博文。本部落格主要關注方向包括:數字影象處理、演算法設計與分析、資料結構、機器學習、資料探勘、統計分析方法、自然語言處理。

引言

在之前介紹貝葉斯網路的博文中,我們已經討論過概率圖模型(PGM)的概念了。Russell等在文獻【1】中指出:“在統計學中,圖模型這個術語指包含貝葉斯網路在內的比較寬泛的一類資料結構。” 維基百科中更準確地給出了PGM的定義:“A graphical model or probabilistic graphical model is a probabilistic model for which a graph expresses the conditional dependence structure between random variables. ” 如果你已經掌握了貝葉斯網路,那麼你一定不會對PGM的概念感到陌生。本文將要向你介紹另外一種型別的PGM,即隱馬爾可夫模型(HMM,Hidden Markov Model)。更準確地說,HMM是一種特殊的貝葉斯網路。

一些必備的數學知識

隨機過程(Stochastic Process)是一連串隨機事件動態關係的定量描述。如果用更為嚴謹的數學語言來描述,則有:設對每一個 tTX(t,w) 是一個隨機變數,稱隨機變數族 XT={X(t,w),tT} 為一隨機過程(或隨機函式),其中 T 稱為指標集, 是實數集。wΩΩ為樣本空間。用對映來表示XT

X(t,w)T×Ω
X(,) 是定義在 T×Ω 上的二元單值函式。其中 T×Ω 表示 TΩ 的笛卡爾積。

引數 tT 一般表示時間。當 T 取可列集時,通常稱 XT 為隨機序列。XT(tT) 可能取值的全體集合稱為狀態空間,狀態空間中的元素稱為狀態。

馬爾科夫過程(Markov Process)是本文中我們所要關注的一種隨機過程。粗略地說,一個隨機過程,若已知現在的 t 狀態 Xt, 那麼將來狀態 Xu(u>t) 取值(或取某些狀態)的概率與過去的狀態 Xs(s>t) 取值無關;或者更簡單地說,已知現在、將來與過去無關(條件獨立),則稱此過程為馬爾科夫過程。

同樣,我們給出一個精確的數學定義如下:若隨機過程{Xt,tT}對任意 t1<t2<<tn<txi1inA 的子集,總有

P{XtA|Xt1=x1,Xt2=x2,,Xtn=xn}=P{XtA|Xtn=xn}
則稱此過程為馬爾科夫過程。稱P
(s,x;t,A)=P{XtA|Xs=x}
s>t, 為轉移概率函式。Xt 的全體取值構成集合 S 就是狀態空間。對於馬爾可夫過程 XT={Xt,tT},當S={1,2,3,}為可列無限集或有限集時,通常稱為馬爾科夫鏈(Markov Chain)。

從時間角度考慮不確定性

在前面給出的貝葉斯網路例子中,每一個隨機變數都有唯一的一個固定取值。當我們觀察到一個結果或狀態時(例如Mary給你打電話),我們的任務是據此推斷此時發生地震的概率有多大。而在此過程中,Mary是否給你打過電話這個狀態並不會改變,而地震是否已經發生也不會改變。這就說明,我們其實是在一個靜態的世界中來進行推理的。

但是我們現在要研究的HMM,其本質則是基於一種動態的情況來進行推理,或者說是根據歷史來進行推理。假設要為一個高血壓病人提供治療方案,醫生每天為他量一次血壓,並根據這個血壓的測量值調配用藥的劑量。顯然,一個人當前的血壓情況是跟他過去一段時間裡的身體情況、治療方案,飲食起居等多種因素息息相關的,而當前的血壓測量值相等於是對他當時身體情況的一個“估計”,而醫生當天開具的處方應該是基於當前血壓測量值及過往一段時間裡病人的多種情況綜合考慮後的結果。為了根據歷史情況評價當前狀態,並且預測治療方案的結果,我們就必須對這些動態因素建立數學模型。

而隱馬爾科夫模型就是解決這類問題時最常用的一種數學模型,簡單來說,HMM是用單一離散隨機變數描述過程狀態的時序概率模型。HMM的基本模型可用下圖來表示,其中塗有陰影的圓圈 yt2,yt1,yt 相當於是觀測變數,空白圓圈 xt2,xt1,xt 相當於是隱變數。回到剛剛提及的高血壓治療的例子,你所觀測到的狀態(例如血壓計的讀數)相當於是對其真實狀態(即病人的身體情況)的一種估計(因為觀測的過程中必然存在噪聲),用數學語言來表述就是P(yt|xt),這就是模型中的測量模型或測量概率(Measurement Probability)。另外一方面,當前的(真實)狀態(即病人的實際身體狀況)應該與其上一個觀測狀態相關,即存在這樣的一個分佈P(

相關推薦

機器學習模型HMM

前導性推薦閱讀資料: 歡迎關注白馬負金羈的部落格 http://blog.csdn.net/baimafujinji,為保證公式、圖表得以正確顯示,強烈建議你從該地址上檢視原版博文。本部落格主要關注方向包括:數字影象處理、演算法設計與分析、資料結構、機器學

模型HMM

上邊的圖示都強調了 HMM 的狀態變遷。而下圖則明確的表示出模型的演化,其中綠色的圓圈表示隱藏狀態,紫色圓圈表示可觀察到狀態,箭頭表示狀態之間的依存概率,一個 HMM 可用一個5元組 { N, M, π,A,B } 表示,其中 N 表示隱藏狀態的數量,我們要麼知道確切的值,要麼猜測該值,M 表示可觀測狀態的數

模型HMM學習筆記

       被隱馬爾科夫模型整了一個星期,剛發現這個視訊講的不錯,https://www.bilibili.com/video/av32471608/?p=3,B站上 :機器學習-白板推導系列-馬爾科夫模型HMM(Hidden Markov Model)。

模型HMM學習筆記二

  這裡接著學習筆記一中的問題2,說實話問題2中的Baum-Welch演算法程式設計時矩陣轉換有點燒腦,開始編寫一直不對(程式設計還不熟練hh),後面在紙上仔細推了一遍,由特例慢慢改寫才執行成功,所以程式碼裡面好多處都有print。     筆記一中對於問題1(概率計算問題)採用了前向或後向演算

自然語言處理---用模型HMM實現詞性標註---1998年1月份人民日報語料---learn---test---evaluation---Demo---java實現

fileinput 流程 n) 一次 tostring model pen mem rbd 先放上一張Demo的測試圖 測試的句子及每個分詞的詞性標註為: 目前/t 這/rzv 條/q 高速公路/n 之間/f 的/ude1 路段/n 已/d 緊急/a 封閉/v 。/

模型HMM與維特比Viterbi演算法通俗理解

隱馬爾科夫模型:https://blog.csdn.net/stdcoutzyx/article/details/8522078 維特比演算法:https://blog.csdn.net/athemeroy/article/details/79339546 隱含馬爾可夫模型並不是俄

[八]機器學習模型HMM

8.1 目標任務 1.用jieba庫實現中文詞性標註 2.用SnoeNLP庫實現中文詞性標註 8.2 實驗資料 novel.txt 8.3 實驗過程 8.3.1 實驗準備 1.安裝jieba庫: pip install jieba jieba庫繁體分詞和自定

模型學習演算法

隱馬爾科夫模型的學習,根據訓練資料時包括觀測序列和對應的狀態序列還是隻有觀測序列,可以分別有監督學習和非監督學習實現。 監督學習方法 假設已給的訓練資料中,包含S個長度相同的觀測序列和對應的狀態序列 {

利用HMM模型實現中文分詞

stat back viterbi sub ont 漢字 display state 出現 1.什麽是HMM? 隱馬爾科夫鏈(HMM)是一個五元組: 隱狀態集合 ; 觀測狀態集合; 狀態概率轉移矩陣; 觀察狀態概率矩陣; 初始狀態概率分布; 2.HMM有兩個假設: 齊

hmm基本原理和簡單例項

title: 隱馬爾科夫鏈(hmm) tags: hmm,隱馬爾科夫鏈,基本原理 grammar_cjkRuby: true 隱馬爾科夫鏈基本介紹 隱馬爾科夫(Hidden Markov Model,HMM),瞭解一個演算法要做到:會其意,知其形。 引子 隱馬爾科夫

模型預測演算法

預測問題,也稱作解碼問題。已知模型 λ = ( A

模型

概率計算演算法 給定模型 λ = ( A

模型

基本概念 要理解隱馬爾科夫模型,首先要回答三個問題 1)什麼是馬爾科夫性? 2)什麼是馬爾科夫鏈? 3)什麼是馬爾科夫過程? 馬爾科夫性: 要介紹馬爾科夫性,還要先了解下隨機過程的概念。百度百科給出的隨機過程的定義: 隨機過程是依賴於引數的一族隨機變數的全體,引數通常是時間。 一

模型HMM)——qjzcy的部落格

工作學習中的一點體會——隱馬爾科夫模型 HMM(一) 一.             提綱 1)  假設 2)  模型 3)  五個引數 4)  解決三個問題 5)  三個方法 6)  Vertibe演算法 7)  改進 二.兩個假設 1、 馬爾科夫性假設: 一個特定狀態

模型HMM和 jieba分詞原始碼的理解

在理解隱馬爾可夫模型(HMM)時,看到的很好的部落格,記錄一下: 1. 隱馬爾可夫模型(HMM) - 1 - 基本概念:http://blog.csdn.net/xueyingxue001/article/details/51435728 2.隱馬爾可夫模型(HMM) - 2 -

模型HMM及Viterbi演算法

HMM簡介   對於演算法愛好者來說,隱馬爾可夫模型的大名那是如雷貫耳。那麼,這個模型到底長什麼樣?具體的原理又是什麼呢?有什麼具體的應用場景呢?本文將會解答這些疑惑。   本文將通過具體形象的例子來引入該模型,並深入探究隱馬爾可夫模型及Viterbi演算法,希望能對大家有所啟發。

HMM模型HMM攻略

隱馬爾可夫模型 (Hidden Markov Model,HMM) 最初由 L. E. Baum 和其它一些學者發表在一系列的統計學論文中,隨後在語言識別,自然語言處理以及生物資訊等領域體現了很大的價值。平時,經常能接觸到涉及 HMM 的相關文章,一直沒有仔細研究過,都

模型HMM和Viterbi演算法

1. 隱馬爾可夫模型(HMM) 在說隱馬爾可夫模型前還有一個概念叫做“馬爾科夫鏈”,既是在給定當前知識或資訊的情況下,觀察物件過去的歷史狀態對於預測將來是無關的。也可以說在觀察一個系統變化的時候,他的下一個狀態如何的概率只需要觀察和統計當前的狀態即可正確得出。隱馬爾可夫鏈和貝葉

模型HMM攻略

上邊的圖示都強調了 HMM 的狀態變遷。而下圖則明確的表示出模型的演化,其中綠色的圓圈表示隱藏狀態,紫色圓圈表示可觀察到狀態,箭頭表示狀態之間的依存概率,一個 HMM 可用一個5元組 { N, M, π,A,B } 表示,其中 N 表示隱藏狀態的數量,我們要麼知道確切的值,要麼猜測該值,M 表示可觀測狀態的

模型HMM

  隱馬爾可夫模型原理部分可以概括為三句話:一個定義、兩個假設、三個問題   HMM是一個五元組(Y,X,π,A,B),其中Y是狀態(輸出)的集合,X是觀察值(輸入)集合,π是初始狀態的概率,A是狀態