什么是模式識別(Pattern Recognition)?
按照Bishop的定義,模式識別就是用機器學習的算法從數據中挖掘出有用的pattern。
人們很早就開始學習如何從大量的數據中發現隱藏在背后的pattern。例如,16世紀的Kepler從他的老師Tycho搜集的大量有關於行星運動的數據中發現了天體運行的規律,並直接導致了牛頓經典力學的誕生。然而,這種依賴於人類經驗的、啟發式的模式識別過程很難復制到其他的領域中。例如手寫數字的識別。這就需要機器學習的技術了。(順便提一下,開普勒定律在物理學中只是一種唯象的理論,它只對物理事實抽象出概括性的描述,而沒有解釋內在的原因,也就是牛頓的萬有引力定律(其實在更高的層次上,萬有引力也是一種唯象的理論,它的解釋由量子引力理論給出)。這也意味着,在大數據的機器學習時代,我們挖掘出來的知識更多的也只是一種相關性的規律。)
在手寫數字識別的問題中,一部分手寫圖片作為訓練集(training set),被用來學習一個事先給定的模型的參數。另一部分圖片作為測試集(test set),被用來評估學習到的模型在新數據上的泛化能力(generalization)。訓練集與測試集里的手寫圖片對應的數字都是已知的。這些數字又被稱之為目標向量(target vector),是模型學習的分類目標。一個機器學習算法最終得到的結果,就是一個將輸入變量\(x\)(這里的手寫數字圖片)映射到目標向量空間里的函數\(y(x)\)。
一般來說,在模型訓練之前,都有一個數據預處理(preprocess)的過程。例如,在識別手寫數字的問題中,我們需要先將訓練集里的圖片變換到同一個尺寸下,從而使模型的訓練更加統一。這個過程也被稱之為特征提取(feature extraction)。同時,預處理后的特征往往也會使模型的計算更加高效。要注意的是,如果我們對訓練集里的數據進行了預處理,那么對於測試集里的數據,我們也要進行同樣的操作。
對於那些訓練樣本中帶有目標向量的機器學習問題,我們稱之為有監督學習(supervised learning)。例如前面提到的手寫數字識別問題。進一步地,如果目標向量是離散的,我們稱之為分類(classification)問題;反之,如果目標向量是連續的,我們稱之為回歸(regression)問題。
另一類機器學習問題的訓練樣本僅有輸入變量的特征,我們稱之為無監督學習。例如對數據中相似樣本的歸並(聚類)問題。
最后一類機器學習問題被稱之為強化學習(reinforcement learning)。它是尋求在一個給定狀態下的行為決策,以最大化最終的收益。象棋AI就是一個典型的強化學習的例子。與有監督學習不同,強化學習要解決的問題沒有標記好的輸出;但往往會通過與環境的互動來改變自己的狀態和收益,並因此而學習到什么是一個好的輸出。注意,強化學習的每一步決策不僅會影響到當下的收益,還會影響未來的回報。這就涉及到一個信用分配(credit assignment)的問題:即如何將最終的回報分配到導致該回報的每一步的決策上?強化學習另一個特征是在exploration和exploitation之間的trade-off:對任意一個的過度偏向都會產生較差的結果。
接下來,我們將從一個具體的例子入手展現機器學習過程里的一些基本概念;然后,我們將簡單介紹機器學習理論的三大基礎:概率論(probability theory),決策論(decision theory),和信息論(information theory)。
一個例子:多項式擬合
作為例子,我們通過一個帶隨機噪聲的產生函數\(sin(2{\pi}x)\)來構造訓練數據,並期望一個機器學習算法能從有限的數據中學習到這個正弦函數。這種數據的構造方式暗合真實世界的法則:即數據在遵循一條潛在的規律同時也充滿了不確定性。(后面我們會看到,我們是如何在一個概率論的框架下描述這種不確定性,同時給出一個最好的預測。)
我們可以用一個多項式函數來擬合訓練數據(這是因為任意一個連續可導的函數總可以通過多項式展開來逼近):$$y(x,w)=w_0+w_1x+w_2x^2+...+w_Mx^M=\sum_{j=0}^{M}{w_jx^j}$$
注意,盡管這個函數是關於\(x\)的非線性函數,但卻是關於系數\(w\)的線性函數。類似多項式函數這種相對於未知參數是線性的模型,具有一些重要的性質,我們稱之為線性模型(linear model)。
我們通過最小化一個誤差函數(error function)來求解模型的參數。誤差函數是關於參數\(w\)的一個函數;它衡量我們的預測值\(y(x,w)\)與真實值\(t\)的差距。一個常用的誤差函數是誤差平方和,它的基本形式如下:$$E(w)=\frac{1}{2}\sum_{n=1}^{N}{{y(x_n,w)-t_n}^2}$$
(在后面介紹到最大似然法時,我們會看到誤差函數為什么會取這種形式)
令這個函數對\(w\)的一階偏導等於0,得到\(M+1\)個一階方程組,就可以求解出最優擬合參數\(w^*\)了。
然而,我們還有一個問題:如何確定模型的階數\(M\)?這也被稱之為模型選擇(model comparison or model selection)問題。我們可以通過評估模型在新數據集上的泛化能力來衡量模型的好壞。具體來說,我們從訓練集中抽取一部分數據作為驗證集(validation set);對於\(M\)的每一種可能取值,我們先用余下的訓練集找到最優的參數\(w^*\),然后再在驗證集上評估這個模型的誤差\(E(w^*)\)(或者是root-mean-square error:\(E_{RMS}=\sqrt{{2E(w^*)}/{N}}\))。我們將選擇泛化誤差最小的模型作為最終的模型。
通過這種方式,我們發現,\(M\)取值過低,模型有可能會欠擬合(under-fitting);而\(M\)取值過高,模型又有可能會過擬合(over-fitting)。
這是為什么呢?
理論上,一個低階的多項式函數只是更高階的多項式函數的一個特例;而一個高階的多項式也更加逼近真實的產生函數\(sin(2{\pi}x)\)。因此,高階的模型似乎沒道理比低階模型的表現更差。
但是,如果我們仔細觀察那些過擬合的高階模型學習到的參數\(w\),會發現它們的量綱往往異乎尋常的大。這使得模型雖然可以准確地預估訓練集中的數據,但也展現出了巨大的波動性。換句話說,強大的高階模型過多地學習了訓練數據中的噪聲。如果我們引入更多的訓練數據,這種過擬合的問題會得到一定程度的緩解。
簡而言之,雖然模型越復雜,解釋能力也越強,但我們往往需要更多的數據來訓練一個復雜的模型。(后面會發現,這種過擬合本質上是由於最大似然法這類對模型參數進行點估計的算法所帶來的bias造成的。通過一種貝葉斯的方法,我們可以從根本上避免過擬合的問題。)
一種在有限的數據集下也能訓練一個高階模型的技術是正則化(regularization),即在傳統的誤差函數中引入一個對參數\(w\)量綱的懲罰項,以抑制\(w\)的過度發散:$$\tilde{E}(w)=\frac{1}{2}\sum_{n=1}^{N}{{y(x_n,w)-t_n}^2}+\frac{\lambda}{2}||w||^2$$
其中,\(||w||^2=w_1^2+w_2^2+...+w_M^2\),參數\(\lambda\)控制正則項和誤差項的相對權重。對於一個合適的\(\lambda\)取值,我們用較少的數據也可以訓練出一個泛化的高階模型。
然而,過低或過高的\(\lambda\)依然會導致過擬合或欠擬合的問題。本質上,正則化只是將對模型復雜度的控制由模型的階數\(M\)轉移到了懲罰因子\(\lambda\)上。我們依然需要一個驗證集來優化模型的復雜度。
概率論
在模式識別和機器學習的研究領域里,不確定性(uncertainty)是一個非常核心的概念。接下來要介紹的概率論為不確定性的量化提供了一個統一的框架,因此也構成了整個機器學習研究的理論基礎。
基本知識點
概率的基本定義由頻率學派給出:在一系列試驗中某一事件發生的頻率稱之為該事件發生的概率。從這個定義出發,我們很容易得到概率論的兩個基本法則:sum rule和product rule:
其中,\(p(X)\)對應\(X\)發生的邊際概率(marginal probability);\(p(X,Y)\)對應\(X\)和\(Y\)同時發生的聯合概率(joint probability);\(p(Y|X)\)對應給定\(X\)下\(Y\)發生的條件概率(conditional probability)。這兩個公式構成了我們將要用到的所有概率論知識的基礎。
由product rule出發,同時結合聯合概率的對稱性,我們立即得到一個十分重要的公式,貝葉斯定理(Bayes' theorem):
貝葉斯定理給出了后驗概率(posterior probability)——\(p(Y|X)\)和先驗概率(prior probability)——\(p(Y)\)之間的關系。
貝葉斯概率
然而,並非所有隨機事件的發生都是可重復的。因此,我們很難用頻率學派的觀點解釋諸如明天有雨這類事件發生的概率。對這類事件的不確定性的衡量,就是概率的貝葉斯解釋(Bayesian view)。
回到之前的多項式擬合的例子。從頻率學派的角度來看,我們將目標變量\(t\)視為一個隨機變量似乎更加合理(可以通過固定輸入變量\(x\)的值統計\(t\)的頻率分布)。而從貝葉斯學派的觀點來看,我們可以將模型的參數\(w\)(甚至是整個模型)視為一個隨機變量,衡量它們的不確定性(盡管\(w\)是不可重復的)。
具體來說,假設我們知道了\(w\)的先驗概率分布\(p(w)\),那么,通過貝葉斯公式,我們可以將這一先驗概率轉化為給定觀測數據后的后驗概率\(p(w|D)\):
從而,我們得到了一個已知數據\(D\)下關於模型參數\(w\)的不確定性的定量表達。
在這個公式里,概率分布\(p(D|w)\)又被稱為似然函數(likilihood function),它給出了不同\(w\)下數據集\(D\)發生的概率。從而,貝葉斯定理又可以寫成:$$posterior \propto likelihood \times prior$$
無論是在頻率學派還是貝葉斯學派的框架下,似然函數都扮演着重要的角色。不同的是,頻率學派認為,模型的參數是固定的,觀測到的數據則是給定參數下的一個隨機事件。因此,他們通過一種叫做最大似然法(maximum likelihood)的方法來預估參數:即尋找使觀測到的數據集\(D\)發生的概率最大的參數\(w\)(后面我們將會看到最大似然法與前面提到的最小化誤差函數的關系)。而貝葉斯學派則認為模型的參數服從一個概率分布,因此,似然函數只是獲取后驗概率的橋梁。
(關於頻率學派和貝葉斯學派孰優孰劣的問題,各家各執一言,此處不做討論。只需知道,PRML這本書更多的是介紹貝葉斯學派的觀點,而Andrew在Coursera上的課則是頻率學派的經典觀點。)
高斯分布
關於高斯分布的定義和性質,很多概率論的書上都有介紹,這里不再贅述。本小節主要介紹如何運用頻率學派的最大似然法從一堆服從高斯分布的數據中擬合出分布的參數:\(\mu\)與\(\sigma^2\)。
由獨立同分布假定,我們的數據集\(\mathbf{x} = (x_1,...,x_D)^T\)在給定參數\(\mu\)和\(\sigma^2\)下的條件概率分布為:
這就是高斯分布的似然函數。
對這個似然函數取對數(后面我們會看到如何從信息熵的角度來解釋這一行為),我們得到:$$\ln{p(\mathbf{x}|\mu,\sigma^2)}=-\frac{1}{2\sigma^2}\sum_{n=1}^N{(x_n-\mu)^2}-\frac{N}{2}\ln{\sigma^2}-\frac{N}{2}\ln{2\pi}$$
將上式分別對\(\mu\)和\(\sigma^2\)求導,並令其等於0,我們得到了\(\mu\)和\(\sigma^2\)的最大似然預估:
等式右邊都是關於數據集\(\mathbf{x}\)的函數。
可以證明,通過這種方法得到的參數預估是有偏(bias)的:
也就是說,我們會低估(underestimate)真實的分布方差。一般來說,模型的參數越多(復雜度越高),由最大似然法預估出來的參數越不准確。而這種有偏的預估,是導致模型過擬合的根本原因(過度擬合了訓練樣本,而偏離了真實世界)。不過,注意到隨着樣本數\(N\)的增長,這種偏差會越來越小。這就解釋了,為什么增大訓練樣本的容量可以一定程度上緩解過擬合的問題。
回到多項式擬合
接下來,我們將回到多項式擬合的例子,看看在統計學的視角下,頻率學派和貝葉斯學派各自是如何解決這個問題的。
在多項式擬合的問題中,我們的目標是,在由\(N\)個輸入變量\(\mathbf{x}=(x_1,...,x_N)^T\)及其對應的目標值\(\mathbf{t}=(t_1,...,t_N)^T\)構成的訓練集的基礎上,對新輸入變量\(x\)的目標值\(t\)做出預測。用概率語言來描述,我們可以將目標變量\(t\)的這種不確定性用一個概率分布來表達。我們假定,\(t\)服從以\(y(x,w)\)為均值的高斯分布:
有了\(t\)的概率分布,我們就可以用最大似然法在訓練集上求解模型的參數(\(w\)和\(\beta\)):
我們發現,略去與\(w\)無關的后兩項后,我們得到了前文提到的誤差函數!也就是說,對於\(w\)的求解而言,最大似然法等價於最小化誤差平方和!我們的誤差函數是在目標變量服從高斯分布的假定下用最大似然法推導出來的一個自然結果!(注意這一結論與\(y(x,w)\)的具體形式無關)
一旦得到了\(w\)和\(\beta\)的最大似然估計,我們就可以對新變量\(x\)的目標值做出預估。注意,這里是對\(t\)的分布預估(predictive distribution),而非點估計(point estimate)。(在后面的decision theory章節中會介紹如何從預估的分布得到預測值)
以上是頻率學派對多項式擬合算法的解釋。
而在貝葉斯學派看來,參數\(w\)也是一個隨機變量。假定\(w\)的先驗分布是一個服從均值為0的多元高斯分布:
其中,\(\alpha\)被稱為模型的超驗參數(hyperparameters)。
則由貝葉斯定理,\(w\)在給定訓練集上的后驗分布為:
我們可以通過最大化這個后驗概率來找出最合適的\(w\)。這個方法被稱之為最大后驗概率法(maximum posterior,簡稱MAP)。對上式取對數,並代入似然函數和先驗概率的分布函數后,我們發現,最大后驗概率等價於最小化帶正則項的平方誤差函數:
(這句話也可以這么理解:通過引入均值為0的高斯分布先驗函數,我們對\(w\)的大小進行了限定。)
也就是說,帶正則項的誤差函數,是在目標變量、模型參數均服從高斯分布的假定下,用最大后驗概率法推導出來的一個自然結果!同樣的,這個結論與\(y(x,w)\)的具體形式無關。
不過,雖然我們引入了\(w\)的先驗概率分布,MAP依然只是對\(w\)的點估計(類似最大似然法,這種方法最大的問題在於給出的估計值往往是有偏的,即\(E[w_{MAP}] \neq w\))。而貝葉斯學派的精髓在於,從\(w\)的后驗概率分布出發,我們可以進一步得到在給定訓練集\(\mathbf{x}\)和\(\mathbf{t}\)的條件下,新變量\(x\)的目標值\(t\)的后驗概率分布\(p(t|x,\mathbf{x},\mathbf{t})\):
(假定\(\alpha\)和\(\beta\)都是模型的超驗參數)
總結一下頻率學派和貝葉斯學派的區別:
---- | 頻率學派 | 貝葉斯學派 |
---|---|---|
目標變量\(t\) | \(p(t\|x,w)\) | \(p(t\|x,\mathbf{x},\mathbf{t})\) |
模型參數\(w\) | 顯式;常量 | 隱式;隨機變量 |
模型優化算法 | 最大似然法 | 最大后驗概率法 [1] |
優化目標函數 | \(\frac{1}{2}\sum_{n=1}^N{\{y(x_n,w)-t_n\}^2}\) | \(\frac{1}{2}\sum_{n=1}^N{\{y(x_n,w)-t_n\}^2}+\frac{\alpha}{2\beta}w^Tw\) |
決策理論(Decision Theory)
一個具體的機器學習問題的解決包括兩個過程:推斷(inference)和決策(decision)。前者在概率學的框架下告訴我們\(p(\mathbf{x},t)\)的分布;后者則借助決策理論(decision theory)告訴我們在這個聯合概率分布下的最優反應(例如對\(t\)的預估等)。
一旦解決了推斷的問題,決策的過程就顯得異常簡單。
分類問題的決策
對於分類問題而言,我們尋求一個將輸入變量\(\mathbf{x}\)映射到某一個分類上的法則。這個法則將\(\mathbf{x}\)的向量空間划分成了不同的區域\(\mathcal{R}_k\):我們稱之為decision region;位於\(\mathcal{R}_k\)里的點\(\mathbf{x}\)都被映射到類\(C_k\)上。相應的,decision region之間的邊界我們稱之為decision boundaries或decision surfaces。
如何找到這個決策面呢?
假定我們的決策目標是使得誤分類的概率盡可能地小,借助概率論,我們有:
顯然,為了讓\(p(mistake)\)盡可能地小,\(\mathcal{R}_k\)應是由那些使得\(p(\mathbf{x},C_k)\)最大的點構成的集合(即對於\(\mathbf{x} \in \mathcal{R}_k\),滿足\(p(\mathbf{x},C_k) \geq p(\mathbf{x},C_j)\))。由於\(p(\mathbf{x},C_k)=p(C_k|\mathbf{x})p(\mathbf{x})\),也就是說我們應將\(\mathbf{x}\)映射到后驗概率\(p(C_k|\mathbf{x})\)最大的類\(C_k\)上。
但真實的問題也許要更復雜一些。例如對癌症患者的診斷:錯誤的將一個癌症患者診斷為健康,遠比將一個健康的人誤診為癌症要嚴重的多。因此,就有了損失矩陣(loss function)的概念:損失矩陣\(L\)中的元素\(L_{kj}\)用來評估當類\(C_k\)被誤分類為\(C_j\)時帶來的損失。顯然,對任意的類\(C_k\),總有\(L_{kk}=0\)。
此時,我們的決策目標是最小化期望損失函數。同樣地借助概率論的知識,我們有:
類似地,我們選取那些使\(\sum_k L_{kj}p(\mathbf{x},C_k)\)最小的點\(\mathbf{x}\)構成的集合為類\(C_j\)的decision region \(\mathcal{R}_j\)(即對於\(\mathcal{R}_j\)里的\(\mathbf{x}\),總有\(\sum_k L_{kj}p(\mathbf{x},C_k) \leq \sum_k L_{ki}p(\mathbf{x},C_k)\))。
再次回顧推斷過程
在前面對分類問題決策階段的討論中,我們發現,我們可以在推斷階段預估\({\mathbf{x}}\)和\(C_k\)的聯合概率分布\(p(\mathbf{x},C_k)\),也可以預估\(C_k\)的后驗條件概率\(p(C_k|\mathbf{x})\)。事實上,我們也可以將兩個階段整合為一個過程,直接學習\({\mathbf{x}}\)到\(C_k\)的映射。這三種不同的解決問題的思路,對應了三種不同的模型:
- 產生式模型(generative models):產生式模型是指那些在推斷階段隱式或顯式地對輸入變量\(\mathbf{x}\)的分布進行了建模的模型。由貝葉斯公式,我們可以用\(\mathbf{x}\)的條件概率\(p(\mathbf{x}|C_k)\)和\(C_k\)的先驗概率\(p(C_k)\)計算\(C_k\)的后驗概率:$$p(C_k|\mathbf{x})=\frac{p(\mathbf{x}|C_k)p(C_k)}{p(\mathbf{x})}$$在得到\(C_k\)的后驗概率后,進入決策階段分類。這個過程等價於對聯合概率分布\(p(\mathbf{x},C_k)\)進行建模(上式中的分子)。
- 判別式模型(discriminative models):判別式模型是指那些在推斷階段直接對目標變量的后驗概率進行建模的模型。例如前面提到的多項式擬合模型。
- 判別式函數(discriminant function):通過一個判別式函數\(f(\mathbf{x})\)可以將輸入變量\(\mathbf{x}\)直接映射到一個類標上;省去了對概率分布的預估。Andrew在Coursera上的課程里提到的假說(Hypothesis)就是這類函數。
總的來說,三類模型各有利弊。相對來講,產生式模型最為復雜,也需要最多的訓練數據;但是由於可以對輸入變量的分布進行預估,功能上也最為強大。而我們用的最多的一般是判別式模型。由於引入了對后驗概率的預估,使得我們可以方便的處理非平衡樣本問題,以及多模型的融合。這是簡單的判別式函數所不具備的。
回歸問題的決策
與分類問題類似,回歸問題的決策階段也是要從目標變量的概率分布中選擇一個特定的預估值,以最小化某個損失函數。回歸問題的損失函數為:$$E[L] = \int\int L(t,y(\mathbf{x}))p(\mathbf{x},t)d\mathbf{x}dt$$ 積分項的意思是,對於輸入變量\(\mathbf{x}\)和真實目標值\(t\),我們的預估目標值\(y(\mathbf{x})\)帶來的期望損失。一般\(L(t,y(\mathbf{x}))\)被定義為平方誤差和的形式。
最小化這個損失函數我們得到解:\(y(\mathbf{x})=E_t[t|\mathbf{x}]\)。這個條件期望也被稱之為回歸函數(regression function)。在前面的多項式擬合的問題中,我們假定了目標變量\(t\)服從一個高斯分布,並用最大似然法(或Bayesian的方法)估計出了模型的參數;而通過這里的回歸函數,我們才最終得到了\(t\)的一個預估值。
類似地,回歸問題也有三種建模方式:產生式模型,判別式模型,和判別式函數。這里不再贅述。
信息論(Information Theory)
如果說概率論給出了對不確定性的一個描述,信息論則給出了對不確定性程度的一種度量。這種度量就是信息熵。
信息熵
我們可以從三種不同的角度理解信息熵的定義。
- 概率學。如果我們問一個隨機事件的發生會傳遞多少信息量?顯然,一個確定事件的發生傳遞的信息量為0,而一個小概率事件的發生會傳遞更多的信息量。因此,我們對信息量(記作\(h(x)\))的定義應該與隨機事件發生的概率\(p(x)\)有關。另一方面,兩個獨立事件同時發生所傳遞的信息量應該是這兩個事件各自發生的信息量之和,即\(h(x,y)=h(x)+h(y)\)。由這兩個性質出發,我們可以證明,信息量\(h(x)\)必然遵循\(p(x)\)的對數形式:$$h(x) = -log_{2}p(x)$$ 進一步地,我們定義一個隨機變量\(x\)的信息熵為其傳遞的信息量的期望值:$$H[x]=-\sum p(x)log_{2}p(x)$$
- 信息學。在對信息熵的第一種解讀中,我們並沒有解釋為什么對信息量的定義采用了以自然數2為底的對數。Shannon給出了一個信息學的解釋:信息熵等價於編碼一個隨機變量的狀態所需的最短位數(bits)。對於一個均勻分布的隨機變量,這是顯而易見的;而對於非均勻分布的隨機變量,我們可以通過對高頻事件采用短編碼,低頻事件采用長編碼的方式,來縮短平均編碼長度。
- 物理學。在熱力學中我們也接觸到熵的定義:一種對系統無序程度的度量。熵越大,系統的無序程度越高。這里,熵被定義為一個宏觀態對應微觀態個數的對數。與熱力學熵類似,信息熵度量了一個隨機變量的不確定程度。信息熵越大,隨機變量的不確定性越高。
我們也可以將信息熵的定義拓展到連續型的隨機變量,定義為微分熵(differential entropy):$$H[x]=-\int{p(x)\ln{p(x)}}dx$$ (如果從信息熵的原始定義出發,我們會發現微分熵的定義和信息熵相差了一個極大項:\(-\ln{\Delta}\);這意味着連續變量本質上不可能做到精確的編碼。)
結合拉格朗日法,我們可以推導出信息熵和微分熵最大時對應的分布:對於離散的隨機變量,信息熵最大時對應着一個均勻分布;對於連續的隨機變量,微分熵最大時對應着一個高斯分布(注意對於微分熵的最大值求解需要增加一階矩和二階矩兩個約束條件)。
條件熵,交叉熵,與互信息
從信息熵的第一定義,我們很容易寫出條件信息熵的計算公式:$$H[y|x]=-\int\int p(y,x)\ln{p(y|x)}dydx$$
容易證明,\(H[x,y]=H[y|x]+H[x]\)。也就是說,\(x\)、\(y\)聯合分布的不確定度,等於\(x\)的不確定度與知道\(x\)后\(y\)的不確定度之和。
交叉熵(relative entropy),又被稱為KL divergence,衡量了兩個分布的不相似性。它定義了用一個預估分布\(q(x)\)近似一個未知分布\(p(x)\)時,對\(x\)進行編碼所需要的額外期望信息量:$$KL[p|q]=-\int p(x)\ln{q(x)}dx-(-\int p(x)\ln{p(x)}dx)=-\int p(x)\ln{{\frac{q(x)}{p(x)}}dx}$$
交叉熵越大,兩個分布越不相似。可以證明,交叉熵不滿足對稱性(\(KL[p\|q] \neq KL[q\|p]\));且\(KL[p\|q]\geq 0\)(當且僅當\(q(x) = p(x)\)時等號成立)。
我們可以用交叉熵的概念來對一個機器學習模型的參數進行預估。假設我們有一堆抽樣自某未知分布\(p(x)\)的數據,我們試圖用一個帶參數的模型\(q(x|\theta)\)去擬合它。一條可行的思路是選擇使\(p(x)\)和\(q(x|\theta)\)的交叉熵盡可能小的參數\(\theta\)。雖然我們不知道\(p(x)\)的真實分布,但由蒙特卡洛方法,我們可以從抽樣數據中得到\(KL(p\|q)\)的近似值:
略去與\(\theta\)無關項,我們發現,我們得到的是一個似然函數的負對數!也就是說,最小化模型預估分布與真實分布的交叉熵等價於前面提到的最大似然法!這也從信息熵的角度解釋了為什么要對似然函數取對數的原因。
另一個重要的概念是互信息(mutual information),用來衡量兩個隨機變量\(x\)、\(y\)的相關性。互信息有兩種定義方式:
- \(p(x,y)\)和\(p(x)p(y)\)的交叉熵定義:$$I[x,y]=KL(p(x,y)|p(x)p(y))=-\int\int{p(x,y)\ln{(\frac{p(x)p(y)}{p(x,y)})}}dxdy$$ 當\(x\)、\(y\)相互獨立時,\(p(x,y)=p(x)p(y)\);此時,\(I[x,y]=0\)。
- 由KL定義出發,我們可以推導出互信息的條件熵定義:$$I[x,y]=H[x]-H[x|y]=H[y]-H[y|x]$$ 因此,\(x\)、\(y\)的互信息可以理解為知道其中一個隨機變量的取值后,另一個隨機變量的不確定度的降低(當\(I[x,y]=H[x]\)時意味着\(y\)的發生確定了\(x\)的發生,即兩個隨機變量完全相關)。
通常,貝葉斯學派不會對模型的參數進行點估計,因此也不會用MAP算法優化模型。把最大后驗概率算法和下面的優化目標函數放在這里,只是為了和頻率學派的最大似然法進行對比。 ↩︎