線性迴歸算法
假設數據集爲:
D={(x1,y1),(x2,y2),⋯,(xN,yN)}(式1)
後面我們記:
X=(x1,x2,⋯,xN)T,Y=(y1,y2,⋯,yN)T(式2)
線性迴歸假設:
f(w)=wTx(式3)
最小二乘法
對這個問題,採用二範數定義的平方誤差來定義損失函數:
L(w)=i=1∑N∣∣wTxi−yi∣∣22(式4)
展開得到:
L(w)=(wTx1−y1,⋯,wTxN−yN)⋅(wTx1−y1,⋯,wTxN−yN)T=(wTXT−YT)⋅(Xw−Y)=wTXTXw−YTXw−wTXTY+YTY=wTXTXw−2wTXTY+YTY(式5)
最小化這個值的 $ \hat{w}$ :
w^=wargminL(w)⟶∂w∂L(w)=0⟶2XTXw^−2XTY=0⟶w^=(XTX)−1XTY=X+Y(式6)
這個式子中 (XTX)−1XT 又被稱爲僞逆。對於行滿秩或者列滿秩的 X,可以直接求解,但是對於非滿秩的樣本集合,需要使用奇異值分解(SVD)的方法,對 X 求奇異值分解,得到
X=UΣVT(式7)
於是:
X+=VΣ−1UT(式8)
在幾何上,最小二乘法相當於模型(這裏就是直線)和試驗值的距離的平方求和,假設我們的試驗樣本張成一個 p 維空間(滿秩的情況):X=Span(x1,⋯,xN),而模型可以寫成 f(w)=Xβ,也就是 x1,⋯,xN 的某種組合,而最小二乘法就是說希望 Y 和這個模型距離越小越好,於是它們的差應該與這個張成的空間垂直:
XT⋅(Y−Xβ)=0⟶β=(XTX)−1XTY(式9)
噪聲爲高斯分佈的 MLE
對於一維的情況,記 y=wTx+ϵ,ϵ∼N(0,σ2),那麼 y∼N(wTx,σ2)。代入極大似然估計中:
L(w)=logp(Y∣X,w)=logi=1∏Np(yi∣xi,w)=i=1∑Nlog(2πσ1exp−2σ2(yi−wTxi)2)wargmaxL(w)=wargmini=1N∑(yi−wTxi)2(式10)
這個表達式和最小二乘估計得到的結果一樣。
權重先驗也爲高斯分佈的 MAP
取先驗分佈 w∼N(0,σ02)。於是:
w^=wargmaxp(w∣Y)=wargmaxp(Y∣w)p(w)=wargmaxlogp(Y∣w)p(w)=wargmax(logp(Y∣w)+logp(w))=wargmin[(y−wTx)2+σ02σ2wTw](式11)
這裏省略了 X,p(Y)和 w 沒有關係,同時也利用了上面高斯分佈的 MLE的結果。
我們將會看到,超參數 σ0的存在和下面會介紹的 Ridge 正則項可以對應,同樣的如果將先驗分佈取爲 Laplace 分佈,那麼就會得到和 L1 正則類似的結果。
正則化
在實際應用時,如果樣本容量不遠遠大於樣本的特徵維度,很可能造成過擬合,對這種情況,我們有下面三個解決方式:
- 加大數據量
- 特徵選擇(降低特徵維度)如 PCA 算法。
- 加入正則化
正則化一般是在損失函數(如上面介紹的最小二乘損失)上加入正則化項(表示模型的複雜度對模型的懲罰),下面我們介紹一般情況下的兩種正則化框架。
L1L2:wargminL(w)+λ∣∣w∣∣1,λ>0:wargminL(w)+λ∣∣w∣∣22,λ>0(式12)
下面對最小二乘誤差分別分析這兩者的區別。
L1 Lasso
L1正則化可以引起稀疏解。
從最小化損失的角度看,由於 L1 項求導在0附近的左右導數都不是0,因此更容易取到0解。
從另一個方面看,L1 正則化相當於:
wargminL(w)s.t.∣∣w∣∣1<C(式13)
我們已經看到平方誤差損失函數在 w 空間是一個橢球,因此上式求解就是橢球和 ∣∣w∣∣1=C的切點,因此更容易相切在座標軸上。
L2 Ridge
w^=wargminL(w)+λwTw⟶∂w∂L(w)+2λw=0⟶2XTXw^−2XTY+2λw^=0⟶w^=(XTX+λI)−1XTY(式14)
可以看到,這個正則化參數和前面的 MAP 結果不謀而合。利用2範數進行正則化不僅可以是模型選擇 w 較小的參數,同時也避免 $ X^TX$不可逆的問題。
總結
線性迴歸模型是最簡單的模型,在這裏,利用最小二乘誤差得到了閉式解。同時也發現,在噪聲爲高斯分佈的時候,MLE 的解等價於最小二乘誤差,而增加了正則項後,最小二乘誤差加上 L2 正則項等價於高斯噪聲先驗下的 MAP解,加上 L1 正則項後,等價於 拉普拉斯 噪聲先驗。
傳統的機器學習方法或多或少都有線性迴歸模型的影子:
- 線性模型往往不能很好地擬合數據,因此有三種方案克服這一劣勢:
- 對特徵的維數進行變換,例如多項式迴歸模型就是在線性特徵的基礎上加入高次項。
- 在線性方程後面加入一個非線性變換,即引入一個非線性的激活函數,典型的有線性分類模型如感知機。
- 對於一致的線性係數,我們進行多次變換,這樣同一個特徵不僅僅被單個係數影響,例如多層感知機(深度前饋網絡)。
- 線性迴歸在整個樣本空間都是線性的,我們修改這個限制,在不同區域引入不同的線性或非線性,例如線性樣條迴歸和決策樹模型。
- 線性迴歸中使用了所有的樣本,但是對數據預先進行加工學習的效果可能更好(所謂的維數災難,高維度數據更難學習),例如 PCA 算法和流形學習。