學習筆記 HMM統計模型

2021-08-11 16:19:18 字數 2018 閱讀 8276

畢設快要選題目了,為此開始看一些研究生導師研究方向的相關文獻,他的**太高深,於是轉而從一些基礎類的科普性文章看起。在《計算聽覺場景介紹》中遇到了hmm統計模型這個概念,於是上網搜了部落格學習了一下。

「hmm:隱馬爾科夫模型(hidden markov model)是統計模型,它用來描述乙個含有隱含未知引數的馬爾科夫過程。其難點是從可觀察的引數中確定該過程的隱含引數。然後利用這些引數來作進一步的分析,例如模式識別」  ——引自《一文搞懂hmm(隱馬爾可夫模型)》。

此文中舉了兩個例子來說明hmm。乙個是擲骰子。有三種骰子:六面骰(d6)、四面骰(d4)、八面骰(d8)。現在我有一串骰子點數的序列,那麼這串串行可以被觀察到,因此叫做可見狀態鏈。而背後的「隱含狀態鏈」就是我擲骰子的序列,即每一次用了哪一種骰子。一般來說,hmm中說的「馬爾可夫鏈」指的都是隱含狀態鏈。隱含狀態鏈中各個狀態之間可以存在轉換概率,如規定d4後面不能接d8,而接d4的概率是0.1,接d6的概率是0.9.這樣,就改變了原本每種骰子都是1/3的選擇概率。由這個問題做引子,我們可以把常見的hmm演算法分為三類:

(1)已知骰子的數目(隱含狀態的數量),每種骰子是什麼樣的(個人認為這裡等價於已知輸出概率,即這個骰子能輸出什麼樣的結果的概率分布。而原作者寫的是轉換概率),已知擲出來的點數結果(可見狀態鏈),去估計我擲骰子的序列;

(2)已知骰子的數目(隱含狀態的數量),每種骰子是什麼樣的,已知擲出來的點數結果(可見狀態鏈),求這個結果出現的概率。

(3)已知骰子的數目,觀測到很多次擲出來的點數結果(可見狀態鏈),去估計每種骰子是什麼樣的。

第三種情況最常見,很多時候我們就是要根據可見的結果,去擬合出一組引數,也即建模。

那麼估計hmm隱含狀態鏈的方法的思路就是最大似然的方法,個人認為維特比方法(viterbi algorithm)的思想其實也是最大似然,說白了就是我的隱含狀態鏈的各個引數取什麼值,才能使我觀測到的結果出現的概率最大。這裡原作者舉出了第二個例子:根據朋友所發twitter和他的生活習慣來推測他所處當地天氣。這裡,朋友所描述的他今天幹了什麼,是「散步」、「出去購物」、「清理房間」的哪一種,是我們所能觀測到的結果,是可見狀態鏈,而具體的天氣情況則是隱含狀態鏈,要麼天晴,要麼下雨,今晴明晴,今晴明雨,今雨明晴,今雨明雨描述了隱狀態之間轉換概率。晴天時,我幹那三件事分別有個概率;雨天時,我幹那三件事也分別有個概率,這就是發射概率(emission probability)。當然,根據大自然的脾氣,這一天本來應該是晴天還是雨天,也有個概率,這就是起始概率(start probability)。於是,任何乙個hmm模型都可以用這樣乙個五元組來描述:

x: hidden state

y:visiable output

p(x): start probability

x1 to x2 :transition probability

x to y :emission probability

注意,朋友發推是過去時,那些天已經過完了,天氣自然是過去時,所以我們要做的是根據twitter推測出那天的天氣。這樣一來,我們要計算的其實可以理解為一種聯合概率。比如第一天,我們根據推文猜測:

第一天下雨的概率v[第一天][下雨] = p1(朋友去散步了;下雨了)= 下雨的起始概率 * p(朋友去散步|下雨的條件下);

同理,我們再計算:

第一天天晴的概率v[第一天][天晴] =p2(朋友去散步了;天晴)= 天晴的起始概率 * p(朋友去散步|晴天的條件下);

若p1>p2,則認為那天下雨了,反之,那天晴天。即理解為,把「天晴」或「下雨」作為引數,看看誰當引數時,我們的觀測結果「朋友去散步了」的概率最大。

以此類推,我們可以推出一連幾天天氣是怎麼樣的。因為從第二天開始,對於每一種天氣y,我們都可以計算前一天的天氣是x的概率*x轉移到y的概率*y天氣下朋友進行某種活動的概率,選乙個最大概率對應的天氣,加入到隱馬爾可夫鏈中就可以了。

初學這個的原因是,《計算聽覺場景介紹》寫到「現在已有愈來愈多的研究人員意識到目前的計算機語音識別系統(以hmm統計模型為主要框架)與人類聽覺系統的巨大差異」。現在還不太懂,大概是說用hmm識別出來的效果雖然不錯,但是是一種空洞的無意識的計算吧,不像人腦分析那麼高階。隨著學習的深入,我近期會不斷更新《學習筆記》這個專欄的!

HMM模型學習筆記(前向演算法例項)

hmm演算法想必大家已經聽說了好多次了,完全看公式一頭霧水。但是hmm的基本理論其實很簡單。因為hmm是馬爾科夫鏈中的一種,只是它的狀態不能直接被觀察到,但是可以通過觀察向量間接的反映出來,即每乙個觀察向量由乙個具有相應概率密度分布的狀態序列產生,又由於每乙個狀態也是隨機分布的,所以hmm是乙個雙重...

HMM模型介紹

時序模型 資料會隨著時間的改變二進行改變,比如溫度 說話等。hmm模型是乙個時序模型,因為是個時序模型所以每時每刻都有乙個觀測值。下圖所示 z為隱式變數,x為已知的觀測值。扔不均衡硬幣 有兩枚硬幣a和b,這兩枚硬幣正反面概率不一樣,我們記a和b各自出現正面的概率分別為u1和u2。現在小明進行扔硬幣,...

EM和HMM學習筆記

1.em expectition maximum 期望最大化演算法,由於已知資料中有未觀察到的隱含資料,所以需要猜想隱含資料,進而求模型引數。e為期望步,計算模型的期望值問題 m步為求最大化問題,以此類推,不斷迭代。2.hmm hidden markov model 隱馬爾夫模型,hmm解決的問題有...