1. 程式人生 > >周志華《Machine Learning》學習筆記(16)--概率圖模型

周志華《Machine Learning》學習筆記(16)--概率圖模型

轉自:http://blog.csdn.net/u011826404/article/details/75090562

上篇主要介紹了半監督學習,首先從如何利用未標記樣本所蘊含的分佈資訊出發,引入了半監督學習的基本概念,即訓練資料同時包含有標記樣本和未標記樣本的學習方法;接著分別介紹了幾種常見的半監督學習方法:生成式方法基於對資料分佈的假設,利用未標記樣本隱含的分佈資訊,使得對模型引數的估計更加準確;TSVM給未標記樣本賦予偽標記,並通過不斷調整易出錯樣本的標記得到最終輸出;基於分歧的方法結合了整合學習的思想,通過多個學習器在不同檢視上的協作,有效利用了未標記樣本資料 ;最後半監督聚類則是藉助已有的監督資訊來輔助聚類的過程,帶約束k-均值演算法需檢測當前樣本劃分是否滿足約束關係,帶標記k-均值演算法則利用有標記樣本指定初始類中心。本篇將討論一種基於圖的學習演算法–概率圖模型。

15、概率圖模型

現在再來談談機器學習的核心價值觀,可以更通俗地理解為:根據一些已觀察到的證據來推斷未知,更具哲學性地可以闡述為:未來的發展總是遵循著歷史的規律。其中基於概率的模型將學習任務歸結為計算變數的概率分佈,正如之前已經提到的:生成式模型先對聯合分佈進行建模,從而再來求解後驗概率,例如:貝葉斯分類器先對聯合分佈進行最大似然估計,從而便可以計算類條件概率;判別式模型則是直接對條件分佈進行建模。

概率圖模型(probabilistic graphical model)是一類用圖結構來表達各屬性之間相關關係的概率模型,一般而言:圖中的一個結點表示一個或一組隨機變數,結點之間的邊則表示變數間的相關關係

,從而形成了一張“變數關係圖”。若使用有向的邊來表達變數之間的依賴關係,這樣的有向關係圖稱為貝葉斯網(Bayesian nerwork)或有向圖模型;若使用無向邊,則稱為馬爾可夫網(Markov network)或無向圖模型。

15.1 隱馬爾可夫模型(HMM)

隱馬爾可夫模型(Hidden Markov Model,簡稱HMM)是結構最簡單的一種貝葉斯網,在語音識別與自然語言處理領域上有著廣泛的應用。HMM中的變數分為兩組:狀態變數觀測變數,其中狀態變數一般是未知的,因此又稱為“隱變數”,觀測變數則是已知的輸出值。在隱馬爾可夫模型中,變數之間的依賴關係遵循如下兩個規則:

1. 觀測變數的取值僅依賴於狀態變數

; 
2. 下一個狀態的取值僅依賴於當前狀態,通俗來講:現在決定未來,未來與過去無關,這就是著名的馬爾可夫性

這裡寫圖片描述

基於上述變數之間的依賴關係,我們很容易寫出隱馬爾可夫模型中所有變數的聯合概率分佈:

這裡寫圖片描述

易知:欲確定一個HMM模型需要以下三組引數

這裡寫圖片描述

當確定了一個HMM模型的三個引數後,便按照下面的規則來生成觀測值序列:

這裡寫圖片描述

在實際應用中,HMM模型的發力點主要體現在下述三個問題上:

這裡寫圖片描述

15.1.1 HMM評估問題

HMM評估問題指的是:給定了模型的三個引數與觀測值序列,求該觀測值序列出現的概率。例如:對於賭場問題,便可以依據骰子擲出的結果序列來計算該結果序列出現的可能性,若小概率的事件發生了則可認為賭場的骰子有作弊的可能。解決該問題使用的是前向演算法,即步步為營,自底向上的方式逐步增加序列的長度,直到獲得目標概率值。在前向演算法中,定義了一個前向變數,即給定觀察值序列且t時刻的狀態為Si的概率:

這裡寫圖片描述

基於前向變數,很容易得到該問題的遞推關係及終止條件:

這裡寫圖片描述

因此可使用動態規劃法,從最小的子問題開始,通過填表格的形式一步一步計算出目標結果。

15.1.2 HMM解碼問題

HMM解碼問題指的是:給定了模型的三個引數與觀測值序列,求可能性最大的狀態序列。例如:在語音識別問題中,人說話形成的數字訊號對應著觀測值序列,對應的具體文字則是狀態序列,從數字訊號轉化為文字正是對應著根據觀測值序列推斷最有可能的狀態值序列。解決該問題使用的是Viterbi演算法,與前向演算法十分類似地,Viterbi演算法定義了一個Viterbi變數,也是採用動態規劃的方法,自底向上逐步求解。

這裡寫圖片描述

15.1.3 HMM學習問題

HMM學習問題指的是:給定觀測值序列,如何調整模型的引數使得該序列出現的概率最大。這便轉化成了機器學習問題,即從給定的觀測值序列中學習出一個HMM模型,該問題正是EM演算法的經典案例之一。其思想也十分簡單:對於給定的觀測值序列,如果我們能夠按照該序列潛在的規律來調整模型的三個引數,則可以使得該序列出現的可能性最大。假設狀態值序列也已知,則很容易計算出與該序列最契合的模型引數:

這裡寫圖片描述

但一般狀態值序列都是不可觀測的,且即使給定觀測值序列與模型引數,狀態序列仍然遭遇組合爆炸。因此上面這種簡單的統計方法就行不通了,若將狀態值序列看作為隱變數,這時便可以考慮使用EM演算法來對該問題進行求解:

【1】首先對HMM模型的三個引數進行隨機初始化; 
【2】根據模型的引數與觀測值序列,計算t時刻狀態為i且t+1時刻狀態為j的概率以及t時刻狀態為i的概率。

這裡寫圖片描述 
這裡寫圖片描述

【3】接著便可以對模型的三個引數進行重新估計:

這裡寫圖片描述

【4】重複步驟2-3,直至三個引數值收斂,便得到了最終的HMM模型。

15.2 馬爾可夫隨機場(MRF)

馬爾可夫隨機場(Markov Random Field)是一種典型的馬爾可夫網,即使用無向邊來表達變數間的依賴關係。在馬爾可夫隨機場中,對於關係圖中的一個子集,若任意兩結點間都有邊連線,則稱該子集為一個團;若再加一個結點便不能形成團,則稱該子集為極大團。MRF使用勢函式來定義多個變數的概率分佈函式,其中每個(極大)團對應一個勢函式,一般團中的變數關係也體現在它所對應的極大團中,因此常常基於極大團來定義變數的聯合概率分佈函式。具體而言,若所有變數構成的極大團的集合為C,則MRF的聯合概率函式可以定義為:

這裡寫圖片描述

對於條件獨立性,馬爾可夫隨機場通過分離集來實現條件獨立,若A結點集必須經過C結點集才能到達B結點集,則稱C為分離集。書上給出了一個簡單情形下的條件獨立證明過程,十分貼切易懂,此處不再展開。基於分離集的概念,得到了MRF的三個性質:

全域性馬爾可夫性:給定兩個變數子集的分離集,則這兩個變數子集條件獨立。 
區域性馬爾可夫性:給定某變數的鄰接變數,則該變數與其它變數條件獨立。 
成對馬爾可夫性:給定所有其他變數,兩個非鄰接變數條件獨立。

這裡寫圖片描述

對於MRF中的勢函式,勢函式主要用於描述團中變數之間的相關關係,且要求為非負函式,直觀來看:勢函式需要在偏好的變數取值上函式值較大,例如:若x1與x2成正相關,則需要將這種關係反映在勢函式的函式值中。一般我們常使用指數函式來定義勢函式:

這裡寫圖片描述

15.3 條件隨機場(CRF)

前面所講到的隱馬爾可夫模型和馬爾可夫隨機場都屬於生成式模型,即對聯合概率進行建模,條件隨機場則是對條件分佈進行建模。CRF試圖在給定觀測值序列後,對狀態序列的概率分佈進行建模,即P(y | x)。直觀上看:CRF與HMM的解碼問題十分類似,都是在給定觀測值序列後,研究狀態序列可能的取值。CRF可以有多種結構,只需保證狀態序列滿足馬爾可夫性即可,一般我們常使用的是鏈式條件隨機場

