PRML筆記(一)

1 Introduction

本章主要講解的是三大理論的一些基本概念知識,這三大理論分別爲:probability theory,decision theory 以及 information theory。

1.1 Example: Polynomial Curve Fitting

本章剛開始便引入了一個“polynomial curve fitting”的regression problem。在這個擬合問題中,所要擬合的函數是sin(2πx2\pi x),在生成數據時,本書的方法是:首先從(0,1)區間上等間距地得到input data x,然後通過sin(2πx2\pi x)計算得到一個數值,並用該數值與一個Gaussian noise相加,遂得到最終的結果。更爲詳細的過程見《PRML附錄筆記》,其示意圖如下所示:
在這裏插入圖片描述
那麼爲何要這樣構造?首先,當我們對於數據的生成過程瞭如指掌之後,我們就很容易對一些learnable models進行比較,分析其performance。
爲什麼要加上噪聲?因爲這種方式正符合一般數據的生成過程:確定的函數+隨機噪聲。在正常數據的生成與獲取過程中,我們一般都會遇到兩種噪聲:一是由隨機過程引起的噪聲(例如放射性物質的衰減);二是由於該數據本身有某些unobserved的部分,這些部分的variability所帶來的noise。
我們的目的在於:挖掘training data set中的regularity,並在遇到新的input data時,可以對output data進行更爲準確的預測。
我們將如何應對數據本身帶來的noise?在probability theory這一節中,作者將對這樣的noise進行量化。而在decision theory中,作者將講述如何利用這個probabilistic representation的方法,在某種特定的criterion下,進行最優決策。

本處將採用多項式來對生成的數據進行擬合:
y(x,w)=w0+w1x+w2x2++wMxM=j=0Mwjxj      (1.1)y(x,\mathbf{w})=w_0+w_1x+w_2x^2+\dots+w_Mx^M=\sum_{j=0}^Mw_jx^j\ \ \ \ \ \ (1.1)
其中多項式係數通過vector w\mathbf{w} 來進行表示。雖然該式是關於x的非線性函數,但它是關於係數 w\mathbf{w} 的線性函數,因此被稱爲“linear model”。而linear model將在第3和4章重點討論。
我們當前的目標在於尋找最合適的係數 w\mathbf{w},那麼我們應該如何去做?首先我們需要意識到的一點是, 我們希望我們構造的多項式函數能儘可能地擬合我們所得到的數據。因此,我們可以通過minimize error function的方式,對 y(x,w)y(x,\mathbf{w}) 與在training set中真實的target value t之間的差異進行衡量。
一種選取error function的的方式是平方誤差和(sum of the squares of the errors):
E(w)=12n=1N{y(xn,w)tn}2      (1.2)E(\mathbf{w})=\frac{1}{2}\sum_{n=1}^N\{y(x_n,\mathbf{w})-t_n\}^2\ \ \ \ \ \ (1.2)
由該函數的特性可知,當且僅當該函數穿過training set中的所有data points之後,該式纔等於0,否則該式大於0:
在這裏插入圖片描述
當我們選定了要用多項式函數去擬合training data之後,我們有兩件事情同時需要去做:一是選擇合適的係數;二是確定多項式的次數。
由於該error function是二次函數,因此其關於係數的derivative是linear function,所以該error function的最小值存在唯一解,我們將該解所對應的係數標記爲 w\mathbf{w}^*
至於該多項式的order的選取,我們需要通過“model selection”這一方法進行。下圖所示的,爲在不同order值選取後,該多項式函數對於training data的擬合情況:
在這裏插入圖片描述
過小的order在training set上表現出較差的performance,過大的order會和真實的函數 sin(2πx2\pi x)之間相差甚遠,導致overfitting的發生。
有時候我們希望將不同來源的error放在同一個scale下(以單個data point爲scale)進行比較,此時我們可以採用root-mean-square error:
ERMS=2E(w)NE_{RMS}=\sqrt{\frac{2E(\mathbf{w}^*)}{N}}
當然,具體而言,我們的training set和testing set中數據點的個數往往是不同的。那麼如果我們想要將training set 和 testing set下模型的error放在一起比較,那麼我們首先需要通過RMS error進行處理。
我們對不同order下該多項式函數模型在training和testing set上的error進行計算,並繪製成圖,如下所示:
在這裏插入圖片描述
該結果與之前分析的相符合,當order過小的時候,model在兩個數據集上的表現都不好;當order過大的時候,儘管model在training set上的表現較好,但在testing set上的表現極差。
有人可能會有這樣的疑問:高次的多項式中不是本應包含低次的多項式嗎?是這樣的,然後由於高次多項式本身的靈活性非常大,導致它不僅擬合了數據中sin(2πx2\pi x) 的部分,也同樣擬合了noise的部分。
那麼,當我們給定了model,即確定了該model的complexity之後,如果我們改變dataset的size,之前出現overfitting的model的performance又是如何呢?如下圖所示:
在這裏插入圖片描述
我們可以看到,當數據量增大之後,模型over-fitting的問題減輕了。
然而很多時候,我們的dataset中的數據量是有限的,然而我們仍然希望通過某一種較爲複雜的函數,對這些數據進行擬合,那麼我們需要如何去做?
一種控制過擬合問題發生的方法是“regularization”,它通過在(1.2)式上加入懲罰項的方式,希望模型的參數儘量不要過大,一種較爲簡單形式的error function如下:
E~(w)=12n=1N{y(xn,w)tn}2+λ2w2      (1.4)\widetilde{E}(\mathbf{w})=\frac{1}{2}\sum_{n=1}^N\{y(x_n,\mathbf{w})-t_n\}^2+\frac{\lambda}{2}||\mathbf{w}||^2\ \ \ \ \ \ (1.4)
其中有 w2=w02+w10++wM2||\mathbf{w}||^2=w_0^2+w_1^0+\dots+w_M^2。其中的λ\lambda用於控制error和penalty之間的權重。
在使用regularization方法之後,原先overfitting的model在數據集上的表現如下所示:
在這裏插入圖片描述
可見,一個合適的 λ\lambda 參數,會讓原模型overfitting的問題大大減輕,然而過大的 λ\lambda 會使得model的performance欠佳。

1.2 Probability Theory

由於測量方法所造成的noise,或是由於數據集有限的原因,我們的數據中存在許多的uncertainty。而本節內容,將用一種統一的框架,對這些uncertainty進行處理。
對於probability theory,我們首先要知道的是兩個最基本的公式,即sum rule 和 product rule:
sum  rule            p(X)=Yp(X,Y)                    (1.10)product  rule            p(X,Y)=p(YX)p(X)      (1.11)\mathbf{sum\ \ rule}\ \ \ \ \ \ \ \ \ \ \ \ p(X)=\sum_Yp(X,Y)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1.10)\\ \mathbf{product\ \ rule}\ \ \ \ \ \ \ \ \ \ \ \ p(X,Y)=p(Y|X)p(X)\ \ \ \ \ \ (1.11)
根據式(1.11),以及對稱特性:p(X,Y)=p(Y,X),我們可以得到Bayes’ theorem:
p(YX)=p(XY)p(Y)p(X)      (1.12)p(Y|X)=\frac{p(X|Y)p(Y)}{p(X)}\ \ \ \ \ \ (1.12)
再利用sum rule,我們可以得到Bayes’ theorem的分母爲:
p(X)=Yp(XY)p(Y)     (1.13)p(X)=\sum_Yp(X|Y)p(Y)\ \ \ \ \ (1.13)
其中,作者還對prior probability以及posterior probability進行了解釋:對於變量Y的prior probability,實際上是在我們還沒有對X進行觀測時,對Y發生的概率所進行的估計。而對於變量Y的posterior probability,實際上是在對X進行觀測,並得知X具體取值的前提下,我們對prior的一種修正。
此外,關於兩個變量相互獨立的定義:p(X,Y)=p(X)p(Y)。並且,運用product rule可以得知,在兩個隨機變量相互獨立的前提下,有p(Y|X)=p(Y)。

1.2.1 Probability densities

  • 之前所有的問題都是關於離散變量的,當將關注點轉向連續型變量之後,我們需要對real-valued random variable的概率分佈進行分析:
    • 假設real-valued variable x落在區間 (x,x+δx)(x,x+\delta x) 內的概率爲 p(x)δxp(x)\delta x (當 δx\delta x\rightarrow 0時),則此時p(x)被稱爲概率密度。因此,當x落在(a,b)區間內時,其概率爲:
      p(x(a,b))=abp(x)dx      (1.24)p(x\in (a,b))=\int_a^bp(x)\text{d}x\ \ \ \ \ \ (1.24)
      又由於概率的非負性以及x在實數範圍取值的規定,所以可得:
      p(x)0      (1.25)p(x)dx=1      (1.26)p(x)\geq 0\ \ \ \ \ \ (1.25)\\ \int_{-\infin}^{\infin}p(x)\text{d}x=1\ \ \ \ \ \ (1.26)
  • 我們需要注意的一點是問題是:
    • 設有一個在variables之間的non-linear transformation x=g(y),那麼,對於確定性的函數來說,f(x)可以表示成:f~(y)=f(g(y))\widetilde{f}(y)=f(g(y))。由此,我們也可以根據transformation function g,在概率密度函數 px(x)p_x(x)py(y)p_y(y) 之間找到對應關係。假設有observations落在了(x,x+δxx, x+\delta x)這個區間內,那麼在經過transformation g之後,必然是存在另一個對應的區間(y,y+δyy,y+\delta y),在這兩個區間內,對應的隨機變量的取值概率近似相等,即:px(x)δxpy(y)δyp_x(x)\delta x\simeq p_y(y)\delta y,因此便有:
      py(y)=px(x)dxdy=px(g(y))g(y)      (1.27)p_y(y)=p_x(x)\left|\frac{dx}{dy}\right|\\ =p_x(g(y))\left|g\prime(y)\right|\ \ \ \ \ \ (1.27)
      上述文字中,加粗的部分是我要着重說明的,因爲書上並沒有點透到這一步。
      從另一個角度我們也可以進行理解:這裏面要進行的non-linear transformation實際上是要在累積分佈函數(CDF)上進行,因此轉換到概率密度函數時,必然存在一個求一階導的過程,通過該過程中所要使用的求導鏈式法則,我們就可以得到上式。
      那麼通過式(1.27),我們能得到什麼信息呢?如果兩個隨機變量之間存在非線性關係,那麼這兩個隨機變量取到概率密度最大值時的變量值(記爲:x,yx^*, y^*),一般不滿足關係:x=g(y)x^*=g(y^*)。所以說,概率密度最大值,其實際上與我們所選取的變量有關。
      x落在區間(,z-\infin, z)之間的概率爲:
      P(z)=zp(x)dx      (1.28)P(z)=\int_{-\infin}^zp(x)dx\ \ \ \ \ \ (1.28)
      其中P(z)就是被稱爲cumulative distribution function(CDF)的函數,該函數滿足:P(x)=p(x)P^\prime(x)=p(x)
      而如果我們有一連串的continuous variables:x1,,xDx_1,\dots,x_D, 統一用vector x\mathbf{x}來表示,那麼我們可以定義聯合概率密度函數:p(x)=p(x1,,xD)p(\mathbf{x})=p(x_1,\dots,x_D), 且對於落在 δx\delta \mathbf{x} 大小的區間內的vector x\mathbf{x}來說,生成該vector的概率爲 p(x)δxp(\mathbf{x})\delta \mathbf{x}, 此時該多元概率密度函數應當滿足:
      p(x)0      (1.29)p(x)dx=1      (1.30)p(\mathbf{x})\geq0\ \ \ \ \ \ (1.29)\\ \int p(\mathbf{x})\text{d}\mathbf{x}=1\ \ \ \ \ \ (1.30)
      其中式(1.30)中的積分將遍歷 x\mathbf{x} 所在的空間,並進行積分。
      此外,sum rule以及product rule也可以在continuous variable上進行apply:
      p(x)=p(x,y)dy      (1.31)p(x,y)=p(yx)p(x)      (1.32)p(x)=\int p(x,y)\text{d}y\ \ \ \ \ \ (1.31)\\ p(x,y)=p(y|x)p(x)\ \ \ \ \ \ (1.32)

