1. 程式人生 > >01 隱馬爾可夫模型 - 馬爾可夫鏈、HMM引數和性質

01 隱馬爾可夫模型 - 馬爾可夫鏈、HMM引數和性質

一、馬爾可夫性質

__先直白得講性質:__當前的狀態只和上一時刻有關,在上一時刻之前的任何狀態都和我無關。我們稱其__符合__馬爾可夫性質。

下面是理論化的闡述:
設{X(t), t ∈ T}是一個__隨機過程__,E為其狀態空間,若對於任意的t1


二、馬爾可夫鏈

馬爾可夫鏈 是指具有馬爾可夫性質的隨機過程。在過程中,在給定當前資訊的情況下,過去的資訊狀態對於預測將來__狀態__是無關的。

馬爾可夫鏈

__例子:__在今天這個時間點而言,過去的股價走勢對我預測未來的股價是毫無幫助的。
PS:上面馬爾可夫鏈中提到的__狀態__,在本例指的是__股價__。

在馬爾可夫鏈的每一步,系統根據__概率分佈__,可以從一個狀態變成另外一個狀態,也可以保持當前狀態不變。狀態的改變叫做__轉移__,狀態改變的相關概率叫做__轉移概率__。

例子: 當前時間狀態下的股價,可以轉變成下一時刻的股價,股價的轉變即__狀態的改變__。這個狀態現在可以上升(股價提高),狀態也可以下降。我可以根據當前股票的價格去決定下一刻股價上升、下降、不變的概率。這種股價變動的概率稱為__狀態轉移概率__。

馬爾可夫鏈中的__三元素是__:狀態空間S、轉移概率矩陣P、初始概率分佈π。


例子:假設認為股價有三種狀態(高、中、低);

1、狀態空間S - 例: S是一個集合,包含所有的狀態 __S股價={高,中,低}__;

2、初始概率分佈π - 例:
股價剛發行的時候有一個初始價格,我們認為初始價格為高的概率為50%,初始價格為中的概率是30%,初始價格為低的概率是20%。我們記股票價格的初始概率分佈為:π=(0.5,0.3,0.2);對應狀態:(高、中、低);__初始概率分佈是一個向量__,如果有n個狀態,π是n維向量。

3、轉移概率矩陣P - 例:
現在有個股價為中,下一個時刻狀態轉變的可能性有三種,中→高、中→低、中→中;將三種轉變的概率。此外當前時刻也有股票的價格屬於低,對應的轉變可能包括低→高、低→低、低→中;即每種狀態都有可能轉變成其他的狀態,若一共有n個狀態,形成的__轉移概率矩陣__應該是n×n階矩陣。這裡需要注意的是,股價從高→低,和低→高的概率是不同的。


馬爾可夫鏈案例:

設將天氣狀態分為晴、陰、雨三種狀態,假定某天的天氣狀態只和上一天的天氣狀態有關,狀態使用1(晴)、2(陰)、3(雨)表示,轉移概率矩陣P如下:

第n+1天天氣狀態為j的概率為:

因此,矩陣P即為條件概率轉移矩陣。矩陣P的第i行元素表示,在上一個狀態為i的時候的分佈概率,即每行元素的和必須為1。


三、HMM

隱馬爾可夫模型(Hidden Markov Model, HMM)是一種統計模型,在語音識別、行為識別、NLP、故障診斷等領域具有高效的效能。

HMM是關於時序的概率模型,描述一個含有未知引數的馬爾可夫鏈所生成的不可觀測的狀態隨機序列,再由各個狀態生成觀測隨機序列的過程。

HMM是一個雙重隨機過程---具有一定狀態的隱馬爾可夫鏈和隨機的觀測序列。

HMM隨機生成的狀態隨機序列被稱為狀態序列;每個狀態生成一個觀測,由此產生的觀測隨機序列,被稱為觀測序列。

上-狀態序列(天氣) 下-觀測序列(地面是否乾燥)

__思考:__z1,z2...,zn是__不可觀測的狀態__,x1,x2,...xn是__可觀測到的序列__;不可觀測的狀態覺得可觀測序列的值(z的取值決定x的取值);

1、在__z1、z2 不可觀測__的情況下,x1和z2獨立嗎?x1和x2獨立嗎?

__回答:__這個問題可以回顧之前的__貝葉斯網路__來理解。
首先z1,z2都是離散的值,但x1的值可能是離散的也可能是連續的。比如z是天氣情況,每天天氣的改變是離散的。x是因為天氣而改變的一些其他狀態,比如x=(地面是否潮溼、路上行人數量、雨傘銷售數量...);
在z1和z2不可觀測的情況下,x1和z2不獨立,x1和x2也是不獨立的。

2、 在__z1、z2可觀測__的情況下,x1和z2獨立嗎?x1和x2獨立嗎?

回答: 在z1和z2可觀測的情況下,因為x1和z2的取值只和z1有關,所以就獨立了。同樣在給定了z1和z2的情況下,x1和x2也獨立。


請回顧貝葉斯網路中的獨立性問題來思考這個問題。
04 貝葉斯演算法 - 貝葉斯網路

回顧:
一般而言,貝葉斯網路的有向無環圖中的節點表示隨機變數,可以是可觀察到的變數,或隱變數,未知引數等等。連線兩個節點之間的箭頭代表兩個隨機變數之間的因果關係(也就是這兩個隨機變數之間非條件獨立);如果兩個節點間以一個單箭頭連線在一起,表示其中一個節點是“因”,另外一個節點是“果”,從而兩節點之間就會產生一個條件概率值。

PS:每個節點在給定其直接前驅的時候,條件獨立於其非後繼。

所以隱馬爾科夫也是貝葉斯網路的一種應用。


__HMM__由隱含狀態S、可觀測狀態O、初始狀態概率矩陣π、隱含狀態轉移概率矩陣A、可觀測值轉移矩陣B(又稱為混淆矩陣,Confusion Matrix);

π和A決定了狀態序列,B決定觀測序列,因此HMM可以使用三元符號表示,稱為HMM的三元素:

HMM三元素

S可以統計歷史出現的所有狀態;
初始概率分佈π,統計S中各個狀態各自出現的概率作為我們的初始概率分佈π向量值;


四、HMM引數

S是所有可能的狀態集合,O是所有可能的觀測集合:

I是長度為T的狀態序列,Q是對應的觀測序列:

S={下雨,陰天,晴天};O={地上幹,地上溼}
I = {晴,雨,雨,陰,晴,陰}
Q={幹,溼,溼,溼,幹,幹}


A是隱含狀態轉移概率矩陣:

其中aij是在時刻t處於狀態si的條件下時刻t+1轉移到狀態sj的概率。
a晴雨 = 某天是晴天條件下,下一天是雨天的概率。 (某一時刻→下一時刻)

B是可觀測值轉移概率矩陣:

其中bij是在時刻t處於狀態si的條件下生成觀測值oj的概率。
b晴幹 = 某天是晴天條件下,某天是地是乾的的概率。 (同一時刻)

π是初始狀態概率向量:

其中πi是在時刻t=1處於狀態si的概率。
π = 初始第一天是晴天的概率;
π = 初始第一天是雨天的概率;


五、HMM的兩個基本性質

p(it | .....) 表示在從__t-1時刻的觀測值qt-1,一直到第1時刻觀測值q1__的條件下,在第t時刻發生狀態的概率。

性質1: 最終分析結果發現,在第t時刻發生狀態的概率it只和t-1時刻有關。
性質2: 第t時刻的觀測值qt只和第t時刻的狀態it有關。


HMM案例:

假設有三個盒子,編號為1,2,3;每個盒子都裝有黑白兩種顏色的小球,球的比例。如下:

按照下列規則的方式進行有放回的抽取小球,得到球顏色的觀測序列:
1、按照π的概率選擇一個盒子,從盒子中隨機抽取出一個球,記錄顏色後放回盒子中;
2、按照某種條件概率選擇新的盒子,重複該操作;
3、最終得到觀測序列:“白黑白白黑”

例如: 每次抽盒子按一定的概率來抽,也可以理解成隨機抽。
第1次抽了1號盒子①,第2次抽了3號盒子③,第3次抽了2號盒子②.... ; 最終如下:
①→③→②→②→③ 狀態值
白→黑→白→白→黑 觀測值

1、__狀態集合:__ S={盒子1,盒子2,盒子3}
2、__觀測集合:__ O={白,黑}
3、__狀態序列和觀測序列的長度__ T=5 (我抽了5次)
4、__初始概率分佈:__ π 表示初次抽時,抽到1盒子的概率是0.2,抽到2盒子的概率是0.5,抽到3盒子的概率是0.3。
5、__狀態轉移概率矩陣__ A:a11=0.5 表示當前我抽到1盒子,下次還抽到1盒子的概率是0.5;
6、__觀測概率矩陣__ B:如最初的圖,b11=第一個盒子抽到白球概率0.4,b12=第一個盒子抽到黑球概率0.6;

HMM案例思考

在給定引數π、A、B的時候,得到觀測序列為“白黑白白黑”的概率是多少?

這個時候,我們不知道隱含條件,即不知道狀態值:①→③→②→②→③ ;
我們如何根據π、A、B求出測序列為“白黑白白黑”的概率?

02 隱馬爾可夫模型 - HMM的三個問題 - 概率計算、學習、預測