PRML1-引言

本系列是根據《pattern recognition and machine learning》一書寫的,算是讀書筆記?算是吧。因爲是從自己角度出發,所以其實很大程度上自己看得懂,估計別人看不懂,還望見諒。

數學符號約定:

        該書意在能夠以最小的數學範圍來解釋整本書,不過在微積分、現代、概率論上還是不可避免的用到,爲了方便概念的理解,所以本書在力求數學上的嚴謹的同時更多的是從不同的參考資料中將數學符號都能夠統一起來。向量表示成小寫黑體羅馬字母例如,所有的變量默認是列向量,所以關於向量的轉置纔是行向量。大寫黑體羅馬字母表示矩陣,例如:表示一個有着M個元素的行向量,對應的列向量爲其轉置形式。大小的單位矩陣表示爲,其中對角線位置上值爲1,其他爲0。表示爲|f(x)/g(x)|,其中x趨於無窮大。例如g(x)=3*x*x+2,那麼g(x)=O(x*x)。並且在後面中如果有N個D維的向量,那麼將其組合成一個數據矩陣(數據集),在該矩陣中行表示樣本(觀察值),列表示特徵。


一、引言

       對於 機器學習來說,假設有個手寫數字數據集:N個數字圖,每個元素爲784的向量(參考MNIST數據集),每個圖對應着一個標籤。在訓練階段,我們想通過模型來對訓練數據進行擬合。在模型訓練好之後,能夠判別一個在訓練階段未出現的新的樣本的能力叫做泛化(generalization)。而且因爲我們使用的訓練數據相比較於所有可能的輸入向量來說,都只是一小部分(即你在怎麼增加訓練集,都無法收集世上所有可能的數據),所以在模式識別中,泛化也是個中心目標。

    對於大部分實際的應用中,元素的輸入變量都會進行預處理,轉化成變量的新空間,在該空間中,模式識別問題能夠更容易的解決。該預處理的過程也叫做特徵提取的過程。不過記得對於新的測試數據來說,需要使用與對訓練數據一樣的預處理過程。當訓練數據中有樣本的標籤的時候,叫做有監督學習,當沒有的時候叫做無監督學習。如果最後是想把樣本劃分成幾個離散的類別,叫做分類問題。如果說最後得到的結果是有着一個或更多連續的變量,那麼叫做迴歸問題。在無監督學習中,是爲了發現相似樣本的不同分組,這也叫做聚類,或者說決定輸入空間中數據的分佈情況,也叫做密度估計(density estimation)。從一個高維空間中將數據投影到2或者3維空間中,這是爲了可視化的目的。

       增強學習(sutton barto,1998)是關於尋找合適的行爲在後期能使得獎勵最大化。也就是相對於有監督學習來說,這裏給定的輸出樣本不是最優的(我們人爲給定的數據樣本就假設是在該任務上最優的樣本),是需要通過一系列的測試和錯誤來修正的。典型的使用就是首先在基於一個狀態序列和動作的情況下,需要與外界環境進行交互,從而改變學習過程。在許多情況下,當前所做的行爲不止會影響當前的獎勵,還會影響後續的所有行爲。比如1994年tesauro的象棋(深藍也該是吧),還有andrew ng 之前做的無人機就是個典型的例子。有興趣的可以去看看ng之前的論文。

     在本書的引言部分,將會介紹三個重要的工具:概率論、決策論、信息論。這三個將會影響到你對本書後續的理解,而且對於機器學習的理解來說,也是至關重要的。

1.1簡單的例子:多項式曲線擬合

       假設我們有N個變量x的觀察值,爲,對應的標籤(該樣本是通過函數生成,然後加上一些高斯噪音得到的

我們的目標就是對於一個新的樣本來判別它的標籤。在1.2部分的概率論將會以一種嚴謹的方式來表示這種不確定性。在1.5部分的決策論可以利用概率表徵來按照合適的標準決定預測的結果。

      當前來說,我們想要使用多項式來擬合該數據

                                                               (1.1)

從該模型可以看出,對於輸入x來說,其實一個非線性模型,而對於係數w(將係數表示成矩陣的形式)來說,卻是個線性模型。爲了能夠擬合,我們需要對誤差函數進行最小化,這裏選擇的誤差函數爲:

                                                                    (1.2)

       我們可以通過在儘可能小的情況下選擇的值來解決該曲線擬合的問題,因爲該誤差函數是一個關於係數矩陣二次函數,所以它的導數是線性的,所以誤差函數的最小值是一個唯一解,表示成。接下來的問題就是選擇多項式的階數了,這被稱之爲模型比較,或者叫做模型選擇問題。至於爲什麼選擇這個誤差函數是因爲其平方根(root-mean-square,RMS):


這裏除以N是爲了讓不同size的數據集能夠在相同的範圍內比較,而開平方是爲了保證在和目標變量t一樣的尺度一樣的單位下進行比較。

(勘誤:M=3)

上面是不同的階數的多項式下的係數最優值,從書上的幾個圖(這裏不貼了)看出,階數越高,擬合的越好,不過在階數過高的情況下會造成過擬合的現象,這裏的一個解決方法就是增加數據集的數據量來減少過擬合問題(就是爲了保證擬合準確度,階數需要高點,這時候爲了保證不過擬合,就需要增加樣本),


一個粗略的標準是所需要的樣本應該是參數個數的5或者10倍(所以總的來說,我們需要依據問題的複雜程度來決定使用的模型的複雜程度)。從上面的最小平方方法中尋找模型參數的方式可以表示成最大似然的一個特殊的情況。而過擬合問題可以理解成最大似然的一個通用的特性。通過使用貝葉斯方法,過擬合問題可以避免掉,而且從貝葉斯觀點來說,可以使用遠超樣本量的參數數量的模型,而且沒有什麼難度,因爲在貝葉斯模型中,參數數量可以有效的自動適應於數據集的size。這種技術叫做正則化,也就是在誤差函數後面增加一項懲罰項來防止係數過大。最簡單的懲罰項爲:


這裏,而且係數控制着正則化項相對於平方誤差和之間的相關重要性。不過通常來說第一個係數是不放入這個正則化中的,因爲它的引入會導致結果依賴於目標變量的原點的選擇(hastie et al 2001),所以要引入的話需要使用它自己的正則化係數。在統計學中這種正則化叫做收縮方法,因爲它能減少係數的值。二次正則化這種特殊的情況叫做邊緣迴歸(嶺迴歸)(ridge regression)(hoerl kennard 1970),在神經網絡中,這叫做權重衰減。


可以看出現在可以用來控制模型的複雜程度,所以可以用來影響過擬合的程度,上圖中第一個是等於沒有權重懲罰項,所以參數是很大的,容易過擬合。

       在1.3部分中,會介紹模型複雜度問題,所以在實際實踐中,如果我們想要通過使用最小化誤差函數的方法,那我們需要找到一種合適的方法來決定模型複雜度的值(也就是參數),最簡單的一種方法就是將訓練集在分出一部分數據作爲驗證集(validation set,或者hold-out set),通過驗證集來優化模型的複雜度(階數和其超參數)。不過在很多情況下,這被證明是對訓練數據的一種浪費,所以我們需要尋找更好的方法。


上圖是在階數爲9的時候改變超參數的誤差函數圖,可以看出隨着超參數的變大,在訓練集上的誤差在變大,可是在測試集上的誤差在變小,當然最後都在變大(這是因爲懲罰的太厲害,模型已經無法擬合任何一個數據集),所以當這兩個開始趨於平穩的這個階段的超參數纔是我們所需要選擇的超參數,即中間平行的那部分。

1.2 概率論

        模式識別中一個關鍵的概念就是不確定性,它涉及到測量過程中的噪音,和數據集的有限size。概率論可以提供一個在量化和操作不確定性的統一框架。結合決策論,可以在信息不完全或者模糊的情況下做出最優的預測。對於貝葉斯來說,最重要的就是兩個規則:


1.2.1概率密度       

 對於連續變量(離散的不說了)來說,如果實數變量x 落在區間,而且那麼p(x)被稱之爲基於x的概率密度,所以x落在區間(a,b)上的概率就是:

而累積分佈函數爲:

其中     

1.2.2期望與方差       

在概率中一個最重要的操作就是對函數的加權平均。基於概率分佈下的某個函數的均值被稱之爲該函數的期望。對於離散的變量來說,其期望爲:


對於連續變量來說,其期望爲:


另外,如果給定有限的N個從概率分佈或者概率密度上抽取的樣本,那麼該期望爲:


表示函數f(x,y)關於x的期望。注意這時候該期望是關於y的函數(因爲求出了關於x的期望之後,它就成了常量了,而y還是變量)。所以關於一個條件分佈的條件期望爲:


1.2.3貝葉斯概率

          之前的部分都是基於隨機、可重複事件的頻率的,所以這一類也叫做古典(classical)或者頻率(frequentist)概率。現在使用貝葉斯觀點,來量化不確定性事件的概率。不過使用概率來表示不確定性不是一個特意爲之的選擇,因爲如果我們想要遵循常識的基礎上進行理性的推理,這是不可避免的。1946年Cox表示如果用數值來表示置信度(degrees of beliefs),然後用一組簡單的公理用來編碼這樣置信的常識性屬性,這樣的操作其實就相當於概率的加法規則和乘法規則。

        根據前面的多項式曲線擬合的例子,我們先得到關於的假設,然後在觀察數據,所以我們可以得到一個先驗概率分佈。觀察到的數據的影響可以通過條件概率來表示。顯式的表示成貝葉斯原理,形式爲:

                                                                          (1.2.3-1)

也就是在基於觀測到的數據的基礎上評估中的不確定性,即得到了後驗概率。其中公式中的是爲了評估觀測到的數據集的,可以被視爲關於參數向量的函數,也被稱之爲似然函數。它表示爲在不同的參數向量的集合下觀測到的數據集的可能性是多少。注意這個似然不是基於的概率分佈,所以它的關於的積分(必須)不等於1。

         在基於似然的定義下,我們可以將貝葉斯理論寫成如下形式:


所有的這些數值都可以認爲是關於的函數。在公式(1.2.3-1)的分母是一個歸一化常量,用來確保等號左邊的後驗分佈是一個有效的概率密度而且積分結果爲1.而且,因爲公式(1.2.3-1)的兩邊的積分都是關於的,所以可以將貝葉斯理論中的分母寫成先驗分佈和似然函數的形式:


       在貝葉斯和頻率(frequentist)兩個學派中,似然函數都是佔據着中心重要地位的。不過在這兩種不同學派中使用的方式確是截然不同的。在frequentist中,被認爲是一個固定的參數,它的值是通過某些“評估器(estimator)”來決定的,而誤差是通過考慮可能的數據集的分佈上通過評估獲得的。相比之下,對於貝葉斯學派來說,只有一個單一的數據集(即真實觀測到的那個),而且參數中的不確定性可以通過基於的一個概率分佈來表示。

       廣泛使用的frequentist 評估器是最大似然方法。求得似然函數概率最大的時候的,也就是相當於選擇某個值使得觀測到的數據集合概率最大。在機器學習文獻中,負的log似然函數被稱之爲誤差函數,這是因爲負的log似然函數嚴格遞減的,所以最大該似然函數其實就相當於最小化這個誤差。

      在frfequentist中一個決定誤差線的方法是bootstrap(efron,1979;hastie 2001),就是在給定數據集的情況下通過利用該數據集的不同子集(也被稱爲boostrap數據集)來觀察不同預測結果的變化。

      相比較於貝葉斯方法來說,是很自然的會包含先驗知識的,不過這也導致貝葉斯的結果會受到先驗的影響,相對來說,任何一個有着合理先驗的貝葉斯方法導致的結果都是不那麼極端的。不過雖然貝葉斯和frequentist之間都有各種駁斥,可是沒有唯一的貝葉斯,也沒有唯一的frequentist,都是相互使用的。例如大家認同的貝葉斯的一個弊端是貝葉斯方法的先驗分佈的選擇是基於數學計算的方便而不是根據先驗置信的反映得到的。所以主觀上的選擇會導致選擇先驗有些困難。減少先驗的依賴也被稱之爲noninformative(非信息)先驗。然而這會使得在對比不同模型的時候造成困難,而且正如上面說的,貝葉斯會受到先驗的影響,即壞的先驗導致的結果也不是很好。而frequentist評估方法會提供一些解決這類問題的方法,比如在模型對比的時候的交叉驗證。

1.2.4高斯分佈

       

常見的高斯分佈,細節就不說了,其中方差的倒數,也被稱爲精確度。(個人:上面的x表示的是變量,而“|” 後面的兩個表示的是參數,也就是這是求變量x的概率, )其中:






而對於變量爲D維向量(即一個樣本爲D維)的連續值時,其密度函數爲:


其中是一個D*D的矩陣,是對應的行列式。

        假設有觀測到的N個樣本的數據集,其中每個樣本是標量變量;這裏不同於上面的單個觀測數據:向量變量,用來表示。這裏假設這N個樣本都是基於高斯分佈上的互相獨立的,即獨立同分布(independent and identically distributed ,i.i.d)。所以他們的聯合概率就是邊緣概率的乘積:


這可以被認爲是關於的函數,也是高斯分佈的似然函數。常用的決定概率分佈中參數的標準是通過使用觀測到的數據集並最大化似然函數的方法。也許這會很奇怪,因爲從我們關於概率論的討論,應該是在給定數據的基礎上最大化參數的概率,而不是在給定參數的基礎上最大化數據的概率。不過其實,這兩種標準都是相互聯繫的,在1.2.5小節會說道。所以對於未知的參數的值的選取是通過最大化上面這個似然函數得到的,而且使用的是最大化log似然函數,因爲log函數是關於參數嚴格遞增的,最大化log函數也就是最大化參數本身。使用log函數不只是爲了簡化後續的數學分析,而且有助於數值計算,因爲大量的小概率的乘積會很容易在計算機上下溢出。所以可以通過轉換成log概率的求和方式,所以如下形式:


得到的結果爲:

,       

不過可以看出最大似然方法的侷限性在於得到的分佈的方差是有偏的,而且這和上面多項式曲線擬合中遇到的過擬合問題也有關係。首先最大似然的解是關於數據集的值的函數,通過求取這兩個解的期望,得到的就是其無偏估計值:


方差的無偏估計也就是:


如果對於大數來說,前面的N/(N-1)是不需要的,因爲數據量夠多,不過對於小數據來說,還是需要的。

1.2.5 再看曲線擬合

         這小節通過將前面的多項式曲線擬合問題表示成錯誤最小化的形式。以概率的角度出發朝着全貝葉斯方向來解釋錯誤函數和正則化。上面那個曲線擬合問題的目的就是基於給定的N個輸入樣本和標籤的基礎上對新的樣本的標籤進行預測。可以將標籤值的不確定性表示成一個概率分佈的形式。在給定新的樣本的基礎上,假設標籤值服從高斯分佈,而且該高斯分佈的均值等於最上面公式(1.1)的值,所以得到:

                                                                       (1.2.5.1)

這裏爲了方便和後續章節的統一,定義一個精確度參數來表示分佈方差的逆。


上圖爲給定的基礎上標籤的高斯條件分佈。現在我們使用訓練集,並通過最大似然來決定未知的參數。當數據都是從公式(1.2.5.1)中抽樣得到的獨立同分布,那麼似然函數即爲:

                                               (1.2.5.2)

和之前的高斯分佈一樣,通過使用log函數,將上面的轉化成:

                     (1.2.5.3)

(個人:每個樣本的預測標籤作爲變量,而真實標籤作爲其期望值)。因爲考慮到多項式的最大似然解,就是其係數,也就是,而且是關於的,所以上面式子右邊第二和第三項可以省略。而且對log似然函數進行正數常量的縮放不會影響到關於的最大值的解,所以我們通過將係數替換成。而且最大化log似然函數,就等於最小化負的log似然函數。也就是說最大似然就相當於最小化公式(1.2)的那個平方誤差函數的和。所以該平方誤差函數的和可以作爲基於假設高斯噪音分佈的最大似然的結果。

    通過使用最大似然來決定高斯條件分佈的精確度參數。上面那個式子中關於的最大化爲:

                                                (1.2.5.4)

       在得到關於的解之後,就可以進行新的樣本的標籤預測了。因爲這是一個概率模型,所以可以表示成關於的概率分佈的預測分佈形式,而不是簡單的點估計,並且可以通過將最大似然參數放入公式(1.2.5.1)中,得到:

                                             (1.2.5.5)

現在往貝葉斯方法更邁進一步,通過引入關於多項式係數的先驗分佈。爲了簡化,先來考慮這種形式的高斯分佈:

                    (1.2.5.6)

這裏是該分佈的精確度,而M+1是在基於M階的多項式的向量中元素的個數。例如這樣用來控制模型參數分佈的參數,叫做超參數。通過使用貝葉斯理論,關於的後驗分佈是與先驗分佈和似然函數的乘積成比例的:

                                              (1.2.5.7)

現在可以通過在給定數據下的最可能的值來作爲的值,換句話說也就是最大化這個後驗分佈就行。這種方法叫做最大化後驗(maximum posterior ,MAP),通過對上面這個式子採用log對數,並結合(1.2.5.3)和(1.2.5.6),可以將後驗的最大值解釋成下面式子的最小值:


(個人:上面這個式子就是先驗和似然函數的的高斯分佈相乘之後的指數部分,而且因爲alpha和beta都是人爲給定的超參數,這裏的變量是權重,所以指數前面的係數可以省略掉,就得到了這樣的一個目的)也就是說最大化後驗分佈就相當於最小化正則化後的平方誤差函數的和,這裏正則化參數爲

1.2.6貝葉斯曲線擬合

        雖然前面引入了一個先驗分佈,到目前爲止仍然是關於的點估計,而不是通過貝葉斯方式處理。在全貝葉斯方法中,使用的就只是概率的加法和乘法規則,也就是需要對所有的的值進行積分。這也就是模式識別中貝葉斯的中心所在。

         在前面的曲線擬合問題中,是在給定訓練數據和對應目標(標籤)以及一個新的測試樣本的基礎上爲了得到測試樣本的標籤。所以是爲了評估預測分佈的。這裏假設參數都是固定而且提前已知的。那麼可以以貝葉斯的方式寫成:

                                              (1.2.6.1)

         這裏是由(1.2.5.2)給出的,而且我們這裏忽略了在上的依賴關係。是基於參數的後驗分佈,可以通過對(1.2.5.7)的右邊進行歸一化得到。在第3章第3節中可以看到這個後驗分佈其實就是一個高斯分佈。同樣的,(1.2.6.1)的積分得到的預測結果其實就是下面的這種形式的高斯:

                                                                 (1.2.6.2)

這裏均值和方差爲:

                                                                 (1.2.6.3)

其中矩陣S爲:

(該公式第二個x應該是xn的,在本書勘誤表裏面有註明)

這裏 I 是一個單元矩陣,向量的定義爲:。注意到(1.2.6.2)的預測分佈的方差和均值都是依賴於的,並且(1.2.6.3)中第二個式子的第一項表示的是預測值 t 的不確定性,這是因爲在目標(標籤)變量上有噪音,這一項其實就是在(1.2.5.5)中的最大似然預測分佈上的。然而第二項是參數中的不確定性,也是使用貝葉斯處理得到的結果。


         上圖就是用貝葉斯方式處理的多項式曲線擬合的預測分佈結果,這裏的M=9,而且固定的參數11.1(也就是一直的噪音方差),上圖中紅曲線爲預測分佈的均值,紅色區域爲均值的標準偏差。

1.3模型選擇

        之前的例子中使用的是最小平方方法,通過一個最優的多項式階數能得到最好的泛化。多項式的階數控制着模型中的自由參數的數量,因而也控制着模型的複雜度。加上正則化後的最小平方,正則化項的係數同樣控制着模型的有效程度的複雜度。所以在實際操作中,我們需要選取不同的這些超參數來試驗哪個組合帶來的模型最好。從上面看出在訓練集上使用最大似然方法對於未預見的數據的預測效果來說不是一個好的方法,因爲會遇到過擬合的問題。當數據很多的時候,我們就可以在一部分訓練數據上訓練,然後在另一部分獨立的數據上進行比較,這部分數據也叫做驗證集,然後從中選擇最好的預測結果。如果在一個很小的數據集上迭代許多回,那麼在驗證數據上就會出現過擬合的問題,所以需要第三個集合測試集,這個集合不參與訓練,直到最後選取了最好的模型之後纔會用到。

      不過在許多應用中,訓練和測試數據都是不夠大的,所以爲了構建個好模型,需要儘可能的用到能利用的數據,而且如果驗證集很小的話,對於預測的結果來說也是噪音化的評估。一個解決方法就是交叉驗證,這可以讓(S-1)/S的數據用來訓練,而在所有的數據上進行評估。


上圖就是一個4-折交叉驗證,在白框數據上訓練,然後在紅框數據上測試,最後將這4次的結果進行平均作爲總的效果。而且當數據集太小的時候,有可能會S=N,即一個樣本一組,這也就是leave-one-out 方法。交叉驗證的一個主要缺點就是隨着S的增大,模型訓練的代價會變得高昂(畢竟這相當於傳統訓練的S倍時間),而且另一個問題就是在一個獨立的模型上,很有可能會有很多超參數,這樣測試下來的結果就更可想而知了。所以需要找到更好的方法來只在訓練數據上訓練,而且不會受到過擬合帶來的有偏估計的問題。

          歷史上來說,有各種“信息化標準”用來修正最大似然的有偏問題,比如通過在模型上增加懲罰項來防止過擬合。力度Akaike information criterion 或者AIC(Akaike,1974),選擇當下面這個值最大時候的模型:


這裏是最好擬合的log似然,M是模型中可調整的參數的個數。這種方法的一個變種爲Bayesian information criterion 或者BIC,在第4章4.1節介紹。這些標準都沒考慮到模型參數中的不確定性,而且在實際中,他們在很簡單的模型上效果比複雜模型要好。

1.4維數災難

        維數災難即當在處理模式識別問題的時候遇到的。書上列舉了三個例子,第一個說的是如何將一個新的樣本歸爲3類中哪一類,通過使用小區域劃分的形式,在測試樣本所在的小區域中哪種類多,那麼就將測試樣本劃分成那一類。在二維圖像上結果還是能夠猜測的,而如果在三維或者多維上,那麼所需要採取的劃分機制就沒法進行了,因爲區域太多了。第二個就是相對於之前的多項式曲線擬合的問題:


如上面式子所說的,當數據的維度越高的時候,前面的係數呈現的增長形式是冪級的(D爲輸入數據的維度,M爲多項式的階數),雖然不是指數級的;第三個例子說的是求在不同維度空間中的球體在半徑爲之間的體積,隨着維數的增加,最後該體積幾乎就成了該球體的表面積,而且一直持續不變。

       不過在低維下的模式識別還是有意義的。因爲,真實數據通常會受到某個空間區域的限制,而且在這個空間上目標變量變化較大,(其實就是不是所有的維度都起作用,比如pca就是很好的例子),所以可以通過尋找局部性變化較大的方式來進行目標變量的預測。

1.5決策論

        在1.2小節中介紹了概率論是如何使用通用的數學框架來量化和操作不確定性的。這部分來介紹下當將決策論與概率論結合起來的時候,如何解決模式識別中出現的涉及不確定性的最優決策。一般來說,聯合概率分佈提供了涉及這些變量完備的不確定性描述。而來自訓練數據的值的確定其實也是推理(inference)的一個例子,求解該過程也是本書大部分的主題所在。

        假設一個醫學診斷問題,通過對病理圖像進行處理,並得出該人是否得了癌症。表示得癌症,對應着目標變量,而表示健康,對應目標變量(這裏介紹了決策論的主要想法,更詳細的查看Berger(1985)和Bather(2000))。使用貝葉斯理論,這些概率可以表示成:


注意到任何貝葉斯理論中的概率值都可以通過對聯合分佈進行邊緣或者條件分佈得到,這裏表示類的先驗概率,而表示對應的後驗概率。

1.5.1最小化錯誤分類率

        正如上面那個例子所說,我們在使用概率論的時候,是將最大概率作爲當前類,可是總會有錯誤分類的,比如本來屬於第一類的,分成了第二類,本來屬於第二類的分成了第一類。這裏假設爲第k 類的決策區域。而介於不同區域之間的邊界叫做決策邊界或者決策面。將上面那個癌症例子採用概率表示其錯誤分類爲:


其中表示x原本屬於R1空間,而被劃分成類的概率。爲了讓上面的概率最小,所以需要選擇一個合適的決策規則來讓錯誤分類率最小。如下圖:


當在給定x的值的基礎上,那麼x就屬於類。因爲,而且對於兩類後驗概率來說,都是相同的。我們要做的就是將上圖中原本位於的決策面移動到上,這時候原本的藍色和綠色的誤分類區域沒變,可是紅色區域消失了,此時的錯誤分類率是最小的。

      將類數擴大成K類,那麼正確分類的概率爲:


(還是省略了先驗)當每個x 指派爲對應的類的概率最大的時候,即所佔據的區域區域最大,那麼這時候上面這個公式的值最大。

1.5.2 最小化期望損失

       還是基於上面那個癌症的例子,錯誤的情況有兩種,就是沒得癌症,誤判你得了;你得了癌症,誤判你沒得。這兩種都是誤判,可是相比較來說後者更可怕,前者還能提醒你複診,後者就會讓你錯過最佳治療時間。這裏可以通過引入一個損失函數(loss function)或者叫做誤差函數(cost function)用來測量發生的誤差,從而將該問題形式化,目標就是最小化發生的總的損失值。不過有些作者通過使用效用函數(utility function)來代替的,他們的目標是最大化,其實就是加不加負號的問題。

      首先建立損失矩陣,其中表示第k 個類別(行)被認定爲第 j 類(列)的時候的懲罰值(損失值,個人覺得這裏叫懲罰值更貼切)。如圖:


上圖就是當癌症被誤診爲健康的時候懲罰值爲1000,而正常被誤診爲癌症的時候懲罰值爲1。最優解就是最小化這個損失函數。但是損失函數是依賴於真實的分類的,然而我們並不知道,所以在一個給定的向量基礎上,真實分類中的不確定性就是通過聯合概率分佈來計算的,所以能做到的就是最小化平均損失了,:

                                                           (1.5.2.1)

每個都是獨立的賦值給某個決策區域的。我們的目的就是選擇某個區域使得能夠最小化上面這個期望損失,這個公式同時也說明對於每個我們需要最小化(也就是在某個區域上計算該樣本被誤分類的所有可能概率的懲罰和),和之前一樣,通過使用乘法規則來消除。所以最小化期望損失的決策規則就是讓每個新的樣本指派給類J 的時候損失值最小:

                                                                                       (1.5.2.2)

當知道後驗分類概率之後,上面這個式子是很好求的。

1.5.3 拒絕選擇

       

如上圖,分類錯誤來自於在輸入中不同類別在相同空間區域上有重疊,這時候可以採取拒絕分類的方法,即reject option,比如上面那個癌症的例子,可以通過分析,當樣本落在這個區域的時候,就有疑惑的結果留待人類專家來判定。所以這時候,我們需要引入一個閾值然後將那些最大後驗概率小於或者等於該閾值的輸入樣本拒絕預測(上圖中小於閾值的部分即爲拒絕選擇區域)。上圖爲2個類,將閾值設置爲1的時候,就會拒絕所有的樣本,對於有着K類的樣本集來說,如果設置閾值小於1/K 的話,那麼就不會拒絕任何樣本。所以拒絕區域是由該閾值確定的。

1.5.4推理和決策

       這裏將分類問題拆分成2個獨立的階段,首先推理階段(inference stage),通過訓練數據來訓練的模型,然後在後面的決策階段(decision stage)用這些後驗概率來做最優分類決策。有一種另外的形式是將這兩個階段放在一起解決,也就是直接將輸入映射到決策。這種函數稱之爲判別函數(discriminant function)。實際應用中,是有三種不同的方法來解決決策問題的。這裏簡單的介紹下:

      a)首先分別計算每個類的類-條件密度來解決推理問題。同樣的需要分別推理先驗類概率。然後使用貝葉斯理論計算:

                                                                     (1.5.4.1)

得到後驗分類概率。和之前一樣,在貝葉斯理論中,分母的計算可以以分子的求和形式計算得到:

                                                                     (1.5.4.2)

也就是可以直接對聯合分佈進行建模,然後歸一化來獲得後驗概率。在得到後驗概率之後,就可以對新的輸入使用決策論來計算類別歸屬。這種顯式或者隱式的對輸入和輸出的分佈進行建模的方法叫做生成式模型(generative models),因爲這是通過對它們進行採樣來生成輸入空間中的數據點。

        b)首先解決決定後驗分類概率的推理問題,然後接着使用決策論來決定新的樣本的類別,這種直接對後驗概率進行建模的方法叫做判決式模式(discriminative models)。

       c)先找到一個函數,也被稱之爲判決函數,即將輸入映射到一個類別標籤上。這種情況下,概率沒發揮作用。

        這裏總結下三個備選方案相對的優點。方法(a)是最有要求的,因爲它涉及到計算的聯合分佈。對於許多應用來說,通常是高維度的,所以我們需要大量的訓練樣本來保證分類-條件密度達到了我們所需要的精度。注意到類別先驗通常可以簡單的從每個類中的訓練集數據點上評估得到。方法(a)的一個優點就是可以如(1.5.4.2)一樣得到數據的邊緣密度。這對於檢測那些在模型的基礎上概率很低的新的數據樣本,而且預測的精度卻很低的情況是很有優勢的,比如離羣點檢測或者新穎檢測(outlier detection or novelty detection)(bishop,1994;tarassenko,1995)。

        然而,如果只想要計算分類決策,那麼這對於計算資源和過分要求得到的數據來說是很浪費的,因爲在計算聯合概率的時候,我們卻只需要後驗概率,這時候可以採用方法(b)。如下圖所示,分類-條件密度會包含很多對於後驗概率來說幾乎沒用的結構:


圖1.5.4.1 :基於單一的輸入變量x 基礎上。(左圖)二分類的分類-條件密度;(右圖)對應的後驗概率。可以看到左圖中藍色的的分類-條件密度的模型對於後驗概率來說沒任何影響(個人:也就是這時候你怎麼建模無所謂)。右圖中的垂直綠線就是最小錯誤分類率的決策邊界。

所以相對來說,興趣點在於尋找生產式和決策式方法的相對有點,然後結合起來用在機器學習中(jebara,2004;lasserre et al,2006)。

         相對來說,更簡單的方法就是(c),使用訓練數據來決定一個判決式函數,然後將映射到類別標籤上,吟哦日可以將推理和決策結合到一個簡單的學習問題中,對應到上面圖1.5.4.1中,就是爲了找到那條垂直的綠線,也就是最小錯誤分類的決策面。而且在方法(c)中,不再需要用到後驗概率。不過仍然有很多理由需要計算後驗概率, 後續還可以用來做決策。這些理由有:

         a)最小化風險。比如前面的損失矩陣是主觀的隨着時間而變化的(在金融領域中)。如果我們知道後驗概率,那麼我們可以通過適當的修改(1.5.2.2)來最小化風險決策標準。如果我們只有一個判決式函數,那麼任何有關損失矩陣的改變都需要返回到訓練數據然後重新來解決分類問題。

        b)拒絕選擇。後驗概率可以讓我們決定拒絕標準來最小化誤分類率或者期望損失。

       c)類先驗的補償。針對之前的那個癌症例子,假設從檢測機上得到的許多圖片都用來訓練,不難知道有可能在1k張圖片中只有1張是癌症的,對於這樣的數據來說,是嚴重偏移的。一個平衡的數據集可以讓模型的準確度更高。所以我們需要修改訓練數據來補償這個英雄,假設現在已經對數據集進行了修改而且通過模型得到了後驗概率。按照(1.5.4.1)的貝葉斯理論,我們可以知道後驗概率是與先驗概率成比例的,這可以解釋成每個類別所佔據的比例。我們可以簡單的從我們人爲平衡的數據集中獲得後驗概率,然後除以數據集中類別的比例,然後將乘以我們希望使用這個模型的類別比例(就是先人爲修改數據,然後在修改後數據上得到後驗,然後除以修改後這個類的比例,然後乘以修改前類的比例)。最後還需要歸一化使得後驗概率的和爲1。當我們直接學習一個判決式函數而不是先決定後驗概率的方式時是沒法用的。

      d)模型組合。對於複雜的應用來說,希望將問題劃分成許多可以獨立處理的子小問題。比如我們可以用x光得到病理圖片,然後進行血液檢測得到另一個系統模型,然後想要將這兩個模型的結果組合起來,假設x光得到的分佈爲,而血液檢測得到的分佈爲,他們倆是獨立的,所以得到下面的式子:

                                                               (1.5.4.3)

這是條件獨立屬性的一個例子,因爲它們的分佈是分別基於類條件獨立的。其後驗概率爲:


所以我們需要類先驗概率,這可以很容易從每個類中不同類數據佔據的比例得到。然後需要歸一化生成的後驗概率使得總和爲1。條件獨立假設(1,5,4,3)是樸素貝葉斯模型的一個例子。而且聯合邊緣分佈通常不會在該模型下分解處理。後面會介紹如何在不需要條件獨立假設的情況下結合數據來構建模型。

1.5.5迴歸問題上的損失函數

        現在來說說迴歸上的問題。還是之前那個曲線擬合的問題,在其決策階段需要基於輸入得到一個函數來預測目標變量t  。這期間會遇到損失。該平均或者期望損失爲:

                                                                       (1.5.5.1)

在迴歸問題中經常選擇的損失函數是平方損失,即。相對的期望損失爲:

                                                                  (1.5.5.2)

我們的目的就是選擇使得能夠最小。如果我們假設這是一個完備的靈活的函數,那麼可以對其進行微積分處理:

                                                           (1.5.5.3)

通過使用概率的加法和乘法規則,得到的解爲:

                                             (1.5.5.4)

(個人:上面式子是將(1.5.5.3)拆分開,然後就得到,然後左邊求得積分就可以了)。

這就是在上條件化的 t 的條件平均,被稱之爲迴歸函數。如下圖所示:


圖1.5.5.1 期望平方損失最小化的時候的迴歸函數,通過計算條件分佈的均值獲得。

它可以通過向量擴展到多目標變量的情況。這時候最優解就是條件均值

       我們可以通過另一個方法來得到這個結果。通過利用最優解其實是條件期望這個事實,可以將平方項擴展成:


爲了不致引起符號混亂,這裏使用來表示。通過帶入到損失函數中,然後對其關於 t 的積分,可以發現交叉項消失了,而且可以將損失函數表示成:



(上面式子的勘誤:)

在第一項中當其等於的時候整個式子最小,而且這時候這一項會消失掉,這其實也就是之前通過條件均值得到的最優最小平方預測值得到的解。第二項是(基於 平均得到的) t  的分佈的方差,是目標數據的內部變化性,可以被認爲是噪音項。因爲它獨立於,它表示損失函數不可歸約的最小值。

        正如之前的分類問題,我們可以通過找到合適的概率,然後用來得到最優決策,或者建立模型來直接做決策。這裏介紹三種不同的方法來解決給定的迴歸問題,爲了減小複雜度:

       a)首先解決決定聯合密度的推理問題,然後歸一化求得條件密度,最後計算(1,5,5,4)形式的條件均值。

      b)首先解決決定條件密度的推理問題,然後計算基於(1.5.5.4)形式的條件均值。

      c)直接從訓練數據中求得迴歸函數

這三個方法相對的優勢和前面的分類問題一樣。

        對於迴歸問題來說平方損失不是唯一的選擇,而且在一些情況下平方損失生成的結果還很差,所以我們需要更好的方法。比如在條件分佈是多模態的情況下,就經常有各種不同的問題出現。這裏介紹一個基於平方損失的變種,叫做Minkowski損失,它的期望是:


當q =2 的時候,就是普通的平方損失。函數對於不同的q 的值來說呈現的函數圖不一樣。當q等於不同的值時,差不多都是中間部分的的最小:


1.6信息論

        概率論和決策論的理解對本書來說至關重要,這裏介紹下信息論,記得只要關注關鍵概念就行,不需要什麼都懂,更詳細的可以看看(viterbi and omura 1979;cover and thomas 1991; mackay 2003).

         這裏先考慮離散隨機變量,當觀察到該變量的具體值的時候接收端接收到的信息有多少。測量信息內容的多少是依賴於概率先驗的,並且使用一個關於該概率單調的函數來表示信息的內容。當兩個事件之間相互獨立時,那麼。因爲兩個無關事件統計獨立,所以。介於上面這兩個關係式,可以得到如下的式子:

                                                                                      (1.6.1)

負號是爲了確保信息是正的或者爲0。低概率事件對應着高信息內容。log的基的選擇是任意的,這裏選擇2用來對應到計算機的二進制。現在假設一個發送端將隨機變量的值發送給接收端,在這個過程中信息的平均值的計算可以通過對(1.6.1)求關於分佈期望:


這也被稱之爲隨機變量的熵(entropy)。而且(勘誤:ln改成log_2),所以此時(勘誤:ln改成log_2)。

舉個例子,假設有個隨機變量,有8個同等概率的狀態,那麼該變量的熵就是

而當這8個狀態的概率分別爲0.5、0.25、以此類推,那麼這時候這個變量的熵就是:


可以發現越是平均分佈的熵越大,越是非平均的熵越小。詳細的參考noiseless coding theorem(shannon,1948),其中就說明了熵是需要將一個隨機變量的狀態傳輸時所需的位數的下限值。現在,接着使用log對數形式。這裏,上通過“nats”單元來測量而不是位數,不同於ln2因子。

    最開始,熵是用在熱力學中的,後面才引入到統計學中 。接下來以另一個觀點來解釋熵。假設我們有N 個相同的對象(比如球),想要將它們放到許多個不同的箱子裏面(個人:這裏是N>n,即球很多,箱子少,且每個箱子的球數有限制,更準確的說,應該是將N個球劃分成不同的堆)。即第個箱子裏面有個球。那麼對於第一個球的選擇來說就有N種,第二個就有(N-1)種,總的就有種。並且我們不關心每個箱子中的排序,那麼對於第個箱子來說,其排序有種,所以總的分配這N個球到箱子中的方式有:


這被稱之爲multiplicity。熵可以被定義成multiplicity的log函數,並加上一個合適的縮放常量:


假設N趨向於無窮大,並且是固定的,通過使用stirling的逼近式子:


得到結果:


這裏使用了是某個球放入第個箱子的概率(個人:從球的角度考慮)。在物理的熱力學來說,關於箱內的球的排序叫做微觀狀態,而對於第幾個箱子的概率,叫做宏觀狀態。這裏的multiplicity W 就是宏觀狀態的權重了。我們可以將箱子解釋成離散隨機變量的狀態。隨機變量的熵爲:


分佈在一些數值上達到了高峯,這時候會有個相對低的熵,不過隨着更多的值說表現的更高的熵。如下圖所示:


因爲,熵是非負的,所以它在pi = 1的時候,得到最小值爲0,並且。最大值熵的狀態爲用拉格朗日乘子在概率上強制執行歸一化約束(即讓總的概率加起來爲1)。也就是在最大化:


的時候,會發現都是相等的,並且,這裏M爲狀態的總數。熵的對應的值爲。該結果同樣可以通過Jensen不等式推導得到。爲了驗證在駐點上的確是最大值,可以通過對熵求取二階導數,:

(勘誤:左邊分子應該是2,書寫錯誤)

這裏是單元矩陣的元素。

       我們可以通過將熵的定義擴展到基於連續變量x 的分佈上。首先將x 劃分成寬度爲的條形矩陣。然後假設是連續的,均值理論(weisstein,1999)告訴我們,對於每個條矩陣來說,都存在一個值,使得:

                                                                        (1.6.12)

將連續值離散化,對於觀測到的值的概率爲。這樣得到的熵可以通過下面的形式計算:


這裏默認,現在我們忽略上面式子的第二項,並且考慮。上面右邊第一項將會有積分。使得:

(勘誤:左邊少了個負號)

