下面是線性回歸的公式推導,沒有加上 l2 正則化因子。
假設
y
^
=
x
w
\hat y = xw
y^=xw,因為
l
(
)
∣
−
2
t
+
,
\begin{aligned} l(w) &= ||\hat y - y||_2^2=||xw-y||_2^2 \\ &= (xw-y)^t(xw-y) \\ &= w^tx^txw - y^txw - w^tx^ty + y^ty, \end{aligned}
l(w)=∣∣y^−y∣∣22=∣∣xw−y∣∣22=(xw−y)t(xw−y)=wtxtxw−ytxw−wtxty+yty,
是以
∂
\frac{\partial l(w)}{\partial w}= 2x^txw-x^ty-x^ty,
∂w∂l(w)=2xtxw−xty−xty,
令
\frac{\partial l(w)}{\partial w}=0
∂w∂l(w)=0,得
1
.
w=(x^tx)^{-1}x^ty.
w=(xtx)−1xty.
參考:周志華《機器學習》p55 “線性回歸”這一節的叙述。
上面定義的
l(w) =||\hat y - y||_2^2
l(w)=∣∣y^−y∣∣22 是經驗風險,在經驗風險的基礎上加上表示模型複雜度的正則化項(regularization)或者懲罰項(penalty term),即結構風險。是以線性回歸是經驗風險最小化,嶺回歸是結構風險最小化。
參考:李航《統計學習方法》(第二版)p18關于“經驗風險最小化”與“結構風險最小化”一節的叙述。
嶺回歸其實就是在損失函數上加上了一個 l2 正則,使得每個變量的權重不會太大。當某些特征權重比較大的時候,自變化變化一點點,就會導緻因變量變化很大,使得方差變大,有過拟合風險。
此時損失函數變為:
λ
\begin{aligned} l(w) &= ||\hat y - y||_2^2 + \lambda ||w||^2_2 =||xw-y||_2^2 + \lambda w^tw\\ &= (xw-y)^t(xw-y) + \lambda w^tw\\ &= w^tx^txw - y^txw - w^tx^ty+y^ty + \lambda w^tw, \end{aligned}
l(w)=∣∣y^−y∣∣22+λ∣∣w∣∣22=∣∣xw−y∣∣22+λwtw=(xw−y)t(xw−y)+λwtw=wtxtxw−ytxw−wtxty+yty+λwtw,
\frac{\partial l(w)}{\partial w}= 2x^txw-x^ty-x^ty + 2 \lambda w,
∂w∂l(w)=2xtxw−xty−xty+2λw,
e
w=(x^tx + \lambda e)^{-1}x^ty.
w=(xtx+λe)−1xty.
這裡
e 是一個機關矩陣。
1、嶺回歸原理及代碼實作
javascript:void(0)
2、矩陣求導公式,及mathjax公式編輯
3、mathjax基本的使用方式