1.2.2 Expectations and covariances

Probability的一個作用是計算得到某一個特定函數的weighted sum。函數f(x)在概率p(x)下的weighted sum稱爲該函數的期望,記作 E[f]\mathbb{E}[f],在離散隨機分佈的情況下有:
E[f]=xp(x)f(x)      (1.33)\mathbb{E}[f]=\sum_xp(x)f(x)\ \ \ \ \ \ (1.33)
在連續隨機分佈下,p(x)將選擇爲該概率分佈的概率密度函數:
E[f]=p(x)f(x)dx      (1.34)\mathbb{E}[f]=\int p(x)f(x)\text{d}x\ \ \ \ \ \ (1.34)

假如我們只有從某一個概率分佈(無論是離散還是連續的)中sample出來的N個點,我們該如何估計函數f(x)在p(x)下的期望呢?此時的計算公式非常簡單:
E[f]1Nn=1Nf(xn)      (1.35)\mathbb{E}[f]\simeq\frac{1}{N}\sum_{n=1}^Nf(x_n)\ \ \ \ \ \ (1.35)

假設我們的函數f具有兩個變量x,y, 爲了單純求f(x,y)關於p(x)的期望,我們這樣表示:
Ex[f(x,y)]      (1.36)\mathbb{E}_x[f(x,y)]\ \ \ \ \ \ (1.36)
此時,式(1.36)就僅僅是關於y的函數了。

而假設我們所研究的函數f需要關於分佈p(x|y)進行期望求得時,我們可以將該期望表示如下:
Ex[fy]=xp(xy)f(x)      (1.37)\mathbb{E}_x[f|y]=\sum_xp(x|y)f(x)\ \ \ \ \ \ (1.37)
該期望被稱爲“條件期望”(對於連續條件分佈下的公式同樣可以類比得出)。

關於f(x)的方差定義如下:
var[f]=E[(f(x)E[f(x)])2]      (1.38)\text{var}[f]=\mathbb{E}\left[(f(x)-\mathbb{E}[f(x)])^2\right]\ \ \ \ \ \ (1.38)
該量用以描述f(x)相對於其期望 E[f(x)]\mathbb{E}[f(x)] 的variability。
對於上述期望公式,我們可以進一步推導如下:
var[f]=E[f(x)2]E[f(x)]2      (1.39)\text{var}[f]=\mathbb{E}[f(x)^2]-\mathbb{E}[f(x)]^2\ \ \ \ \ \ (1.39)

特別的,當f(x)=x時,有:
var[x]=E[x2]E[x]2      (1.40)\text{var}[x]=\mathbb{E}[x^2]-\mathbb{E}[x]^2\ \ \ \ \ \ (1.40)

對於兩個隨機變量x和y,二者之間的covariance爲:
cov[x,y]=Ex,y[{xE[x]}{yE[y]}]=Ex,y[xy]E[x]E[y]      (1.41)\text{cov}[x,y]=\mathbb{E}_{x,y}[\{x-\mathbb{E}[x]\}\{y-\mathbb{E}[y]\}]\\ =\mathbb{E}_{x,y}[xy]-\mathbb{E}[x]\mathbb{E}[y]\ \ \ \ \ \ (1.41)
而對於兩個隨機向量 x\mathbf{x}y\mathbf{y},有:
cov[x,y]=Ex,y[{xE[x]}{yTE[yT]}]=Ex,y[xyT]E[x]E[yT]      (1.42)\text{cov}[\mathbf{x}, \mathbf{y}]=\mathbb{E}_{\mathbf{x}, \mathbf{y}}[\{\mathbf{x}-\mathbb{E}[\mathbf{x}]\}\{\mathbf{y}^T-\mathbb{E}[\mathbf{y}^T]\}]\\ =\mathbb{E}_{x,y}[\mathbf{x}\mathbf{y}^T]-\mathbb{E}[\mathbf{x}]\mathbb{E}[\mathbf{y}^T]\ \ \ \ \ \ (1.42)
並且,當vector x\mathbf{x} 本身之間進行cov運算時,我們通常進行簡寫:cov[x]cov[x,x]\text{cov}[\mathbf{x}]\equiv \text{cov}[\mathbf{x},\mathbf{x}]

1.2.3 Bayesian probabilities

我們在很多時候都需要對各式各樣的事物進行分析,分析其發生的概率。如果我們能夠本身進行多次實驗(例如本章中的取小球例子)的話,我們就可以通過大量實驗,對各類情況的結果進行統計,並根據當數據量趨於無窮大時,頻率分佈將收斂於概率分佈的特點,對概率分佈進行直接估計。這是頻率學派的觀點。
然而,又有很多時候,我們根本沒法得到很多的數據(正如書中所舉的例子:月球之前是否有環繞太陽的可能性?北極冰帽有多大可能性在本世紀末消失?)。這些例子都幾乎不能做反覆試驗,因此頻率學派的方法在這裏失去了作用。
但是,雖然我們無法預知北極冰帽完全消融的時間,但是我們可以對冰消融的速度進行一個初步的估計。假設此時我們從衛星傳回地球的信息中得到了一些新的相關信息,這些信息或多或少會與我們之前的估計有所不同,因此,我們可以根據這些新的信息,對我們之前所做的估計進行修正。由此,我們可以根據我們在修正後的估計,來進行最優的決策。這就是貝葉斯的角度對probability的解釋。

我們自然可以使用頻率學派的觀點,僅將第1.1節中的 tnt_n 視爲variable。但此時,我們需要對參數 w\mathbf{w} 的uncertainty進行量化。所以我們需要從貝葉斯的觀點去運用probability theory。
此時,回想到在書中,我們在得知取到紅球之後,所選擇的可能顏色的盒子概率分佈也相應地發生了改變。此時,我們再結合Bayes’ theorem本身進行分析,我們可以得到Bayes’ theorem的另外一個作用:它通過吸納observed data所提供的evidence,將prior probability轉換爲posterior probability。
聯繫到參數 w\mathbf{w} 上,我們首先對該參數作以初步假設:p(w)p(\mathbf{w}), 即爲該參數的prior probability,然後在得到data D={t1,t2,...,tN}\mathcal{D}=\{t_1, t_2, ..., t_N\} 之後,我們可以通過 p(wD)p(\mathbf{w}|\mathcal{D}) ,將這些observed data加入進模型,從而得到該參數的posterior probability:
p(wD)=p(Dw)p(w)p(D)      (1.43)p(\mathbf{w}|\mathcal{D})=\frac{p(\mathcal{D}|\mathbf{w})p(\mathbf{w})}{p(\mathcal{D})}\ \ \ \ \ \ (1.43)
其中, p(Dw)p(\mathcal{D}|\mathbf{w}) 稱爲“likelihood”,它是參數 w\mathbf{w}的函數,它使用observed data D\mathcal{D} 對當前 w\mathbf{w} 下生成數據的可能性進行評估。但要注意的是,likelihood並非是關於 w\mathbf{w} 的分佈。
而又由於 p(D)p(\mathcal{D}) 是用於normalization的constant,因此我們可以得到如下關係:
posteriorlikelihood×prior      (1.44)\text{posterior}\propto \text{likelihood}\times \text{prior}\ \ \ \ \ \ (1.44)
且上式中的三項均爲參數 w\mathbf{w} 的函數。
而Bayes’ theorem中的denominator可以表示爲:
p(D)=p(Dw)p(w)dw      (1.45)p(\mathcal{D})=\int p(\mathcal{D}|\mathbf{w})p(\mathbf{w})\text{d}\mathbf{w}\ \ \ \ \ \ (1.45)

那麼頻率派的參數估計方法,和貝葉斯學派的參數估計方法有什麼區別呢?
在頻率學派看來,參數 w\mathbf{w} 應當是一個定值,頻率學派會用某種estimator去估計該參數。那麼估計的誤差怎麼處理,頻率學派認爲,我們所得到的數據集,其實無法完全表現該數據集的概率分佈,由於我們的參數估計是在這個不完整的數據集上進行的,所以我們的誤差就來源於observed data所展示給我們的distribution,和真實的distribution之間的偏差。
而在貝葉斯學派看來,我們只有唯一的數據集,即我們的observed data set D\mathcal{D}(沒有別的什麼數據了), 此時對於參數 w\mathbf{w} 的估計中出現的uncertainty,則通過對該參數進行probability distribution的分析而得到。
頻率學派經常採用maximum likelihood (p(Dw)p(\mathcal{D}|\mathbf{w})) 的方法,選出那個能使得該likelihood函數值最大的 w\mathbf{w} 的值。而對於error bar的估計則可以使用bootstrap的方法,在原有含N個數據的數據集 X\mathbf{X} 中,隨機sample出N個數據,組成一個新的數據集,重複L次後,構造出L個這樣的數據集。然後分別利用這些數據集進行參數 w\mathbf{w} 的估計,並進行prediction。最終通過計算各類prediction結果之間的variability,從而對參數估計中的誤差進行計算。
至於使用貝葉斯方法,還是頻率派方法,目前仍然處於爭議的狀態之中。在一個拋硬幣的問題中,假設拋3次的結果都是正面,那麼用頻率派的方法,得到的結果必然是:拋正面的概率爲1,負面爲0。但我們根據常識可知,一般情況下,拋硬幣出現正反面的概率是一樣的0.5,所以我們可以將這個常識作爲先驗知識加入進去,從而使得最終計算出來的概率分佈不那麼極端(儘管我們拋了3次硬幣,且全都是正面朝上)。
但從另外一個角度來講,prior的加入是純粹的人爲設計,有時候的設計可能只是爲了服務於數學推導上的便利,未必就是客觀事實的反映。
本書將主要講述貝葉斯的相關方法,以及頻率學派中那些非常有用的方法。
雖然貝葉斯方法的提出時間很早,但它是在近些年來才興起的。這裏面的問題主要在於貝葉斯公式中的分母一般需要在參數上進行integrate out,需要遍歷整個參數空間。近年來提出的MCMC方法,以及高速計算機的發展,才爲貝葉斯方法帶來新的活力。然而,MCMC方法本身對於計算量的消耗很大,因此該方案一般只適用於小規模的問題。更近年來,作爲posterior probability的近似方法,變分貝葉斯以及期望傳播,這類確定性算法的出現,也成爲了MCMC方法的補充。而這些方法都會在後面章節介紹。

1.2.4 The Gaussian distribution

對於連續隨機變量,Gaussian distribution是一個非常重要的distribution。假設我們的隨機變量是一個single real-valued x的時候,並且設其服從Gaussian distribution,則有x的概率密度函數如下:
N(xμ,σ2)=1(2πσ2)1/2exp{12σ2(xμ)2}      (1.46)\mathcal{N}(x|\mu, \sigma^2)=\frac{1}{(2\pi\sigma^2)^{1/2}}\text{exp}\left\{-\frac{1}{2\sigma^2}(x-\mu)^2\right\}\ \ \ \ \ \ (1.46)
其中,μ\mu被稱爲mean,σ2\sigma^2被稱爲variance。σ2\sigma^2 的算術平方根 σ\sigma 被稱爲standard deviation。σ2\sigma^2 的倒數: β=1σ2\beta=\frac{1}{\sigma^2} 被稱爲precision。
Gaussian distribution如下圖所示:
在這裏插入圖片描述
由式(1.46),我們可以得到如下兩條結論(同樣也是構成概率密度函數所要滿足的基本要求):
N(xμ,σ2)>0      (1.47)\mathcal{N}(x|\mu,\sigma^2)>0\ \ \ \ \ \ (1.47)
N(xμ,σ2)dx=1      (1.48)\int_{-\infin}^{\infin}\mathcal{N}(x|\mu,\sigma^2)\text{d}x=1\ \ \ \ \ \ (1.48)
此外,Gaussian distribution的期望可以計算如下:
E[x]=N(xμ,σ2)x dx=μ      (1.49)\mathbb{E}[x]=\int_{-\infin}^{\infin}\mathcal{N}(x|\mu,\sigma^2)x\ \text{d}x=\mu\ \ \ \ \ \ (1.49)
而對於 x2x^2 的期望有:
E[x2]=N(xμ,σ2)x2 dx=μ2+σ2      (1.50)\mathbb{E}[x^2]=\int_{-\infin}^{\infin}\mathcal{N}(x|\mu,\sigma^2)x^2\ \text{d}x=\mu^2+\sigma^2\ \ \ \ \ \ (1.50)
因此,我們可以利用x的variance的推導公式,得到:
var[x]=E[x2]E[x]2=σ2      (1.51)\text{var}[x]=\mathbb{E}[x^2]-\mathbb{E}[x]^2=\sigma^2\ \ \ \ \ \ (1.51)
所以說,我們纔會將 σ2\sigma^2 稱爲 Gaussian distribution的variance(因爲它本來就是Gaussian distribution的variance)。
對於一個distribution來說,它達到最大值時的那一個點被稱爲“mode”,因此對於Gaussian distribution來說,它的mode在 x=μx=\mu 時達到。

對於D維的隨機向量 x\text{x} 來說,如果它服從Gaussian distribution,那麼其概率密度有:
N(xμ,Σ)=1(2π)D/21Σ1/2exp{12(xμ)TΣ1(xμ)}      (1.52)\mathcal{N}(\text{x}|\mathbf{\mu}, \mathbf{\Sigma})=\frac{1}{(2\pi)^{D/2}}\frac{1}{|\mathbf{\Sigma}|^{1/2}}\text{exp}\left\{-\frac{1}{2}(\text{x}-\mathbf{\mu})^T\mathbf{\Sigma}^{-1}(\text{x}-\mu)\right\}\ \ \ \ \ \ (1.52)
其中D維向量 μ\mathbf{\mu} 是mean,Σ\mathbf{\Sigma} 是covariance。

如果我們有一個dataset,其中包含observations x=(x1,...,xN)T\mathbf{x}=(x1, ..., x_N)^T, 共含有N個1維的observation。我們假設這些observations是我們互相獨立地從一個mean和variance未知的Gaussian distribution中取出來的。那麼我們該如何得到這個Gaussian distribution的參數?(注:互相獨立地從同一個分佈中取出來(independent identically distributed, i.i.d))
由於任意兩個相互獨立的事件的聯合概率分佈等於二者各自的邊緣概率分佈的乘積,又因爲我們的data 滿足 i.i.d 條件,所以我們可以在given μ\muσ2\sigma^2 的時候,以如下的形式寫出得到這個data set的概率:
p(xμ,σ2)=n=1NN(xnμ,σ2)      (1.53)p(\mathbf{x}|\mu,\sigma^2)=\prod_{n=1}^N\mathcal{N}(x_n|\mu,\sigma^2)\ \ \ \ \ \ (1.53)
當我們將這個函數看作是以參數 "μ\muσ2\sigma^2" 爲自變量的函數時,該函數被稱爲“likelihood function” 。
一個利用observed data,在某一特定distribution中尋找參數的方法是,最大化likelihood function。而在實際中,爲了計算的簡便起見,一般普遍上採用likelihood函數的log形式。又由於log函數是單調遞增的,所以最大化likelihood的log函數形式,就相當於最大化likelihood本身。式(1.53)經過log轉換後的結果如下:
ln p(xμ,σ2)=12σ2n=1N(xnμ)2N2ln σ2N2 ln(2π)      (1.54)\text{ln}\ p(\mathbf{x}|\mu,\sigma^2)=-\frac{1}{2\sigma^2}\sum_{n=1}^N(x_n-\mu)^2-\frac{N}{2}\text{ln}\ \sigma^2-\frac{N}{2}\ \text{ln}(2\pi)\ \ \ \ \ \ (1.54)
μ\mu 求導,並令導數爲0,可得 μ\mu 的值爲:
μML=1Nn=1Nxn      (1.55)\mu_{\text{ML}}=\frac{1}{N}\sum_{n=1}^Nx_n\ \ \ \ \ \ (1.55)
這裏的 μML\mu_{\text{ML}} 被稱爲 sample mean。因爲它是所有observations(sample)的mean。
同理,對 σ2\sigma^2有:
σML2=1Nn=1N(xnμML)2      (1.56)\sigma^2_{\text{ML}}=\frac{1}{N}\sum_{n=1}^N(x_n-\mu_{\text{ML}})^2\ \ \ \ \ \ (1.56)
其中 σML2\sigma^2_{\text{ML}} 被稱爲 sample variance,因爲它是圍繞着sample mean μML\mu_{\text{ML}} 來計算的數據點的離散程度。
對這兩個量的數學期望進行計算:
E[μML]=μ      (1.57)\mathbb{E}[\mu_{\text{ML}}]=\mu\ \ \ \ \ \ (1.57)
E[σML2]=(N1N)σ2      (1.58)\mathbb{E}[\sigma^2_{\text{ML}}]=(\frac{N-1}{N})\sigma^2\ \ \ \ \ \ (1.58)
可見,sample variance與真實的variance之間相差了一個factor,於是,爲了能讓估計出來的variance是unbiased的,我們對於 σ2\sigma^2 的估計通常寫作如下的形式:
σ~2=NN1σML2=1N1n=1N(xnμML)2      (1.59)\widetilde{\sigma}^2=\frac{N}{N-1}\sigma^2_{\text{ML}}=\frac{1}{N-1}\sum_{n=1}^N(x_n-\mu_{\text{ML}})^2\ \ \ \ \ \ (1.59)

1.2.5 Curve fitting re-visited

本節中,我們將重新回顧多項式擬合問題。在之前的章節中,我們知道,多項式擬合問題可以被表示成最小化誤差的方式。

回顧一下該問題中的數據:我們有N個輸入值x=(x1,x2,...,xN)T\mathbf{x}=(x_1,x_2,...,x_N)^T, 以及與它們相應的輸出(目標)值t=(t1,...,tN)T\mathbf{t}=(t_1, ..., t_N)^T. 我們首先可以考慮對目標變量的uncertainty進行建模,即,對目標變量的概率分佈進行建模。因此,我們假設在給定x的時候,輸出的t滿足一個均值爲y(x,x)y(x,\mathbf{x})的Gaussian distribution,即

p(tx,w,β)=N(ty(x,w),β1)    (1.60) p(t|x,\mathbf{w}, \beta)=\mathcal{N}(t|y(x, \mathbf{w}), \beta^{-1})\ \ \ \ (1.60)
其中β\beta就是之前提到的精度參數。
我們可以利用下圖來形象地展示關於t的uncertainty:
在這裏插入圖片描述
p(tx,w,β)p(t|x,\mathbf{w}, \beta)是一個關於變量tt的概率分佈函數,但我們同樣可以發現,它也是關於變量w\mathbf{w}的似然函數。因此,我們可以利用該似然函數,來對w\mathbf{w}的值進行估計:
p(tx,w,β)=n=1NN(tny(xn,w),β1)    (1.61)p(\mathbf{t}|\mathbf{x},\mathbf{w}, \beta)=\prod_{n=1}^N\mathcal{N}(t_n|y(x_n, \mathbf{w}), \beta^{-1})\ \ \ \ (1.61)
正如我們之前所做的,我們可以通過最大化對數似然函數的方式,去對這些的參數w\mathbf{w}的值進行估計:
lnp(tx,w,β)=β2n=1N{y(xn,wtn)}2+N2lnβN2ln(2π)    (1.62)\text{ln}p(\mathbf{t}|\mathbf{x}, \mathbf{w}, \beta)=-\frac{\beta}{2}\sum_{n=1}^N\{y(x_n, \mathbf{w}-t_n)\}^2+\frac{N}{2}\text{ln}\beta-\frac{N}{2}\text{ln}(2\pi)\ \ \ \ (1.62)
我們設wML\mathbf{w}_{\text{ML}}爲maximum likelihood下的多項式參數估計值。我們首先對式(1.62)進行觀察,由於該式後兩項與w\mathbf{w}
無關,所以我們可以忽略這兩項。又因爲該式第一項中的係數僅僅可以對該項進行放縮,所以我們可以將該項β2\frac{\beta}{2}轉換爲12\frac{1}{2}, 而我們對該函數的最大化過程等價於對該函數的相反數的最小化過程,因此我們可以將負號去掉,從而最小化該函數。此時我們可以看到,該函數其實是與式(1.2)中的最小化平方和誤差,是等價的。因此我們可以說,平方和誤差函數與假設目標值服從高斯分佈(或者說目標值含有高斯噪聲)的最大似然函數之間,在估計參數w\mathbf{w}的意義下是等價的。
如同前面計算data points服從Gaussian distribution的似然函數一樣,我們可以首先算出wML\mathbf{w}_{\text{ML}}的值(此時wML\mathbf{w}_{\text{ML}}β\beta)在似然函數中解耦。然後將wML\mathbf{w}_{\text{ML}}值代入原似然函數,我們就可以得到如下的式子:
1βML=1Nn=1N{y(xn,wMLtn)}2    (1.63) \frac{1}{\beta_{\text{ML}}}=\frac{1}{N}\sum_{n=1}^N\{y(x_n, \mathbf{w}_{\text{ML}}-t_n)\}^2\ \ \ \ (1.63)
於是我們便得到β\beta的值了。

因此,在預測的時候,我們可以將上述兩個參數代入原來關於目標值t的概率分佈中:
p(tx,wML,βML)=N(ty(x,wML),βML1)    (1.64) p(t|x,\mathbf{w}_{\text{ML}}, \beta_{\text{ML}})=\mathcal{N}(t|y(x,\mathbf{w}_{\text{ML}}), \beta_{\text{ML}}^{-1})\ \ \ \ (1.64)
此時,我們選擇將關於係數w\mathbf{w}的先驗分佈加入到該係數的概率分佈中,從而以一種更爲貝葉斯的方式來表達該係數的分佈。我們假設該數服從如下的Gaussian distribution:
p(wα)=N(0,α1I)=(α2π)(M+1)/2exp{α2wTw}    (1.65) p(\mathbf{w}|\alpha)=\mathcal{N}(\mathbf{0},\alpha^{-1}\mathbf{\text{I}})=\left(\frac{\alpha}{2\pi}\right)^{(M+1)/2}exp\left\{-\frac{\alpha}{2}\mathbf{w}^{\text{T}}\mathbf{w}\right\}\ \ \ \ (1.65)
其中α\alpha是該概率分佈的精度參數,M+1M+1w\mathbf{w}中所含分量的個數。α\alpha這類用來控制模型參數的變量,被稱爲“超參數”。
然後,我們利用貝葉斯公式的原理,即後驗概率正比於似然函數與先驗概率的乘積,遂得到如下的式子:
p(wx,t,α,β)p(tx,w,β)p(wα)    (1.66) p(\mathbf{w}|\mathbf{x}, \mathbf{t}, \alpha, \beta)\propto p(\mathbf{t}|\mathbf{x}, \mathbf{w}, \beta)p(\mathbf{w}|\alpha)\ \ \ \ (1.66)
於是我們現在可以通過找到那個能使得該後驗概率最大的w\mathbf{w},作爲我們想要的參數w\mathbf{w}。該方法被稱爲“最大後驗概率”方法,簡稱MAP。

