HMM隱馬爾可夫模型
HMM基本原理
Markov鏈:如果一個過程的“將來”僅依賴“現在”而不依賴“過去”,則此過程具有馬爾可夫性,或稱此過程為馬爾可夫過程。馬爾可夫鏈是時間和狀態引數都離散的馬爾可夫過程。
HMM 是在 Markov 鏈的基礎上發展起來的,由於實際問題比 Markov 鏈模型所描述的更為複雜,觀察到的時間並不是與狀態一一對應的,而是通過一組概率分佈相聯絡,這樣的模型稱為HMM。
HMM是雙重隨機過程:其中之一是 Markov 鏈,這是基本隨機過程,它描述狀態的轉移,是隱含的。另一個隨機過程描述狀態和觀察值之間的統計對應關係,是可被觀測的。
HMM的定義:
如果你看不懂上面的那兩段話,那就對了。
HMM理解
HMM(隱馬爾可夫模型)是用來描述隱含未知引數的統計模型。舉一個經典的例子:一個東京的朋友每天根據天氣{下雨,天晴}決定當天的活動{公園散步,購物,清理房間}中的一種,我每天只能在twitter上看到她發的推“啊,我前天公園散步、昨天購物、今天清理房間了!”,那麼我可以根據她發的推特推斷東京這三天的天氣。在這個例子裡,顯狀態是活動,隱狀態是天氣。
HMM描述
任何一個HMM都可以通過下列五元組來描述:
:param obs:觀測序列
:param states:隱狀態
:param start_p:初始概率(隱狀態)
:param trans_p:轉移概率(隱狀態)
:param emit_p: 發射概率 (隱狀態表現為顯狀態的概率)
這個例子可以用如下的HMM來描述:
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},
}
求解最可能的天氣
求解最可能的隱狀態序列是HMM的三個典型問題之一,通常用維特比演算法解決。維特比演算法就是求解HMM上的最短路徑(-log(prob),也即是最大概率)的演算法。
</br>
稍微用中文講講思路,很明顯,第一天天晴還是下雨可以算出來:
</br>
1、 定義V[時間][今天天氣] = 概率,注意今天天氣指的是,前幾天的天氣都確定下來了(概率最大)今天天氣是X的概率,這裡的概率就是一個累乘的概率了。
</br>
2、 因為第一天我的朋友去散步了,所以第一天下雨的概率V[第一天][下雨] = 初始概率[下雨] * 發射概率[下雨][散步] = 0.6 * 0.1 = 0.06,同理可得V[第一天][天晴] = 0.24 。從直覺上來看,因為第一天朋友出門了,她一般喜歡在天晴的時候散步,所以第一天天晴的概率比較大,數字與直覺統一了。
</br>
3、 從第二天開始,對於每種天氣Y,都有前一天天氣是X的概率 * X轉移到Y的概率 * Y天氣下朋友進行這天這種活動的概率。因為前一天天氣X有兩種可能,所以Y的概率有兩個,選取其中較大一個作為V[第二天][天氣Y]的概率,同時將今天的天氣加入到結果序列中
</br>
4、 比較V[最後一天][下雨]和[最後一天][天晴]的概率,找出較大的哪一個對應的序列,就是最終結果。
</br>
HMM是一個通用的方法,可以解決貼標籤的一系列問題。
相關文章
- 隱馬爾可夫模型(HMM)詳解隱馬爾可夫模型HMM
- 隱馬爾科夫模型HMM(一)HMM模型馬爾科夫模型HMM
- 【HMM】隱馬爾科夫模型HMM馬爾科夫模型
- 隱馬爾可夫模型(HMM)中文分詞隱馬爾可夫模型HMM中文分詞
- 隱馬爾可夫模型(HMM)實現分詞隱馬爾可夫模型HMM分詞
- HMM隱馬爾可夫模型來龍去脈(二)HMM隱馬爾可夫模型
- 隱馬爾可夫模型隱馬爾可夫模型
- 隱馬爾科夫模型(HMM)分詞研究馬爾科夫模型HMM分詞
- 用hmmlearn學習隱馬爾科夫模型HMMHMM馬爾科夫模型
- 隱馬爾可夫模型詳解隱馬爾可夫模型
- 10_隱馬爾可夫模型隱馬爾可夫模型
- ML-隱馬爾可夫模型隱馬爾可夫模型
- 機器學習之隱馬爾可夫模型機器學習隱馬爾可夫模型
- 隱馬爾可夫模型 | 賽爾筆記隱馬爾可夫模型筆記
- 隱馬爾可夫模型及應用隱馬爾可夫模型
- 隱馬爾科夫模型HMM(三)鮑姆-韋爾奇演算法求解HMM引數馬爾科夫模型HMM演算法
- NLP-隱馬爾可夫模型及使用例項隱馬爾可夫模型
- 隱馬爾科夫模型HMM(四)維特比演算法解碼隱藏狀態序列馬爾科夫模型HMM維特比演算法
- 隱馬爾可夫模型的Viterbi解碼演算法隱馬爾可夫模型Viterbi演算法
- 馬爾可夫鏈模型(轉載)馬爾可夫模型
- 用簡單易懂的例子解釋隱馬爾可夫模型隱馬爾可夫模型
- 隱馬爾科夫模型HMM(二)前向後向演算法評估觀察序列概率馬爾科夫模型HMM演算法
- 維特比演算法和隱馬爾可夫模型的解碼維特比演算法隱馬爾可夫模型
- 使用馬爾可夫模型自動生成文章馬爾可夫模型
- 域結構進化的馬爾可夫模型馬爾可夫模型
- 隱馬爾科夫模型前向後向演算法馬爾科夫模型演算法
- CVPR 2021 | 時間序列疾病預測的因果隱馬爾可夫模型隱馬爾可夫模型
- 【機器學習】--隱含馬爾科夫模型從初識到應用機器學習馬爾科夫模型
- 理解馬爾可夫決策過程馬爾可夫
- 從語言建模到隱馬爾可夫模型:一文詳述計算語言學隱馬爾可夫模型
- 2022-05-17-馬爾科夫鏈之傳統馬爾可夫鏈馬爾科夫馬爾可夫
- 一個隱馬爾科夫模型的應用例項:中文分詞馬爾科夫模型中文分詞
- 隱馬爾科夫模型python實現簡單拼音輸入法馬爾科夫模型Python
- 中文分詞的探索,CRF(條件隨機場)和HMM(隱馬爾可夫模型)用於分詞的對比,以及中文分詞的評估中文分詞CRF條件隨機場HMM隱馬爾可夫模型
- 機器學習知識點(十)馬爾可夫鏈機器學習馬爾可夫
- 在 Swift 中使用馬爾可夫鏈生成文字Swift馬爾可夫
- 「馬爾可夫決策過程」學習筆記馬爾可夫筆記
- AI產品經理必修:揭開演算法的面紗(隱含馬爾可夫)AI演算法馬爾可夫