PRML讀書筆記——線性迴歸模型(上)
本章開始學習第一個有監督學習模型——線性迴歸模型。"線性"在這裡的含義僅限定了模型必須是引數的線性函式。而正如我們接下來要看到的,線性迴歸模型可以是輸入變數\(x\)的非線性函式。
書中首先對迴歸問題給出了一個簡短的不那麼正式的定義:
Given a training data set comprising \(N\) observations \(\{x_n\}\), where \(n = 1, ... , N\), together with corresponding target values \(\{t_n\}\), the goal is to predict the value of \(t\)
for a new value of \(x\).
而解決這個問題有兩種思路:一種是直接對\(x \rightarrow t\)的對映\(y(x)\)進行建模,類似判別式模型的建模思路;另一種則從概率的角度出發,首先建模預測變數\(t\)的條件概率分佈\(p(t|x)\),然後通過最小化一個損失函式——對於實數變數通常是均方誤差(squared loss)——給出\(t\)的一個最優估計:\(y(x)=E_t[t|x]\)。(注意區分這裡的損失函式和用於引數迴歸的損失函式。)
線性基函式模型(Linear Basis Function Models)
一個最簡單的線性迴歸模型是將預測變量表示為輸入變數的一組線性組合:
\[y(\mathbf{x}, \mathbf{w}) = w_o + w_1 x_1 + ... + w_D x_D\]
其中,\(\mathbf{x} = (x_1, ..., x_D)^T\)。
這個模型的特點是,它不僅是引數\(w\),也是輸入變數\(x\)的線性函式,因此也有著極大的侷限性。
因此,我們將這個簡單模型擴充套件為對輸入變數進行非線性變換後的線性組合:
\[y(\mathbf{x}, \mathbf{w}) = w_0 + \sum_{j=1}^{M-1}{w_j \phi_j(\mathbf{x})}\]
這個模型被稱為線性基函式模型。其中,\(\phi_j(\mathbf{x})\)被稱為模型的基函式,是一個\(\mathbb{R}^D \rightarrow \mathbb{R}\)的對映,也可以被理解為是對原始輸入特徵\(\mathbf{x}\)
如果我們定義\(\phi_0(\mathbf{x})=1\),則可以用一個緊湊的向量運算來表示這個模型:
\[y(\mathbf{x}, \mathbf{w}) = \sum_{j=0}^{M-1}{w_j \phi_j(\mathbf{x})} = \mathbf{w}^T \mathbf{\phi(x)}\]
顯然,線性基函式模型可以是輸入變數\(\mathbf{x}\)的非線性函式(如果我們選定一組非線性的基函式)。而我們之所以仍稱其為"線性"的模型,是因為它始終是引數\(\mathbf{w}\)的線性函式。
對於單變數的輸入\(x\),常見的基函式有四種:
- Power basis:\(\phi_j(x) = x^j\)
- Gaussian basis:\(\phi_j(x) = \exp\{-\frac{(x-\mu_j)^2}{2s^2}\}\)
- Sigmoidal basis:\(\phi_j(x) = \sigma(\frac{x-\mu_j}{s})\),其中:\(\sigma(x) = \frac{1}{1+\exp(-x)}\)
- Fourier basis:類似於訊號處理裡的小波變換
最大似然和最小二乘法
我們可以從概率角度出發進一步理解這個模型。
假定目標變數\(t\)服從以\(y(\mathbf{x}, \mathbf{w})\)為均值的高斯分佈:
\[t \sim p(t|\mathbf{x}, \mathbf{w}, \beta)=\mathcal{N}(t|y(\mathbf{x}, \mathbf{w}), \beta^{-1})\]
根據決策理論(decision theory),當我們選擇最小化均方誤差函式:
\[E[L]=\int\int{\{y(x)-t\}^2p(x, t)dxdt}\]
做為優化目標時,得到\(t\)的最優估計量為:
\[y(\mathbf{x})=E[t|\mathbf{x}]=\int{tp(t|\mathbf{x})}dt=y(\mathbf{x}, \mathbf{w})\]
那麼,如何得到函式\(y(\mathbf{x}, \mathbf{w})\)的具體形式呢?換言之,我們該如何計算出\(t\)的條件概率分佈引數\(\mathbf{w}\)和\(\beta\)呢?頻率學派的最大似然法給出了一個可行解。
在頻率學派眼裡,模型的引數\(\mathbf{w}\)和\(\beta\)是一個確定值,而資料集\(\mathcal{D}\)是一個隨機變數。具體地,我們假定資料集\(\mathcal{D}\)裡的每一對樣本\((\mathbf{x}, t)\)都是獨立同分布的隨機變數。而對於一般的有監督學習問題,我們通常不考慮輸入變數\(\mathbf{x}\)的分佈。因此,我們可以直接用樣本里目標變數\(t\)的條件概率分佈的乘積來表示這個樣本集合\(\mathcal{D}\)的概率分佈:
\[p(\mathbf{t}|\mathbf{w}, \beta) = \prod_{n=1}^N{\mathcal{N}(t_n|\mathbf{w}^T\mathbf{\phi(x_n)}, \beta^{-1})}\]
對於一個給定的資料集\(\mathcal{D}\)和對應的目標變數\(\mathbf{t} = (t_1, ..., t_N)^T\),上面這個概率分佈又被稱為這個資料集的似然函式(注意,與以\(\mathbf{t}\)為變數的概率分佈函式不同,有著相同表示式的似然函式是以模型引數\(\mathbf{w}\)和\(\beta\)為變數的函式)。通常,我們取其對數形式:
\[\begin{align*}
\ln{p(\mathbf{t}|\mathbf{w}, \beta)} & = \sum_{n=1}^N{\ln\mathcal{N}(t_n|\mathbf{w}^T\mathbf{\phi(x_n)}, \beta^{-1})} \\
& = \frac{N}{2}\ln\beta - \frac{N}{2}\ln(2\pi) - \beta E_D(\mathbf{w})
\end{align*}\]
其中,\(E_D(\mathbf{w})=\frac{1}{2}\sum_{n=1}^N{\{t_n-\mathbf{w}^T\mathbf{\phi(x_n)}\}^2}\)又被稱為平方誤差和(sum-of-squares error)。
最大似然法假定對\(\mathbf{w}\)和\(\beta\)的點估計應使得在當前資料集上的似然函式最大。注意到對於高斯分佈的似然函式,求解\(\mathbf{w}\)的過程等價於最小化平方誤差和\(E_D(\mathbf{w})\)。
我們可以通過令似然函式對\(\mathbf{w}\)和\(\beta\)的偏導為\(0\)直接得到引數估計的解析解:
\[\begin{align*}
\mathbf{w}_{ML} & = (\mathbf{\Phi}^T\mathbf{\Phi})^{-1}\mathbf{\Phi}^T\mathbf{t} \\
\beta_{ML}^{-1} & = \frac{1}{N}\sum_{n=1}^N{\{t_n-\mathbf{w}_{ML}^T\mathbf{\phi(x_n)}\}^2}
\end{align*}\]
其中,\(\mathbf{\Phi}\)(\(\mathbf{\Phi}_{nj}=\phi_j(\mathbf{x}_n)\))被稱為設計矩陣(design matrix),\(\mathbf{\Phi}^\dagger = (\mathbf{\Phi}^T\mathbf{\Phi})^{-1}\mathbf{\Phi}^T\)是矩陣\(\mathbf{\Phi}\)的偽逆(Moore-Penrose pseudo-inverse)。這兩個等式又被稱為是線性迴歸模型的正則方程解。
最小二乘法的幾何解釋
對於一個大小為\(N\)的資料集,我們可以將其目標變數\(\mathbf{t}=(t_1,...,t_N)^T\)看作是\(N\)維空間裡的一個向量。同時,模型的每一個基函式作用在這個資料集上得到的\(N\)個輸入變換也可以被視為是一個\(N\)維向量。假設我們有\(M\)個基函式,則對應著\(M\)個\(N\)維向量。這些向量構成了\(N\)維空間裡的一個\(M\)維子空間\(\mathcal{S}\)。我們對目標變數\(\mathbf{t}\)作出的預估\(\mathbf{y}\)則對應著這個\(M\)維子空間上的一個向量。
最小二乘法告訴我們,我們應選擇使得目標向量\(\mathbf{t}\)和預估向量\(\mathbf{y}\)的(歐式)距離儘可能短的\(\mathbf{y}\)。這等價於將\(\mathbf{y}\)設定為\(\mathbf{t}\)在\(M\)維子空間\(\mathcal{S}\)上的投影向量。這就是最小二乘法的幾何意義。
序列學習演算法
在實際應用中,由於對整個資料集進行矩陣運算的代價太大,正則方程解並不可行。事實上,我們通常採用一種序列學習的演算法,例如SGD,批量地處理資料並學習到模型的引數。
SGD應用線上性迴歸模型時的更新法則如下:
\[\mathbf{w}^{(\tau+1)}=\mathbf{w}^{(\tau)}+\eta(t_n-\mathbf{w}^{(\tau)T}\mathbf{\phi_n})\mathbf{\phi_n}\]
正則化的最小二乘法
通過在誤差函式中引入正則項,正則化提供了一種控制模型過擬合程度的能力。最常見的正則項為L2正則:
\[E_W(\mathbf{w}) = \frac{1}{2}\mathbf{w^Tw}\]
對於線性迴歸模型,採用L2正則修正後的誤差函式為:
\[E(\mathbf{w})=\frac{1}{2}\sum_{n=1}^N\{t_n-\mathbf{w}^T\mathbf{\phi(x_n)}\}^2+\frac{\lambda}{2}\mathbf{w^Tw}\]
其中\(\lambda\)為正則係數,用於控制正則項在計算誤差時的重要性,進而調節模型的複雜度和過擬合的程度。
L2正則又被稱為weight decay技術,這是因為如果將上式對\(\mathbf{w}\)求導,我們將得到一個與\(\mathbf{w}\)成正比的衰減項。更一般的正則項具有如下的形式:
\[E_W(\mathbf{w}) = \frac{1}{2}\sum_{j=1}^M|w_j|^q\]
例如,當\(q=1\)時,誤差函式對\(\mathbf{w}\)的梯度存在一個常數衰減項,使得\(\mathbf{w}\)更加稀疏(存在大量\(0\)元素)。該正則項被稱為L1正則,在一些統計學文獻裡也被稱為lasso技術。
我們可以用一個帶約束的優化問題來理解正則項對模型引數的影響。此時,正則化項等價於約束條件:\(\sum_{j=1}^M|w_j|^q \leq \eta\)。下圖給出了二維空間裡的一個圖例。
正則化項的本質是通過限制模型的有效複雜度使得那些表面上看起來很複雜的模型可以在小資料集上也取得不錯的泛化效果。然而,模型過擬合的問題並沒有在這個框架下得到根本性的解決——我們只不過是將控制模型複雜度的引數從基函式的個數\(M\)轉移到了正則化係數\(\lambda\)上。我們依然需要Validation Set幫助我們找到合適的超引數\(\lambda\)。
Bias-Variance分解
在這一節裡,我們將從頻率學派的角度分析模型過擬合的成因。
我們討論的出發點依然是目標變數的條件概率分佈\(p(t|\mathbf{x})\)。假設我們知道了這個概率分佈的具體形式,我們該如何對一個新的輸入變數\(\mathbf{x}\)給出預估的\(t\)呢?
決策理論告訴我們,通過最小化一個均方損失函式(區分於最大似然法裡的均方誤差函式)\(E[L]\),我們可以對任意輸入\(\mathbf{x}\)給出一個最優的估計值\(y(\mathbf{x})\):
\[E[L]=\int\int{\{y(\mathbf{x})-t\}^2p(\mathbf{x}, t)d\mathbf{x}dt}\]
進一步地對\(E[L]\)進行分解,我們得到:
\[E[L] = \int{\{y(\mathbf{x})-h(\mathbf{x})\}^2p(\mathbf{x})}d\mathbf{x} + \int{\{h(\mathbf{x})-t\}^2p(\mathbf{x}, t)}d\mathbf{x}dt\]
其中,\(h(\mathbf{x})\)是目標變數\(t\)的條件概率期望,也被稱為迴歸函式:
\[h(\mathbf{x})=E[t|\mathbf{x}]=\int{tp(t|\mathbf{x})}dt\]
上式右邊的第二項來源於資料分佈內在的噪聲,我們無法改變。因此,對\(E[L]\)的最小化等價於對上式的第一項:\(\{y(\mathbf{x})-h(\mathbf{x})\}^2\)的最小化。顯然,當\(y(\mathbf{x})=h(\mathbf{x})\)時\(E[L]\)達到最小值。
然而,我們並不知道迴歸函式\(h(\mathbf{x})\)的具體形式。如果我們有足夠多的資料以及計算資源,理論上,我們可以以任意精度逼近迴歸函式\(h(\mathbf{x})\)(非參估計),從而給出\(y(\mathbf{x})\)的一個最佳估計。遺憾的是,在實際中我們往往只有一個有限大小的資料集。
因此,我們只能用一個含參的函式猜想\(y(\mathbf{x}, \mathbf{w})\)對\(h(\mathbf{x})\)進行建模,然後在給定的資料集\(\mathcal{D}\)上用最大似然法找到引數\(\mathbf{w}\)的點估計。最後,我們用這個擬合模型\(y(\mathbf{x}, \mathcal{D})\)近似真實的條件期望\(h(\mathbf{x})\),作為\(y(\mathbf{x})\)的一個最佳估計。這一切,正是造成模型存在泛化誤差的幕後根源。下面給出更深入的分析。
按照頻率學派的觀點,資料集\(\mathcal{D}\)是一個隨機變數,因此,我們在這個資料集上對\(h(\mathbf{x})\)的近似\(y(\mathbf{x}, \mathcal{D})\)也是一個隨機變數——取樣自同一分佈的不同資料集將得到不同引數的迴歸函式和迴歸誤差。也因此,對於上式中\(E[L]\)分解的第一項:\(\int{\{y(\mathbf{x})-h(\mathbf{x})\}^2p(\mathbf{x})}d\mathbf{x}\),我們可以用一個期望:\(E_{\mathcal{D}}[\{y(\mathbf{x}, \mathcal{D})-h(\mathbf{x})\}^2]\)替代。
進一步對\(E_{\mathcal{D}}[\{y(\mathbf{x}, \mathcal{D})-h(\mathbf{x})\}^2]\)進行分解,我們得到一個十分重要的公式,也就是本小節的主角——Bias-Variance分解:
\[E_{\mathcal{D}}[\{y(\mathbf{x}, \mathcal{D})-h(\mathbf{x})\}^2] = \{E_{\mathcal{D}}[y(\mathbf{x}, \mathcal{D})]-h(\mathbf{x})\}^2 + E_{\mathcal{D}}[\{y(\mathbf{x}, \mathcal{D})-E_{\mathcal{D}}[y(\mathbf{x}, \mathcal{D})]\}^2]\]
這個等式的第一項是模型的Bias——它衡量了我們的迴歸模型\(y(\mathbf{x}, \mathbf{w})\)與真實的迴歸函式\(h(\mathbf{x})\)之間的差異;第二項是模型的Variance——它衡量了在不同資料集上模型擬合的方差。
直覺上來看,模型的Bias和Variance均與模型的複雜度有著密切的聯絡。顯然,簡單的模型可能會過於偏離真實的\(h(\mathbf{x})\)而使得模型的bias過高;而在同一份資料集上,複雜的模型的擬合往往具有更高的波動性。進一步的實驗證實了這一猜想。我們使用正則係數\(\lambda\)控制迴歸模型的有效複雜度,並在抽樣自同一分佈的多個數據集上擬合模型,得到的結果如下圖:
圖中自上而下模型的複雜度由低到高;左邊一列繪出了每個資料集上的擬合曲線;右邊一列則匯出了所有擬合曲線的均值(\(E_{\mathcal{D}}[y(\mathbf{x}, \mathcal{D})]\)的無偏估計);綠色曲線是真實的分佈。可見,隨著模型複雜度的提高,模型的Variance也越來越高;而對於較低的模型複雜度,雖然模型有著較低的Variance,但也有著極高的Bias。
我們也可以直接匯出模型Bias和Variance隨著正則係數\(\lambda\)的變化曲線:
可見,模型的Bias和Variance存在一個trade-off——我們無法使得一個模型有著低Bias的同時也有著較低的Variance。在實際的應用中,我們往往需要通過一個驗證集來調節模型的複雜度(例如調節正則化係數\(\lambda\))從而尋求Bias和Variance的某種平衡。事實上,高Bias正對應著一個欠擬合的模型;而高Variance則對應著一個過擬合的模型。
最後,在上面的實驗中,我們也看到對在不同資料集上擬合的複雜模型取平均,可以得到一個最佳的擬合曲線。這種平均模型的思想在後面提到的Bayesian方法和在神經網路上風靡的Dropout正則化方法均有所體現。然而在實際應用中,我們很少會對同一個模型在不同資料集上擬合的結果取平均——如果我們有那麼多的資料集,一個更自然的想法是將這些資料集合併為一個更大的資料集來訓練一個模型。