結合(1.66), (1.62), (1.65)三個式子,我們可以將MAP轉換爲最小化下式:
β2n=1N{y(xn,w)tn}2+α2wTw    (1.67) \frac{\beta}{2}\sum_{n=1}^N\{y(x_n, \mathbf{w})-t_n\}^2+\frac{\alpha}{2}\mathbf{w}^{\text{T}}\mathbf{w}\ \ \ \ (1.67)
此時我們可以看到,MAP方法與λ=α/β\lambda=\alpha/\beta的正則化的最小均方誤差函數,是相同的。

1.2.6 Bayesian curve fitting

儘管我們已經將關於參數w\mathbf{w}的先驗分佈信息加入進我們關於該參數的概率分佈中,但是MAP方法仍然(如同ML方法一樣)做的是“點估計”。在一個完整的貝葉斯方法中,我們將利用sum和product rule,對目標值的概率分佈進行描述。而在這個過程中,我們需要對w\mathbf{w}的所有取值進行求和(即對w\mathbf{w}求積分)。而這個求積分的步驟其實就是在模式識別中,貝葉斯方法的核心。
在進行接下來的步驟之前,我們首先對我們的目標進行回顧:在曲線擬合問題中,我們已經擁有的信息是訓練數據:x,t\mathbf{x}, \mathbf{t} 除此之外還有一個新的test point x。我們的目標在於,對這個test point x的target value t進行預測。
在這裏,我們希望對預測值t的概率分佈p(tx,x,t)p(t|x,\mathbf{x}, \mathbf{t})進行計算。其中我們假設超參α,β\alpha, \beta是已經提前知道了的。
因此,我們可以利用sum和product rule,對t所滿足的分佈進行計算:
p(tx,x,t)=p(tx,w)p(wx,t)dw    (1.68) p(t|x, \mathbf{x}, \mathbf{t})=\int p(t|x, \mathbf{w})p(\mathbf{w}|\mathbf{x}, \mathbf{t})\text{d}\mathbf{w}\ \ \ \ (1.68)
其中,p(tx,w)p(t|x, \mathbf{w})是由(1.60)式得到的,其中的α,β\alpha, \beta都被略去了。p(wx,t)p(\mathbf{w}|\mathbf{x}, \mathbf{t})是關於參數w\mathbf{w}的後驗分佈。在3.3節中,我們將會知道,對於curve fitting問題而言,後驗分佈是一個Gaussian distribution,並且該Gaussian distribution是可以計算得到其解析解的。相似的,這個關於t的概率分佈也是一個Gaussian distribution的形式,我們不加證明(在3.3節會具體說明)地給出這個Gaussian distribution的具體形式:
p(tx,x,t)=N(tm(x),s2(x))    (1.69) p(t|x,\mathbf{x}, \mathbf{t})=\mathcal{N}(t|m(x), s^2(x))\ \ \ \ (1.69)
其中均值和方差爲:
m(x)=βϕ(x)TSn=1Nϕ(xn)tn    (1.70) m(x)=\beta\mathbf{\phi}(x)^{\text{T}}\mathbf{S}\sum_{n=1}^N\phi(x_n)t_n\ \ \ \ (1.70)
s2(x)=β1+ϕ(x)TSϕ(x)    (1.71) s^2(x)=\beta^{-1}+\phi(x)^{\text{T}}\mathbf{S}\phi(x)\ \ \ \ (1.71)
其中矩陣S\mathbf{S}的計算如下:
S1=αI+βn=1Nϕ(xn)ϕ(x)T    (1.72) \mathbf{S}^{-1}=\alpha \mathbf{I}+\beta\sum_{n=1}^N\phi(x_n)\phi(x)^{\text{T}}\ \ \ \ (1.72)
其中I\mathbf{I}爲單位矩陣,且向量ϕ(x)\phi(x)中的每一個元素ϕi(x)=xi,for i=0,...,M\phi_i(x)=x^i, \text{for}\ i=0,...,M
(1.71)式的第一項所建模的是預測值tt的uncertainty(由t值上的noise所帶來的),而第二項所要建模的是參數w\mathbf{w}中的uncertainty,這個uncertainty其實就是Bayesian方法的一個結果。

1.3 Model Selection

在使用最小二乘法的curve fitting問題中,我們知道一定存在一個最優的多項式次數M,使得這個模型具有最好的泛化能力。多項式的次數控制着模型中自由參數的數量,從而對模型的複雜度進行了控制。在正則化的最小二乘中,正則係數λ\lambda同樣也控制着模型的複雜度。
在實際中,我們通常需要對這些參數的值進行確定,從而使得模型在new data上能夠有最好的表現。此外,我們同樣也希望能夠在參數確定時比較不同的模型,從而挑出一個最好的模型用於我們具體的數據集。
我們通過對於最大似然方法的研究發現,由於潛在的over-fitting的緣故,模型在training set上的表現可能會特別好,但是我們知道,這種“好”的效果並不能代表模型真正的泛化能力(模型的泛化能力纔是我們所關注的),因而不能作爲模型在unseen data上的表現。當我們的數據量充足時,我們可以選擇training set中的一部分數據用於訓練,另一部分數據用於比較不同參數選擇(或不同模型下)這些模型之前的性能差異,我們將這樣的數據稱爲validation set。然後挑出其中validation set上表現最好的模型。
若因爲一些特殊的原因,模型需要在有限的數據集上進行多次迭代訓練,那麼該模型很有可能在validation set上表現出overfitting的問題。因此設置一個獨立出來的test set用於評估模型的最終性能,是十分有必要的。
在數據量有限的情況下,由於我們需要儘可能多的數據用於訓練,因此validation set的大小就會變得非常小。而規模小的validation set具有相對較大的noisy estimate,因此我們採用cross-valiation的做法,如下圖所示:

在這裏插入圖片描述
這裏我們將數據分爲4份(S=4)。
對於每一個模型,我們分別訓練四次,每一次分別用不同的一部分數據作爲validation set,同時使用另外的所有數據作爲training set。從而儘可能規避noisy estimate的問題。
當S=N時(N爲data point的總數),我們稱這樣的方法爲leave-one-out 技術。
cross-validation方法的缺點在於,我們對一個模型的訓練次數隨着S的增大而增大。而當我們有許多不同的模型參數的選擇,以及許多不同的模型架構時,所有模型的總訓練次數還會不斷增高。而當模型訓練一次本身的代價就十分大的時候,這樣的問題將會更爲嚴重。
關於以上問題,我們是否有一個解決方案呢?在歷史上,有許多的“information criteria”相繼提出,這些方法的目的在於修正因最大似然估計所帶來的bias。其解決思路是爲那些由於模型複雜而導致的overfitting增加懲罰項。例如,AIC(Akaike information criterion) 方法選擇那一個能使得下式值最大的模型:
lnp(DwML)M    (1.73) \text{ln}p(\mathcal{D}|\mathbf{w}_{\text{ML}})-M\ \ \ \ (1.73)
其中p(DwML)p(\mathcal{D}|\mathbf{w}_{\text{ML}})是在log likelihood的最優值,M爲模型中可調整參數的個數。關於該方法的一個變體BIC,將在4.4.1節進行詳細介紹。

1.4 The Curse of Dimensionality

本節所要講述的是“Curse of Dimensionality”。關於這一章,所要闡明的問題其實有兩方面:1. 維數增長帶來的困境;2. 低維與高維數據分佈之間特性的差異。
在之前所講的例子裏,我們對於輸入數據的要求都是一維的。然而在實際情況中高維輸入數據纔是普遍情況。爲了更好的闡述這個問題,我們利用附錄A裏面的一個“石油”、“水”、“氣體”混合物的例子。附錄這部分可以不看,因爲那裏的信息過於繁瑣。我們簡要敘述如下。對於這三種物質的混合情況,主要分爲三類“分層的”“環形的”“均勻的”。我們已知關於混合物的12種測量屬性(也就是input的12個分量),我們的目的在於,利用這12個屬性,來對(具這12個屬性的)混合物的混合類型進行分類。
在這裏插入圖片描述
上圖所示爲三種類型的混合物。
爲了方便起見,我們只採用input中的第6個和第7個分量。如下圖所示:
在這裏插入圖片描述
該圖所示,爲training set中的各個data point,不同的顏色代表不同類型的混合物。假如我們得到了一個新的unseen data(在圖中以黑色的“叉號”體現),那麼我們如何知道這個點是屬於哪一種類型的混合物呢?此時一種直觀的想法是,它離哪一個點近,那麼就更有可能是哪一種類型的混合物。我們可以看到,這個點離紅色或綠色都很近,說明它很有可能與紅色點/綠色點屬於同一類別。同樣我們可以發現,這個點離藍色點較遠,於是我們可以看到,這個點不太可能與藍色點是同類的。
那麼,我們如何將這裏的描述轉換爲某一種具體的算法呢?一種想法是,利用分格投票的方式。如下圖所示:
在這裏插入圖片描述
我們將輸入空間劃分成一個個的格子, 對於每一個格子,若這個格子中某一種顏色點的佔比最大,那麼新來到這個格子裏的點,就屬於這個顏色下的類別。
然而,當維數增大時,這樣的方法會出現許多問題。首先,當維數增大時,我們需要劃分的格子數也會以指數的方式增大。那麼爲了與之匹配,我們的數據量也需要佔據這些格子,因此也需要以指數的趨勢進行增長。我們知道,這對於我們而言幾乎是不現實的。
我們將注意力轉回curve fitting問題上,對於該問題,如果我們的輸入是D維的,那麼我們可以得到如下的多項式方程(以三階方程爲例):
y(x,w)=w0+i=1Dwixi+i=1Dj=1Dwijxiyj+i=1Dj=1Dk=1Dwijkxixjxk    (1.74) y(\mathbf{x}, \mathbf{w})=w_0+\sum_{i=1}^Dw_ix_i+\sum_{i=1}^D\sum_{j=1}^Dw_{ij}x_iy_j+\sum_{i=1}^D\sum_{j=1}^D\sum_{k=1}^Dw_{ijk}x_ix_jx_k\ \ \ \ (1.74)
因此,這裏的係數以DMD^M的趨勢,隨着維數D的增大而增大。雖然這裏的增長趨勢實質上是冪次的,然而當維數很大時,模型也會由於參數過多而變得不可控,從而導致該方法的應用範圍受限。

然後我們來討論低維特性到高維特性的巨大不同。我們生活在三維空間裏,因此我們的很多直覺其實都是以我們所生活的三維空間爲基礎,來進行構建的。然而,高維空間裏的很多特性其實是反直覺的。我們以在極座標系下的多維高斯分佈爲例。
假設我們有兩個球體,一個半徑r=1, 另一個半徑r=1ϵ1-\epsilon, 我們有D維球體的方程:
VD(r)=KDrD    (1.75) V_D(r)=K_Dr^D\ \ \ \ (1.75)
其中我們可以計算得到厚度爲ϵ\epsilon的薄層在r=1的球體中所佔的比例爲:
VD(1)VD(1ϵ)VD(1)=1(1ϵ)D      (1.76) \frac{V_D(1)-V_D(1-\epsilon)}{V_D(1)}=1-(1-\epsilon)^D\ \ \ \ \ \ (1.76)
對於高斯分佈的概率密度函數p(r)p(r),其中r爲原點到當前點的距離。那麼p(r)δrp(r)\delta r其實就是在一個厚度爲δr\delta r內,在半徑爲r時的薄殼。而通過下圖所示:
在這裏插入圖片描述
當維數增大時,高斯分佈的概率更多集中於球體表面的薄殼中。

這個例子對於我們的啓示在於,我們不能將維度在低維上的經驗直接推廣到高維上。

雖然高維空間有着curse of dimensionality的問題,然而我們同樣有一些方法去解決它們。一種角度是針對那些雖然在高維空間,但實際上有效空間是一個低維的空間的數據。我們可以在低維空間中去處理相應的問題;另一個方法是,得到的數據可能是比較平滑的,因此我們可以通過局部插值的方式,得到一條較爲平滑的函數曲線,從而對unseen data的相應target value進行預測。

1.5 Decision Theory

在1.2節中,我們已經對uncertainty進行了建模。本節討論的decision theory其實就是在1.2節的基礎上,在模式識別中出現uncertainty的情況下,所採取的最優決策問題。
假設我們的輸入爲vector x\mathbf{x}, 輸出爲vector t\mathbf{t}, 在迴歸問題中,t\mathbf{t}是一個具有連續型分量的向量;在分類問題中,t\mathbf{t}是一個個class label。由於聯合概率分佈p(x,t)p(\mathbf{x}, \mathbf{t})包含了關於這些變量的所有uncertainty的信息,因此通過training data來對這一概率分佈進行求得,就是一個在inference中十分重要且困難的問題,關於這一問題的求解,也是本書中的主體部分中所要討論的問題。然而,在實際應用中,我們往往需要對t的值進行預測,而這種預測的行爲就構成了本節所講的decision theory的基礎理論。
考慮一個醫學診斷的問題,我們通過X-ray來診斷病人,從而去推斷這個病人是否罹患癌症。在這個問題中,我我們的輸入是X-ray的像素點信息,即vector x\mathbf{x}, 輸出的t表示這張圖片中是否出現了癌症,若出現了,則屬於類別C1\mathcal{C}_1(t=0), 否則則屬於類別C2\mathcal{C}_2(t=1)。通常的推斷問題一般的目的在於確定聯合概率分佈p(x,Ck)p(\mathbf{x}, \mathcal{C}_k), 或者是p(x,t)p(\mathbf{x}, t), 這個聯合概率分佈給予了我們這種情況下完整的概率描述。但是我們同樣需要注意的是,我們最終的關注點在於,判斷病人是否患癌。由於我們需要這樣的一個決策是給定要求下最優的,因此我們還需要一個decision step,而該decision step是decision theory中的主要內容。當然,我們將會看到,當我們完成了inference problem之後,這個decision stage將會變得十分簡單,甚至是不重要。
接下來的部分中,我們首先對概率在這個決策過程中所起到的作用進行闡述。
當我們已經得到X-ray後的image x\mathbf{x}之後,我們的興趣點就着眼在這個image是屬於兩個類別分別的概率 :
p(Ckx)=p(xCk)p(Ck)p(x)    (1.77) p(\mathcal{C}_k|\mathbf{x})=\frac{p(\mathbf{x}|\mathcal{C}_k)p(\mathcal{C}_k)}{p(\mathbf{x})}\ \ \ \ (1.77)
我們注意到,上述貝葉斯定理中的所有組件都可以從聯合概率分佈p(x,Ck)p(\mathbf{x}, \mathcal{C}_k)中得到。我們將p(Ck)p(\mathcal{C}_k)視爲類別Ck\mathcal{C}_k的概率分佈,而將p(Ckx)p(\mathcal{C}_k|\mathbf{x})視爲相應的後驗分佈。因此,p(C1)p(\mathcal{C}_1)表示我們在得到X-ray image之前,患者患癌的概率,而將p(C1x)p(\mathcal{C}_1|\mathbf{x})表示我們在得到image x\mathbf{x} 之後,患者患癌的概率分佈。如果我們希望分類中錯誤分類的概率最小,從直覺上來說,我們應該將given image x\mathbf{x}時後驗概率分佈最高的那一個類別作爲我們最終選擇的類別。

1.5.1 Minimizing the misclassification rate

最小化分類率問題中的目標在於,我們需要儘可能的減少錯誤分類率。首先我們需要將每一個點劃分到一個個的區域中,在特定的區域中,這些點會被劃分到特定的類別裏。這些區域Rk\mathcal{R}_k被稱爲decision region, 而在這個區域內的所有點將被歸類到類別Ck\mathcal{C}_k中。這些區域之間的邊界被稱爲decision boundaries。其中這些區域不一定要連接在一起,我們允許同一種類別擁有多個不連續的區域塊。錯誤分類發生在一個本屬於區域C1\mathcal{C}_1的data point被分類到區域C2\mathcal{C}_2中。這種情況發生的概率爲:
p(mistake)=p(xR1,C2)+p(xR2,C1)=R1p(x,C2)dx+R2p(x,C1)dx    (1.78) p(\text{mistake})=p(\mathbf{x}\in \mathcal{R}_1, \mathcal{C}_2)+p(\mathcal{x}\in \mathcal{R}_2, \mathcal{C}_1)=\int_{\mathcal{R}_1}p(\mathbf{x}, \mathcal{C}_2)\text{d}\mathbf{x}+\int_{\mathcal{R}_2}p(\mathbf{x}, \mathcal{C}_1)\text{d}\mathbf{x}\ \ \ \ (1.78)
這個公式就是錯誤分概率的公式。其中,當p(x,C1)>p(x,C2)p(\mathbf{x},\mathcal{C}_1)>p(\mathbf{x}, \mathcal{C}_2)時,即(p(x,Ck)=p(Ckx)p(x)p(\mathbf{x}, \mathcal{C}_k)=p(\mathcal{C}_k|\mathbf{x})p(\mathbf{x}))時,我們可以選擇後驗概p(Ckx)p(\mathcal{C}_k|\mathbf{x})更大的那個類別,作爲該點的類別。此時能夠將錯誤分類率降到最低。
對於這個公式的理解,其實是這樣的。如果對於一個data point x,它分類到類別1的概率p(C1|x)
=0.6, 而分類到類別2 的概率是p(C2|x)=0.4, 那麼如果我們將它最終分類到類別1,它就有40%的可能性是分類錯誤的,因此我們可以說“這個點”分類錯誤的概率是0.4。那麼如果我們有一個數據集,其中包含很多的點,此時分類錯誤的概率該如何去計算呢。顯然的方法是,統計每一個點的實際分類情況,然後得到這個點的錯誤分類率,然後將所有點的錯誤分類率加和,並求平均,於是便得到了整個數據集在該模型下的錯誤分類率。而我在這裏所述的這個錯誤分類器,其實與公式(1.79)的含義相同。我們在求平均的時候,實際上就計算得到了每一個點的p(x)p(\mathbf{x}), 當我們得到這個值之後,我們實際上就已經通過p(Ckx)p(x)p(\mathcal{C}_k|\mathbf{x})\cdot p(\mathbf{x})的方式,得到(1.78)式。
對於更多的類別(例如K個類別),我們可以使用正確分類率,並通過最大化該分類率的方式,對最終的分類率進行計算:
p(correct)=k=1Kp(xRk,Ck)=k=1KRkp(x,Ck)dx    (1.79) p(\text{correct})=\sum_{k=1}^Kp(\mathbf{x}\in \mathcal{R}_k, \mathcal{C}_k)=\sum_{k=1}^K\int_{\mathcal{R}_k}p(\mathbf{x}, \mathcal{C}_k)\text{d}\mathbf{x}\ \ \ \ (1.79)
與最小化(1.78)式同理,如果我們要對(1.79)式進行最大化,那麼我們只需要將每一個點對應的那個能使得式p(Ckx)p(\mathcal{C}_k|\mathbf{x})概率最大的那個點即可.

1.5.2 Minimizing the expected loss

對於很多問題,我們可能更傾向於避免某一種分類錯誤的情況。例如,在診斷癌症中,如果一個健康的人被誤認爲罹患癌症,那麼他至多感到沮喪,並接受進一步的診斷。但如果一個患有癌症的人被診斷爲健康,這個問題會變得嚴重許多。我們顯然希望在第二種情況中犯更少的錯誤。爲此,我們構建一個loss function,用以處理這些類似的情況。假設對於一個input x\mathbf{x}, 其真實的類別是Ck\mathcal{C}_k, 我們將其分類給類別jj, 其中j未必與k相同。此時,我們引入一種對loss的加權機制,即矩陣LL, 其中每一個元素LkjL_{kj}表示實際類別爲k的data point,被分類到j時的loss。
在這個問題中,該loss matrix如下圖所示:
在這裏插入圖片描述
這裏的loss matrix說明了,如果對於正確的分類,這裏不存在任何的loss;然而,對於錯誤的分類,不同情況的loss是不同的,如果一個人沒有癌症,但被誤診爲癌症,那麼這個人相應的loss爲1;反之,如果一個人實際患有癌症,但被誤診爲沒有癌症,那麼這個情況下相應的loss爲1000.
然而實際情況中,我們並不知道每一個data point相應的true class究竟是什麼。對於一個input x\mathbf{x}, 我們關於true class的所有uncertainty都通過聯合概率分佈p(x,Ck)p(\mathbf{x}, \mathcal{C}_k)來表示。因此,雖然我們沒法得到關於分類錯誤的loss,但是我們可以計算分類錯誤的平均loss:
E[L]=kjRjLkjp(x,Ck)dx    (1.80) \mathbb{E}[L]=\sum_k\sum_j\int_{\mathcal{R}_j}L_{kj}p(\mathbf{x}, \mathcal{C}_k)\text{d}\mathbf{x}\ \ \ \ (1.80)
在上式中,每一個x\mathbf{x}都被分配給了某一個region Rj\mathcal{R}_j, 我們的目標是,對各個Rj\mathcal{R}_j進行合理的劃分,進而使得這個loss的值最小。
並且,通過上式我們可以發現,其實對於每一個x\mathbf{x}, 我們的目的實際上在於,爲它選擇最爲合適的region Rj\mathcal{R}_j,使得kLkjp(x,Ck)\sum_kL_{kj}p(\mathbf{x}, \mathcal{C}_k)最小。由因爲p(x,Ck)=p(Ckx)p(\mathbf{x}, \mathcal{C}_k)=p(\mathcal{C}_k|\mathbf{x}), 並且對於同一個x\mathbf{x}而言,這個p(x)p(\mathbf{x})的值是一樣的。因此,我們可以略去這裏的p(x)p(\mathbf{x}), 對於每一個x\mathbf{x}, 我們需要最小化的loss是:
kLkjp(Ckx)    (1.81) \sum_{k}L_{kj}p(\mathcal{C}_k|\mathbf{x})\ \ \ \ (1.81)

1.5.3 The reject option

我們在進行決策時,往往選擇那一個能使得p(Ckx)p(\mathcal{C}_k|\mathbf{x})值最大的那個類別k。然而,當這個類別下的條件概率本身遠小於1,或者說有好幾個類別具有同一個數量級上的概率值(也就是說,這些概率值相近)時,如果我們直接根據這個條件概率的大小來進行自動決策的話,就會導致loss升高。在一些應用中,避免在這些難以分類的例子中進行分類,是十分有必要的。這就是所謂的reject option。例如,對於前述的X-ray image classification問題,如果我們遇到一些不易分類的例子,那麼我們可以拒絕分類它們,並將它們的分類任務轉給人類專家去做。爲了實現這兒reject option,我們可以建立一個threshold θ\theta, 如果最大的後驗概率 p(Ckx)p(\mathcal{C}_k|\mathbf{x})的值都小於等於這個θ\theta的話,我們就讓機器拒絕分類這個image。
下圖所示爲一個輸入變量爲1維,輸出爲2分類的例子:

1.5.4 Inference and decision

對於一個分類問題,我們將其分割成兩個stages:inference stage 以及 decision stage。在inference stage中,我們的目的在於使用training data去學習模型中的後驗分佈p(Ckx)p(\mathcal{C}_k|\mathbf{x}); 在decision stage中,我們利用這些後驗概率分佈來進行最優的類別分配。另外一種解決分類問題的方法通過學習出一個函數(稱爲“判別函數”)的方式,將輸入x\mathbf{x}映射到具體的decisions中。
事實上,我們有三種方式來解決決策問題,我們按照模型的複雜度由高到低羅列如下:

(a) 首先,爲每一個class k建立條件概率密度p(xCk)p(\mathbf{x}|\mathcal{C}_k)。同時,得到class k的先驗概率p(Ck)p(\mathcal{C}_k)。然後我們通過貝葉斯公式計算後驗概率分佈:
p(Ckx)=p(xCk)p(Ck)p(x)    (1.82) p(\mathcal{C}_k|\mathbf{x})=\frac{p(\mathbf{x}|\mathcal{C}_k)p(\mathcal{C}_k)}{p(\mathbf{x})}\ \ \ \ (1.82)
分母的計算可以利用分子進行:
p(x)=kp(xCk)p(Ck)    (1.83) p(\mathbf{x})=\sum_kp(\mathbf{x}|\mathcal{C}_k)p(\mathcal{C}_k)\ \ \ \ (1.83)
在這個過程中,我們實際上就已經將聯合概率分佈p(x,Ck)p(\mathbf{x},\mathcal{C}_k)建立好了。
我們稱能夠建立input與output的聯合分佈的方法爲“generative model”。因爲通過這種方法生成出input space中的數據。

**(b)**首先計算得到後驗分佈p(Ckx)p(\mathcal{C}_k|\mathbf{x}), 然後利用decision theory,將每一個新的x\mathbf{x}賦予到其中一個class。直接建模後驗分佈的方法被稱爲“discriminative model”。

**(c)**找到一個被稱爲“discriminant function”的函數f(x)f(\mathbf{x}),該函數將輸入x\mathbf{x}直接映射爲某一個輸出的label。

然後我們來對這三種方法進行對比分析。第一種方法中,由於我們需要計算聯合概率分佈p(Ck,x)p(\mathcal{C}_k, \mathbf{x})。而在實際情況中,由於x\mathbf{x}可能存在維數較高的問題,因此我們可能需要許多的數據作爲training set,才能使得這個class-conditional density可以得到一個較爲精確的結果(回憶到curse of dimension中,當input space增大時,我們對於數據量的需求也出現了指數增長的趨勢)。而prior p(Ck)p(\mathcal{C}_k)的計算就要簡單許多,因爲我們只需要統計training set中各個class出現的比例即可。然而,方法(a)的一個優勢在於,我們可以通過式(1.83), 將數據x\mathbf{x}的邊緣概率分佈p(x)p(\mathbf{x})直接計算出來。這樣的概率分佈往往可以被用於檢測那些在該概率分佈下概率值十分小的new data,這樣的new data被稱爲outlier,而這樣的方法被稱爲outlier detection/ noverlty detection.

但是,如果我們僅僅希望去做一個分類任務,方法(a)由於計算量大且需要很多數據的問題其實完全是不必要的。此時我們可以直接通過方法(b),計算得到後驗概率分佈p(x,Ck)p(\mathbf{x}, \mathcal{C}_k)

對於方法(c),我們通過一個判別函數,將輸入x\mathbf{x}直接映射成一個label。但是,方法(c)存在着一個問題,即它不嫩計算出後驗概率分佈p(Ckx)p(\mathcal{C}_k|\mathbf{x})。而後驗概率分佈十分重要,理由如下:

Minimizing risk: 如果我們的loss matrix發生改變,那麼如果我們使用的是後驗概率分佈,那麼我們最終的loss function只需要作以少量的修改;然而,如果我們選用的(c)中的判別函數,那麼我們需要完全重新訓練一個模型。

Reject option:這個內容在前面講過。當我們有後驗分佈時,我們可以通過建立threshold θ\theta的方式,獲取到那些比較ambiguous的data point,然後把這些data point交給 human expert去進行分類。

Compensating for class prior:當出現數據不平衡時,即當某一個類別的數據量很少的時候,我們可以首先人爲挑選數據,使得類別間數據量均衡,然後再model posterior。
由於posterior正比於prior,而這裏的prior又與我們training時所用的數據集有關(此時training用的數據集是人爲構造的)。因此,爲了消除人爲影響,針對posterior,我們可以首先除以該類別在人爲數據集中所佔的比例,然後再乘以該類比在我們實際數據集中的比例。最終對得到的新的這些posterior進行normalized。

Combining models:對於我們有多種數據的情況(比如既有x-ray image,又有blood data)時,我們未必要將這兩種數據合成一個大的input data,而是分別對二者構建後驗概率分佈。由於二者數據之間是在given分類的基礎上是conditional independent的,所以我們可以用這2個posterior之間的乘積進行聯合概率分佈的計算。
設X-ray image的input是xI\mathbf{x}_\text{I}, 而xB\mathbf{x}_\text{B}是blood data的input,那麼這個條件獨立關係可以寫爲:
p(xI,xBCk)=p(xICk)p(xBCk)    (1.84) p(\mathbf{x}_\text{I},\mathbf{x}_\text{B}|\mathcal{C}_k)=p(\mathbf{x}_\text{I}|\mathcal{C}_k)p(\mathbf{x}_\text{B}|\mathcal{C}_k)\ \ \ \ (1.84)
因此,在給定X-ray image以及blood data的時候,後驗概率分佈爲:
p(CkxI,xB)p(xI,xBCk)p(Ck)p(xICk)p(xBCk)p(Ck)p(CkxI)p(CkxB)p(Ck)    (1.85) p(\mathcal{C}_k|\mathbf{x}_\text{I},\mathbf{x}_\text{B})\propto p(\mathbf{x}_\text{I},\mathbf{x}_\text{B}|\mathcal{C}_k)p(\mathcal{C}_k)\\ \propto p(\mathbf{x}_\text{I}|\mathcal{C}_k)p(\mathbf{x}_\text{B}|\mathcal{C}_k)p(\mathcal{C}_k)\\ \propto \frac{p(\mathcal{C}_k|\mathbf{x}_\text{I})p(\mathcal{C_k}\mathbf{x}_\text{B})}{p(\mathcal{C}_k)}\ \ \ \ (1.85)
其中,式(1.84)其實就是一個naive Bayes model的例子。

1.5.5 Loss functions for regression

之前我們所討論的都是關於classification problem的decision theory,現在我們來探討regression problem的情況(以之前的curve fitting問題爲例)。對於regression problem而言,decision stage的目的在於,對於每一個input x\mathbf{x},選擇一個特定y(x)y(\mathbf{x})作爲對於真值tt的估計。假設在這種操作之下,我們可以得到loss L(t,y(x))L(t,y(\mathbf{x})), 類比於之前在分類問題中對loss matrix的利用,我們可以得到最終的loss 表達式:
E[L]=L(t,y(x))p(x,t)dxdt    (1.86) \mathbb{E}[L]=\int\int L(t,y(\mathbf{x}))p(\mathbf{x}, t)\text{d}\mathbf{x}\text{d}t\ \ \ \ (1.86)
在regression problem中,對於loss function的一個常用選擇是squared loss, 即:L(t,y(x))={y(xt)}2L(t, y(\mathbf{x}))=\{y(\mathbf{x}-t)\}^2。因此,loss的期望可以被寫爲:
E[L]={y(x)t}2p(x,t)dxdt    (1.87) \mathbb{E}[L]=\int\int \{y(\mathbf{x})-t\}^2p(\mathbf{x}, t)\text{d}\mathbf{x}\text{d}t\ \ \ \ (1.87)
我們的目標在於,尋找到一個y(x)y(\mathbf{x}), 使得E[L]\mathbb{E}[L]的值最小。一種常用的方式是採用變分法(變分法的具體內容見附錄D):
δE[L]δy(x)=2{y(xt)}p(x,t)dt=0    (1.88) \frac{\delta \mathbb{E}[L]}{\delta y(\mathbf{x})}=2\int \{y(\mathbf{x}-t)\}p(\mathbf{x}, t)\text{d}t=0\ \ \ \ (1.88)
然後我們利用sum rule和product rule,將y(x)y(\mathbf{x})求解出來:
y(x)=tp(x,t)dtp(x)=tp(tx)dt=Et[tx]    (1.89) y(\mathbf{x})=\frac{\int tp(\mathbf{x}, t)\text{d}t}{p(\mathbf{x})}=\int tp(t|\mathbf{x})\text{d}t=\mathbb{E}_t[t|\mathbf{x}]\ \ \ \ (1.89)
這個結果其實就是,在given x\mathbf{x}的時候,t的均值,也就是所謂的regression function,如下圖所示:
在這裏插入圖片描述
這個結論可以很容易地被推廣到多元目標變量中去:即對於target variables t\mathbf{t}, 它的最優解是條件平均:y(x)=Et[tx]y(\mathbf{x})=\mathbb{E}_t[\mathbf{t}|\mathbf{x}]
對於這個結論,我們還可以不通過變分法來得到,即:
{y(x)t}2={y(x)E[tx]t}2={y(x)E[tx]}2+2{y(x)E[tx])}{E[tx]t}+{E[tx]t}2 \{y(\mathbf{x})-t\}^2=\{y(\mathbf{x})-\mathbb{E}[t|\mathbf{x}]-t\}^2\\ =\{y(\mathbf{x})-\mathbb{E}[t|\mathbf{x}]\}^2+2\{y(\mathbf{x})-\mathbb{E}[t|\mathbf{x}])\}\{\mathbb{E}[t|\mathbf{x}]-t\}+\{\mathbb{E}[t|\mathbf{x}]-t\}^2
我們首先對t進行積分,消去交叉項,然後得到loss function:
E[L]={y(x)E[tx]}2p(x)dx+var[tx]p(x)dx    (1.90) \mathbb{E}[L]=\int \{y(\mathbf{x})-\mathbb{E}[t|\mathbf{x}]\}^2p(\mathbf{x})\text{d}\mathbf{x}+\int \text{var}[t|\mathbf{x}]p(\mathbf{x})\text{d}\mathbf{x}\ \ \ \ (1.90)
由於我們的目的是尋找一個y(x)y(\mathbf{x}), 能夠使得上式值最小,因此我們只需要使第一項最小即可,此時y(x)=E[tx]y(\mathbf{x})=\mathbb{E}[t|\mathbf{x}]。這與我們之前得到的結論相符。
式中的第二項是變量t的方差在x上的均值,它表示的是target data的固有variability,並且可以被視爲noise。而由於這個noise與y(x)y(\mathbf{x})之間是相互獨立的,因此它表示着loss function的irreducible minimum value。

類似於之前給出的三種解決classification問題的方法,這裏給出了三種解決regression問題的方法。

(a):首先通過計算聯合概率分佈p(x,t)p(\mathbf{x}, t)的方式解決inference problem,然後通過歸一化的方式得到條件概率密度p(tx)p(t|\mathbf{x}),最終通過marginalize的方式得到條件均值(1.89)。

(b):首先得到條件概率密度:p(tx)p(t|\mathbf{x}), 然後通過marginalize的方法(1.89)得到條件均值。

(c):從training data中直接得到一個regression function y(x)y(\mathbf{x})

這三種方法的特點與比較,在分類部分已經具體說明過了,因此不贅述。

在很多情況下,squared loss並不是唯一的一種關於regression中loss function的選擇。實際上,在許多實用,squared loss最終會導致十分不好的結果。

我們在此簡要介紹一種被稱爲Minkowski loss的loss函數,它的期望計算如下:
E[Lq]=y(x)tqp(x,t)dxdt    (1.91) \mathbb{E}[L_q]=\int\int|y(\mathbf{x})-t|^qp(\mathbf{x}, t)\text{d}\mathbf{x}\text{d}t\ \ \ \ (1.91)
q=2q=2時,這個式子將歸約到squared loss。並且當q=2q=2時,這個式子取得最小值時的y爲conditional mean;對於q=1q=1, 爲conditional median;對於q0q\to 0, 爲conditional mode。

1.6 Information Theory

在前面的部分中,我們介紹了本書中的基礎理論,即“概率論”和“決策論”。在本節中,我們將對一些補充理論,即“信息論”進行介紹。

我們首先對離散型隨機變量xx進行討論,並且我們探究的問題在於,當我們觀察到一個關於這個變量的特定值的時候,我們能夠接收到的信息有多少?我們把信息量看作是在學習這個變量x上的“驚訝程度”。如果我們得知,一個非常有可能不會發生的事件發生了,那麼相比於那些很可能發生的事件而言,前者蘊含着更多的信息量。並且,對於必然要發生的事件,我們其實什麼信息都接收不到。根據上述分析,我們發現,一個事件的信息含量是與該事件發生的“概率”密切相關。因此,我們自然可以想到,在進行概率的度量時,相應事件x的概率值p(x)p(x)是十分重要的。因此,我們需要尋找一個函數h(x)h(x),使得該函數是關於p(x)p(x)的單調函數,並且有該函數可以對信息含量進行定量描述。

我們注意到,如果有兩個事件x和y,這兩個事件是unrelated,那麼至於觀察這兩個事件的信息增益,其完全等價於這兩個事件分別的信息增益之和,因此我們有h(x,y)=h(x)+h(y)h(x, y)=h(x)+h(y)。並且由於這兩個事件之間是相互獨立的,於是有p(x,y)=p(x)p(y)p(x, y)=p(x)p(y)。根據上述兩個關係,我們可以得知,h(x)h(x)實際上是p(x)p(x)的logarithm。

因此我們有:
h(x)=log2p(x)    (1.92) h(x)=-\text{log}_2p(x)\ \ \ \ (1.92)
其中負號表示,信息是一個非負數。並且我們注意到,第概率的事件對應了高信息含量。此外,這個式子中的log函數底數的選取其實沒有嚴格的要求,在信息論中,我們一般取底數爲2,此時h(x)h(x)的單位被稱爲bits

此時,假設一個sender想要把一個random variable的value傳送給一個receiver,那麼在平均意義上,每一次傳輸的信息量爲:
H[x]=xp(x)log2p(x)    (1.93) H[x]=-\sum_xp(x)\text{log}_2p(x)\ \ \ \ (1.93)
這一個重要的關於隨機變量x的量被稱爲quantity。我們注意到,limp0ln p=0\text{lim}_{p\to 0}\text{ln}\ p=0,因此,當我們遇到p(x)=0p(x)=0的情況時,我們有p(x)ln p(x)=0p(x)\text{ln}\ p(x)=0

之後書上有一個關於對各種狀態編碼的例子,這個例子很簡單,就不再細講。最終說明的結論是,entropy和shortest coding length這兩者是一樣的東西。並且,noiseless coding theorem表明,entropy是傳輸state of random variable的編碼長度的lower bound。

然後,我們通過自然底數來定義entropy,並且這種定義方式也與本書中其他地方的定義相符合。

我們之前是通過表達隨機變量狀態的信息量的平均,作爲對entropy的介紹的。但是事實上,entropy有一個在物理學上,更早的起源。最初它在熱能動力理論中被提出,然後它被用於描述統計力學中的無序性

關於這個角度的理解,我們可以假設我們有N個同樣的物體,我們有一系列的箱子,其中第i個箱子中有nin_i個物體。考慮到把物體分配給箱子的所有可能情況,並且不考慮每一個箱子中物體的順序,因此,對於N個物體,所有的分配情況有:
W=N!ini!    (1.94) W=\frac{N!}{\prod_in_i!}\ \ \ \ (1.94)
我們將其稱爲“多重性”。此時,entropy被定義爲這個多重性的log形式,並通過適當的常數進行scaled:
H=1Nln W=1Nln N!1Niln n1!    (1.95) H=\frac{1}{N}\text{ln}\ W=\frac{1}{N}\text{ln}\ N!-\frac{1}{N}\sum_i\text{ln}\ n_1!\ \ \ \ (1.95)
我們考慮當NN\to\infty的情況,此時分數ni/Nn_i/N就被固定住了,然後我們採用Stirling’s approximation:
ln N!Nln NN    (1.96) \text{ln}\ N!\simeq N\text{ln}\ N-N\ \ \ \ (1.96)
於是我們有:
H=limNi(niN)ln (niN)=ipiln pi    (1.97) H=-\text{lim}_{N\to \infty}\sum_i\left( \frac{n_i}{N} \right)\text{ln}\ \left(\frac{n_i}{N}\right)=-\sum_ip_i\text{ln}\ p_i\ \ \ \ (1.97)
其中,我們利用了等式ini=N\sum_in_i=N並且,有pi=limN(ni/N)p_i=\text{lim}_{N\to\infty}(n_i/N), 它代表一個物體被分到第ii個盒子裏的概率。

我們可以將盒子解釋爲隨機變量X的狀態xix_i,其中有p(X=xi)=pip(X=x_i)=p_i。此時,有隨機變量X的entropy爲:
H[p]=ip(xi)ln p(xi)    (1.98) H[p]=-\sum_ip(x_i)\text{ln}\ p(x_i)\ \ \ \ (1.98)
對於那些在某些點比較高,而大部分點比較低的概率分佈p(xi)p(x_i),其entropy本身也較低。而對於那些概率分佈隨取值比較平均的p(x)p(x),其entropy值也較高。由於0pi10\leq p_i\leq 1的緣故,entropy的值是非負的。當pi=1p_i=1且任何其他的pji=0p_{j\neq i}=0時,該概率分佈的entropy爲0。
我們可以通過最大化歸一化條件的拉格朗日函數的方式:
H~=ip(xi)ln p(xi)+λ(ip(xi)1)    (1.99) \widetilde{H}=-\sum_ip(x_i)\text{ln}\ p(x_i)+\lambda \left( \sum_ip(x_i)-1 \right)\ \ \ \ (1.99)
得到那個能使得entropy最大的離散隨機變量分佈。
於是我們可以得到一個這的分佈列p(xi)p(x_i), 其中它的每一個分量下概率取值是相同的,都是p(xi)=1/Mp(x_i)=1/M, 其中MM是狀態xix_i的總數。這個結論我們也可以通過Jensen’s inequality的方式得到。爲了確認我們得到的駐點就是我們要求的最大值,我們對原函數進行二階偏導運算,並得到:
H~p(xi)p(xj)=Iij1pi    (1.100) \frac{\partial \widetilde{H}}{\partial p(x_i)\partial p(x_j)}=-I_{ij}\frac{1}{p_i}\ \ \ \ (1.100)
其中IijI_{ij}是單位矩陣中的元素。

現在我們來考慮連續型隨機變量的entropy。剛纔我們已經定義好了離散型隨機變量的entropy,我們可以以這個爲基礎,定義連續型隨機變量的entropy。設該隨機變量xx的概率密度函數爲p(x)p(x)。我們仿照剛纔利用箱子裝取值的方法,將x的取值劃分爲一個個間距大小爲\nabla的區域(每一個區域作爲一個箱子),此時由於我們假設p(x)p(x)是連續的,因此我們可以由中值定理知道,對於每一個箱子,其中存在一個xix_i, 使得:
iΔ(i+1)Δp(x)dx=p(xi)Δ    (1.101) \int_{i\Delta}^{(i+1)\Delta}p(x)\text{d}x=p(x_i)\Delta\ \ \ \ (1.101)
我們現在對每一個xx進行量化,當該xx落在第i個箱子中時,那麼我們將xix_i的值賦予這個xx。此時,觀測到xix_i的概率爲p(xi)Δp(x_i)\Delta,此時我們又能得到一個離散型的概率分佈,我們利用之前的方法,可以計算得到相應的entropy爲:
HΔ=ip(xi)Δln (p(xi)Δ)=ip(xi)Δln p(xi)ln Δ    (1.102) H_{\Delta}=-\sum_ip(x_i)\Delta\text{ln}\ (p(x_i)\Delta)=-\sum_ip(x_i)\Delta\text{ln}\ p(x_i)-\text{ln}\ \Delta\ \ \ \ (1.102)
其中我們使用了從式(1.101)中推出的結論ip(xi)Δ=1\sum_ip(x_i)\Delta=1。我們此時忽略這個式子中的第二項ln Δ-\text{ln}\ \Delta, 並在Δ0\Delta\to 0的時候,考慮第一項的極限:
limΔ0{ip(xi)Δln p(xi)}=p(x)ln p(x)dx    (1.103) \lim\limits_{\Delta\to 0}\left\{ \sum_ip(x_i)\Delta\text{ln}\ p(x_i) \right\} =-\int p(x)\text{ln}\ p(x)\text{d}x\ \ \ \ (1.103)
上式右側的式子被稱爲differential entropy。我們可以看到,離散型和連續型變量的entropy之間差了一個量:ln Δ\text{ln}\ \Delta, 這個量在Δ0\Delta\to 0之後會出現離散的情況。這表明,如果表達連續型隨機變量的一個值將會需要大量的bits。對於一個多元隨機向量x\mathbf{x}而言,其differential entropy爲:
H[x]=p(x)ln p(x)dx    (1.104) H[\mathbf{x}]=-\int p(\mathbf{x})\text{ln}\ p(\mathbf{x})\text{d}\mathbf{x}\ \ \ \ (1.104)

同之前離散型隨機變量一樣,此時當我們得到連續型隨機變量的differential entropy之後,我們可以開始考慮什麼樣的隨機變量可以使這個entropy最大,這樣一個問題。

爲了使得這個p(x)p(x)可以得到較好的定義,我們先對它的一階矩和二階矩進行一定的約束,並考慮歸一化條件。

因此,我們在考慮如下三個約束條件的前提下:
p(x)dx=1    (1.105) \int_{-\infty}^\infty p(x)\text{d}x=1\ \ \ \ (1.105)
xp(x)dx=μ    (1.106) \int_{-\infty}^\infty xp(x)\text{d}x=\mu\ \ \ \ (1.106)
(xμ)2p(x)dx=σ2    (1.107) \int_{-\infty}^\infty (x-\mu)^2p(x)\text{d}x=\sigma^2\ \ \ \ (1.107)
對這裏的differential entropy進行最大化。