該式子右邊的項叫做微分熵。可以發現熵的離散和連續的形式不同在於的大小,當的時候會發散。這說明了一個連續的變量要非常準確的表示的話,需要大量的位(bit)。對於一個基於多連續變量的密度來說,表示成向量X,那麼微分熵爲:


在之前的離散分佈中,我們知道熵最大的時候,也就是變量的狀態的概率都相等的時候。現在來看看在連續變量上的情況。爲了得到一個良好定義的最大值,需要將的第一和第二個進行約束,使之保留歸一化常量。所以最大化微分熵的時候,會有如下三個約束:


受約束的最大值可以通過使用拉格朗日乘子來實現:


使用變量微積分,求得當函數導數等於0的時候:


將該結果帶入到之前的三個約束中,得到如下結果:


所以最大化微分熵得到的其實就是高斯。注意到我們沒有限制分佈是非負的,因爲得到的結果的確是非負的,所以就不需要增加這條限制了。

        如果我們計算高斯的微分熵,那麼得到:

                                                                       (1.6.20)

所以我們可以發現熵會隨着分佈變寬(方差變大)而增加,這結果同樣顯示了不同於離散熵,微分上可以是負的,因爲在式子(1.6.20中)當。假設我們有個聯合分佈。如果X的值已知了,那麼就需要通過額外的信息來得到Y的值。所以一般需要得到值的額外的信息爲:


這叫做在給定的條件熵。正如之前所說的,使用懲罰規則,條件熵有着關係:


這裏的微分熵,是邊緣分佈的微分熵。所以描述所需要的信息,等於需要描述的信息加上給定的信息相加。(個人:因爲用了ln,所以相乘變相加了)。

1.6.1 相對熵和互信息

        之前介紹了信息論的一些概念,並且着重介紹了熵的一些理解,現在是時候將其與模式識別聯繫到一起了,假設我們有個未知的分佈,然後想要通過一個分佈去逼近它,並且假設我們使用作爲對X的值的編碼,然後將此傳送給接收端,那麼就需要額外的信息來指定值X的確是所表示的,也就是要足夠接近:


上面這個式子被稱之爲相對熵或者說叫做Kullback-Leibler 散度,是Kullback和Leibler在1951年提出的。介於分佈之間。注意到該公式並沒有對稱性,所以

,並且我們注意到Kl散度滿足,並且有且僅當的時候它纔等於0。不過爲了方便介紹,這裏需要引入凸函數的概念:一個函數被稱之爲凸函數,只有當它的每個弦(chord)都位於函數的上面或超過函數,正如下圖:


任何介於x=a和x=b之間的值可以寫成形式,並且。對應的弦上面的點可以寫成,並且該點對應到函數上的值爲。凸也就是說:

                                                (1.6.1.2)

這相當於該函數的二階導數在任何地方都是正的。凸函數的例子有。當函數只有在時才相等的函數叫做嚴格凸函數。如果一個函數有着完全相反的特性,也就是每條弦都位於函數上或者函數下面,那麼這被稱之爲凹函數,當然也有對應的嚴格凹的情況。如果一個函數是凸函數,那麼其反函數就是凹函數。

     使用該凸函數理論,我們可以通過式子(1.6.1.2)中發現一個凸函數滿足:

                                                                     (1.6.1.3)

這裏對於任何點集來說,都滿足並且。式子(1.6.1.3)也被稱之爲Jensen不等式。如果我們將解釋成基於離散變量取值的概率分佈,那麼式子(1.6.1.3)可以寫成:


這裏表示期望。對於連續變量來說,Jensen不等式的形式爲:


我們可以將上面式子的Jensen不等式用在KL散度裏面得到:


這裏使用到了是一個凸函數和歸一化約束。事實上,是一個嚴格凸函數,所以不等式有且僅當對於所有,都有纔是相等的。所以我們將KL散度解釋成對兩個分佈相似性的測量方法。

      我們可以發現在數據壓縮和密度估計之間是有緊密聯繫的(即如何對一個未知概率分佈進行建模),因爲最有效率的壓縮當我們知道真正的分佈的時候就可以知道。如果使用一個不同於真實分佈的分佈,那麼我們的編碼肯定是低效的,而且平均所需的額外信息至少是等於這兩個分佈之間的KL散度的。

       假設數據是來自於某個未知的分佈,我們可以通過使用一些參數化的分佈來逼近該未知分佈,通過調節這些可調節的參數,例如多元高斯。一種決定參數的方法就是最小化之間的KL散度。不過我們不能直接這麼做,因爲這還是需要知道是什麼。不過,我們可以假設我們有了一個有限的觀測的數據點,其中,這些點都來自於的採樣。然後關於的期望可以通過這些點的有限累加來逼近,使用式子:


這樣就得到了:

(勘誤:右邊少乘了1/N)

上面式子中右邊第二項是獨立於的,第一項基於分佈下的負log似然函數。所以我們可以發現最小化這個KL散度其實就相當於最大化該似然函數。

       現在考慮基於變量形成的兩個集合的聯合分佈。如果這兩個變量是獨立的,那麼聯合分佈就等於兩個邊緣分佈的乘積。如果變量是非獨立的,那麼可以通過計算邊緣分佈的乘積和聯合分佈之間的KL散度來計算它們是否足夠獨立:


這被稱之爲變量之間的互信息。從KL散度的屬性可以得知,有且僅當是獨立的時候,(勘誤:這裏應該是 [ ] 而不是())不等式的等號纔會成立。使用概率的求和和乘積規則,可以發現互信息與條件熵是相關的:


所以,我們可以將互信息看成是在給定的值下,關於的不確定的約間(reduction)(反之亦然)。從一個貝葉斯角度來說,我們可以將看成是的先驗分佈,而看成是觀測到新的數據的後驗分佈。所以互信息就可以表示在給定新的觀測值下得到的的不確定性的減少(reduction)。




2015年08月28日,第0次修改!








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