PRML 基礎知識

faranten發表於2022-02-10

本文地址:https://www.cnblogs.com/faranten/p/15880295.html
轉載請註明作者與出處

1 一個經典例子

​ ​ ​ 一個經典的例子就是Polynomial Curve Fitting問題,現在將以此為基礎介紹一些基本概念和方法。該問題的主要思路是針對給定的訓練集\(\mathbf{x}\equiv(x_1,x_2,\cdots,x_N)^T\)\(\mathbf{t}\equiv(t_1,t_2,\cdots,t_N)^T\),選取適當的模型(在這個問題中是多項式模型)和適當的引數集\(\mathbf{w}=(w_0,x_1,\cdots,w_M)^T\)使得與擬合結果

\[y(x,\mathbf{w})=w_0+w_1x+w_2x^2+\cdots+w_Mx^M=\sum_{j=0}^Mw_jx^j \]

相應的誤差函式(error function)

\[E(\mathbf{w})=\frac12\sum_{n=1}^N\{y(x_n,\mathbf{w})-t_n\}^2 \]

最小,這樣的引數集\(\mathbf{w}\)可能就是符合題意的答案。下面指出該思路可能會出現的問題並給出解決辦法。

​ ​ ​ 當引數集\(\mathbf{w}\)中的引數數量\(M\)過少的時候,通常來說得到的結果擬合程度不足,這時應該適當增加引數數量。然而當引數數量過多的時候,可能會出現擬合過度的情況,即對給定的資料集,模型和引數擬合的很好,但是不能對新的自變數\(x\)給出合適的因變數估計,這種情況稱為過擬合(over-fitting),過擬合出現的原因是對資料集中的噪聲進行了過度的重視,導致擬合結果會傾向於將噪聲納也入模型中。出現這種的情況的時候,應該適當減少引數的數量。

​ 評價擬合的合理性的時候,我們仍然使用誤差函式,其中的引數集取為已確定的\(\mathbf{w^*}\),即

\[E(\mathbf{w^*})=\frac12\sum_{n=1}^N\{y(x_n,\mathbf{w^*})-t_n\}^2 \]

但是此時的表示式的值與訓練集中的\(N\)有關,為了直觀比較不同\(N\)的誤差函式,現定義根均方誤差(RMS)如下

\[E_{RMS}=\sqrt{\frac{2E(\mathbf{w^*})}{N}} \]

這是某種意義上的單位化。

​ 雖然現在我們有了基本方法比較不同擬合程度的優劣,但是對於過擬合的情況,仍然沒有量化的方法直接指出應該選擇什麼規模的引數集。一般來說,引數集規模越大,擬合函式的階數(order)就會越高,則越有可能出現過擬合的情況,因此使用正則化(regularization)方法在誤差函式上增加一項懲罰項(penalty term),得到

\[\tilde{E}(\mathbf{w})=\frac12\sum_{n=1}^N\{y(x_n,\mathbf{w})-t_n\}^2+\frac{\lambda}{2}||\mathbf{w}||^2 \]

其中\(\lambda\)決定了懲罰項的重要程度,稱為正則化引數(regularization coefficient),在求解的時候應選擇合適的\(\lambda\)的值。這種方法在統計學中被稱為收縮(shrinkage)方法。二次正則項的一個特殊情況稱為山脊迴歸(ridge regression)。在神經網路中,這種方法又被稱為權值衰減(weight decay)

2 概率論

2.1 概率論基礎知識

​ 概率論基礎知識已經學過,此處不再贅述。

2.2 貝葉斯觀點

​ 通常的概率觀點基於重複事件的頻率,認為概率及其模型是真實存在的,而事件本身是隨機的,這稱為概率的經典解釋或頻率解釋(classical or frequentist interpretation of probability)。然而概率還有一種貝葉斯解釋(Bayesian interpretation of probability),該觀點基於不斷的觀測和修正,認為真實出現的事件是一種確定的存在,而模型和引數是不確定的隨機變數,應隨著樣本的增加不斷修正先驗的概率分佈。

​ 對於Polynomial Curve Fitting問題來說,我們不妨認為模型是真實存在且確定的,我們需要做的就是根據訓練集給出合適的引數集從而解決問題,這是頻率主義的思路。但是我們也可以通過同一問題的不同規模的資料集來逐步修正我們的引數集、甚至可以隨著資料集規模的增加而否定已經選擇的模型,這是貝葉斯主義的思路。

​ 貝葉斯方法的理論基礎是貝葉斯定理(Bayes' theorem),下面以Polynomial Curve Fitting問題為例說明貝葉斯定理更一般的含義

\[p(\mathbf{w}|D)=\frac{p(D|\mathbf{w})p(\mathbf{w})}{p(D)} \]

我們的猜想用\(\mathbf{w}\)表示,也就是說,每次計算完成之後都可能會修正\(\mathbf{w}\),至於是否修正\(\mathbf{w}\)取決於\(p(\mathbf{w}|D)\)的值。\(D\)用來表示新的觀測值(在Polynomial Curve Fitting問題中可認為是新的資料集)。因此\(p(\mathbf{w}|D)\)的意義是在新觀測值(新資料集)下猜想\(\mathbf{w}\)仍然正確的概率,\(p(D|\mathbf{w})\)的意義是已知猜想\(\mathbf{w}\)正確的前提下可以表示(匯出)新觀測值(新資料集)的概率。通過此式可以評估猜想\(\mathbf{w}\)是否隨著觀測量(資料集)的變化仍然具有較高的合理性。如果仍然具有較高的合理性,那麼就是說在新觀測值(新資料集)下猜想\(\mathbf{w}\)正確的概率較大;如果不具有較高的合理性,那麼就是說在新觀測值(新資料集)下猜想\(\mathbf{w}\)正確的概率較小。

​ 在上述貝葉斯定理中,每個名詞都有約定俗稱的名稱。\(p(\mathbf{w})\)稱為\(\mathbf{w}\)先驗概率(prior)或邊緣概率,之所以稱為“先驗”是因為它不考慮任何\(D\)方面的因素,也就是某個猜想的初始概率,在一些問題中我們提出一些備選猜想,不妨設它們的初始概率相同;\(p(\mathbf{w}|D)\)是已知\(D\)發生之後的條件概率,也由於得自\(D\)的取值而被稱為\(\mathbf{w}\)後驗概率(posterior),後驗概率是經過新的資料集\(D\)訓練之後猜想\(\mathbf{w}\)正確的概率、是經過學習的結果,可以用來指導決策;\(p(D|\mathbf{w})\)\(\mathbf{w}\)成立時\(D\)的概率,也就是假設猜想\(\mathbf{w}\)正確從而得到\(D\)的概率,可稱為相似度(likelihood)或類條件概率密度\(p(D)\)\(D\)的先驗概率或邊緣概率,也稱作標準化常量,其含義是任何猜想都未知或不確定時的\(D\)的概率。那麼貝葉斯公式可以表示為

\[\text{後驗概率}=\frac{\text{相似度}\times\text{先驗概率}}{\text{標準化常量}} \]

那麼就有如下的匯出關係

\[\text{後驗概率}\varpropto\text{相似度}\times\text{先驗概率}\\ (\text{posterior}\varpropto\text{likelihood}\times\text{prior}) \]

​ 在頻率主義和貝葉斯主義中,都有一個概念叫做似然函式(likelihood function),它描述了在一次試驗中取某一觀測情況的概率。由於似然函式可以用來評價不同猜想(引數集)下取某一事件的概率,故往往和某一猜想(引數集)結合使用。根據這樣的觀點,似然函式就是\(p(D|\mathbf{w})\)。如果對任意可能的觀測情況,似然函式都能取到最大值,那麼此時的猜想(引數集)顯然是合理的,這就是極大似然(maximum likelihood)方法的原理。在頻率主義中,\(\mathbf{w}\)被認為是固定的引數,它的值通過某種形式的估計(比如說通過極大似然方法確定的極大似然估計)來確定,並且這個估計的誤差通過可能的資料集\(D\)來得到(比如說極大似然估計的誤差函式可取廣義距離的平方和);而在貝葉斯主義中,只有一個資料集\(D\)(即實際觀測的資料集),認為\(\mathbf{w}\)服從某種形式的概率分佈,故其不確定性通過\(\mathbf{w}\)的概率分佈來表達。

​ 關於極大似然方法的基礎知識已經在概率論課程中已經學過,此處不再詳細介紹。

​ 本專題將主要基於貝葉斯主義的方法,並在必要的時候介紹一些頻率主義的方法。

2.3 再論經典例子

​ 之前我們解決Polynomial Curve Fitting問題的時候採用的是曲線直接擬合的思路,現在從概率角度再次思考這個問題。現在我們有一系列假設(一系列引數集\(\{\mathbf{w_1},\mathbf{w_2},\mathbf{w_3},\cdots\}\))並選擇一個引數集\(\mathbf{w}\)作為暫時的假設,當給定某一個新的輸入\(x_0\)的時候,真實的輸出\(t\)暫時是未知的,但根據已有假設我們可以得到一個預測量\(t_0=y(x_0,\mathbf{w})\)。不妨認為輸出是一個隨機變數,直觀來看,如果假設是合理的,那麼\(t=t_0\)的概率就應該較大。現認為輸出符合正態分佈(或高斯分佈,Gaussian distribution)且這個預測值\(t_0\)就是該正態分佈的期望,隨著輸入的變化,輸出可能會對應不同的正態分佈。設輸入為\(x\),則輸出\(t\)的概率滿足

\[p(t|x,\mathbf{w},\beta)=N(t|y(x,\mathbf{w}),\beta^{-1}) \]

此式的含義為:在假設\(\mathbf{w}\)正確並選擇引數\(\beta\)的前提下輸入\(x\),得到的值\(t\)恰好為模型的預測值\(y(x,\mathbf{w})\)的概率滿足引數\(\beta^{-1}\)的條件下的正態分佈。也就是說,在假設\(\mathbf{w}\)正確並選擇引數\(\beta\)的前提下輸入\(x\),輸出的\(t\)的概率表示式為

\[P(t)= \frac{1}{\sqrt{2\pi}{\sqrt{\beta^{-1}}}}\text{exp}\{-\frac{(t-y(x,\mathbf{w}))^2}{2\beta^{-1}}\} \]

對於給定訓練集而言,有\(N\)個資料點可供使用,因此可設極大似然函式為

\[p(\mathbf{t}|\mathbf{x},\mathbf{w},\beta)=\prod_{n=1}^NN(t_n|y(x_n,\mathbf{w}),\beta^{-1}) \]

對數處理可得

\[\ln p(\mathbf{t}|\mathbf{x},\mathbf{w},\beta)= -\frac\beta2\sum_{n=1}^N\{y(x_n,\mathbf{w})-t_n\}^2+\frac{N}{2}\ln\beta-\frac{N}{2}\ln(2\pi) \]

一般來說,先通過某些方法得到\(\mathbf{w_{ML}}\)(比如說從一系列的候選\(\mathbf{w}\)中選出一個\(\mathbf{w_{ML}}\)),然後上式便只剩下了一項待估計的\(\beta\),使其求導式等於零,解得

\[\frac{1}{\beta_{ML}}=\frac{1}{N}\sum_{n=1}^N\{y(x_n,\mathbf{w_{ML}})-t_n\}^2 \]

現在,得到了模型

\[p(t|x,\mathbf{w_{ML}},\beta_{ML})=N(t|y(x,\mathbf{w_{ML}}),\beta_{ML}^{-1}) \]

便可以對輸入的\(x\)進行估計了。

​ 下面介紹超引數(hyperparameter)的概念,以正態分佈為例,假設輸入為\(\mathbf{w}\),那麼式

\[p(\mathbf{w}|\alpha)=N(\mathbf{w}|0,\alpha^{-1}I)=(\frac{\alpha}{2\pi})^{(M+1)/2}\text{exp}\{-\frac{\alpha}{2}\mathbf{w}^T\mathbf{w}\} \]

給出了在超引數\(\alpha\)的條件下,隨機變數\(\mathbf{w}\)(是一個向量)的概率表示式(該式也可以通過向量\(\mathbf{w}\)中每一項的正態分佈相乘得到),其中\(M+1\)\(\mathbf{w}\)中元素的個數。之前討論的引數屬於模型引數,其值在訓練中得到並優化,是資料驅動的。而超引數是決定模型本身性質的引數,是人為設定的,不是資料驅動的。超引數可以分為許多類別,通常來說重要性不同,共同影響模型的效能。常說的“調參”指的就是調整某一確定模型中的超引數使該模型的表現得到優化。

​ 之前在說明“貝葉斯公式更一般的含義”的時候,其實已經給出了引數集\(\mathbf{w}\)的修正方法:不斷迭代計算,看計算得到的後驗概率值是否始終維持在一個較高水平,如果是則說明引數集\(\mathbf{w}\)的正確性較高;如果不是則說明引數集\(\mathbf{w}\)的正確性較低,需對引數集進行修正,通常來說是在所有備選的引數集\(\{\mathbf{w_1},\mathbf{w_2},\mathbf{w_3},\cdots\}\)中選擇一個新的引數集。當引入超引數之後,貝葉斯公式的匯出關係就可以表示為

\[p(\mathbf{w}|\mathbf{x},\mathbf{t},\alpha,\beta)\varpropto p(\mathbf{t}|\mathbf{x},\mathbf{w},\beta)p(\mathbf{w}|\alpha) \]

該式說明,在新的訓練集\(\mathbf{x}\)\(\mathbf{t}\)的條件下引數集\(\mathbf{w}\)仍然正確的概率與右側二者的乘積成正比。所以現在只需要選擇合適的引數集\(\mathbf{w}\)(超引數在此之前已經確定),使該關係式左側的(後驗概率)表示式的值取到最大值,該方法稱為後驗概率最大化(maximum posterior or MAP)。根據對數方法取負對數法,欲求後驗概率\(p(\mathbf{w}|\mathbf{x},\mathbf{t},\alpha,\beta)\)的最大值,即在下式中

\[\frac{\beta}{2}\sum_{n=1}^{N}\{y(x_n,\mathbf{w})-t_n\}^2+\frac{\alpha}{2}\mathbf{w}^T\mathbf{w} \]

選擇合適的\(\mathbf{w}\)使其取得最小值。補充一句,求該式的最小值就是在\(\tilde{E}(\mathbf{w})\)中令\(\lambda=\frac{\alpha}{\beta}\)並求其最小值,因此知道最大化後驗概率等價於最小化正則化的平方和誤差函式。

​ 在後續的內容中,我們將會介紹如何確定引數\(\alpha\)\(\beta\),假設現在已經確定了這兩個引數,那麼我們來預測當輸入為\(x\)的時候,輸出值的具體情況。設給定的訓練集為\(\mathbf{x}\)\(\mathbf{t}\),設新的輸入為\(x\)、新的輸出為\(t\)。如之前所述,此處的輸出\(t\)可以視為一個隨機變數,故目標就是給出預測分佈\(p(t|x,\mathbf{x},\mathbf{t})\),由於我們有一系列假設\(\{\mathbf{w_1},\mathbf{w_2},\mathbf{w_3},\cdots\}\),所以用全概率公式得到

\[p(t|x,\mathbf{x},\mathbf{t})=\int p(t|x,\mathbf{w})p(\mathbf{w}|\mathbf{x},\mathbf{t})d\mathbf{w} \]

其中,\(p(t|x,\mathbf{w})\)​​就是之前提到的\(p(t|x,\mathbf{w},\beta)\)​​,其中引數\(\beta\)​​已經確定。從後面關於迴歸模型的敘述可以知道,這種曲線擬合問題的後驗分佈的形式是正態分佈,即

\[p(t|x,\mathbf{x},\mathbf{t})=N(t|m,s^2) \]

均值和方差分別為

\[\begin{aligned} m&=\beta\phi(x)^TS\sum_{n=1}^N\phi(x_n)t_n\\ s^2&=\beta^{-1}+\phi(x)^TS\phi(x) \end{aligned} \]

這表示預測分佈的均值和方差依賴於\(x\),其中,矩陣\(S\)由下式給出

\[S^{-1}=\alpha I+\beta\sum_{n=1}^N\phi(x_n)\phi(x)^T \]

其中,矩陣\(I\)為單位矩陣,向量\(\phi(x)\)中的元素被定義為\(\phi_i(x)=x^i~(i=0,1,\cdots,M)\)\(M\)為引數集\(\mathbf{w}\)中的元素個數,也就是擬合函式的階數。\(N\)為訓練集中資料點的數量,\(x_n\)\(t_n\)為訓練集\(\mathbf{x}\)\(\mathbf{t}\)的第\(n\)個資料點。

3 模型選擇

​ 在向模型輸入訓練集之前,往往需要先確定一些模型中的引數,比如\(\tilde{E}(\mathbf{w})\)中的超引數\(\lambda\)。通常來說,模型中的引數有一定的候選範圍,我們可以從中選取一些值構成一些候選模型,本小節將討論模型的選擇。

​ 如果資料集是足夠大的,則將資料集分為三部分:訓練集(train set)驗證集(validation set)測試集(test set),先選定一個引數\(\lambda\)並使用訓練集來求出模型,然後用驗證集對得到的模型進行測試,從而確定選擇的\(\lambda\)是否合適。另外,如果模型經過多次有限資料集的迭代,可能會出現過擬合的情況(原因是經歷了大量噪聲的影響),此時應使用測試集對模型進行最終的估計。一個典型的劃分是訓練集佔總資料集的50%,而其餘兩者各佔25%,三部分都是從資料集中隨機抽取。

​ 如果資料集是相對有限的,為了得到儘可能準確的模型,我們將盡可能多的資料用作訓練集,此時在評估模型的優劣時,使用S折交叉驗證法(S-fold cross-validation),其思路是:將整個資料集分為\(S\)份,輪流選擇其中的\(S-1\)份來訓練模型,剩下的用作驗證,如此迴圈直到資料集所有劃分為\(S\)份的情況被窮盡。特別地,如果\(S=N\),稱為留一法(leave-one-out)

​ 但是我們必須在此指出交叉驗證的兩個重要缺點。其一是,訓練次數可能會比較大、尤其是S折交叉驗證的訓練次數會隨著\(S\)的選取而變得異常大,從而導致計算效能上的巨大問題。其二是,對於一個模型可能有多個超引數,而每個超引數又可能有一些候選值,因此可能的模型數量是非常多的(不同超引數之間的組合),所以如果能忽略模型中的超引數將會大大減少候選模型的數量,但是忽略超引數往往會導致過擬合的問題,所以現在只要找出一種新的模型評估度量,既與超引數無關、又不會受到過擬合的影響,也就是說這個新的模型評估度量的唯一變數僅為訓練集,就能解決第二個缺點。

4 維數災難

維數災難(Curse of Dimensionality)往往發生在分類問題中。描述一個資料點可能需要多個變數、也就是維數。在分類問題中,我們常常先將資料空間分成若干個小空間,再根據訓練集確定每個小空間的性質,此時向其中放入待分類量,通過觀察其處於哪個小空間便可以對待分類量進行分類。但問題是,隨著維數的增加,小空間的數量可能會變得非常多(可能以幾何級數增長),這就是維數災難的直觀表現。

​ 當然,維數災難不僅僅發生在分類問題中,事實上,只要輸入變數不止一個(即,是一個向量),就可能出現維數災難。以polynomial curve fitting問題為例,如果輸入是一個\(D\)維向量且限制自變數交叉乘積的個數至多為\(3\),那麼擬合模型在形式上為

\[y(\mathbf{x},\mathbf{w})=w_0+\sum_{i=1}^Dw_ix_i+\sum_{i=1}^D\sum_{j=1}^Dw_{ij}x_ix_j+\sum_{i=1}^D\sum_{j=1}^D\sum_{k=1}^Dw_{ijk}x_ix_jx_k \]

注意到這裡仍限制了自變數交叉乘積的個數,如果不加任何限制,則需要窮盡所有自變數交叉乘積的可能性,這會導致係數數量隨著維數的增加而急劇增加。

5 決策論

​ 下面討論一個重要的概念:決策論(Decision Theory)。在迴歸問題中,當輸入一個\(\mathbf{x}\)的時候,我們希望得到一個預測的輸出\(\mathbf{t}\);在分類問題中,當輸入一個\(\mathbf{x}\)的時候,我們希望將該資料點進行分類、使其歸入到某個類別中。上面的思路是一種“輸入——輸出”的思路,將變數自然地分為地位不對等的兩部分,如果將所有變數視為地位相等的一個整體,那麼它們的聯合分佈\(p(\mathbf{x},\mathbf{t})\)就反映了這個模型的所有資訊,包括各變數的邊緣分佈與條件分佈、各變數之間的相關性等。

5.1 決策論與分類問題

​ 下面以分類問題為例介紹決策論的基本知識。分類問題的目標是針對輸入變數\(\mathbf{x}\)對結果進行分類,假設所有分類為\(\{C_1,C_2,\cdots,C_k\}\),一個樸素的想法是針對輸入\(\mathbf{x}\)選擇概率最大的分類,也就是在\(p(C_n|\mathbf{x})~(n=1,2,\cdots,k)\)中選擇值最大的,注意到

\[p(C_n|\mathbf{x})=\frac{p(\mathbf{x}|C_n)p(C_n)}{p(\mathbf{x})} \]

並且

\[p(\mathbf{x})=\sum_{n=1}^kp(\mathbf{x}|C_n)p(C_n) \]

這是決策論的基本理論依據。

​ 在實際應用中,劃分分類往往是一個重要的問題。如果一個劃分能使犯錯誤的概率最小,那麼這個劃分自然是一個比較合理的劃分。這裡的“犯錯誤”具體指的是:一個本應該被放入\(A\)分類的資料點被放入\(B\)分類。對於二分類情況而言,犯錯誤概率為

\[\begin{aligned} p(\text{mistake})&=p(\mathbf{x}\in R_1,C_2)+p(\mathbf{x}\in R_2,C_1)\\ &=\int_{R_1}p(\mathbf{x},C_2)d\mathbf{x}+\int_{R_2}p(\mathbf{x},C_1)d\mathbf{x} \end{aligned} \]

其中\(R_k\)表示決策區域(decision region),其含義是:當資料點落入\(R_k\)的時候,資料點的分類結果應該為\(C_k\)。決策區域的邊界稱為決策邊界(decision boundary)或者決策面(decision surface)。現在考慮如何讓犯錯誤的概率最小化。因為總的積分割槽域實際上是不變的,只是在不同的分割槽(決策區域)上對不同的被積函式進行積分,所以當被積函式儘可能小的時候,犯錯誤的概率會盡可能小。由於\(p(\mathbf{x},C_k)=p(C_k|\mathbf{x})p(\mathbf{x})\),其中\(p(\mathbf{x})\)是與分類無關的量,所以只要將每個\(x\)放入後驗概率\(p(C_k|\mathbf{x})\)最大的類別中,那麼積分值(犯錯誤的概率)自然就是最小的(因為此時被積函式“除去”了最大後驗概率的分類,即對應被積函式最小)。現在的任務只剩下了確定決策區域。決策區域應當這樣確定:使得對一個新輸入\(\mathbf{x}\)而言,犯錯誤的概率最小,那麼就是讓\(\mathbf{x}\)對應的資料點落入此時後驗概率最大的類別,也就是找到最大的\(p(C_k|\mathbf{x})\)。以二分類為例

1.2

圖中\(\hat{x}\)為決策邊界,通過分析\(p(\text{mistake})\)可以知道,僅在\(\hat{x}=x_0\)時,\(p(\text{mistake})\)取最小值,下面說說為什麼是這樣。首先明確,圖中三色部分的面積表示了整體的\(p(\text{mistake})\),具體來說,藍色部分表示“本屬於\(R_1\)被分到\(R_2\)”,紅色和綠色部分之和表示“本屬於\(R_2\)被分到\(R_1\)”,適當移動\(\hat{x}\)時,藍色和綠色部分之和保持不變,而當\(\hat{x}=x_0\)時,紅色部分面積為零,即\(p(\text{mistake})\)取最小值。

​ 對於\(K\)分類問題,如果\(K\)十分大,那麼在計算上最大化正確概率會比最小化錯誤概率簡單

\[\begin{aligned} p(\text{correct})&=\sum_{k=1}^Kp(\mathbf{x}\in R_k,C_k)\\ &=\sum_{k=1}^K\int_{R_k}p(\mathbf{x},C_k)d\mathbf{x} \end{aligned} \]

​ 在分類問題中,每種錯誤的嚴重程度可能是不盡相同的,不妨用矩陣形式來表示不同錯誤的嚴重程度

\[\begin{bmatrix} L_{11} & L_{12} & \cdots\\ L_{21} & L_{22} & \cdots\\ \vdots & \vdots & \end{bmatrix} \]

其中元素\(L_{kj}\)表示:輸入\(\mathbf{x}\)的真實類別是\(C_k\)、但將其放入\(C_j\)的懲罰程度,數值越大越嚴重。這個矩陣稱為損失矩陣(loss matrix)。那麼就可以用損失函式(loss function)或稱代價函式(cost function)來量化地表示整個模型出錯的嚴重程度,一般而言數值越大則模型越糟糕。當然,另一種思路是用一個函式、稱為效用函式(utility function),來量化地表示整個模型工作良好的程度,數值越大則模型越優秀。本專題採用損失函式的思路,即優化模型的時候只需要最小化整體平均損失

\[E(L)=\sum_k\sum_j\int_{R_j}L_{kj}p(\mathbf{x},C_k)d\mathbf{x} \]

此式描述了模型的整體平均損失,對於某個具體的輸入\(\mathbf{x}\),將其分類的可能性有\(N\)種、即\(\{C_1,C_2,\cdots,C_N\}\),放入每一類都可能犯錯誤,考慮到\(p(\mathbf{x},C_k)=p(C_k|\mathbf{x})p(\mathbf{x})\),其中\(p(\mathbf{x})\)是共同因子,故用損失函式的思路來看,犯錯誤的嚴重程度可以依次用\(\{\sum_kL_{k1}p(C_k|\mathbf{x}),\sum_kL_{k2}p(C_k|\mathbf{x}),\cdots,\sum_kL_{kN}p(C_k|\mathbf{x}),\}\)來表示,在其中選擇值最小的就可以作為輸入\(\mathbf{x}\)的分類結果。

​ 到目前為止我們討論的是非此即彼的分類情況,但是在實際應用中,可能有一些摸稜兩可的情況,模型不能對其進行有效分類,摸稜兩可的資料點所在的區域稱為拒絕域(reject region),這種避免做出決策的做法稱為拒絕選項(reject option),下圖是一個典型的例子

1.2

​ 分類問題嚴格來說應分為兩個階段:推斷(inference)階段決策(decision)階段。在推斷階段我們使用訓練集訓練模型,得到一系列的後驗概率\(p(C_k|\mathbf{x})\),並在決策階段使用這些後驗概率來對新的輸入進行最優的分類。另一種方法是對一個函式進行學習,這時得到的這個函式可以將輸入直接對映為決策結果。

​ 下面介紹分類問題的三種基本思路。

​ (a)生成式模型(generative model)方法:在此方法中,一般來說有多少個分類就會有多少個模型,對每個可能的分類\(C_k\)使用訓練集確定出一系列的先驗的\(p(\mathbf{x}|C_k)\)(即類條件概率密度),並在輸入新的\(\mathbf{x}\)時計算一系列後驗概率\(\{p(C_1|\mathbf{x}),(C_2|\mathbf{x}),\cdots,p(C_k|\mathbf{x})\}\),計算公式為

\[\begin{aligned} p(C_k|\mathbf{x})&=\frac{p(\mathbf{x}|C_k)p(C_k)}{p(\mathbf{x})}\\ &=\frac{p(\mathbf{x}|C_k)p(C_k)}{\sum_kp(\mathbf{x}|C_k)p(C_k)} \end{aligned} \]

在決策時並從中選擇最大的作為分類結果。當然,如果已知各個聯合分佈\(p(\mathbf{x},C_k)\),也可以通過數學方法得到上述條件概率。

​ (b)判別式模型(discriminative model)方法:在此方法中,首先根據訓練集確定出決策邊界,並在決策時直接根據決策邊界得到決策結果。

​ (c)判別函式(discriminant function)方法:此方法與概率無關,找到一個函式\(f(\mathbf{x})\),該函式直接把輸入\(\mathbf{x}\)對映為決策結果。

​ 上述三種基本方法各有優劣。第一種方法當\(\mathbf{x}\)的維數較高時,需要較多的資料點才能合理確定出一系列的類條件概率密度\(p(\mathbf{x}|C_k)\),但是\(p(C_k)\)可以簡單地根據訓練集中各類別所佔比例來得到,此種方法的一個優點在於得到了資料的邊緣概率密度\(p(\mathbf{x})\),通過這個邊緣概率密度可以看出訓練集中哪一部分的資料點較少,從而當預測該部分的資料點時採取一些其他方法保證預測的有效性。這種手段稱為離群點檢測(outlier detection)或者異常檢測(novelty detection)。當然,如果只想進行分類決策,則沒必要計算概率分佈,直接使用第二種方法更簡便。第三種方法在形式上最為簡便,但可能帶來諸多問題,包括Minimizing risk、Reject option、Compensating for class priors、Combining models等(詳見PRML一書)。

5.2 決策論與迴歸問題

​ 上面已經對決策論在分類問題上的應用進行了較為詳細的討論,下面將對決策論在迴歸問題上的應用進行討論。分類問題是離散型的,而回歸問題是連續型的,因此不能繼續使用損失矩陣來衡量不同錯誤的嚴重程度,現引入一個連續的函式\(L(t,y(\mathbf{x}))\),其含義是:輸入\(\mathbf{x}\)得到對\(t\)的估計為\(y(\mathbf{x})\),這樣做的平均損失(或者直觀來說就是出錯之後的嚴重程度)為\(L(t,y(\mathbf{x}))\),那麼平均損失就是

\[E(L)=\iint L(t,y(\mathbf{x}))p(\mathbf{x},t)d\mathbf{x}dt \]

迴歸問題中常設平方損失函式(squared loss),定義為\(L(t,y(\mathbf{x}))=(y(\mathbf{x})-t)^2\),即有

\[E(L)=\iint(y(\mathbf{x})-t)^2p(\mathbf{x},t)d\mathbf{x}dt \]

假設\(y(\mathbf{x})\)是任意形式的函式,現在就是要求出某個(種)函式\(y(\mathbf{x})\)使得\(E(L)\)的值最小,根據變分法(variational principle)中的尤拉-拉格朗日方程(Euler-Lagrange equation)

\[\frac{\delta f}{\delta y}=\frac{\partial f}{\partial y}-\frac{d}{dx}(\frac{\partial f}{\partial y'})=0 \]

代入\(f=E(L)\)可得

\[\frac{\delta E(L)}{\delta y(\mathbf{x})}=2\int(y(\mathbf{x})-t)p(\mathbf{x},t)dt=0 \]

可以解得

\[y(\mathbf{x})=\frac{\int tp(\mathbf{x},t)dt}{p(\mathbf{x})}=E_t(t|\mathbf{x}) \]

這表示迴歸函式(regression function)\(y(\mathbf{x})\)就是由條件概率分佈\(p(t|\mathbf{x})\)所決定的隨機變數\(t\)的均值,當然,該結果可以擴充到多個目標變數、而不僅僅只有一個目標變數\(t\)的形式。

​ 下面用一種技巧性的方法來推出同樣的結論

\[\begin{aligned} (y(\mathbf{x})-t)^2&=(y(\mathbf{x})-E_t(t|\mathbf{x})+E_t(t|\mathbf{x})-t)^2\\ &=(y(\mathbf{x})-E_t(t|\mathbf{x}))^2+2(y(\mathbf{x})-E_t(t|\mathbf{x}))(E_t(t|\mathbf{x})-t)+(E_t(t|\mathbf{x})-t)^2 \end{aligned} \]

將此式代入\(E(L)\)表示式對\(t\)進行積分發現交叉項消失(詳見參考資料),即得到

\[E(L)=\int(y(\mathbf{x})-E_t(t|\mathbf{x}))^2p(\mathbf{x})d\mathbf{x}+\int\text{var}(t|\mathbf{x})p(\mathbf{x})d\mathbf{x} \]

顯然,當\(y(\mathbf{x})=E_t(t|\mathbf{x})\)時,\(E(L)\)取到最小值。

​ 下面介紹迴歸問題的三種基本思路。

​ (a)首先確定聯合概率密度\(p(\mathbf{x},t)\),然後計算條件概率密度\(p(t|\mathbf{x})\),最後使用積分求出條件均值。

​ (b)首先直接求出條件概率密度\(p(t|\mathbf{x})\),然後使用積分求出條件均值。

​ (c)直接從訓練集中確定出一個迴歸函式\(y(\mathbf{x})\)

​ 最後介紹另一個常用的損失函式:閔可夫斯基損失函式(Minkowski loss)

\[L(q)=|y(\mathbf{x})-t|^q \]

可以認為閔可夫斯基損失函式是平方損失函式的一種推廣。

6 資訊理論

​ 考慮一個隨機變數\(x\),當我們觀察這個隨機變數的時候,自然會得到一些資訊,並且,可以認為資訊量的大小反映了我們觀察這個隨機變數的值的“驚訝程度”:如果觀察到\(x\)的一個罕見取值,那麼可以認為我們得到了較多的資訊;如果觀察到\(x\)的一個常見取值,那麼可以認為得到較少的資訊。從這個觀點來看,資訊量的大小與隨機變數\(x\)的概率分佈\(p(x)\)有較強的聯絡,並且\(p(x)\)越大則資訊量越少、\(p(x)\)越小則資訊量越大。引入函式\(h(x)\)表示資訊量的大小,為了確定\(h(x)\)的具體形式,需要先看看\(h(x)\)具有何種性質。

​ 當獨立地觀察兩個隨機變數\(x\)\(y\)的時候,收到的資訊量可以認為是單獨觀察兩者得到的資訊量之和,也就是\(h(x+y)=h(x)+h(y)\),又因為兩者獨立發生,有\(p(x,y)=p(x)p(y)\),自然得到\(h(x)\)是對數形式

\[h(x)=-\log_2p(x) \]

採取\(2\)為底數完全是因為資訊理論的傳統,此時資訊的單位是位元(bit)

6.1 離散形式的熵——離散熵

​ 傳輸一個離散型隨機變數\(x\)的時候,傳輸的資訊量自然就是\(h(x)\)的期望

\[H(x)=-\sum_xp(x)\log_2p(x) \]

這個量被定義為隨機變數\(x\)熵(entropy)。考慮到\(\lim_{p\rightarrow0}p\log_2p=0\),因此當\(p(x)=0\)時,就應當令\(p(x)\log_2p(x)=0\)

​ 在實際應用中,資訊是由一組單位位元的形式向外傳輸的,如果一個隨機變數\(x\)有八種獨立的可能狀態且每種狀態出現的概率是等可能的,那麼一種自然的編碼方式是採用三位位元來對每一個狀態進行編碼,此時該隨機變數的熵為

\[H(x)=-8\times\frac18\log_2\frac18=3~\text{bits} \]

​ 現在考慮一個不等概率的八狀態隨機變數\(x\),它的八狀態改率分別為\(\{\frac12,\frac14,\frac18,\frac1{16},\frac1{64},\frac1{64},\frac1{64},\frac1{64}\}\),如果仍採用三位元編碼則熵為

\[H(x)=-\frac12\log_2\frac12-\frac14\log_2\frac14-\frac18\log_2\frac18-\frac1{16}\log_2\frac1{16}-\frac4{64}\log_2\frac1{64}=2~\text{bits} \]

這表明,在同一種編碼方式下,非均勻分佈比均勻分佈的熵要小,在後面從無序程度的角度討論熵的概念的時候,還將感受到這一點。除了三位元編碼方式之外,為了使平均編碼長度最小,也可以使用哈夫曼編碼(Huffman Coding)對八狀態編碼得到\(\{0,10,110,1110,111100,111101,111110,111111\}\)

\[\text{最小平均編碼長度}=\frac12\times1+\frac14\times2+\frac18\times3+\frac1{16}\times4+\frac1{64}\times6=2~\text{bits} \]

無噪聲編碼定理(noiseless coding theorem)表明,熵是傳輸一個隨機變數狀態值所需位元位的下界。

​ 現在開始,我們將熵定義中的底數\(2\)換成自然對數\(e\),資訊的單位變為奈特(nat),和位元相比,兩者的差異僅是一個\(\ln2\)的因子。

​ 現在從無序程度的角度來討論熵的概念。考慮一組完全相同的物體,共有\(N\)個,這些物體將要放入若干個箱子中,每個箱子放入\(n_i\)個,問一共有多少种放法?根據簡單的組合學知識,不難得到放法為

\[W=\frac{N!}{\prod_in_i!} \]

這被稱為乘數(multiplicity),現在根據乘數的概念匯出熵的定義

\[H=\frac1N\ln W=\frac1N\ln N!-\frac1N\sum_i\ln n_i! \]

現在考慮\(N\rightarrow\infty\)並保持\(\frac{n_i}{N}\)不變,根據Stirling的估計

\[\ln N!\sim N\ln N-N \]

可以得到

\[H=-\lim_{N\rightarrow\infty}\sum_i(\frac{n_i}{N})\ln(\frac{n_i}{N})=-\sum_ip_i\ln p_i \]

這裡的\(p_i=\lim_{N\rightarrow\infty}\frac{n_i}{N}\)是一個物體被放入第\(i\)個箱子的概率。用物理學屬於來說,箱子中物體的具體分配方案被稱為微觀狀態(microstate),而整體的佔領數的分佈,表示為比值\(\frac{n_i}{N}\),被稱為巨集觀狀態(macrostate)。乘數\(W\)也被稱為巨集觀狀態的權重(weight)

​ 現在假設箱子具有一組離散的不同狀態\(x_i\),則熵為

\[H(p)=-\sum_ip(x_i)\ln p(x_i) \]

定性討論\(H(p)\)的大小不難發現:如果\(p(x_i)\)較大(接近\(1\)),則\(-\ln p(x_i)\)較小(接近\(0\));如果\(p(x_i)\)較小(接近\(0\)),則\(-\ln p(x_i)\)較大(接近\(+\infty\)),也就是說\(-\ln p(x_i)\)的增長速度完全可以抵消\(p(x_i)\)的減小速度。於是可以知道:如果分佈\(p(x_i)\)在某幾個地方有尖銳的峰值,則\(H(p)\)的值傾向於變小。在概率歸一化(normalization constraint)限制條件下用拉格朗日乘數法

\[\tilde{H}=-\sum_ip(x_i)\ln p(x_i)+\lambda(\sum_ip(x_i)-1) \]

可知當\(p(x_i)=\frac1M\)時、即所有\(p(x_i)\)都相等時,可以取得\(\tilde{H}\)的最大值,此時對應的\(H=\ln M\)。注意到用拉格朗日乘數法得到的駐點不一定是極值,為了證明確實是極值,可對\(\tilde{H}\)求二階導數

\[\frac{\partial^2\tilde{H}}{\partial p(x_i)\partial p(x_j)}=-\delta_{ij}\frac1{p_i} \]

其中\(\delta_{ij}\)Kronecker符號

6.2 連續形式的熵——微分熵

​ 現在考慮將熵的概念從離散情況擴充套件到連續情況。注意到熵的概念與具體狀態的分佈有緊密聯絡,因此從根本上來說熵具有離散的因素。將連續情況分割成離散情況,也就是認為區間\(\Delta\)是一個箱子,那麼根據均值定理(mean value theorem)

\[\int_{i\Delta}^{(i+1)\Delta}p(x)dx=p(x_i)\Delta \]

只要\(x\)在區間\(\Delta\)中,就將其賦值為\(x_i\),這實際上將區間\(\Delta\)中的無限個狀態\(x\)用一個狀態\(x_i\)來表示了,此時觀察到\(x_i\)的概率為\(p(x_i)\Delta\)。現在,熵的形式為

\[H_{\Delta}=-\sum_ip(x_i)\Delta\ln(p(x_i)\Delta)=-\sum_ip(x_i)\Delta\ln p(x_i)-\ln\Delta \]

那麼

\[\lim_{\Delta\rightarrow0}\{-\sum_ip(x_i)\Delta\ln p(x_i)\}=-\int p(x)\ln p(x)dx \]

等式右側的量稱為微分熵(differential entropy),此式當自變數為向量\(\mathbf{x}\)時仍然成立。上述過程揭示了一個深刻的現象:熵的離散形式和連續形式相差\(\ln\Delta\),又因為\(\ln\Delta\)\(\Delta\rightarrow0\)時是發散的,這就說明:具體化一個連續變數需要大量的位元位。現在考慮當隨機變數\(x\)具有何種分佈時,微分熵具有最大值,首先有三個限制條件

\[\begin{aligned} \text{歸一化限制}&\quad\int_{-\infty}^{+\infty}p(x)dx=1\\ \text{一階矩限制}&\quad\int_{-\infty}^{+\infty}xp(x)dx=\mu\\ \text{二階矩限制}&\quad\int_{-\infty}^{+\infty}(x-\mu)^2p(x)dx=\sigma^2 \end{aligned} \]

(後兩個限制條件的必要性將在後面討論)。下面就是使用拉格朗日乘數法最大化下面的函式

\[\begin{aligned} F(x,\lambda_1,\lambda_2,\lambda_3)=&-\int_{-\infty}^{+\infty}p(x)\ln p(x)dx +\lambda_1(\int_{-\infty}^{+\infty}p(x)dx-1)\\ &+\lambda_2(\int_{-\infty}^{+\infty}xp(x)dx-\mu) +\lambda_3(\quad\int_{-\infty}^{+\infty}(x-\mu)^2p(x)dx-\sigma^2) \end{aligned} \]

使用變分法可得

\[p(x)=\frac{1}{\sqrt{2\pi}\sigma}\text{exp}\{-\frac{(x-\mu)^2}{2\sigma^2}\} \]

如果之前沒有給出後兩個限制條件,那麼上面得到的\(p(x)\)的表示式中\(\mu\)\(\sigma\)部分將不是定值(即會變化),那麼將不會存在\(p(x)\)使熵取最大值(比如,熵將會隨著\(\sigma\)的無限增大而無限增大,原因下述)。如果隨機變數\(x\)服從正態分佈,那麼\(x\)的熵就是

\[\begin{aligned} H(x)&=-\int\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}\ln(\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}})dx\\ &=-\int\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}(-\frac12\ln(2\pi\sigma^2)-\frac{(x-\mu)^2}{2\sigma^2})\\ &=\frac12\ln(2\pi\sigma^2)\int\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}dx+\frac{1}{\sqrt{2\pi}\sigma}\int e^{-\frac{(x-\mu)^2}{2\sigma^2}}\frac{(x-\mu)^2}{2\sigma^2}dx\\ &=\cdots\\ &=\frac12\{1+\ln(2\pi\sigma^2)\} \end{aligned} \]

這表明熵將會隨著分佈寬度(即\(\sigma^2\))的增大而增大。該結果也表明微分熵可以為負,而之前提到的離散熵一定是正數。

6.3 條件熵

​ 下面介紹條件熵(conditional entropy)的概念。條件熵是指在一個隨機變數給定的條件下的系統的熵,也就是在一個給定變數的前提下,該系統熵的期望。舉例來講,當一個系統具有兩個隨機變數\(x\)\(y\)且具有概率分佈\(p(x,y)\)的時候,如果\(x\)的值已知,那麼

\[H(y|x)=-\iint p(y,x)\ln p(y|x)dydx \]

這稱為給定\(x\)的條件下,\(y\)的條件熵。容易看出,條件熵具有以下關係

\[H(x,y)=H(y|x)+H(x) \]

其中\(H(x,y)\)\(p(x,y)\)的微分熵,\(H(x)\)是邊緣分佈\(p(x)\)的微分熵。上述關係式可以這樣理解:描述\(x\)\(y\)所需的資訊等於描述\(x\)的資訊加上已知\(x\)時描述\(y\)所需的資訊。

6.4 相對熵

​ 假設真實的分佈\(p(x)\)是未知的,現在我們用\(q(x)\)\(p(x)\)進行了近似建模,那麼在具體化\(x\)的值時,定義相對熵(relative entropy)Kullback-Leibler散度(Kullback-Leibler divergence,簡稱KL散度)來度量使用基於\(q(x)\)的估計表示\(p(x)\)的樣本平均所需的額外資訊量

\[\text{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 \]

注意,一般而言\(\text{KL}(p||q)\neq\text{KL}(q||p)\)。從直觀上知道,為了用估計來表示一個分佈的樣本,所需的資訊量應該是非負的,也就是\(\text{KL}(p||q)\geq0\),下面從數學角度證明這一點。對於凸函式(convex function)有一個重要的結論:琴生不等式(Jensen's inequality)

\[f(\sum_{i=1}^M\lambda_ix_i)\leq\sum_{i=1}^Mf(x_i) \]

對於概率分佈的情況,該不等式具有如下形式

\[f[E(x)]\leq E[f(x)] \]

也就有

\[f(\int xp(x)dx)\leq \int f(x)p(x)dx \]

則對於KL散度,有

\[\text{KL}(p||q)=-\int p(x)\ln(\frac{q(x)}{p(x)})dx\geq-\ln(\int{q(x)}dx)=0 \]

等號當且僅當\(q(x)=p(x)\)​對所有\(x\)​都成立時才成立。最後給出離散形式的KL散度

\[\text{KL}(p||q)=-\sum_xp(x)\ln q(x)-(-\sum_xp(x)\ln p(x))=-\sum_xp(x)\ln(\frac{q(x)}{p(x)}) \]

顯然,當我們在用\(q(x)\)\(p(x)\)進行建模的時候,自然想要讓KL散度儘可能的小,這樣\(q(x)\)\(p(x)\)之間就有儘可能高的相似度。由於\(p(x)\)未知,故不能直接對KL散度的定義式進行最小化操作,但訓練集給了我們一些準確的滿足\(p(x)\)​的資料點,因此

\[\begin{aligned} \text{KL}(p||q)&\sim\frac1N\sum_{n=1}^N\{-\ln q(x_n|\theta)+\ln p(x_n)\}\\ &=\frac1N\{-\ln{\prod_{i=1}^N{q(x_n|\theta)}}+\ln{\prod_{i=1}^N{p(x_n)}}\} \end{aligned} \]

其中\(q(x|\theta)\)中的\(\theta\)是選定模型的超引數,可以進行人為調整。此式第一項是估計分佈\(q(x|\theta)\)的似然函式的負對數,第二項與估計分佈\(q(x|\theta)\)無關,這從理論上說明了:最小化KL散度等價於最大化似然函式。

6.5 互資訊

​ 從一般意義上說,KL散度衡量了兩個資訊的相似程度,這在某些方面和協方差的實際含義類似,但協方差只能反映線性關係,而KL散度具有更一般的意義。現在考慮一個二元分佈\(p(x,y)\),如果\(x\)\(y\)相互獨立,那麼\(p(x,y)=p(x)p(y)\),但如果不知道\(x\)\(y\)不是獨立的,我們可以用KL散度來衡量\(x\)\(y\)是否接近於獨立。此時的KL散度為

\[I(x,y)\equiv \text{KL}(p(x,y)||p(x)p(y))=-\iint p(x,y)\ln(\frac{p(x)p(y)}{p(x,y)})dxdy \]

這稱為變數\(x\)和變數\(y\)之間的互資訊(mutual information)。根據KL散度的性質知道\(I(x,y)\geq0\),並且等號當且僅當\(x\)\(y\)相互獨立時成立。互資訊具有下面重要性質

\[I(x,y)=H(x)-H(x|y)=H(y)-H(y|x) \]

可以認為當知道\(y\)條件下\(x\)的分佈時,\(x\)的不確定性減小(反之亦然)。

7 參考資料