做者:櫻花豬算法
摘要:網絡
本文爲七月算法(julyedu.com)12月機器學習第十七次課在線筆記。隱馬爾可夫模型(Hidden Markov Model,HMM)是統計模型,它用來描述一個含有隱含未知參數的馬爾科夫過程。其難點是從可觀察的參數中肯定該過程的隱含參數,而後利用這些參數來做進一步的分析。在早些年HMM模型被很是普遍的應用,而如今隨着機器學習的發展HMM模型的應用場景愈來愈小然而在圖像識別等領域HMM依然起着重要的做用。機器學習
引言:函數
隱馬爾科夫模型是馬爾科夫鏈的一種,它的狀態不能直接觀察到,但能經過觀測向量序列觀察到,每一個觀測向量都是經過某些機率密度分佈表現爲各類狀態,每個觀測向量是由一個具備相應機率密度分佈的狀態序列產生。因此,隱馬爾科夫模型是一個雙重隨機過程----具備必定狀態數的隱馬爾科夫鏈和顯示隨機函數集。自20世紀80年代以來,HMM被應用於語音識別,取得重大成功。到了90年代,HMM還被引入計算機文字識別和移動通訊核心技術「多用戶的檢測」。HMM在生物信息科學、故障診斷等領域也開始獲得應用。學習
本次課程以中文分子算法爲實踐背景基礎來說述隱馬爾科夫模型。本次課程主要分享了隱馬爾科夫模型的機率計算、參數估計和模擬預測等方法,結合課程上提到的實力,咱們可以感覺大HMM可以經久不衰的強大力量。spa
馬爾科夫模型在推導過程當中用到了以前提到的一些經典算法須要融匯貫通。3d
預備知識:orm
機率論和數理統計、矩陣論、貝葉斯網絡、EM算法blog
1、隱馬爾科夫模型:ci
1、定義
隱馬爾科夫模型(HMM,Hidden Markov Model)可用標註問題,在語音識別、NLP、生物信息、模式識別等領域被實踐證實是有效的算法。
HMM是關於時序的機率模型,描述由一個隱藏的馬爾科夫鏈生成不可觀測的狀態隨機序列,再由各個狀態生成觀測隨機序列的過程。
隱馬爾科夫模型隨機生成的狀態隨機序列,稱爲狀態序列;每一個狀態生成一個觀測,由此產生的觀測隨機序列,稱爲觀測序列。
Z是未知的,X是已知的,咱們經過對X來作Z的推論,就是隱馬爾科夫模型。
二、HMM的肯定
HMM由初始機率分佈π、狀態轉移機率分佈A以及觀測機率分佈B肯定。
描述整個隱碼模型。
三、HMM的參數:
Q是全部可能的狀態的集合,N是可能的狀態數;
V是全部可能的觀測的集合,M是可能的觀測數。
2、HMM的機率計算問題:
一、直接計算:
按照機率公式,列舉全部可能的長度爲T的狀態序列,求各個狀態序列I與觀測序列
的聯合機率
,而後對全部可能的狀態序列求和,從而獲得
。
二、前向算法
前向機率定義:給定λ,定義到時刻t部分觀測序列爲且狀態爲qi的機率稱爲前向機率,記作:
前向算法計算方案:
初值:
遞推:對於t=1,2,...,T-1
有:
最終:
三、後向算法
定義:給定λ,定義到時刻t狀態爲qi的前提下,從t+1到T的部分觀測序列爲的機率爲後向機率,記作:
計算方法:
初值:
遞推:對於t=T-1,T-2,...,1
最終:
2、預測算法
一、預測的近似算法
A. 在每一個時刻t選擇在該時刻最有可能出現的狀態it*,從而獲得一個狀態序列I*={i1*,i2*…iT*},將它做爲預測的結果。
B. 給定模型和觀測序列,時刻t處於狀態qi的機率爲:
C. 選擇機率最大的i做爲最有可能的狀態(注:會出現此狀態在實際中可能不會發生的狀況)
二、Viterbi算法
Viterbi算法實際是用動態規劃解HMM預測問題,用DP求機率最大的路徑(最優路徑),這是一條路徑對應一個狀態序列。
定義變量:在時刻t狀態爲i的全部路徑中,機率的最大值。
具體過程:
定義:
遞推: