動機
最小二乘處理的是固定特徵矩陣下的問題:哪組係數令殘差平方和最小?選擇哪些特徵,則是另一個問題。在相異輸入上,只要多項式次數足夠高,就能通過全部觀測點,但插值本身並不能確定另一個響應會預測得多準。訓練殘差描述的是模型與曾用來選定係數的觀測之間有多吻合。
模型驗證考察擬合時保留不用的觀測,從而具體區分估計係數與選擇模型。訓練集決定擬合函數,驗證集則比較不同特徵或懲罰強度。選定程序後,可以用全部開發數據重新擬合。另一份最終測試集用來評估已選定的程序,並不參與該項選擇。
嶺迴歸加入了一個新選擇:在殘差平方與係數大小的平方之間取得平衡。要理解這種平衡,必須說清楚損失的尺度、哪些係數受懲罰,以及特徵採用甚麼量度單位。交叉驗證比較這些選擇時,使用的是預測誤差,而非帶懲罰項的訓練目標值。
訓練誤差不足以決定模型選擇,有一個簡單理由。假設新特徵矩陣保留舊矩陣的全部列,並加入其他列。把新增係數設為零,就可以把每組舊係數延伸為新係數,產生完全相同的預測。因此,對較大的候選集合求最小值,訓練 SSE 只會下降或保持不變。改善可能來自有用規律,也可能只是吸收了這批觀測的特殊波動。訓練優化沒有保留的響應可用來區分兩者;驗證則在優化完成後,提供另一項預測比較。
定義
設 T T T 、V V V 是互不相交且非空的訓練與驗證索引集合。以 T T T 擬合的模型記為 f ^ T \widehat f_T f T 。對平方誤差,定義
L T = 1 ∣ T ∣ ∑ i ∈ T ( y i − f ^ T ( x i ) ) 2 , L V = 1 ∣ V ∣ ∑ i ∈ V ( y i − f ^ T ( x i ) ) 2 . L_T=\frac{1}{|T|}\sum_{i\in T}(y_i-\widehat f_T(x_i))^2,
\qquad
L_V=\frac{1}{|V|}\sum_{i\in V}(y_i-\widehat f_T(x_i))^2. L T = ∣ T ∣ 1 i ∈ T ∑ ( y i − f T ( x i ) ) 2 , L V = ∣ V ∣ 1 i ∈ V ∑ ( y i − f T ( x i ) ) 2 .
兩式使用同一個已擬合函數。計算驗證損失時,不會利用驗證響應重新估計它的係數。候選模型包含特徵建立、預處理和擬合規則,因此這些步驟也必須在每次切分的訓練部分內學習。
量度預測誤差
對含有 m m m 個觀測的評估集,記 e i = y i − y ^ i e_i=y_i-\widehat y_i e i = y i − y i 。三個常用指標為
MSE = 1 m ∑ i e i 2 , MAE = 1 m ∑ i ∣ e i ∣ , RMSE = 1 m ∑ i e i 2 . \operatorname{MSE}=\frac1m\sum_i e_i^2,
\qquad
\operatorname{MAE}=\frac1m\sum_i|e_i|,
\qquad
\operatorname{RMSE}=\sqrt{\frac1m\sum_i e_i^2}. MSE = m 1 i ∑ e i 2 , MAE = m 1 i ∑ ∣ e i ∣ , RMSE = m 1 i ∑ e i 2 .
MSE 的單位是響應單位的平方;MAE 和 RMSE 則與響應使用相同單位。平方使大殘差有較大影響,絕對損失則隨誤差大小線性增長。因為平方根遞增,在同一評估集上,RMSE 與 MSE 對候選預測給出相同排序,MAE 卻可能給出另一排序。比較候選模型前,應先選定能表達預測任務的指標。
以評估集的響應平均值 y ‾ \overline y y 定義
SST = ∑ i ( y i − y ‾ ) 2 , R 2 = 1 − ∑ i e i 2 SST , SST > 0. \operatorname{SST}=\sum_i(y_i-\overline y)^2,
\qquad
R^2=1-\frac{\sum_i e_i^2}{\operatorname{SST}},
\qquad \operatorname{SST}>0. SST = i ∑ ( y i − y ) 2 , R 2 = 1 − SST ∑ i e i 2 , SST > 0.
這裡的基準模型總是預測評估集平均值。R 2 R^2 R 2 為負,表示候選模型的平方誤差比此基準更大。對訓練數據,若普通最小二乘模型包含自由常數項,便有 0 ≤ R 2 ≤ 1 0\le R^2\le1 0 ≤ R 2 ≤ 1 ,因為常數預測也在候選模型之中。這項比較不適用於保留觀測上的預測。若全部評估響應相同,SST 為零,上述定義便沒有數值,但仍可計算 MSE。特別地,只有一個觀測的驗證折,無法提供這個 R 2 R^2 R 2 。
訓練界限的證明,是把響應平均值代入最小二乘目標,其 SSE 恰等於 SST。因此最小 SSE 介於零與 SST 之間,除以正的 SST 就得到界限。這個論證使用同一批觀測進行擬合及計算兩個平方和。驗證集的響應平均值只是比較基準,並非由訓練子集估計的模型係數。此外,先對各折 RMSE 取平均,與先合併 MSE 再開平方根,一般會得到不同結果,因為開平方根的步驟在不同階段進行。
中位誤差與百分比誤差
另外兩個指標取誤差分布的中間值:
MdSE = median i ( e i 2 ) , MdAE = median i ∣ e i ∣ . \operatorname{MdSE}=\operatorname{median}_i(e_i^2),
\qquad
\operatorname{MdAE}=\operatorname{median}_i|e_i|. MdSE = median i ( e i 2 ) , MdAE = median i ∣ e i ∣.
觀測數為偶數時,取排序後中間兩值的平均。MdSE 的單位是響應單位的平方,
MdAE 則與響應同單位。平均誤差涵蓋全部觀測,中位誤差描述中間大小,兩者
反映殘差分布的不同特徵。
取 y = ( 1 , 2 , 3 , 7 ) T y=(1,2,3,7)^T y = ( 1 , 2 , 3 , 7 ) T 、預測 ( 1 , 2 , 0 , 0 ) T (1,2,0,0)^T ( 1 , 2 , 0 , 0 ) T ,殘差為 ( 0 , 0 , 3 , 7 ) T (0,0,3,7)^T ( 0 , 0 , 3 , 7 ) T 。MSE 是
14.5 14.5 14.5 ,MdSE 是 4.5 4.5 4.5 ;MAE 是 2.5 2.5 2.5 ,MdAE 是 1.5 1.5 1.5 。平均絕對百分比誤差為
MAPE = 100 m ∑ i = 1 m ∣ e i y i ∣ , y i ≠ 0 ( 1 ≤ i ≤ m ) . \operatorname{MAPE}=\frac{100}{m}\sum_{i=1}^m\left|\frac{e_i}{y_i}\right|,
\qquad y_i\ne0\quad(1\le i\le m). MAPE = m 100 i = 1 ∑ m y i e i , y i = 0 ( 1 ≤ i ≤ m ) .
MAPE 以百分比表示相對誤差。本例四個觀測響應皆非零,絕對相對誤差為
0 , 0 , 1 , 1 0,0,1,1 0 , 0 , 1 , 1 ,故 MAPE 為 50 % 50\% 50% 。此定義要求每個觀測響應均非零。
從訓練數據學習特徵尺度
對非恆定的訓練特徵,利用訓練平均值及總體標準差得到
μ T = 1 ∣ T ∣ ∑ i ∈ T x i , s T = 1 ∣ T ∣ ∑ i ∈ T ( x i − μ T ) 2 , z = x − μ T s T . \mu_T=\frac1{|T|}\sum_{i\in T}x_i,
\qquad
s_T=\sqrt{\frac1{|T|}\sum_{i\in T}(x_i-\mu_T)^2},
\qquad
z=\frac{x-\mu_T}{s_T}. μ T = ∣ T ∣ 1 i ∈ T ∑ x i , s T = ∣ T ∣ 1 i ∈ T ∑ ( x i − μ T ) 2 , z = s T x − μ T .
轉換驗證輸入時,繼續使用同一個 μ T \mu_T μ T 和 s T s_T s T 。訓練 min-max 縮放同樣只使用訓練極值,並要求訓練範圍為正。恆定特徵可在標準化前刪除,因為截距已表示常數貢獻。日後輸入轉換後,可能落在訓練區間之外;這反映了新輸入的位置,並不表示轉換計算有錯。
對 A ∈ R n × p A\in\mathbb R^{n\times p} A ∈ R n × p 、y ∈ R n y\in\mathbb R^n y ∈ R n ,本節把全部係數都納入懲罰的嶺迴歸目標定為
J λ ( β ) = ∥ y − A β ∥ 2 2 + λ ∥ β ∥ 2 2 , λ > 0. J_\lambda(\beta)=\|y-A\beta\|_2^2+\lambda\|\beta\|_2^2,
\qquad \lambda>0. J λ ( β ) = ∥ y − A β ∥ 2 2 + λ ∥ β ∥ 2 2 , λ > 0.
這裡使用未除以觀測數目的誤差平方和。另一目標 ∥ y − A β ∥ 2 2 / n + ρ ∥ β ∥ 2 2 \|y-A\beta\|_2^2/n+\rho\|\beta\|_2^2 ∥ y − A β ∥ 2 2 / n + ρ ∥ β ∥ 2 2 在 λ = n ρ \lambda=n\rho λ = n ρ 時有相同最小值點。若懲罰寫成 α 2 ∥ β ∥ 2 2 \alpha^2\|\beta\|_2^2 α 2 ∥ β ∥ 2 2 ,則 λ = α 2 \lambda=\alpha^2 λ = α 2 。這些參數是所選目標的數值描述,因此報告參數值時,也要交代所用的正規化約定。
定理/命題
命題
每個正懲罰強度都給出唯一的嶺迴歸擬合 對任意實矩陣 A A A 、實向量 y y y 及 λ > 0 \lambda>0 λ > 0 ,A T A + λ I A^TA+\lambda I A T A + λ I 都是正定矩陣。J λ J_\lambda J λ 的唯一最小值點由下式刻劃:
( A T A + λ I ) β ^ λ = A T y . (A^TA+\lambda I)\widehat\beta_\lambda=A^Ty. ( A T A + λ I ) β λ = A T y . 此結論也適用於秩不足的設計矩陣。正定性同時給出係數向量的存在性與唯一性。
命題
懲罰增強時的訓練取捨 固定 A A A 、y y y ,設 0 < λ 1 < λ 2 0<\lambda_1<\lambda_2 0 < λ 1 < λ 2 ,並定義
S j = ∥ y − A β ^ λ j ∥ 2 2 , P j = ∥ β ^ λ j ∥ 2 2 . S_j=\|y-A\widehat\beta_{\lambda_j}\|_2^2,
\qquad P_j=\|\widehat\beta_{\lambda_j}\|_2^2. S j = ∥ y − A β λ j ∥ 2 2 , P j = ∥ β λ j ∥ 2 2 . 則 P 2 ≤ P 1 P_2\le P_1 P 2 ≤ P 1 且 S 1 ≤ S 2 S_1\le S_2 S 1 ≤ S 2 。較大的懲罰使係數範數下降或保持不變,並使訓練殘差平方和上升或保持不變。這些不等式沒有對驗證誤差的大小次序作出結論。
證明思路
對任意非零向量 h h h ,
h T ( A T A + λ I ) h = ∥ A h ∥ 2 2 + λ ∥ h ∥ 2 2 > 0. h^T(A^TA+\lambda I)h=\|Ah\|_2^2+\lambda\|h\|_2^2>0. h T ( A T A + λ I ) h = ∥ A h ∥ 2 2 + λ ∥ h ∥ 2 2 > 0.
對 J λ J_\lambda J λ 求導,得到 2 ( A T A + λ I ) β − 2 A T y 2(A^TA+\lambda I)\beta-2A^Ty 2 ( A T A + λ I ) β − 2 A T y ,其唯一零點滿足上面的線性方程組。也可以直接在此解附近展開:
J λ ( β ^ λ + h ) = J λ ( β ^ λ ) + h T ( A T A + λ I ) h . J_\lambda(\widehat\beta_\lambda+h)
=J_\lambda(\widehat\beta_\lambda)
+h^T(A^TA+\lambda I)h. J λ ( β λ + h ) = J λ ( β λ ) + h T ( A T A + λ I ) h .
每個非零改變都嚴格增加目標值,因此這是全域最小值。即使普通最小二乘有多組係數解,論證仍然成立。
同一個嶺迴歸問題也可寫成增廣觀測上的普通最小二乘:
A ~ = [ A λ I ] , y ~ = [ y 0 ] , J λ ( β ) = ∥ y ~ − A ~ β ∥ 2 2 . \widetilde A=\begin{bmatrix}A\\\sqrt\lambda I\end{bmatrix},
\qquad
\widetilde y=\begin{bmatrix}y\\0\end{bmatrix},
\qquad
J_\lambda(\beta)=\|\widetilde y-\widetilde A\beta\|_2^2. A = [ A λ I ] , y = [ y 0 ] , J λ ( β ) = ∥ y − A β ∥ 2 2 .
新增的行恰好產生係數懲罰。更一般地,把 λ I \sqrt\lambda I λ I 換成矩陣 Γ \Gamma Γ ,就得到 Tikhonov 懲罰 ∥ Γ β ∥ 2 2 \|\Gamma\beta\|_2^2 ∥Γ β ∥ 2 2 。它的最小值點唯一,當且僅當同時被 A A A 和 Γ \Gamma Γ 映至零的向量只有零向量。對應的二次型為 ∥ A h ∥ 2 2 + ∥ Γ h ∥ 2 2 \|Ah\|_2^2+\|\Gamma h\|_2^2 ∥ A h ∥ 2 2 + ∥Γ h ∥ 2 2 ,由此立即得到判別條件。這也解釋了為何截距不受懲罰仍可有唯一擬合:即使懲罰沒有約束常數方向,數據矩陣仍能觀測該方向。
對第二個命題,兩個懲罰值下的最優性分別給出
S 1 + λ 1 P 1 ≤ S 2 + λ 1 P 2 , S 2 + λ 2 P 2 ≤ S 1 + λ 2 P 1 . S_1+\lambda_1P_1\le S_2+\lambda_1P_2,
\qquad
S_2+\lambda_2P_2\le S_1+\lambda_2P_1. S 1 + λ 1 P 1 ≤ S 2 + λ 1 P 2 , S 2 + λ 2 P 2 ≤ S 1 + λ 2 P 1 .
兩式相加得 ( λ 2 − λ 1 ) ( P 2 − P 1 ) ≤ 0 (\lambda_2-\lambda_1)(P_2-P_1)\le0 ( λ 2 − λ 1 ) ( P 2 − P 1 ) ≤ 0 ,故 P 2 ≤ P 1 P_2\le P_1 P 2 ≤ P 1 。第一式再推出 S 1 − S 2 ≤ λ 1 ( P 2 − P 1 ) ≤ 0 S_1-S_2\le\lambda_1(P_2-P_1)\le0 S 1 − S 2 ≤ λ 1 ( P 2 − P 1 ) ≤ 0 。
譜可以解釋哪些方向被縮減。若正交單位特徵向量滿足 A T A v j = d j v j A^TA v_j=d_jv_j A T A v j = d j v j ,且 d j > 0 d_j>0 d j > 0 ,則
v j T β ^ λ = v j T A T y d j + λ = d j d j + λ v j T β ^ 0 + . v_j^T\widehat\beta_\lambda
=\frac{v_j^TA^Ty}{d_j+\lambda}
=\frac{d_j}{d_j+\lambda}\,v_j^T\widehat\beta_0^{+}. v j T β λ = d j + λ v j T A T y = d j + λ d j v j T β 0 + .
這裡 β ^ 0 + \widehat\beta_0^{+} β 0 + 是普通最小二乘的最小範數解。零特徵值方向滿足 A v j = 0 Av_j=0 A v j = 0 ,因此 v j T A T y = 0 v_j^TA^Ty=0 v j T A T y = 0 ,嶺迴歸在該方向的係數為零。較小的正 d j d_j d j 帶來較強的相對縮減。這是關於正交譜座標的結論;原特徵座標中的個別係數,未必會單調地向零移動。
以係數範數作預算的嶺迴歸
同一擬合偏好也可用約束表達。記 f ( β ) = ∥ y − A β ∥ 2 2 f(\beta)=\|y-A\beta\|_2^2 f ( β ) = ∥ y − A β ∥ 2 2 ,考慮
min β : ∥ β ∥ 2 2 ≤ γ f ( β ) , γ ≥ 0. \min_{\beta:\,\|\beta\|_2^2\le\gamma}f(\beta),
\qquad \gamma\ge0. β : ∥ β ∥ 2 2 ≤ γ min f ( β ) , γ ≥ 0.
這是半徑 γ \sqrt\gamma γ 的球。對正懲罰,取
γ λ = ∥ β ^ λ ∥ 2 2 \gamma_\lambda=\|\widehat\beta_\lambda\|_2^2 γ λ = ∥ β λ ∥ 2 2 。任意符合預算的 b b b 都滿足
f ( β ^ λ ) + λ γ λ ≤ f ( b ) + λ ∥ b ∥ 2 2 ≤ f ( b ) + λ γ λ . f(\widehat\beta_\lambda)+\lambda\gamma_\lambda
\le f(b)+\lambda\|b\|_2^2
\le f(b)+\lambda\gamma_\lambda. f ( β λ ) + λ γ λ ≤ f ( b ) + λ ∥ b ∥ 2 2 ≤ f ( b ) + λ γ λ .
消去兩端懲罰界限,便證明嶺迴歸解使約束損失最小。這項構造透過擬合係數
的範數,連結所選懲罰和預算。
反過來,設 γ > 0 \gamma>0 γ > 0 。零向量嚴格可行,凸且可微的問題符合 Slater 條件,
因此 Karush–Kuhn–Tucker(KKT)條件為最優性的充要條件:
A T ( A β ∗ − y ) + λ β ∗ = 0 , ∥ β ∗ ∥ 2 2 ≤ γ , λ ≥ 0 , λ ( ∥ β ∗ ∥ 2 2 − γ ) = 0. \begin{aligned}
A^T(A\beta_*-y)+\lambda\beta_*&=0,\\
\|\beta_*\|_2^2&\le\gamma,\\
\lambda&\ge0,\\
\lambda(\|\beta_*\|_2^2-\gamma)&=0.
\end{aligned} A T ( A β ∗ − y ) + λ β ∗ ∥ β ∗ ∥ 2 2 λ λ ( ∥ β ∗ ∥ 2 2 − γ ) = 0 , ≤ γ , ≥ 0 , = 0.
Lagrangian 為 f ( β ) + λ ( ∥ β ∥ 2 2 − γ ) f(\beta)+\lambda(\|\beta\|_2^2-\gamma) f ( β ) + λ ( ∥ β ∥ 2 2 − γ ) ;駐點方程除以二,
就得到首行,沿用上面的 SSE 懲罰約定。凸性使駐點最小化 Lagrangian,再由
可行性和互補鬆弛證明約束最優性。正乘子給出唯一嶺迴歸解;零乘子則給出
普通最小二乘方程,係數未必唯一。
鬆弛約束必有 λ = 0 \lambda=0 λ = 0 ;普通最小二乘解恰在邊界時,約束取等亦可有零乘子。
因此正乘子並不涵蓋所有預算。γ = 0 \gamma=0 γ = 0 時沒有嚴格可行點,唯一可行向量為
零,有限嶺懲罰未必到達它。截距不罰時,只約束斜率向量,截距保持自由。
取單變量例 A = [ 1 ] A=[1] A = [ 1 ] 、y = 2 y=2 y = 2 ,則
β ^ λ = 2 1 + λ , γ λ = 4 ( 1 + λ ) 2 , β ∗ ( γ ) = min ( 2 , γ ) . \widehat\beta_\lambda=\frac2{1+\lambda},\qquad
\gamma_\lambda=\frac4{(1+\lambda)^2},\qquad
\beta_*^{(\gamma)}=\min(2,\sqrt\gamma). β λ = 1 + λ 2 , γ λ = ( 1 + λ ) 2 4 , β ∗ ( γ ) = min ( 2 , γ ) .
約束解把 2 2 2 投影至 [ − γ , γ ] [-\sqrt\gamma,\sqrt\gamma] [ − γ , γ ] 。γ = 1 \gamma=1 γ = 1 給出
β ∗ = 1 \beta_*=1 β ∗ = 1 、λ = 1 \lambda=1 λ = 1 ;γ = 4 \gamma=4 γ = 4 給出邊界解 β ∗ = 2 \beta_*=2 β ∗ = 2 、λ = 0 \lambda=0 λ = 0 ;
γ = 9 \gamma=9 γ = 9 給出同一係數,但在球內部,乘子仍為零。γ = 0 \gamma=0 γ = 0 強制
β ∗ = 0 \beta_*=0 β ∗ = 0 ,而每個有限 λ ≥ 0 \lambda\ge0 λ ≥ 0 都有 2 / ( 1 + λ ) > 0 2/(1+\lambda)>0 2/ ( 1 + λ ) > 0 。本例的零預算
只在 λ → ∞ \lambda\to\infty λ → ∞ 的極限到達。
例題
例題
例題一:以訓練尺度轉換保留輸入 設某個訓練特徵的數值為 0 0 0 、2 2 2 ,驗證輸入為 4 4 4 。訓練平均值是 1 1 1 ,總體標準差是 1 1 1 ,所以訓練值標準化後為 − 1 -1 − 1 、1 1 1 ,驗證值標準化後則為 3 3 3 。
若改用訓練 min-max 縮放,便得到 0 0 0 、1 1 1 ,以及驗證值 2 2 2 。兩種程序都重用訓練參數。若加入驗證輸入後再計算平均值或範圍,就改變了定義擬合模型的轉換程序,讓保留觀測在量度預測誤差之前,已影響擬合的其中一步。
另一個交叉驗證折若使用不同訓練觀測,就應以那批觀測重新計算尺度。預處理屬於擬合程序的一部分,而不是對完整數據預先執行一次就完成的步驟。
例題
例題二:常數模型的留一交叉驗證 用常數擬合響應 0 0 0 、2 2 2 、4 4 4 。使用全部三個響應,得到 c ^ = 2 \widehat c=2 c = 2 、殘差平方和 8 8 8 ,以及訓練 MSE 8 / 3 8/3 8/3 。
留一交叉驗證會重新擬合三次。保留 0 0 0 時,訓練平均值為 3 3 3 ;保留 2 2 2 時,平均值為 2 2 2 ;保留 4 4 4 時,平均值為 1 1 1 。因此
y ^ ( − 1 ) = 3 , y ^ ( − 2 ) = 2 , y ^ ( − 3 ) = 1 , CV L O O = 9 + 0 + 9 3 = 6. \widehat y^{(-1)}=3,\qquad
\widehat y^{(-2)}=2,\qquad
\widehat y^{(-3)}=1,
\qquad
\operatorname{CV}_{\mathrm{LOO}}=\frac{9+0+9}{3}=6. y ( − 1 ) = 3 , y ( − 2 ) = 2 , y ( − 3 ) = 1 , CV LOO = 3 9 + 0 + 9 = 6. 每個保留預測都在沒有使用該響應的情況下取得。若三個預測都用完整數據的平均值,就只會重現訓練 MSE,而非留一誤差。這項計算比較的是一個使用全部數據的擬合,與三個各用兩個觀測的擬合;即使模型只有一個係數,兩者的差別也清楚可見。
例題
例題三:分開殘差誤差與係數大小 取 A = diag ( 1 , 2 ) A=\operatorname{diag}(1,2) A = diag ( 1 , 2 ) 、y = ( 2 , 2 ) T y=(2,2)^T y = ( 2 , 2 ) T 、λ = 1 \lambda=1 λ = 1 ,並懲罰兩個係數。此時
A T A + I = [ 2 0 0 5 ] , A T y = [ 2 4 ] , β ^ 1 = [ 1 4 / 5 ] . A^TA+I=\begin{bmatrix}2&0\\0&5\end{bmatrix},
\qquad A^Ty=\begin{bmatrix}2\\4\end{bmatrix},
\qquad \widehat\beta_1=\begin{bmatrix}1\\4/5\end{bmatrix}. A T A + I = [ 2 0 0 5 ] , A T y = [ 2 4 ] , β 1 = [ 1 4/5 ] . 預測為 ( 1 , 8 / 5 ) T (1,8/5)^T ( 1 , 8/5 ) T ,殘差為 ( 1 , 2 / 5 ) T (1,2/5)^T ( 1 , 2/5 ) T ,所以
∥ y − A β ^ 1 ∥ 2 2 = 29 25 , ∥ β ^ 1 ∥ 2 2 = 41 25 , J 1 ( β ^ 1 ) = 14 5 . \|y-A\widehat\beta_1\|_2^2=\frac{29}{25},
\qquad
\|\widehat\beta_1\|_2^2=\frac{41}{25},
\qquad
J_1(\widehat\beta_1)=\frac{14}{5}. ∥ y − A β 1 ∥ 2 2 = 25 29 , ∥ β 1 ∥ 2 2 = 25 41 , J 1 ( β 1 ) = 5 14 . 普通最小二乘給出 ( 2 , 1 ) T (2,1)^T ( 2 , 1 ) T ,殘差誤差為零,係數範數平方為 5 5 5 。把它放進同一個 J 1 J_1 J 1 目標,得到 5 5 5 ,大於 14 / 5 14/5 14/5 。嶺迴歸接受一定殘差誤差,以降低兩項合成的目標。兩個譜縮減因子分別為 1 / 2 1/2 1/2 、4 / 5 4/5 4/5 ,與上面的係數計算吻合。
上述兩項計算可以直接重現:
import numpy as np
y = np.array([0.0, 2.0, 4.0])
held_predictions = np.array([
np.delete(y, i).mean() for i in range(len(y))
])
train_mse = np.mean((y - y.mean()) ** 2)
loo_mse = np.mean((y - held_predictions) ** 2)
A = np.diag([1.0, 2.0])
target = np.array([2.0, 2.0])
beta = np.linalg.solve(A.T @ A + np.eye(2), A.T @ target)
residual = target - A @ beta
objective = residual @ residual + beta @ beta
print(train_mse, loo_mse, beta, objective)
輸出約為 2.666667 2.666667 2.666667 、6 6 6 、( 1 , 0.8 ) (1,0.8) ( 1 , 0.8 ) 、2.8 2.8 2.8 。直接求解正定方程組,便毋須顯式計算其逆矩陣。
用交叉驗證選擇模型
當 n ≥ 2 n\ge2 n ≥ 2 ,留一驗證每次用一個觀測以外的全部數據訓練,再對 n n n 個保留平方誤差取平均。留 p p p 驗證要求 1 ≤ p < n 1\le p<n 1 ≤ p < n ,並考慮每個大小為 p p p 的驗證子集,每個候選模型需要擬合 ( n p ) \binom np ( p n ) 次。k k k 折驗證要求 2 ≤ k ≤ n 2\le k\le n 2 ≤ k ≤ n ,把觀測分成 k k k 個互不相交的非空區塊,每個區塊輪流保留一次;k = n k=n k = n 時,就是留一交叉驗證。
若各折大小不同,把平方誤差合併後除以保留觀測總數,就能給每個觀測相同權重。若直接平均各折 MSE,給予相同權重的則是每一折。重複隨機保留法,又稱 Monte Carlo 交叉驗證,會抽取多組訓練與驗證切分。每次切分內兩集互不相交,但跨切分時,同一觀測可能重複用作驗證,也可能從未被選中。所有候選懲罰使用相同切分,可以讓比較對應相同的預測任務。
以下程式使用三個固定折、一個非恆定特徵,以及不受懲罰的截距。懲罰矩陣 P = diag ( 0 , 1 ) P=\operatorname{diag}(0,1) P = diag ( 0 , 1 ) 對應目標 ∥ y − A β ∥ 2 2 + λ β 1 2 \|y-A\beta\|_2^2+\lambda\beta_1^2 ∥ y − A β ∥ 2 2 + λ β 1 2 。每個訓練子集都有不同的特徵值,所以所計算的標準差皆為正。
import numpy as np
X = np.arange(6.0)[:, None]
y = np.array([1.0, 2.0, 2.0, 4.0, 4.0, 5.0])
folds = [np.array([0, 1]), np.array([2, 3]), np.array([4, 5])]
indices = np.arange(len(y))
penalty = np.diag([0.0, 1.0])
for lam in (0.0, 1.0, 4.0):
squared_error = 0.0
count = 0
for valid in folds:
train = np.setdiff1d(indices, valid)
mu = X[train].mean(axis=0)
scale = X[train].std(axis=0, ddof=0)
Z_train = (X[train] - mu) / scale
Z_valid = (X[valid] - mu) / scale
A = np.column_stack((np.ones(len(train)), Z_train))
B = np.column_stack((np.ones(len(valid)), Z_valid))
beta = np.linalg.solve(A.T @ A + lam * penalty, A.T @ y[train])
error = y[valid] - B @ beta
squared_error += error @ error
count += len(valid)
print(lam, squared_error / count)
對 λ = 0 , 1 , 4 \lambda=0,1,4 λ = 0 , 1 , 4 ,合併 MSE 分別約為 0.263829 0.263829 0.263829 、0.179066 0.179066 0.179066 、0.808482 0.808482 0.808482 ,所以 λ = 1 \lambda=1 λ = 1 在這三個候選值中最好。選出合併驗證 MSE 最小的候選值後,再用全部開發觀測學習新的尺度並重新擬合。自由截距表示響應的整體水平。當 λ \lambda λ 為正,這裡唯一不受懲罰的方向是截距;其非零常數列確保解唯一。前面的 λ I \lambda I λ I 定理懲罰全部係數;改變懲罰矩陣,也就改變了所述問題。
若候選模型以平均損失的懲罰強度 ρ \rho ρ 定義,則每次訓練切分內應使用 λ T = ∣ T ∣ ρ \lambda_T=|T|\rho λ T = ∣ T ∣ ρ 。這樣,即使訓練子集大小不同,也都實現同一平均損失約定。固定 SSE 參數的數值,則是在比較另一組目標。反覆用驗證觀測比較候選模型後,那批觀測已協助選擇程序。把選定程序在全部開發數據上重擬合,是利用這些資訊的下一步;最終測試集才回答其後的評估問題。固定切分使數值比較可重現,使用多組既定切分,則能看出比較對哪些觀測被保留有多敏感。
特徵縮放也會改變懲罰。若 z j = ( x j − μ j ) / s j z_j=(x_j-\mu_j)/s_j z j = ( x j − μ j ) / s j ,標準化係數是 θ j \theta_j θ j ,則原尺度斜率為 β j = θ j / s j \beta_j=\theta_j/s_j β j = θ j / s j 。因此懲罰 ∑ j θ j 2 \sum_j\theta_j^2 ∑ j θ j 2 ,在原座標中就是懲罰 ∑ j s j 2 β j 2 \sum_j s_j^2\beta_j^2 ∑ j s j 2 β j 2 。標準化提供一種選定且一致的比較單位,是模型定義的一部分。進行敏感度分析時,可以改變某個特徵或懲罰值、固定其他選擇,再重新計算預測。
輸入變化的敏感度
固定模型的敏感度分析只改輸入,保持擬合參數不變。改動訓練觀測後重新擬合,
則連模型本身也改變;所得預測衡量另一種穩定性。
逐項改動(OAT)每次只改一個輸入,固定其餘輸入。對固定交互模型
f ( x 1 , x 2 ) = x 1 x 2 f(x_1,x_2)=x_1x_2 f ( x 1 , x 2 ) = x 1 x 2 ,在 ( 0 , 0 ) (0,0) ( 0 , 0 ) 附近有
f ( 1 / 5 , 0 ) = f ( 0 , 1 / 5 ) = 0 , f ( 1 / 5 , 1 / 5 ) = 1 / 25. f(1/5,0)=f(0,1/5)=0,
\qquad f(1/5,1/5)=1/25. f ( 1/5 , 0 ) = f ( 0 , 1/5 ) = 0 , f ( 1/5 , 1/5 ) = 1/25.
單項擾動皆不改變輸出,聯合擾動卻有變化,因此不能憑 OAT 不變就斷言聯合
不敏感。多變量分析考察交互作用;情景分析指定聯合改動,Monte Carlo
敏感度分析則按指定分布抽樣聯合輸入。
常見錯誤
常見錯誤
在完整擬合程序之後比較預測誤差 訓練 SSE 一般偏好較靈活的模型與較弱的懲罰。驗證則在每個訓練子集完成預處理及擬合後,比較保留預測。嶺迴歸目標含有係數懲罰,其數值並非驗證 MSE。增加 λ \lambda λ 保證上面證明的訓練取捨,但驗證誤差在哪裡最小,仍取決於數據。
總結
先定義評估指標、切分觀測,再在訓練子集學習預處理並擬合每個候選模型。合併保留誤差以比較候選。嶺迴歸的參數值應與損失正規化、截距懲罰約定一同記錄。對全部係數施加正的平方懲罰,能得到唯一解,並按特徵值縮減各譜方向。
練習
思考檢查
練習一:訓練特徵值為 0 0 0 、2 2 2 。用總體標準差標準化驗證輸入 4 4 4 ,三個轉換後的數值各是多少?
思考檢查
練習二:評估響應為 0 0 0 、2 2 2 ,預測為 3 3 3 、3 3 3 。求 MSE、MAE、RMSE 及 R 2 R^2 R 2 。 SST 使用評估集平均值,並保留 R 2 R^2 R 2 的正負號。
思考檢查
練習三:設 A = [ 1 1 1 1 ] A=\begin{bmatrix}1&1\\1&1\end{bmatrix} A = [ 1 1 1 1 ] 、y = ( 2 , 2 ) T y=(2,2)^T y = ( 2 , 2 ) T 、λ = 2 \lambda=2 λ = 2 ,並懲罰兩個係數。求唯一的嶺迴歸係數向量。 即使 A A A 的兩列相同,仍可建立 A T A + 2 I A^TA+2I A T A + 2 I 。
思考檢查
練習四:訓練集大小為 n = 5 n=5 n = 5 ,目標是 ∥ y − A β ∥ 2 2 / 5 + 0.2 ∥ β ∥ 2 2 \|y-A\beta\|_2^2/5+0.2\|\beta\|_2^2 ∥ y − A β ∥ 2 2 /5 + 0.2∥ β ∥ 2 2 。在未正規化的 SSE 約定下,相應的 λ \lambda λ 是多少?
思考檢查
練習五:對 A = [ 1 ] A=[1] A = [ 1 ] 、y = 2 y=2 y = 2 、預算 γ = 1 / 4 \gamma=1/4 γ = 1/4 ,求球半徑、約束最小值點及相應的 SSE 嶺參數。
解答
解答 · 練習一解答 訓練平均值為 1 1 1 ,總體標準差為 1 1 1 ,所以 ( 0 − 1 ) / 1 = − 1 (0-1)/1=-1 ( 0 − 1 ) /1 = − 1 、( 2 − 1 ) / 1 = 1 (2-1)/1=1 ( 2 − 1 ) /1 = 1 、( 4 − 1 ) / 1 = 3 (4-1)/1=3 ( 4 − 1 ) /1 = 3 。驗證輸入不會改變尺度參數。
解答 · 練習二解答 殘差為 − 3 -3 − 3 、− 1 -1 − 1 ,因此 SSE 為 10 10 10 、MSE 為 5 5 5 、MAE 為 2 2 2 、RMSE 為 5 \sqrt5 5 。響應平均值為 1 1 1 ,SST 為 2 2 2 ,故 R 2 = 1 − 10 / 2 = − 4 R^2=1-10/2=-4 R 2 = 1 − 10/2 = − 4 。負值表示在這些觀測上,預測表現低於常數平均值基準。
解答 · 練習三解答 方程組為
[ 4 2 2 4 ] β = [ 4 4 ] . \begin{bmatrix}4&2\\2&4\end{bmatrix}\beta
=\begin{bmatrix}4\\4\end{bmatrix}. [ 4 2 2 4 ] β = [ 4 4 ] . 兩式相減得 β 1 = β 2 \beta_1=\beta_2 β 1 = β 2 ,代入任一式便得 β 1 = β 2 = 2 / 3 \beta_1=\beta_2=2/3 β 1 = β 2 = 2/3 。矩陣特徵值為 6 6 6 、2 2 2 ,皆為正。原矩陣兩列重複,並不妨礙嶺迴歸解的唯一性。
解答 · 練習四解答 乘以 5 5 5 後得到 ∥ y − A β ∥ 2 2 + ∥ β ∥ 2 2 \|y-A\beta\|_2^2+\|\beta\|_2^2 ∥ y − A β ∥ 2 2 + ∥ β ∥ 2 2 ,所以 λ = 1 \lambda=1 λ = 1 。整個目標乘以正常數會保留最小值點;若只縮放殘差項,便會改變兩項之間的取捨。
解答 · 練習五解答 半徑是 γ = 1 / 2 \sqrt\gamma=1/2 γ = 1/2 ,所以 β ∗ = 1 / 2 \beta_*=1/2 β ∗ = 1/2 。由 2 / ( 1 + λ ) = 1 / 2 2/(1+\lambda)=1/2 2/ ( 1 + λ ) = 1/2 得
λ = 3 \lambda=3 λ = 3 。駐點條件為 β ∗ − 2 + λ β ∗ = 1 / 2 − 2 + 3 / 2 = 0 \beta_*-2+\lambda\beta_*=1/2-2+3/2=0 β ∗ − 2 + λ β ∗ = 1/2 − 2 + 3/2 = 0 ,正乘子
對應取等的預算。
相關筆記
最小二乘與殘差 推導本節使用的擬合方程。Lasso 與匹配追蹤 探討選出稀疏係數的懲罰及演算法。奇異值分解與主成分 解釋縮減背後的譜方向。課程閱讀書目 集中列出延伸閱讀。