機器學習入門之一:基本概念


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))對於觀察者來說是直接可見的。這樣狀態的轉換概率便是全部的參數。而在隱馬爾可夫模型中,狀態並不是直接可見的,但受狀態影響的某些變量則是可見的。每一個狀態在可能輸出的符號上都有一概率分布。因此輸出符號的序列能夠透露出狀態序列的一些信息。

HMM

設有N個缸,每個缸中裝有很多彩球,球的顏色由一組概率分布描述。實驗進行方式如下

  1. 根據初始概率分布,隨機選擇N個缸中的一個開始實驗
  2. 根據缸中球顏色的概率分布,隨機選擇一個球,記球的顏色為O1,並把球放回缸中
  3. 根據描述缸的轉移的概率分布,隨機選擇下一口缸,重復以上步驟。

最后得到一個描述球的顏色的序列O1,O2,…,稱為觀察值序列O。實驗中,有幾個要點需要注意:

  1. 不能被直接觀察缸間的轉移
  2. 從缸中所選取的球的顏色和缸並不是一一對應的
  3. 每次選取哪個缸由一組轉移概率決定

HMM的狀態是不確定或不可見的,只有通過觀測序列的隨機過程才能表現出來;觀察到的事件與狀態並不是一一對應,而是通過一組概率分布相聯系。用模型五元組 =( N, M, π ,A,B)用來描述HMM,或簡寫為 =(π ,A,B)

image

使用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.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM