關於回歸的線性模型的討論

1. 回歸線性模型綜述

這篇文章我們來討論回歸問題。回歸問題的目標是在給定D維輸入(input) 變數x的情況下,預測一個或者多個連續目標(target)變數t的值。

典型的回歸問題的例子是:多項式曲線擬合問題。

多項式是被稱為線性回歸模型的一大類函數的一個具體的例子。線性回歸模型有著可調節的參數,具有線性函數的性質。

線性回歸模型的最簡單的形式也是輸入變數的線性函數。

但是,通過將一組輸入變數的非線性函數進行線性組合,我們可以獲得一類更加有用的函數,被稱為基函數(basis function)。這樣的模型是參數的線性函數,這使得其具有一些簡單的分析性質,同時關於輸入變數是非線性的。

給定一個由N個觀測值{xn}組成的數據集,其中n = 1, . . . , N,以及對應的目標值{tn},我們的目標是預測對於給定新的x值的情況下,t的值。

對於這個目標,有2個不同的實現方法:

  • 判別式方法:直接建立一個適當的函數y(x),對於新的輸入x,這個函數能夠直接給出對應的t的預測。
  • 生成式方法:從一個概率的觀點來看,我們的目標是對預測分布p(t | x)建模,因為它表達了對於每個x值,我們對於t的值的不確定性。從這個條件概率分布中,對於任意的x的新值,我們可以對t進行預測。常用的概率預測方法是極大似然估計,這種方法等同於最小化一個恰當選擇的損失函數的期望值。

 

2. 線性基函數模型

回歸問題的最簡單模型是輸入變數的線性組合:

其中 x = (x1 , . . . , xD)T 。這通常被簡單地稱為線性回歸(linear regression)

這個模型的關鍵性質是它是參數w0, . . . , wD的一個線性函數。但是,它也是輸入變數xi的一個線性函數,這給模型帶來的極大的局限性。

因此我們這樣擴展模型的類別:將輸入變數擴展為任意的非線性函數組合,形式為:

其中φj(x)被稱為基函數(basis function)。通過把下標 j 的最大值記作M-1,這個模型中的參數總數為M。 

參數w0使得數據中可以存在任意固定的偏置,這個值通常被稱為偏置參數(bias parameter)。通常,定義一個額外的虛「基函數」φ0(x) = 1是很方便的,這時:

其中w = (w0, . . . , wM−1)T 且φ = (φ0, . . . , φM-1)T

在許多模式識別的實際應用中,我們會對原始的數據變數進行某種固定形式的預處理或者特徵抽取。這裡的基函數{φj(x)}代表了特徵工程後的單個特徵向量維度,如果我們不做任何特徵工程的話,基函數就是原始的某個數據向量維度。

通過使用非線性基函數,我們能夠讓函數y(x, w)成為輸入向量x的一個非線性函數。但是,形如下式

的函數仍然被稱為線性模型,因為這個函數是w的線性函數

正是這種關於參數的線性,極大地簡化了對於這列模型的分析。 

在這篇文章中討論的多項式擬合的例子是這個模型的一個特例,那裡有一個輸入變數x,基函數是x的冪指數的形式,即φj(x) = xj

對於基函數,有許多其他的選擇,例如:

其中 μj 控制了基函數在輸入空間中的位置,參數 s 控制了基函數的空間大小。這種基函數通常被稱為「高斯」基函數。

另一種可能的選擇是sigmoid基函數,形式為:

其中σ(a)是logistic sigmoid函數,定義為:

下圖說明了基函數的不同選擇情況:

左圖是多項式基函數,中圖是形式為高斯基函數,右圖是sigmoid基函數

本章中的大部分討論都與基函數的選擇無關。我們的大部分討論將會同等地適用於基函數向量φ(x)的形式為φ(x) = x的情形。

因此,為了保持記號的簡潔,我們把注意力集中於單一目標變數t的情形。

 

3. 損失函數

0x1:最大似然與最小平台損失函數的等價性

我們已經知道,回歸線性模型下的最小誤差解,等價於高斯雜訊模型的假設下的最大似然解。這個章節,我們來更加詳細地討論下最小平方的方法以及它與最大似然方法的關係。

我們假設目標變數t由確定的函數y(x, w)給出,這個函數被附加了高斯雜訊, 即:

其中ε是一個零均值的高斯隨機變數,精度(方差的倒數)為β。因此我們有:

如果我們確定了損失函數,那麼對於x的一個新值,最優的預測由目標變數的條件均值給出。在上式給出的高斯條件分布的情況下,條件均值可以簡單地寫成:

現在考慮一個輸入數據集X = {x1, . . . , xN},對應的目標值為t1, . . . , tN 。我們把目標向量{tn}組成一個列向量,記作t。

假設這些數據點是獨立地從分布

中抽取的,那麼我們可以得到下面的似然函數的表達式, 它是可調節參數w和β的函數,形式為:

取對數似然函數的對數,使用一元高斯分布的標準形式,我們有:

其中平方和誤差函數的定義為:

得到了似然函數,我們可以使用最大似然的方法確定w和β。

對上面給出的對數似然函數,求梯度為:

令這個梯度等於零,可得:

求解w,我們有 

這被稱為最小平方問題的規範方程(normal equation)

這裡Φ是一個N × M 的矩陣,被稱為設計矩陣(design matrix),它的元素為Φnj = φj(xn),即:

量:

被稱為矩陣Φ的Moore-Penrose偽逆矩陣(pseudo-inverse matrix)。它可以被看成逆矩陣的概念對於非方陣的矩陣的推廣。

實際上,如果Φ是方陣且可逆,那麼使用性質(AB)-1 = B-1A-1,我們可以看到:

 

現在,我們可以更加深刻地認識偏置參數w0。如果我們顯式地寫出偏置參數,那麼誤差函數

變為:

因此,偏置w0補償了目標值的平均值(在訓練集上的)與基函數的值的平均值的加權求和之間的差。 

0x2:最小平方的幾何描述

這個小節,我們來討論最小平方解的幾何描述,這有助於理解最小平方損失的數學本質。

我們考慮一個 N 維空間,它的坐標軸由tn給出,即t = (t1, . . . , tN)T 是這個空間中的一個向量。每個在N個數據點處估計的基函數φj(xn)表示為這個空間中的一個向量,記作φj,如下圖所示。

注意,φj對應於Φ的第j列,而φ(xn)對應於Φ的第i行。

如果基函數的數量M小於數據點的數量N,那麼M個向量φj將會張成一個M維的子空間S(線性解空間)。

我們定義y是一個N維向量,它的第n個元素為y(xn,w),其中n = 1, . . . , N 。由於y是向量φj的任意線性組合,因此它可以位於M維子空間的任何位置。

這樣,平方和誤差函數

就等於y和t之間的平方歐氏距離(只相差一個因子1)。

因此,w的最小平方解對應於位於子空間S的與t最近的y的選擇。直觀來看,這個解對應於t在子空間S上的正交投影。 

在實際應用中,當ΦTΦ接近奇異矩陣時,直接求解規範方程會導致數值計算上的困難。特別地,當兩個或者更多的基向量φj共線或者接近共線時,最終的參數值會相當大,因為這意味著模型過度複雜、很容易導致過擬合。

0x3:順序學習/批次學習

上一節說過,在實際應用中,當ΦTΦ接近奇異矩陣時,直接求解規範方程會導致數值計算上的困難。這在實際情況中並不少見,具體場景中的數據是複雜、非線性的,大部分時候,基於最小損失函數,求矩陣的逆是困難的,甚至是不可行的。

為了解決這個問題,這一節我們來討論另一個近似求解演算法,隨機梯度下降(stochastic gradient descent)

如果誤差函數由數據點的和組成

那麼在觀測到模式n之後,隨機梯度下降演算法使用下式更新參數向量w:

其中 τ 表示迭代次數,η 是學習率參數。w被初始化為某個起始向量w(0)。對於平方和誤差函數

的情形,我們有

其中φn = φ(xn)。這被稱為最小均方(least-mean-squares)或者LMS演算法。η的值需要仔細選擇,確保演算法收斂。 

和最大似然估計不同,隨機梯度下降並不一次性讀取所有數據,而是一次讀取一個批次(N=1時被稱為順序學習)。 

0x4:正則化最小平方

這是一個非常有趣的話題,筆者專門開了一篇文章討論它,有興趣的讀者可以移步。

Relevant Link:

 (Pattern Recognization and Maching Learning)(PRML)》

0x5:其他最小化誤差搜索演算法 

在非線性回歸方程中,我們無法通過直接求導得到極值,所以非線性回歸中常常使用”逐步逼近“的思想,在不斷地迭代中不斷逼近最優的模型參數

1、最速下降法

最速下降法(又稱梯度法,或Steepest Descent),是無約束最優化領域中最簡單的演算法,它屬於比較古老提出的一種演算法。但是,它的理念思想卻對之後提出的非線性回歸模型的參數搜索奠定了基礎,我們會發現在其他某些演算法中,也有最速下降法的「影子」

最速下降法只使用目標函數的一階導數資訊,從「梯度法」這個名字可以看出它的本意是取目標函數值「最快下降」的方向作為搜索方向。於是問題來了:沿什麼方向,目標函數 f(x)的值下降最快呢?答案是沿負梯度方向  =gk (即負一階導數方向),函數值下降最快。我們通過公式推導來說明一下該結論的原理

將目標函數在點處泰勒展開:

高階無窮小 o(α) 可忽略,由於我們定義了步長 α>0(即朝某個方向前進的一段距離),同時,只有當 時, f(x)<f(xk) (即函數值是下降的)。所以 dk和gk的方向至少需要是相反的,才能達到下降的目的
同時Cauchy-Schwartz不等式(柯西-許瓦茲不等式)可得:當且僅當 dk=gk 時,等號成立,所以 d=gk 時, 最小(<0), f(x) 下降量最大

所以 gk 是最快速下降方向

但是最速下降法並不如它名字里說的是最速的,事實是,它只在局部範圍內具有「最速」性質。對整體求解過程而言,它的下降非常緩慢。

dk = -gk本質上意味著GD不斷在走90度折角的Z字型下降,所以下降過程是不斷來回折的,並不快

2、最速下降法(梯度法)衍生改進 – 批量梯度下降法(Batch Gradient Descent,BGD)

BGD顧名思義,是一次使用整批m個樣本參與計算loss function

(1)將J(theta)對theta求偏導,得到每個theta對應的的梯度,m代表樣本個數:

(2)由於是要最小化風險函數,所以按每個參數theta的梯度負方向,來更新每個theta:

(3)從上面公式可以注意到每更新一步,都要用到樣本的所有的數據,如果m很大,那麼可想而知這種方法的迭代速度會相當的慢。對於批量梯度下降法,樣本個數m,x為n維向量,一次迭代需要把m個樣本全部帶入計算,

迭代一次計算量為m*n2

3、批量梯度下降法改進 – 隨機梯度下降(Stochastic Gradient Descent,SGD)

BGD的缺點是一次用到了整批樣本參與運算,然而我們知道冗餘特性在很多數據集中都是廣泛存在的,即一個樣本集中存在部分的樣本在各個維度上的特徵是類似的,對於這種情況,

即使我們不使用全部的樣本集參與運算也不會損失太多精確度。隨機梯度下降正是藉助”隨機思想”從完整的樣本集中取樣一個相對較小批次的子數據集作為本次loss function的運算輸入,

在降低m的前提下力求盡量少的損失精確度,兩者的關係可以這樣理解:隨機梯度下降方法以損失很小的一部分精確度和增加一定數量的迭代次數為代價,換取了總體的優化效率的提升。增加的迭代次數遠遠小於樣本的數量

但是,SGD伴隨的一個問題是噪音較BGD要多,使得SGD並不是每次迭代都向著整體最優化方向

4、高斯 – 牛頓法

首先,選擇一個接近函數 (x)零點的 x0,計算相應的 (x0) 和切線斜率f  ‘ (x0)(這裡f ‘ 表示函數 f  的導數)。然後我們計算穿過點(x0,  f  (x0)) 並且斜率為‘(x0)的直線和 軸的交點的x坐標,也就是求如下方程的解:

我們將新求得的點的 坐標命名為x1,通常x1會比x0更接近方程f  (x) = 0的解。因此我們現在可以利用x1開始下一輪迭代。迭代公式可化簡為如下所示:

已經證明,如果f  ‘ 是連續的,並且待求的零點x是孤立的,那麼在零點x周圍存在一個區域,只要初始值x0位於這個鄰近區域內(如果不在這個區域內就可能出現局部最優但全局不最優),那麼牛頓法必定收斂。 並且,

如果f  ‘ (x)不為0, 那麼牛頓法將具有平方收斂的性能. 粗略的說,這意味著每迭代一次,牛頓法結果的有效數字將增加一倍。下圖為一個牛頓法執行過程的例子。

由於牛頓法是基於當前位置的切線來確定下一次的位置,所以牛頓法又被很形象地稱為是”切線法”

牛頓法的優缺點

優點:
1. 頓法是二階收斂,梯度下降是一階收斂,所以牛頓法就更快。如果更通俗地說的話,比如你想找一條最短的路徑走到一個盆地的最底部,梯度下降法每次只從你當前所處位置選一個坡度最大的方向走一步,牛頓法在選擇方向時,不僅會考慮坡度是否夠大,還會考慮你走了一步之後,坡度是否會變得更大。所以,可以說牛頓法比梯度下降法看得更遠一點,能更快地走到最底部。(牛頓法目光更加長遠,所以少走彎路;相對而言,梯度下降法只考慮了局部的最優,沒有全局思想。)

缺點:
1. 牛頓法是一種迭代演算法,每一步都需要求解目標函數的Hessian矩陣的逆矩陣,計算比較複雜。

從幾何上說,牛頓法就是用一個二次曲面去擬合你當前所處位置的局部曲面,而梯度下降法是用一個平面去擬合當前的局部曲面,通常情況下,二次曲面的擬合會比平面更好,所以牛頓法選擇的下降路徑會更符合真實的最優下降路徑

註:紅色的牛頓法的迭代路徑,綠色的是梯度下降法的迭代路徑

5、牛頓法改進 – 擬牛頓法(Quasi-Newton Methods)

擬牛頓法的本質思想是改善牛頓法每次需要求解複雜的Hessian矩陣的逆矩陣的缺陷,它使用正定矩陣來近似Hessian矩陣的逆,從而簡化了運算的複雜度

擬牛頓法和最速下降法一樣只要求每一步迭代時知道目標函數的梯度。通過測量梯度的變化,構造一個目標函數的模型使之足以產生超線性收斂性。這類方法大大優於最速下降法,尤其對於困難的問題。另外,因為擬牛頓法不需要二階導數的資訊,所以有時比牛頓法更為有效

6、牛頓一拉夫森法

牛頓—拉夫森(Newton-raphson)法的基本思想也是利用泰勒級數展開近似,通過迭代運算尋找最小二乘函數最優解的數值解法。

但區別在於,牛頓—拉夫森法的迭代運算,相當於在前一個參數估計向量的基礎上,按單位移動幅度(通常稱為「步長」)搜索更好的參數估計值,因此牛頓—拉夫森法也是一 種搜索法(不斷進行局部最優搜索)

牛頓—拉夫森法的優點是搜索方向和步長的確定比較科學,因此找到滿足精度要求最優水平的搜索次數一般要小一些。

牛頓—拉夫森方法的缺點是迭代運算中需要反覆計算梯度向量,特別是海塞矩陣的逆矩陣,因此計算工作量很大。事實上,人們在實際應用中常常並不按照牛頓一 拉夫森法進行搜索,而是根據一些簡單法則確定搜索的步長,如「雙向線性搜索法」就是其中常用的方法之一

Relevant Link:

https://support.minitab.com/zh-cn/minitab/18/help-and-how-to/modeling-statistics/regression/supporting-topics/nonlinear-regression/understanding-nonlinear-regression/
https://support.minitab.com/zh-cn/minitab/18/help-and-how-to/modeling-statistics/regression/supporting-topics/nonlinear-regression/understanding-algorithms-and-starting-values-in-nonlinear-regression/
http://blog.csdn.net/ice110956/article/details/22735535
http://202.121.199.249/foundrymate/lessons/data-analysis/24/241.HTM
http://www.cnblogs.com/maybe2030/p/4751804.html#_label1
https://www.codelast.com/%E5%8E%9F%E5%88%9B-%E5%86%8D%E8%B0%88-%E6%9C%80%E9%80%9F%E4%B8%8B%E9%99%8D%E6%B3%95%E6%A2%AF%E5%BA%A6%E6%B3%95steepest-descent/
http://gaolei786.github.io/r/statistics/nlm.smooth.reg.html 
http://kuangnanfang.com/zb_users/upload/2015/09/201509201442740102956811.pdf

 

4. 偏置-方差分解 

目前為止,我們對於回歸的線性模型的討論中,我們假定了基函數的形式和數量都是固定的。

如果使用有限規模的數據集來訓練複雜的模型,那麼使用最大似然方法,或者等價地,使用最小平方方法,會導致嚴重的過擬合問題。然而,通過限制基函數的數量來避免過擬合問題有一個負作用,即限制了模型描述數據中有趣且重要的規律的靈活性。雖然引入正則化項可以控制具有多個參數的模型的過擬合問題。

但是這就產生了一個問題:

如何確定正則化係數λ的合適的值??

過擬合現象確實是最大似然方法的一個不好的性質,這個章節,我們從頻率學家的觀點來考慮一下模型的複雜度問題是。

這種頻率學家的觀點被稱為偏置-方差折中(bias-variance trade-off)

我們會在線性基函數模型中介紹這個概念,因為這樣介紹可以使用簡單的例子來說明一些基本的思想,但是實際上這種討論有著更加普遍的適用性。

在討論回歸問題的決策論時,我們考慮了不同的損失函數。一旦我們知道了 條件概率分布p(t | x),每一種損失函數都能夠給出對應的最優預測結果。使用最多的一個選擇是平方損失函數,此時最優的預測由條件期望(記作h(x))給出,即:

注意,有必要區分決策論中出現的平方損失函數以及模型參數的最大似然估計中出現的平方和誤差函數。

我們可以使用比最小平方更複雜的方法,例如正則化或者純粹的貝葉斯方法,來確定條件概率分布p(t | x)。為了進行預測,這些方法都可以與平方損失函數相結合。

平方損失函數的期望可以寫成:

上式中:

  • 第二項代表分布t本身的方差,在x上進行了平均,它表示目標數據內在的變化性。它y(x)無關,是由數據本身的雜訊造成的,表示期望損失能夠達到的最小值。
  • 第一項與我們對函數y(x)的選擇有關,它打標對數據均值的擬合程度。我們要找一個y(x)的解,使得這一項最小。由於它是非負的,因此我們希望能夠讓這一項的最小值等於零。

如果我們有無限多的數據,以及無限多的計算資源,那麼原則上我們能夠以任意的精度尋找回歸函數h(x),這會給出y(x)的最優解。

然而,在實際應用中,我們的數據集D只有有限的N個數據點,從而我們不能夠精確地知道回歸函數h(x)。

如果我們使用由參數向量w控制的函數y(x, w)對h(x)建模,那麼從貝葉斯的觀點來看,我們模型的不確定性是通過w的後驗概率分布來表示的。

但是,頻率學家的方法涉及到根據數據集D對w進行點估計,然後試著通過下面的思想實驗來表示估計的不確定性。假設我們有許多數據集,每個數據集的大小為N ,並且每個數據集都獨立地從分布p(t, x)中抽取。對於任意給定的數據集D,我們可以運行我們的學習演算法,得到一個預測函數y(x; D)。不同的數據集會給出不同的函數,從而給出不同的平方損失的值。這樣,特定的學習演算法的表現就可以通過取各個數據集上的表現的平均值來進行評估。

考慮上面平方損失函數的期望函數的第一項的被積函數

對於一個特定的數據集D,它的形式為:

由於這個量與特定的數據集D相關,因此我們對所有的數據集取平均。如果我們在括弧內加上然後減去ED[y(x; D)],然後展開,我們有:

我們現在關於D求期望,然後注意到最後一項等於零,可得:

我們看到,y(x; D)與回歸函數h(x)的差的平方的期望可以表示為兩項的和。

  • 第一項,被稱為平方偏置(bias),表示所有數據集的平均預測與預期的回歸函數之間的差異。
  • 第二項,被稱為方差(variance),度量了對於單獨的數據集,模型所給出的解在平均值附近波動的情況,因此也就度量了函數y(x; D)對於特定的數據集的選擇的敏感程度。 

如果我們把這個展開式帶回到公式

中,那麼我們就得到了下面的對於期望平方損失的分解:

 

其中:

我們的目標是最小化期望損失,它可以分解為(平方)偏置、方差和一個常數雜訊項的和。

正如我們將看到的那樣,在偏置和方差之間有一個折中

  • 對於非常靈活的模型來說,偏置較小,方差較大
  • 對於相對固定的模型來說,偏置較大,方差較小

有著最優預測能力的模型時在偏置和方差之間取得最優的平衡的模型。

這裡通過之前討論過的正弦數據集來說明。我們產生了100個數據集合,每個集合都包含N = 25個數據點,都是獨立地從正弦曲線h(x) = sin(2πx)抽取的。

數據集的編號為l = 1, . . . , L,其中L = 100,並且對於每個數據集D(l),我們通過最小化正則化的誤差函數,擬合了一個帶有24個高斯基函數的模型,然後給出了預測函數y(l)(x),如下圖所示。

右側一列給出了對應的100個擬合的均值 (紅色)以及用於生成數據集的正弦函數(綠色 

第一行對應著較大的正則化係數λ,這樣的模型的方差很小(因為左側圖中的紅色曲線看起來很相似),但是偏置很大(因為右側圖中的兩條曲線看起來相當不同)。

相反,在最後一行,正則化係數λ很小,這樣模型的方差較大(因為左側圖中的紅色曲線變化性相當大),但是偏置很小(因為平均擬合的結果與原始正弦曲線十分吻合)。

注意,把M = 25這種複雜模型的多個解進行平均,會產生對於回歸函數非常好的擬合, 這表明求平均是一個很好的步驟。事實上,將多個解加權平均是貝葉斯方法的核心,雖然這種求平均針對的是參數的後驗分布,而不是針對多個數據集。 

對於這個例子,我們也可以定量地考察偏置-方差折中。平均預測由下式求出:

並且積分後的平方偏置以及積分後的方差為:

下圖給出了這些量以及它們的求和關於lnλ的函數影像。

我們看到,

  • 小的λ使得模型對於各個數據集里的雜訊的擬合效果非常好,導致了較大的方差。
  • 相反,大的λ把權值參數拉向零,導致了較大的偏置。

雖然偏置-方差分解能夠從頻率學家的角度對模型的複雜度提供一些有趣的認識,但是它的實用價值很有限。這是因為偏置-方差分解依賴於對所有的數據集求平均,而在實際應用中我們只有一個觀測數據集。如果我們有大量的已知規模的獨立的訓練數據集,那麼我們最好的方法是把它們組合成一個大的訓練集,因為海量數據集N本身就會降低給定複雜度的模型的過擬合程度。

筆者注

在有的教材中,偏置-方差分解,也被稱為結構化風險-經驗花風險。 

 

5. 貝葉斯線性回歸 

在上一章的結尾我們說到,偏置-方差分解是一個理論化分析工具,無法在實際中應用。由於有這麼多局限性,因此我們在這一節里將討論線性基函數模型的貝葉斯觀點。它不僅提供了對於過擬合現象的深刻認識,還提出了解決模型複雜度問題的實用的技術。 

在我們討論使用最大似然方法設置線性回歸模型的參數時,我們已經看到由基函數的數量控制的模型的複雜度需要根據數據集的規模進行調整。為對數似然函數增加一個正則化項意味著模型的複雜度可以通過正則化係數的值進行控制,雖然基函數的數量和形式的選擇仍然對於確定模型的整體行為十分重要。

這就產生了對於特定的應用確定合適的模型複雜度的問題。這個問題不能簡單地通過最大化似然函數來確定,因為這總會產生過於複雜的模型和過擬合現象。

獨立的額外數據能夠用來確定模型的複雜度,但是這需要較大的計算量(被稱為留出法驗證),並且浪費了有價值的數據。

因此我們轉而考慮線性回歸的貝葉斯方法,這會避免最大似然的過擬合問題,也會引出使用訓練數據本身確定模型複雜度的自動化方法

與之前一樣,為了簡單起見,我們只考慮單一目標變數t的情形。對於多個目標變數情形的推廣是很直接的。

0x1:參數分布

我們先從參數分布說起,這類分布具有確定性的分布函數,且函數的形態有幾個數量有限的參數控制,因為被稱為參數分布

關於線性擬合的貝葉斯方法的討論,我們首先引入模型參數w的先驗概率分布。現在這個階段,我們把雜訊精度參數β當做已知常數。

首先,我們注意到,由公式

定義的似然函數p(t | w)是w的二次函數的指數形式。於是對應的共軛先驗是高斯分布,形式為:

均值為m0,協方差為S0。 

接下來我們計算後驗分布,它正比於似然函數與先驗分布的乘積。由於共軛高斯先驗分布的選擇,後驗分布也是高斯分布。

我們可以對指數項進行配平方,然後使用歸一化的高斯分布的標準結果找到歸一化係數,這樣就計算出了後驗分布的形式。

其中 

注意,由於後驗分布是高斯分布,它的眾數恰好與它的均值相同。因此最大後驗權向量的結果就是wMAP = mN 。如果我們考慮一個無限寬的先驗S0 = α−1I,其中α → 0,那麼後驗概率分布的均值mN就變成了最大似然值wML

類似地,如果N = 0,那麼後驗概率分布就變成了先驗分布。此外,如果數據點是順序到達的,那麼任何一個階段的後驗概率分布都可以看成後續數據點的先驗。此時新的後驗分布再次由上面公式給出。

我們可以使用直線擬合的簡單的例子來說明線性基函數的貝葉斯學習過程,以及後驗概率分布的順序更新過程

考慮一個單一輸入變數x,一個單一目標變數t,以及一個形式為y(x, w) = w0 + w1x的線性模型。由於這個模型只有兩個可調節參數,因此我們可以直接在參數空間中畫出先驗分布和後驗分布。

我們從函數f(x, a) = a0 + a1x中人工生成數據,其中a0 = −0.3,a1 = 0.5。

生成數據的方法為:首先從均勻分布U(x | −1, 1)中選擇xn的值,然後計算f(xn , a),最後增加一個標準差為0.2的高斯雜訊,得到目標變數tn

我們的目標是從這樣的:從數據中恢復a0和a1的值,並且我們想研究模型對於數據集規模的依賴關係

這裡我們假設雜訊方差是已知的,因此我們把精度參數設置為它的真實值β = (1/0.2)2 = 25。類似地,我們把α固定為2.0。

下圖給出了當數據集的規模增加時貝葉斯學習的結果,還展示了貝葉斯學習的順序本質,即當新數據點被觀測到的時候,當前的後驗分布變成了先驗分布。

 

  • 這張圖的第一行對應於觀測到任何數據點之前的情況,給出了w空間的先驗概率分布的影像,以及函數y(x, w)的六個樣本,這六個樣本的w都是從先驗概率分布中隨機抽取的。
  • 在第二行,我們看到了觀測到一個數據點之後的情形。數據點的位置(x, t)由右側一 列中的藍色圓圈表示。左側一列是對於這個數據點的似然函數p(t, w)關於w的函數影像。注意,似然函數提供了一個溫和的限制,即直線必須穿過數據點附近的位置,其中附近位置的範圍由雜訊精度β確定。為了進行對比,用來生成數據集的真實參數值a0 = −0.3以及a1 = 0.5在圖 3.7的左側一列被標記為白色十字。如果我們把這個似然函數與第一行的先驗概率相乘,然後歸一化,我們就得到了第二行中間的圖給出的後驗概率分布。從這個後驗概率分布中抽取w的樣 本,對應的回歸函數y(x, w)被畫在了右側一列的途中。注意,這些樣本直線全部穿過數據點的附近位置。
  • 這張圖的第三行展示了觀測到第二個數據點的效果。與之前一樣,這個數據點由右側一列的藍色圓圈表示。第二個數據點自身對應的似然函數在左側一列的圖中給出。如果我們把這個似然函數與第二行的後驗概率分布相乘,我們就得到了第三行中間一列的圖給出的後驗概率分布。注意,這個後驗概率分布與我們將原始的先驗分布結合兩個數據點的似然函數得到的後驗概率分布完全相同(滿足結合律)。現在,後驗概率分布被兩個數據點影響。由於兩個點足夠定義一條直線,因此目前已經得到了相對較好的後驗概率分布。從這個後驗分布中抽取的樣本產生了第三列中紅色的函數,我們看到這些函數同時穿過了兩個數據點的附近。
  • 第四行展示了觀測到20個數據點的效果。左側的圖展示了第20個數據點自身的似然函數,中間的圖展示了融合了20次觀測資訊的後驗概率分布。注意與第三行相比,這個後驗概率分布變得更加尖銳。在無窮多個數據點的極限情況下,後驗概率分布會變成一個Delta函數。這個函數的中心是用白色十字標記出的真實參數值。 

在貝葉斯理論中,先驗分布本質上代表了一種結構化經驗,它可以是任意的函數形式。

例如,我們可以推廣高斯先驗分布,得到 

其中q = 2的情形對應於高斯分布,並且只有在這種情形下的先驗分布才是公式

給出的 似然函數的共軛先驗。

找到w的後驗概率分布的最大值對應於找到正則化誤差函數

的最小值。

在高斯先驗的情況下,後驗概率分布的眾數等於均值,但是如果q != 2,這個性質就不成立了。 

0x2:預測分布

在實際應用中,我們通常感興趣的不是w本身的值(生成式模型),而是對於新的x值預測出t的值(判別式模型)。這需要我們計算出預測分布(predictive distribution),定義為

其中t是訓練數據的目標變數的值組成的向量。並且,為了簡化記號,我們在右側省略了條件概率中出現的輸入向量。

目標變數的條件概率分布p(t | w, w, β)由公式

給出,後驗分布由公式

給出。綜上,我們看到預測分布的形式為:

 

其中預測分布的方差σN2(x)為:

上式的第一項表示數據中的雜訊,而第二項反映了與參數w關聯的不確定性。

由於雜訊和w的分布是相互獨立的高斯分布,因此它們的值是可以相加的。

注意,當額外的數據點被觀測到的時候,後驗概率分布會變窄。從而可以證明出:

σN+12(x) ≤ σN2(x)

在極限N → ∞的情況下,上式的第二項趨於零,從而預測分布的方差只與參數β控制的具有可加性的雜訊有關。 

為了說明貝葉斯線性回歸模型的預測分布,讓我們回到正弦數據集例子

上圖中,我們調整一個由高斯基函數線性組合的參數模型,使其適應於不同規模的數據集,然後觀察對應的後驗概率分布。這裡,綠色曲線對應著產生數據點的函數sin(2πx)(帶有附加的高斯雜訊)。大小為N = 1, N = 2, N = 4和N = 25的數據集在四幅圖中用藍色圓圈表示。對於每幅圖,紅色曲線是對應的高斯預測分布的均值,紅色陰影區域是均值兩側的一個標準差範圍的區域。

注意,預測的不確定性依賴於x,並且在數據點的鄰域內最小。同時,不確定性的程度 隨著觀測到的數據點的增多而逐漸減小。

但是,上圖的影像只給出了每個點處的預測方差與x的函數關係。 為了更加深刻地認識對於不同的x值的預測之間的協方差,我們可以從w的後驗概率分布中抽取樣本,然後畫出對應的函數y(x, w),如下圖所示。

 

如果我們使用局部的基函數(例如高斯基函數),那麼在距離基函數中心比較遠的區域,公式

給出的預測方差的第二項的貢獻將會趨於零,只剩下雜訊的貢獻β-1。因此,當對基函數所在的區域之外的區域進行外插的時候,模型對於它做出的預測會變得相當確定,這通常不是我們想要的結果。

通過使用被稱為高斯過程的另一種貝葉斯回歸方法,這個問題可以被避免。

注意,如果w和β都被當成未知的,我們可以引入一個由高斯-Gamma分布定義的共軛先驗分布p(w, β)。在這種情況下,預測分布是一個學生t分布。 

 

6. 固定基函數的局限性 

在這篇文章中,我們已經關注了由固定的非線性基函數的線性組合組成的模型。我們已經看到,對於參數的線性性質的假設產生了一系列有用的性質,包括最小平方問題的解析解,以及容易計算的貝葉斯方法。

此外,對於一個合適的基函數的選擇,我們可以建立輸入向量到目標值之間的任意非線性映射。因此,似乎這樣的模型建立的解決模式識別問題的通用框架。

不幸的是,線性模型有一些重要的局限性,這使得我們需要要轉而關注更加複雜的模型,例如支援向量機和神經網路。

困難的產生主要是因為我們假設了基函數在觀測到任何數據之前就被固定了下來,而這正是維度災難問題的一個表現形式。結果,基函數的數量隨著輸入空間的維度D迅速增長,通常是指數方式的增長

幸運的是,真實數據集有兩個性質,可以幫助我們緩解這個問題。

  • 第一,數據向量{xn}通常位於一個非線性流形內部。由於輸入變數之間的相關性,這個流形本身的維度小於輸入空間的維度。如果我們使用局部基函數,那麼我們可以讓基函數只分布在輸入空間中包含數據的區域。這種方法被用在徑向基函數網路中,也被用在支援向量機和相關向量機當中。神經網路模型使用可調節的基函數, 這些基函數有著sigmoid非線性的性質。神經網路可以通過調節參數,使得在輸入空間的區域中基函數會按照數據流形發生變化。
  • 第二,目標變數可能只依賴於數據流形中的少量可能的方向。利用這個性質,神經網路可以通過選擇輸入空間中基函數產生相應的方向。