1. 監督學習和無監督學習
利用一組已知類別的樣本調整分類器的參數,使其達到所要求性能的過程,也稱為監督訓練或有教師學習。正如人們通過已知病例學習診斷技術那樣,計算機要通過學習才能具有識別各種事物和現象的能力。用來進行學習的材料就是與被識別對象屬於同類的有限數量樣本。監督學習中在給予計算機學習樣本的同時,還告訴計算各個樣本所屬的類別。若所給的學習樣本不帶有類別信息,就是無監督學習。任何一種學習都有一定的目的,對於模式識別來說,就是要通過有限數量樣本的學習,使分類器在對無限多個模式進行分類時所產生的錯誤概率最小。
2. 馬爾可夫鏈和隱馬爾可夫鏈
馬爾可夫過程是下述這樣的一種過程:在已知時刻 t0 系統所處狀態的條件下,在時刻以后系統到達的情況與時刻 t0 以前系統所處的狀態無關,完全取決於時刻t0 系統所處的狀態。這個特性稱為無后效性,也稱為“馬爾可夫性”。
馬爾可夫過程數學定義如下:設{X(t), t∈T} 為隨機過程,如果對於任意正整數n及t1<t2<t3…. <tn,P{X(t1) = x1,X(t1) = x1,…..X(tn-1) = xn-1} >0, 並且其條件分布為:
P{X(tn) = xn| X(t1) = x1,X(t1) = x1,…..X(tn-1) = xn-1} = P{X(tn) = xn| X(tn-1) = xn-1}
則稱{X(t), t∈T} 為為馬爾可夫過程,或稱該過程具有馬爾可夫性。P{X(tn) = xn| X(tn-1) = xn-1} 也被稱為在時刻tn狀態轉移為xn的轉移概率。按照時間和狀態的離散、連續情況馬爾可夫過程可分為三類:
- 時間與狀態(空間)都離散的過程,稱為馬爾可夫鏈;
- 時間連續與狀態(空間)離散的過程,稱為連續時間的馬爾可夫過鏈;
- 時間與狀態(空間)都連續的馬爾可夫過程。
可見當時間與狀態空間都是離散的時候,這個過程就成為了馬爾可夫鏈/過程,那什么是隱式馬爾可夫鏈/過程呢?
隱馬爾可夫模型(Hidden Markov Model,HMM)是統計模型,它用來描述一個含有隱含未知參數的馬爾可夫過程。其難點是從可觀察的參數中確定該過程的隱含參數,然后利用這些參數來作進一步的分析,例如模式識別。在正常的馬爾可夫模型中,狀態(也就是上面介紹的X(t))對於觀察者來說是直接可見的。這樣狀態的轉換概率便是全部的參數。而在隱馬爾可夫模型中,狀態並不是直接可見的,但受狀態影響的某些變量則是可見的。每一個狀態在可能輸出的符號上都有一概率分布。因此輸出符號的序列能夠透露出狀態序列的一些信息。
設有N個缸,每個缸中裝有很多彩球,球的顏色由一組概率分布描述。實驗進行方式如下
- 根據初始概率分布,隨機選擇N個缸中的一個開始實驗
- 根據缸中球顏色的概率分布,隨機選擇一個球,記球的顏色為O1,並把球放回缸中
- 根據描述缸的轉移的概率分布,隨機選擇下一口缸,重復以上步驟。
最后得到一個描述球的顏色的序列O1,O2,…,稱為觀察值序列O。實驗中,有幾個要點需要注意:
- 不能被直接觀察缸間的轉移
- 從缸中所選取的球的顏色和缸並不是一一對應的
- 每次選取哪個缸由一組轉移概率決定
HMM的狀態是不確定或不可見的,只有通過觀測序列的隨機過程才能表現出來;觀察到的事件與狀態並不是一一對應,而是通過一組概率分布相聯系。用模型五元組 =( N, M, π ,A,B)用來描述HMM,或簡寫為 =(π ,A,B)
使用HMM可以解決如下三個問題:
問題1:給定觀察序列O=O1,O2,…OT,以及模型λ=(A,B, π) , 如何計算P(O|λ)?
問題2:給定觀察序列O=O1,O2,…OT以及模型λ,如何選擇一個對應的狀態序列 S = q1,q2,…qT,使得S能夠最為合理的解釋觀察序列O?
問題3:如何調整模型參數 , 使得P(O|λ)最大?
Wikipedia上的一個例子,看完以后,請找到這5個參數:
假設你有一個住得很遠的朋友,他每天跟你打電話告訴你他那天做了什么。你的朋友僅僅對三種活動感興趣:公園散步,購物以及清理房間。他選擇做什么事情只憑天氣。你對於他所住的地方的天氣情況並不了解,但是你知道總的趨勢。在他告訴你每天所做的事情基礎上,你想要猜測他所在地的天氣情況。
你認為天氣的運行就像一個馬爾可夫鏈。其有兩個狀態 "雨"和"晴",但是你無法直接觀察它們,也就是說,它們對於你是隱藏的。每天,你的朋友有一定的概率進行下列活動:"散步", "購物", 或 "清理"。因為你朋友告訴你他的活動,所以這些活動就是你的觀察數據。這整個系統就是一個隱馬爾可夫模型HMM。
你知道這個地區的總的天氣趨勢,並且平時知道你朋友會做的事情,也就是說這個隱馬爾可夫模型的參數是已知的。你可以用程序語言(Python)寫下來:
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的5個參數分別如下:
N: 狀態數目:2, 雨和晴天
M: 觀察值數目:3,散步、購物和清理
A: 與時間無關的狀態轉移概率:就是這個地區的天氣趨勢
B: 給定狀態下,觀察值概率分布是:下雨時散步的概率,下雨時購物的概率,etc.
π: 初始狀態空間的概率分布,這個應該是沒有的,可以以等概率開始。
3.