對於上述的等式約束優化問題,我們可以採用拉格朗日乘子的方法,最大化下面這個關於p(x)p(x)的泛函:
p(x)ln p(x)dx+λ1(p(x)dx1)+λ2(xp(x)dxμ)+λ3((xμ)2p(x)dxσ2) -\int_{-\infty}^\infty p(x)\text{ln}\ p(x)\text{d}x+\lambda_1\left( \int_{-\infty}^\infty p(x)\text{d}x-1 \right)\\ +\lambda_2 \left( \int_{-\infty}^\infty xp(x)\text{d}x-\mu \right)+\lambda_3 \left( \int_{-\infty}^\infty (x-\mu)^2p(x)\text{d}x-\sigma^2 \right)
使用變分法的方法,通過令這個泛函的變分爲0的方式,我們得到如下的式子:
p(x)=exp{1+λ1+λ2x+λ3(xμ)2}    (1.108) p(x)=\text{exp}\{ -1+\lambda_1+\lambda_2x +\lambda_3(x-\mu)^2 \}\ \ \ \ (1.108)
然後我們再通過上述的三個約束條件,將(1.108)式中的未知變量進行代入,最終得到的概率分佈如下:
p(x)=1(2πσ2)1/2exp{(xμ)22σ2}    (1.109) p(x)=\frac{1}{(2\pi \sigma^2)^{1/2}}\text{exp}\left\{ -\frac{(x-\mu)^2}{2\sigma^2} \right\}\ \ \ \ (1.109)
因此,我們得以知道,那個能使得differential entropy最大的概率分佈是Gaussian分佈。

此時,我們得到相應的differential entropy爲:
H[x]=121+ln(2πσ2)    (1.110) H[x]=\frac{1}{2}{1+\text{ln}(2\pi\sigma^2)}\ \ \ \ (1.110)
此時我們可以看到,隨着σ2\sigma^2的增大,這個entropy也在不斷增大。
同時,不像離散型隨機變量的entropy一樣(非負),連續型隨機變量的entropy是可以小於0的(這裏當σ2<1/(2πe)\sigma^2<1/(2\pi e)時)。

假設我們有一個聯合概率分佈p(x,y)p(\mathbf{x}, \mathbf{y}), 從中我們可以得到一個個由x,y\mathbf{x}, \mathbf{y}組成的對。如果我們已經知道了x\mathbf{x}的值,那麼我們獲知y\mathbf{y}的值需要額外的信息ln p(yx)-\text{ln}\ p(\mathbf{y}|\mathbf{x})。因此平均意義上,我們獲取y\mathbf{y}所需要的額外信息爲:
H[yx]=p(y,x)ln p(yx)dydx    (1.111) H[\mathbf{y}|\mathbf{x}]=-\int\int p(\mathbf{y}, \mathbf{x})\text{ln}\ p(\mathbf{y}|\mathbf{x})\text{d}\mathbf{y}\text{d}\mathbf{x}\ \ \ \ (1.111)
這個式子被稱爲conditional entropy。注意,這個entropy其實考慮了所有x\mathbf{x}的取值,對於每一個x\mathbf{x}的取值,得到各類y\mathbf{y}取值下信息增量的平均,然後再在x\mathbf{x}上進行平均。

利用product rule,我們可以輕易得到以下結論:
H[x,y]=H[yx]+H[x]    (1.112) H[\mathbf{x}, \mathbf{y}]=H[\mathbf{y}|\mathbf{x}]+H[\mathbf{x}]\ \ \ \ (1.112)

因此我們可以知道,用於描述x\mathbf{x}y\mathbf{y}的信息,其實就等於x\mathbf{x}單獨的信息,加上在給定x\mathbf{x}時,y\mathbf{y}的信息。

1.6.1 Relative entropy and mutual information

本節將對之前所介紹的關於信息論中的概念,與模式識別進行聯繫。我們考慮到一個未知的概率分佈p(x)p(\mathbf{x}), 並且假設我們通過另外一個概率分佈q(x)q(\mathbf{x})來近似它。如果我們利用q(x)q(\mathbf{x})去對每一個狀態x\mathbf{x}進行編碼,然後從sender將信息傳遞給receiver的話,那麼由於利用概率分佈q(xq(\mathbf{x}(而不是真實的p(x)p(\mathbf{x}))而導致的信息量的增加,可以用以下式子來表達:
KL(pq)=p(x)ln q(x)dx(p(x)ln p(x)dx)=p(x)ln{q(x)p(x)}dx    (1.113) \text{KL}(p||q)=-\int p(\mathbf{x})\text{ln}\ q(\mathbf{x})\text{d}\mathbf{x}-\left( -\int p(\mathbf{x})\text{ln}\ p(\mathbf{x})\text{d}\mathbf{x} \right)\\ =-\int p(\mathbf{x})\text{ln}\left\{ \frac{q(\mathbf{x})}{p(\mathbf{x})} \right\}\text{d}\mathbf{x}\ \ \ \ (1.113)
這就是衆所周知的relative entropy/Kullback-Leibler divergence(KL divergence)。我們需要注意的是,KL divergence並不是對稱的,即KL(pq)KL(qp)\text{KL}(p||q)\neq \text{KL}(q||p)

我們現在來證明KL divergence 是非負數,且有當且僅當p(x)=q(x)p(\mathbf{x})=q(\mathbf{x})的時候,等號成立。爲了證明這些結論,我們首先引出凸函數的定義。如果一個函數被稱爲“凸函數”的話,那麼一定有函數裏的每一個弦要麼在這個函數之上,要麼與函數曲線部分重合,如下圖所示:
在這裏插入圖片描述

a到b區間內的任何一個點可以被寫爲λa+(1λ)b\lambda a+(1-\lambda)b的形式,其中0λ10\leq\lambda\leq 1。弦上的點表示爲λf(a)+(1λ)f(b)\lambda f(a)+(1-\lambda)f(b),相應於函數上的值是f(λa+(1λ)b)f(\lambda a+(1-\lambda)b)。凸性表明,有:
f(λa+(1λ)b)λf(a)+(1λ)f(b)    (1.114) f(\lambda a+(1-\lambda)b)\leq \lambda f(a)+(1-\lambda)f(b)\ \ \ \ (1.114)
如果一個凸函數只有當λ=0\lambda=0λ=1\lambda=1的時候,纔有上面的這個等式成立,那麼這樣的凸函數被稱爲“嚴格的凸函數”。

如果一個函數具有相反的性質,即每一條弦都與這個函數部分重合,或在這個函數之下,那麼這樣的函數被稱爲凹函數。並且如果一個函數f(x)f(x)是凸函數的話,那麼它的相反數f(x)-f(x)被稱爲凹函數。

利用歸納法的技巧,我們可以證明,凸函數f(x)f(x)滿足以下不等式:
f(i=1Mλixi)i=1Mλif(xi)    (1.115) f\left( \sum_{i=1}^M\lambda_ix_i \right) \leq \sum_{i=1}^M\lambda_if(x_i)\ \ \ \ (1.115)
其中對於任意一組點{xi}\{x_i\}λi0,iλi=1\lambda_i\geq 0, \sum_i\lambda_i=1

式(1.115)被稱爲Jensen’s inequality。如果我們假設λi\lambda_i爲離散型隨機變量xx(取值爲{xi}\{x_i\})的概率分佈的話,此時(1.115)式可以被寫爲:
f(E[x])E[f(x)]    (1.116) f(\mathbb{E}[x])\leq \mathbb{E}[f(x)]\ \ \ \ (1.116)

對於連續型隨機變量,有
f(xp(x)dx)f(x)p(x)dx    (1.117) f\left( \int\mathbf{x}p(\mathbf{x})\text{d}\mathbf{x} \right) \leq \int f(\mathbf{x})p(\mathbf{x})\text{d}\mathbf{x}\ \ \ \ (1.117)

我們將Jensen’s inequality 應用在KL divergence上,有:
KL(pq)=p(x)ln{q(x)p(x)}dxlnq(x)dx=0    (1.118) \text{KL}(p||q)=-\int p(\mathbf{x})\text{ln}\left\{ \frac{q(\mathbf{x})}{p(\mathbf{x})} \right\}\text{d}\mathbf{x} \geq -\text{ln}\int q(\mathbf{x})\text{d}\mathbf{x}=0\ \ \ \ (1.118)
其中,我們利用了條件:ln x-\text{ln}\ x是一個嚴格的凸函數,因此,我們知道當且僅當q(x)=p(x)q(\mathbf{x})=p(\mathbf{x})時,這個等式才能滿足。因此我們可以利用KL divergence來度量兩個概率分佈之間的不相似程度。

我們可以從數據壓縮和密度估計的角度來對這裏的一些性質進行分析。因爲最有效的數據壓縮方法是利用該數據真實的分佈進行編碼,因此我們利用任何其他的分佈,對該數據進行編碼的時候,都會遇到冗餘的問題,此時我們編碼的平均碼長必然是大於或等於利用該數據本身進行編碼的。因此,就自然有KL divergence是大於等於0的。

假設真實的數據來源於一個未知的概率分佈p(x)p(\mathbf{x}), 我們希望利用q(xθ)q(\mathbf{x}|\theta)來對這個概率分佈進行近似。這個q概率分佈函數是一個已知的函數(例如多元高斯分佈),它受到了可調參數θ\mathbf{\theta}的影響。一種確定參數θ\theta的方式是通過調節θ\theta最小化p(x)p(\mathbf{x})q(xθ)q(\mathbf{x}|\theta)之間的KL divergence。而由於我們一般並不知道p(x)p(\mathbf{x})本身的緣故,我們無法直接對這個KL divergence進行計算。但是,由於我們的training set中的data points xn,n=1,...,N\mathbf{x}_n, n=1,...,N是從p(x)p(\mathbf{x})中採樣出來的點,因此我們可以通過下式來估計KL divergence:
KL(pq)n=1N{ln q(xnθ)+ln p(xn)}    (1.119) \text{KL}(p||q)\simeq \sum_{n=1}^N\{-\text{ln}\ q(\mathbf{x}_n|\theta)+\text{ln}\ p(\mathbf{x}_n)\}\ \ \ \ (1.119)
在這個式子中,第二部分與θ\theta無關,第一部分是關於θ\theta在training set下的負對數似然函數。因此,此時最小化KL divergence等價於最大化似然函數。

我們最後來討論一下p(x,y)p(\mathbf{x}, \mathbf{y})p(x)p(y)p(\mathbf{x})p(\mathbf{y})之間的KL divergence,我們用這樣一種度量方式,來衡量兩個隨機變量距離它們之間相互獨立,還有多遠:
I[x,y]KL(p(x,y)p(x)p(y))=p(x,y)ln (p(x)p(y)p(x,y))dxdy    (1.120) I[\mathbf{x}, \mathbf{y}]\equiv \text{KL}(p(\mathbf{x}, \mathbf{y})||p(\mathbf{x})p(\mathbf{y}))\\ =-\int\int p(\mathbf{x},\mathbf{y})\text{ln}\ \left( \frac{p(\mathbf{x})p(\mathbf{y})}{p(\mathbf{x},\mathbf{y})} \right)\text{d}\mathbf{x}\text{d}\mathbf{y}\ \ \ \ (1.120)
上式被稱爲變量x\mathbf{x}y\mathbf{y}之間的“互信息”。從KL divergence的性質中,我們可以得知,I(x,y)0I(\mathbf{x},\mathbf{y})\geq 0,等號成立的條件爲,x\mathbf{x}y\mathbf{y}之間相互獨立。

再利用sum rule 和 product rule, 我們可以得到互信息與條件熵之間的關係:
I[x,y]=H[x]H[xy]=H[y]H[yx]    (1.121) I[\mathbf{x},\mathbf{y}]=H[\mathbf{x}]-H[\mathbf{x}|\mathbf{y}]=H[\mathbf{y}]-H[\mathbf{y}|\mathbf{x}]\ \ \ \ (1.121)

因此,我們可以將互信息看作是在知道y\mathbf{y}之後,關於x\mathbf{x}信息的uncertainty的減少量(反之亦然)。從貝葉斯的觀點來看,我們可以將p(x)p(\mathbf{x})看作x\mathbf{x}的先驗,並且將p(xy)p(\mathbf{x}|\mathbf{y})看作我們觀察新數據y\mathbf{y}之後的後驗。因此互信息表示我們在觀察到新的y\mathbf{y}之後,對x\mathbf{x}的不確定程度的減少量。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章