這裡寫圖片描述

與馬爾可夫隨機場定義聯合概率類似地,CRF也通過團以及勢函式的概念來定義條件概率P(y | x)。在給定觀測值序列的條件下,鏈式條件隨機場主要包含兩種團結構:單個狀態團及相鄰狀態團,通過引入兩類特徵函式便可以定義出目標條件概率:

這裡寫圖片描述

以詞性標註為例,如何判斷給出的一個標註序列靠譜不靠譜呢?轉移特徵函式主要判定兩個相鄰的標註是否合理,例如:動詞+動詞顯然語法不通;狀態特徵函式則判定觀測值與對應的標註是否合理,例如: ly結尾的詞–>副詞較合理。因此我們可以定義一個特徵函式集合,用這個特徵函式集合來為一個標註序列打分,並據此選出最靠譜的標註序列。也就是說,每一個特徵函式(對應一種規則)都可以用來為一個標註序列評分,把集合中所有特徵函式對同一個標註序列的評分綜合起來,就是這個標註序列最終的評分值。可以看出:特徵函式是一些經驗的特性

15.4 學習與推斷

對於生成式模型,通常我們都是先對變數的聯合概率分佈進行建模,接著再求出目標變數的邊際分佈(marginal distribution),那如何從聯合概率得到邊際分佈呢?這便是學習與推斷。下面主要介紹兩種精確推斷的方法:變數消去信念傳播

15.4.1 變數消去

變數消去利用條件獨立性來消減計算目標概率值所需的計算量,它通過運用乘法與加法的分配率,將對變數的積的求和問題轉化為對部分變數交替進行求積與求和的問題,從而將每次的運算控制在區域性,達到簡化運算的目的。

這裡寫圖片描述 
這裡寫圖片描述

15.4.2 信念傳播

若將變數求和操作看作是一種訊息的傳遞過程,信念傳播可以理解成:一個節點在接收到所有其它節點的訊息後才向另一個節點發送訊息,同時當前節點的邊際概率正比於他所接收的訊息的乘積:

這裡寫圖片描述

因此只需要經過下面兩個步驟,便可以完成所有的訊息傳遞過程。利用動態規劃法的思想記錄傳遞過程中的所有訊息,當計算某個結點的邊際概率分佈時,只需直接取出傳到該結點的訊息即可,從而避免了計算多個邊際分佈時的冗餘計算問題。

1.指定一個根節點,從所有的葉節點開始向根節點傳遞訊息,直到根節點收到所有鄰接結點的訊息(從葉到根); 
2.從根節點開始向葉節點傳遞訊息,直到所有葉節點均收到訊息(從根到葉)

這裡寫圖片描述

15.5 LDA話題模型

話題模型主要用於處理文字類資料,其中隱狄利克雷分配模型(Latent Dirichlet Allocation,簡稱LDA)是話題模型的傑出代表。在話題模型中,有以下幾個基本概念:詞(word)、文件(document)、話題(topic)。

:最基本的離散單元; 
文件:由一組片語成,詞在文件中不計順序; 
話題:由一組特定的片語成,這組詞具有較強的相關關係。

在現實任務中,一般我們可以得出一個文件的詞頻分佈,但不知道該文件對應著哪些話題,LDA話題模型正是為了解決這個問題。具體來說:LDA認為每篇文件包含多個話題,且其中每一個詞都對應著一個話題。因此可以假設文件是通過如下方式生成:

這裡寫圖片描述

這樣一個文件中的所有詞都可以認為是通過話題模型來生成的,當已知一個文件的詞頻分佈後(即一個N維向量,N為詞庫大小),則可以認為:每一個詞頻元素都對應著一個話題,而話題對應的詞頻分佈則影響著該詞頻元素的大小。因此很容易寫出LDA模型對應的聯合概率函式:

這裡寫圖片描述 
這裡寫圖片描述

從上圖可以看出,LDA的三個表示層被三種顏色表示出來:

corpus-level(紅色): α和β表示語料級別的引數,也就是每個文件都一樣,因此生成過程只採樣一次。 
document-level(橙色): θ是文件級別的變數,每個文件對應一個θ。 
word-level(綠色): z和w都是單詞級別變數,z由θ生成,w由z和β共同生成,一個單詞w對應一個主題z。

通過上面對LDA生成模型的討論,可以知道LDA模型主要是想從給定的輸入語料中學習訓練出兩個控制引數α和β,當學習出了這兩個控制引數就確定了模型,便可以用來生成文件。其中α和β分別對應以下各個資訊:

α:分佈p(θ)需要一個向量引數,即Dirichlet分佈的引數,用於生成一個主題θ向量; 
β:各個主題對應的單詞概率分佈矩陣p(w|z)。

把w當做觀察變數,θ和z當做隱藏變數,就可以通過EM演算法學習出α和β,求解過程中遇到後驗概率p(θ,z|w)無法直接求解,需要找一個似然函式下界來近似求解,原作者使用基於分解(factorization)假設的變分法(varialtional inference)進行計算,用到了EM演算法。每次E-step輸入α和β,計算似然函式,M-step最大化這個似然函式,算出α和β,不斷迭代直到收斂。

在此,概率圖模型就介紹完畢~上週受到協同訓練的啟發,讓實驗的小夥伴做了一個HMM的slides,結果擴充了好多知識,所以完成這篇筆記還是花費了不少功夫,還剛好趕上實驗室沒空調回到解放前的日子,可謂汗流之作…


相關推薦

Machine Learning學習筆記16--概率模型

轉自:http://blog.csdn.net/u011826404/article/details/75090562 上篇主要介紹了半監督學習,首先從如何利用未標記樣本所蘊含的分佈資訊出發,引入了半監督學習的基本概念,即訓練資料同時包含有標記樣本和未標記樣本的學習方法

吳恩達Machine Learning學習筆記--邏輯回歸

多分類 nbsp 可用 bubuko 邏輯回歸 泛化能力 筆記 ima 學習 分類任務   原始方法:通過將線性回歸的輸出映射到0~1,設定閾值來實現分類任務   改進方法:原始方法的效果在實際應用中表現不好,因為分類任務通常不是線性函數,因此提出了邏輯回歸 邏輯回歸 假設

Machine Learning學習筆記十三隨機森林RandomForest)

隨機森林(RandomForest) 一、知識鋪墊 1.1 決策樹 決策樹是機器學習最基本的模型,在不考慮其他複雜情況下,我們可以用一句話來描述決策樹:如果得分大於等於60分,那麼你及格了。(if-then語句) 這是一個最最簡單的決策樹的模型,我們把及格和沒及格分別附上標

Machine Learning學習筆記十四整合學習Boosting,Bagging,組合策略

整合學習 在一些資料探勘競賽中,後期我們需要對多個模型進行融合以提高效果時,常常會用到Bagging,Boosting,Stacking等這幾個框架演算法。 整合學習在機器學習演算法中具有較高的準確率,不足之處就是模型的訓練過程可能比較複雜,效率不是很高。目前接觸較多的整合學習主要

Linux第一學習筆記16

font 存在 學習 指定 pan 參數 linu 執行 code Linux第一周學習筆記(16)2.9.RM命令rm命令(remove):可以刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉;rm –f命令:表示強制刪除,不在詢

python Deep learning 學習筆記3

