迴歸首先要決定哪些變量組合可以解釋觀測結果,然後才選取各項的係數。
最小二乘法以剩下的誤差作為選擇準則,把資料表、二次目標函數與正交投影
連起來。掌握這個關係,便可以從殘差檢查擬合結果,而不只是讀取軟件輸出的
一串係數。
動機
假設第 i 次實驗記錄了預測變量 xi 與響應 yi。直線 a+bx 用截距
和斜率描述響應如何隨輸入改變。實際資料通常不會全部落在同一直線上,方程
a+bxi=yi 因此可能互不相容。我們仍可先選定誤差的量度方式,再找出
整體預測最接近觀測值的直線。
每個殘差 ri=yi−(a+bxi) 是沿響應方向量度的差值;正負號表示觀測值
在預測值之上還是之下。直接把殘差相加會讓正負誤差抵消。先平方再相加,
所得目標非負,而且較大的偏差有較大的影響。對係數而言,這同時產生了
一個容易分析的二次函數。
資料決定在哪些輸入位置計算預測,特徵則決定模型可以產生哪些預測向量。
直線、多項式和多個預測變量的模型,只要把特徵整理成矩陣,就可以共用同一套
最小二乘推導。
定義
定義
設計矩陣、擬合值與殘差
設 A∈Rn×p 每一行對應一個觀測,每一列對應一項選定的
特徵。響應向量為 y∈Rn,係數向量為 β∈Rp。
定義
y=Aβ,r=y−Aβ,J(β)=∥y−Aβ∥22=i=1∑nri2.使 J 在 Rp 上取得最小值的係數向量,稱為最小二乘解。
直線模型採用特徵 1 與 x,所以
A=1⋮1x1⋮xn,β=[ab].
全為一的那一列提供截距,其係數會令所有擬合值一起平移。刪去這一列,就
指定了必須通過原點的另一個模型。是否包含截距,是計算開始前便要決定的
模型條件。
若有 d 個預測變量,第 i 行寫成 (1,xi,1,…,xi,d),共有
p=d+1 個係數。更一般地,給定固定特徵函數 ϕ1,…,ϕp,
可令 Aij=ϕj(xi)。多項式以輸入的各次冪作特徵;圖像雖然彎曲,
對未知係數仍然是線性的。優化過程固定 A 和 y,只改變 β。
所有擬合向量屬於 col(A)⊆Rn。這是全部
觀測位置上的可能響應所組成的空間,環境維數等於觀測數目。稍後的正交投影
發生在這個空間,並非單一預測變量所在的數線。
定理/命題
命題
正規方程與正交殘差
對任意實矩陣 A,β 使 J 取得最小值,當且僅當
AT(Aβ−y)=0,等價地ATAβ=ATy.殘差 r=y−Aβ 與 A 的每一列垂直。因此
Aβ 是 y 在 col(A) 上的正交投影。
命題
係數何時唯一
ATA 可逆,當且僅當 A 的各列線性獨立。此時唯一的最小二乘係數為
β=(ATA)−1ATy.對一般矩陣,擬合向量仍然唯一。若 β 是一個最小二乘解,
全部解恰為 β+z,其中 z∈ker(A)。
擬合響應可以完全確定,但冗餘特徵之間如何分配係數卻未必能確定。即使觀測
數目多於係數數目,也不能單憑數目排除這種冗餘;真正的條件是各特徵列
線性獨立。
證明思路
取候選係數 β,令 r=y−Aβ。係數改變
h 後,目標滿足精確恆等式
J(β+h)=∥r−Ah∥22=∥r∥22−2hTATr+∥Ah∥22.
若 ATr=0,交叉項消失;任何改變只會增加非負量 ∥Ah∥22,
所以候選解是全域最小值。反過來,若候選解已最優,則對每個方向 h,
函數 t↦J(β+th) 在 t=0 的導數必須為零。該導數是
−2hTATr,從而得到 ATr=0。證明沒有要求各列獨立。
證明
秩、解的存在與擬合向量的唯一性
對每個 z∈Rp,都有
zTATAz=∥Az∥22.因此 ATA 的核為零,當且僅當 A 的核為零。各列獨立時,對任何非零
z,這個二次型都嚴格為正;由正規方程便得到逆矩陣公式。
把 y 投影至有限維子空間 col(A),投影可寫成
Aβ,其正交殘差滿足正規方程,故解存在。若兩組係數都滿足
正規方程,它們的差 z 滿足 ATAz=0。左乘 zT 得
∥Az∥22=0,所以兩組係數產生相同擬合向量。加上任何核向量也不會改變
預測,這就給出了全部最優係數。
包含截距時,A 有一列 1=(1,…,1)T。正規方程於是要求
1Tr=0,即殘差和為零,平均擬合響應等於平均觀測響應。
每個其他特徵列還各自提供一條正交條件。殘差和只檢查了截距所對應的一條
方程,完整最優性則需要全部方程一起成立。
例題
例題
例題一:擬合直線並檢查殘差
考慮 (0,1)、(1,2)、(2,2) 三個觀測。此時
A=111012,y=122,ATA=[3335],ATy=[56].正規方程為 3a+3b=5 和 3a+5b=6。相減得 2b=1,再代回得 a=7/6。
所以
y=7/65/313/6,r=−1/61/3−1/6,J(β)=61.殘差和為零;殘差與預測變量列的內積也為零:
0(−1/6)+1(1/3)+2(−1/6)=0。兩個檢查合起來驗證了完整正規方程。
ATA 的行列式為 6,故係數唯一。殘差平方和大於零,表示三點未能同在
一條直線上。
擬合線亦通過樣本平均點 (1,5/3)。這由截距方程自動推出,不是額外加上的
限制。手算時,可以先用平均點關係檢查截距和斜率是否相容,再檢查另一條
正規方程。
例題
例題二:擬合值唯一,係數卻不唯一
假設三個輸入全部為 2,響應依次為 1、2、3。模型仍寫成 a+bx,但
A=111222,ATA=[36612].每個預測都等於同一數值 t=a+2b,故目標化為
(1−t)2+(2−t)2+(3−t)2=2+3(t−2)2.最小值在 t=2 取得。所有 (a,b)=(2−2s,s),s∈R,都是最優
係數;每組係數都產生 y=(2,2,2)T、殘差 (−1,0,1)T 和目標值
2。正規方程也一致地化為 a+2b=2。
核方向是 (−2,1)T:沿此方向改變係數,在已觀測輸入處不改變結果。
然而新輸入 x=3 的預測為 2+s。因此,已觀測位置上的擬合值一致,仍不足以
確定其他位置的預測。這組資料沒有輸入變化,無法分辨斜率與截距的貢獻。
例題
例題三:目標權重與殘差縮放因子
用常數 c 擬合響應 0、2、8,目標權重取 q=(1,1,1/4)T。目標為
Jq(c)=c2+(2−c)2+41(8−c)2.令導數為零,得到
(1+1+41)c=0+2+418=4,c=916.殘差是 (−16/9,2/9,56/9)T,加權和為
−16/9+2/9+(1/4)(56/9)=0,加權目標值為 116/9。若各觀測使用相等權重,普通
平均值則為 10/3。降低最大響應的影響後,擬合常數向另外兩個觀測靠近。
要把本題寫成普通最小二乘,應以
W=diag(1,1,1/2) 乘殘差。取平方範數後,才得到目標中的
1、1、1/4。若把最後的殘差乘 1/4,其平方項權重會變成 1/16,
求解的就是另一個問題。
加權模型與計算
一般而言,正目標權重 qi 定義
Jq(β)=i∑qi(yi−(Aβ)i)2=∥W(y−Aβ)∥22,W=diag(q1,…,qn).
對轉換後的矩陣 WA 和響應 Wy 使用正規方程,得到
ATW2Aβ=ATW2y.
若改記 Q=diag(qi),則寫成 ATQAβ=ATQy。
這個記法區分了目標中的權重與直接乘在殘差上的因子。權重皆為正時,W
可逆,WA 與 A 的列秩相同,因此係數唯一的條件不變。正交條件改為
ATQr=0,對應的是加權內積。
數值計算時,可直接使用最小二乘求解器。逆矩陣公式表達了滿列秩時的數學解,
而求解器可以透過正交分解計算,毋須顯式形成該逆矩陣。例題一可寫成:
import numpy as np
x = np.array([0.0, 1.0, 2.0])
y = np.array([1.0, 2.0, 2.0])
A = np.column_stack((np.ones_like(x), x))
beta, _, rank, singular_values = np.linalg.lstsq(A, y, rcond=None)
residual = y - A @ beta
rss = residual @ residual
# beta ≈ [1.16666667, 0.5]; rss ≈ 1/6
返回的秩表示數值方法識別到多少個獨立特徵方向。直接計算殘差,亦令其符號
約定與目標值清楚可見。若正目標權重存於 q,便把輸入改為
np.sqrt(q)[:, None] * A 和 np.sqrt(q) * y。返回的奇異值還會在降維中
用來分析資料的主要方向。
QR 與三角最小二乘求解
若 A 有滿列秩且 n≥p,把其列向量正交規一化可得薄 QR 分解
A=QR,Q∈Rn×p,QTQ=Ip,R∈Rp×p.
其中 R 是可逆上三角矩陣。把響應分成投影 QQTy 與正交餘項。由 QT(I−QQT)=0,且 Q 保持係數向量長度,
∥Aβ−y∥22=∥Rβ−QTy∥22+∥(I−QQT)y∥22.
第二項不依賴 β,第一項可降為零,因此唯一極小解滿足 Rβ=QTy。回代先解三角系統最後一行,再把已求係數代入前一行。這個方法給出相同的正規方程解,但不必顯式建立 ATA 或其逆矩陣。滿列秩令 R 可逆;秩不足的設計則須使用前述最小二乘或偽逆處理。
例題
三角形式的迴歸計算
取行向量 (1,0),(1,1),(1,2),響應 y=(1,1,4)T。選 Q 的列為 (1,1,1)T/3 及 (−1,0,1)T/2,則
R=(3032),QTy=(233/2),β=(1/23/2).最後一條三角方程給出斜率 3/2,第一條給出截距 1/2。擬合響應是 (1/2,2,7/2)T,殘差是 (1/2,−1,1/2)T,其平方範數為 3/2,恰好等於分解中的正交餘項。
特徵選擇與誤差的意思
二次模型採用 1、x、x2 三項特徵。例題一的輸入對應矩陣
A2=111012014.
多項式 1+(3/2)x−(1/2)x2 恰好通過三個觀測,訓練殘差為零。原有的每條
直線都可把二次項係數設為零而保留下來,所以新空間的最小誤差較小。
這擴大了可選模型的範圍,並非把原有兩特徵問題再求得更精確。
在新輸入 x=3,二次模型預測 1,原來的擬合線卻預測 8/3。兩者均由
各自的模型決定,但原有資料並沒有這個位置的響應可供比較。選擇特徵空間,
和在既定空間中估計係數,是兩項不同工作;最小二乘在特徵固定後處理後者。
轉換響應也會改變誤差的意思。對滿足 xi>0、yi>0 的觀測,擬合 a>0
的冪模型 y=axb。取對數得
logy=loga+blogx.
以 logyi 作響應、1 和 logxi 作特徵,最小化的是對數尺度上的
差值平方和。把截距取指數雖能還原 a,卻不會把目標變回原響應尺度上的
平方誤差。對數尺度把相同的乘法比例視為相同差值;原尺度則比較加法差值。
這是擬合準則本身的改變,而不只是把同一個目標改寫。正值條件亦確定了
對數轉換的定義域。
其他可線性化的模型
同一設計矩陣方法也適用於下列模型。響應欄決定了平方誤差所使用的尺度:
指數模型先求解 logy=c+dx,再還原 a=ec、b=ed。其輸入可以是任意
實數;這種對數擬合只要求觀測響應為正。對數迴歸則只轉換輸入,所以響應可為
負或零。輸入取倒數同樣保留原響應 SSE;響應取對數或倒數,則改變了損失。
上述兩列設計矩陣的係數要唯一,轉換後的輸入值就不能全部相同。線性化使轉換
方程對係數呈線性,卻不會消除秩不足。
例題
例題四:精確的指數與輸入倒數擬合
對 (0,2)、(1,6)、(2,18),對數響應位於直線
logy=log2+xlog3.因此轉換後的最小二乘係數為 c=log2、d=log3,還原模型是
y=2⋅3x。這裡容許輸入為零,因為沒有對輸入取對數。
對 (1,5)、(2,3)、(4,2),轉換輸入為 1、1/2、1/4,得到精確模型
y=1+4/x。它最小化原響應 SSE,數值為零。模型在每個 x=0 處都有定義,
包括負輸入,亦不要求響應為正。
例題
例題五:響應倒數改變了目標
取 x=(0,1,2)T、y=(1,1/2,1/4)T。以特徵 1,x 擬合倒數響應
(1,2,4)T,得到
a=65,b=23,i∑(yi1−(a+bxi))2=61.還原預測為 (6/5,3/7,6/23)T。原響應 SSE 是 1/25+1/196+1/8464,而非
1/6。一般而言,
(yi1−yi1)2=yi2yi2(yi−yi)2,yi=0,yi=0.分母依賴預測,因此這並非原 SSE,也不是預先指定觀測權重的 SSE。擬合分母在
三個觀測處均非零,但在 x=−5/9 處為零,模型於該處沒有定義的響應。使用
轉換後的擬合作預測時,應同時檢查模型的定義域和所選損失。
最後,殘差檢查必須對應實際使用的特徵矩陣。若例題一只用特徵 x,要求
直線通過原點,最優係數是 6/5,殘差為 (1,4/5,−2/5)T。它與預測變量列
的內積為零,但殘差和是 7/5。沒有截距列,自然沒有殘差和為零這條限制。
改變模型時,擬合值和檢查方程會一起改變;把矩陣和係數並列記錄,就能清楚
辨認應檢查的條件。
常見錯誤
常見錯誤
區分最優殘差、精確擬合與唯一係數
正規方程描述在選定特徵空間內最小的訓練殘差平方和。殘差恰為零,進一步
表示資料響應就在該空間中;係數唯一,則另外要求特徵列獨立。三項結論各有
自己的檢查條件。
加入特徵會擴大可用的擬合空間。把新係數設為零仍可恢復舊模型,所以最小
訓練誤差只會下降或保持不變。對新觀測的預測表現還涉及模型如何泛化;單憑
訓練誤差下降,不能比較未見資料上的預測誤差。
另一個容易混淆的地方是幾何上的垂直。普通最小二乘計算的是響應方向上的
差值,並不要求每個資料點至平面內擬合線的連線都垂直。定理說的是整個
Rn 殘差向量與設計矩陣各列垂直。加權情況則採用加權內積;
先說清楚所在空間,幾何解釋才會一致。
總結
先選特徵,再按觀測逐行建立設計矩陣,以殘差平方範數作目標。正規方程檢查
最優性,列秩決定係數是否唯一,正交投影則確定唯一的擬合向量。使用加權
資料時,交給普通最小二乘求解器的行縮放因子是目標權重的平方根。
練習
思考檢查
練習一:用常數擬合響應 1、4、7。求最優常數、殘差向量與殘差平方和。
設計矩陣只有一列全一向量。可以配方,或直接列出唯一一條正規方程。
思考檢查
練習二:設 A=111012,候選殘差為 r=(1,−1,0)T。它能否是此設計矩陣的普通最小二乘殘差?
思考檢查
練習三:常數模型的響應為 0、6,目標權重分別為 1、2。求最優常數,並寫出把殘差轉成普通最小二乘形式的對角縮放矩陣。
先寫出加權目標再求導,並區分目標權重與它的平方根。
思考檢查
練習四:以 y=a+blogx 擬合 (1,−1)、(e,1)、(e2,3),求精確模型。負響應會否妨礙此擬合?
解答
解答 · 練習一解答
正規方程是 3c=1+4+7=12,所以 c=4。殘差為 (−3,0,3)T,
平方和為 9+0+9=18。殘差和為零,符合截距列的要求。配方亦得
J(c)=18+3(c−4)2,同時證明解唯一。
解答 · 練習二解答
殘差和為零,但
ATr=[1−1+00(1)+1(−1)+2(0)]=[0−1].第二條正規方程不成立,因此它不能是指定矩陣的最小二乘殘差。只與截距列
垂直並不足夠。
解答 · 練習三解答
目標是 c2+2(6−c)2,導數為 2c+4(c−6),所以 c=4。殘差
(−4,2)T 的加權和為 1(−4)+2(2)=0。縮放矩陣為
W=diag(1,2),因為
WTW=diag(1,2)。
解答 · 練習四解答
轉換輸入為 0,1,2,響應為 −1,1,3,因此 a=−1、b=2,精確模型是
y=−1+2logx。每個輸入皆為正。響應沒有取對數,所以容許負值;所最小化
的是原響應 SSE。
相關筆記
SVD 與主成分
以奇異向量描述資料矩陣的重要方向。
二次函數上的梯度下降
探討如何逐步優化本節這類目標函數。
課程閱讀書目集中列出本課程使用的書籍。