本節介紹基於Keras的使用預訓練模型方法 想要將深度學習應用於小型影象資料集,一種常用且非常高效的方法是使用預訓練網路。預訓練網路(pretrained network)是一個儲存好的網路,之前已在大型資料集(通常是大規模影象分類任務)上訓練好 使用預訓練網路有兩種方法:特徵提取(feature ext

python Deep learning 學習筆記4

本節講卷積神經網路的視覺化 三種方法 視覺化卷積神經網路的中間輸出(中間啟用) 有助於理解卷積神經網路連續的層如何對輸入進行變換,也有助於初步瞭解卷積神經網路每個過濾器的含義 視覺化卷積神經網路的過濾器 有助於精確理解卷積神經網路中每個過濾器容易接受的視覺模

python Deep learning 學習筆記6

本節介紹迴圈神經網路及其優化 迴圈神經網路(RNN,recurrent neural network)處理序列的方式是,遍歷所有序列元素,並儲存一個狀態(state),其中包含與已檢視內容相關的資訊。在處理兩個不同的獨立序列(比如兩條不同的 IMDB 評論)之間,RNN 狀態會被重置,因此,你仍可以將一個序列

python Deep learning 學習筆記1

Python深度學習筆記 -- 偏重實驗 Python 的 Keras 庫來學習手寫數字分類,將手寫數字的灰度影象(28 畫素 ×28 畫素)劃分到 10 個類別 中(0~9) 神經網路的核心元件是層(layer),它是一種資料處理模組,它從輸入資料中提取表示,緊接著的一個例子中,將含有兩個Dense 層,它

python Deep learning 學習筆記5

本節講深度學習用於文字和序列 用於處理序列的兩種基本的深度學習演算法分別是迴圈神經網路(recurrent neural network)和一維卷積神經網路(1D convnet) 與其他所有神經網路一樣,深度學習模型不會接收原始文字作為輸入,它只能處理數值張量。文字向量化(vectorize)是指將文字轉換

python Deep learning 學習筆記10

並且 () 想要 res valid else 示例 variable enc 生成式深度學習 機器學習模型能夠對圖像、音樂和故事的統計潛在空間(latent space)進行學習,然後從這個空間中采樣(sample),創造出與模型在訓練數據中所見到的藝術作品具有相似特征的

Deep Learning 學習筆記:神經網路Python實現

多層神經網路的Python實現。 程式碼先貼上,程式設計的東西不解釋。 程式碼中出現的SupervisedLearningModel、NNLayer和SoftmaxRegression,請參考上一篇筆記:Deep Learning 學習筆記(一)——softmax

Reinforcement Learning學習筆記綜述

    強化學習是機器學習的一大分支,隨著alphaGo的巨大成功,其使用的強化學習方法也逐漸成為近年來的研究熱點。個人理解強化學習與一般的機器學習主要有一下幾點差別,既有優勢又有不足。 1、傳統機器學習需要大量的標註資料,在某些領域這些資料是難以獲得或成本很高的。 2、

學習筆記2---Matlab 像處理相關函數命令大全

緩沖 操作 .... 命令 tor ace trac cati msh Matlab 圖像處理相關函數命令大全 一、通用函數: colorbar 顯示彩色條 語法:colorbar \ colorbar(‘vert‘) \ colorbar(‘horiz‘) \ co

QT學習筆記16 QT5的數據庫操作

libmysql gets pan detail ima () 數據庫服務 oca else 一、編譯驅動   參考博客:http://blog.csdn.net/xian0gang/article/details/49791351   因為從QT5以來,它就自帶數據庫驅動

python學習筆記16循環對象

python學習 再次 轉化 謝謝 next() 方法 pan rec last 作者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉載,也請保留這段聲明。謝謝! 原鏈:http://www.cnblogs.com/vamei/archi

Linux學習筆記16

16一、LVM準備磁盤分區disk /dev/sdbn創建分區t更改類型 8epartprobe 將磁盤分區表變化信息通知內核,請求操作系統重新加載分區表。-d 不更新內核-s 顯示磁盤分區匯總信息-h 顯示幫助信息-v 顯示版本信息準備物理卷yum insatll lvm2 -ypvcreate + 磁盤分

ASP.NET Core 2 學習筆記

部分 合成 cati 分享 col script text var AC ASP.NET Core MVC中的Views是負責網頁顯示,將數據一並渲染至UI包含HTML、CSS等。並能痛過Razor語法在*.cshtml中寫渲染畫面的程序邏輯。本篇將介紹ASP.NET Co

UML學習筆記--順序

statistic 觸發 views data 生存 行為 align edi 分享 順序圖是用來描述對象自身及對象間信息傳遞順序的視圖。它用來表示用例中的行為順序。當執行一個用例行為時,順序圖中的每條消息對應了一個類操作或狀態機中引起轉換的觸發事件。它著重顯示了參與相

TensorFlow學習筆記-- Softmax迴歸模型識別MNIST

最近學習Tensorflow,特此筆記,學習資料為21個專案玩轉深度學習 基於TensorFlow的實踐詳解 Softmax迴歸是一個線性的多分類模型,它是從Logistic迴歸模型轉化而來的,不同的是Logistic迴歸模型是一個二分類模型,而Softmax迴歸模型是一個多分類模型