解析求解
最小二乘法(OLS)的目标函数
J
(
w
)
=
∑
i
=
1
N
(
y
i
−
f
(
x
i
)
)
2
J(w)=\sum_{i=1}^{N}(y_{i} - f(x_{i}))^2
J(w)=i=1∑N(yi−f(xi))2
岭回归的目标函数
J
(
w
;
w
)
=
∑
i
=
1
N
(
y
i
−
f
(
x
i
)
)
2
+
λ
∑
j
=
1
D
w
j
2
J(w;w)=\sum_{i=1}^{N}(y_{i} - f(x_{i}))^2 + \lambda\sum_{j=1}^{D}w_{j}^2
J(w;w)=i=1∑N(yi−f(xi))2+λj=1∑Dwj2
Lasso回归的目标函数
J
(
w
;
w
)
=
∑
i
=
1
N
(
y
i
−
f
(
x
i
)
)
2
+
λ
∑
j
=
1
D
∣
w
j
∣
J(w;w)=\sum_{i=1}^{N}(y_{i} - f(x_{i}))^2 + \lambda\sum_{j=1}^{D}|w_{j}|
J(w;w)=i=1∑N(yi−f(xi))2+λj=1∑D∣wj∣
从这里可以看到,最小二乘法、岭回归、Lasso与模型的具体形式无关,具体定义是由损失函数和正则项的类型确定的。要注意,数学中的L2模定义在平方和的基础上,是要开根号的,但此处的L2损失和L2正则是不需要开根号的,对此需要再查资料以确认。上一篇线性回归也包含一些OLS、Rige、Lasso的知识。
解析求解原理。目标函数最小的点,其一阶导数必然为0,所以最优解的必要条件是一阶导数为0,即
∂
J
(
w
)
∂
w
=
0
\frac{\partial J(w)}{\partial w} = 0
∂w∂J(w)=0,根据该等式可以求出参数w。
一些矩阵运算求导性质。后续应再写一篇矩阵运算、求导得性质,简单的记录就好,主要用于备查,不必包含证明过程。
ABC=A(BC),乘法结合律
A
T
B
=
B
T
A
A^{T}B=B^{T}A
ATB=BTA
(
A
−
B
)
(
C
−
D
)
=
A
B
+
A
C
−
B
C
+
B
D
(A-B)(C-D) = AB + AC - BC + BD
(A−B)(C−D)=AB+AC−BC+BD
(
A
+
B
)
T
=
A
T
+
B
T
(A+B)^T = A^T + B^T
(A+B)T=AT+BT
(
A
B
)
T
=
B
T
A
T
(AB)^T=B^TA^T
(AB)T=BTAT
∂ ( y T b ) ∂ y = b \frac{\partial(y^Tb)}{\partial y} = b ∂y∂(yTb)=b 不是很理解
∂
(
y
T
A
y
)
∂
y
=
(
A
T
+
A
)
y
\frac{\partial(y^TAy)}{\partial y} = (A^T +A)y
∂y∂(yTAy)=(AT+A)y不是很理解
OLS解析求解之正规方程组(Normal Equations)。OLS的目标函数
J
(
w
)
=
∣
∣
Y
−
X
W
∣
∣
2
2
=
(
Y
−
X
W
)
T
(
Y
−
X
W
)
J(w) = ||Y-XW||_{2}^2 = (Y-XW)^T(Y-XW)
J(w)=∣∣Y−XW∣∣22=(Y−XW)T(Y−XW)
=
(
Y
T
−
W
T
X
T
)
(
Y
−
X
W
)
=(Y^T-W^TX^T)(Y-XW)
=(YT−WTXT)(Y−XW)
=
Y
T
Y
−
W
T
X
T
Y
−
Y
T
X
W
+
W
T
X
T
X
W
=Y^TY - W^TX^TY-Y^TXW + W^TX^TXW
=YTY−WTXTY−YTXW+WTXTXW其中
Y
T
Y
Y^TY
YTY与参数W无关,所以可以直接略取,原式变为:
=
−
W
T
X
T
Y
−
Y
T
X
W
+
W
T
X
T
X
W
=-W^TX^TY-Y^TXW + W^TX^TXW
=−WTXTY−YTXW+WTXTXW
=
−
W
T
X
T
Y
−
W
T
X
T
Y
+
W
T
X
T
X
W
=-W^TX^TY-W^TX^TY + W^TX^TXW
=−WTXTY−WTXTY+WTXTXW
=
−
2
W
T
Y
T
X
+
W
T
X
T
X
W
=-2W^TY^TX + W^TX^TXW
=−2WTYTX+WTXTXW
=
−
2
X
T
Y
W
+
W
T
X
T
X
W
=-2X^TYW + W^TX^TXW
=−2XTYW+WTXTXW根据以上结果对W求导
∂
J
(
W
)
∂
W
=
−
2
X
T
Y
+
2
X
T
X
W
\frac{\partial J(W)}{\partial W} = -2X^TY + 2X^TXW
∂W∂J(W)=−2XTY+2XTXW上一步的第二项是怎么来的,不是很明白
令求导结果为0,可得
X
T
X
W
=
X
T
Y
X^TXW = X^TY
XTXW=XTY上式也被称为是正规方程组(Normal Equations),根据上面的等式,解析求解得结果为
W
^
O
L
S
=
(
X
T
X
)
−
1
X
T
Y
\hat W_{OLS} = (X^TX)^{-1}X^TY
W^OLS=(XTX)−1XTY 卿老师说求,这种解析求解需要求逆,但实际中需要避免求逆,这个是为什么呢?是不是因为求逆的前提必须是方阵,而实际中并不一定是方阵?即使是方阵,是否是因为某些情况下,逆矩阵是不存在的?
按照导数为0得到得到的解析解,应也包含了极大值点,但老师却没有提到,这是不是说OLS一定是凸函数,不存在极大值点呢?凸函数的术语使用是否正确?
OLS解析求解之Moore-Penrose广义逆。OLS的目标函数为
J
(
W
)
=
∣
∣
y
−
X
w
∣
∣
2
2
J(W) = ||y - Xw||_{2}^2
J(W)=∣∣y−Xw∣∣22,为了使目标函数最小,可以令
y
=
X
w
y = Xw
y=Xw,如果X为方阵,则
w
=
X
−
1
y
w = X^{-1}y
w=X−1y,如果X不是方阵,则可以求X的Moore-Penrose广义逆(视频里讲的是伪逆),广义逆可采用奇异值分解(Singular Value Decomposition, SVD)实现,奇异值分解公式为:
X
=
U
∑
V
T
X = U\sum V^T
X=U∑VT其中U和V是正交矩阵
∑
=
∣
λ
1
0
.
.
.
0
0
λ
2
.
.
.
0
.
.
.
.
.
.
.
.
.
.
.
.
0
0
.
.
.
0
∣
\sum = \begin{vmatrix}\lambda_{1}&0&...&0\\0&\lambda_{2}&...&0\\...&...&...&...\\0&0&...&0\end{vmatrix}
∑=
λ10...00λ2...0............00...0
∑
伪逆
=
∣
1
/
λ
1
0
.
.
.
0
0
1
/
λ
2
.
.
.
0
.
.
.
.
.
.
.
.
.
.
.
.
0
0
.
.
.
0
∣
\sum伪逆= \begin{vmatrix}1/\lambda_{1}&0&...&0\\0&1/\lambda_{2}&...&0\\...&...&...&...\\0&0&...&0\end{vmatrix}
∑伪逆=
1/λ10...001/λ2...0............00...0
X
伪逆
=
V
(
∑
伪逆
)
U
X伪逆 = V(\sum伪逆)U
X伪逆=V(∑伪逆)U关于SVD分解,应再加深,考虑写一片笔记文章
岭回归解析求解
如何选择使用OLS和Ridge。
OLS的解为:
W
^
O
L
S
=
(
X
T
X
)
−
1
X
T
y
\hat W_{OLS} = (X^TX)^{-1}X^Ty
W^OLS=(XTX)−1XTy,需要对
X
T
X
X^TX
XTX求逆。当输入特征存在共线性(某些特征可以用其他特征的线性组合表示)时,矩阵X接近不满秩,矩阵
X
T
X
X^TX
XTX接近奇异,求逆不稳定。
岭回归的解为:
W
^
R
i
d
g
e
=
(
X
T
X
+
λ
I
)
−
1
X
T
y
\hat W_{Ridge} = (X^TX + \lambda I)^{-1}X^Ty
W^Ridge=(XTX+λI)−1XTy,须对
(
X
T
X
+
λ
I
)
(X^TX + \lambda I)
(XTX+λI)求逆。即使输入特征存在共线性,矩阵X接近不满秩,矩阵
X
T
X
X^TX
XTX对角线存在等于或接近于0的元素,但
0
+
λ
≠
0
0 + \lambda \neq 0
0+λ=0,
(
X
T
X
+
λ
I
)
(X^TX + \lambda I)
(XTX+λI)求逆仍可得到稳定解。因此岭回归在输入特征存在共线性的情况时,仍能得到稳定解,L1正则也有相似的效果。
以上两段时PPT上的原文,老师对第二段进行讲解时,说道的时
0
+
λ
0 + \lambda
0+λ接近于0的情况得到了减轻,所以仍可得到稳定解。
对下面的逻辑链条不时很理解,需要查些线性代数的资料:输入特征存在共线性 => 矩阵
X
T
X
X^TX
XTX接近奇异 =>
X
T
X
X^TX
XTX求逆不稳定。这个逻辑链条来源于OLS那一段,但岭回归那一段也存在相似的逻辑。
本小节是关于解析求解的,那么以上关于如何选择使用OLS和Ridge的逻辑,是否适用于使用梯度下降或坐标轴下降的情况呢?Scikit Learn中是否存在对解析求解、梯度下降、坐标轴下降不同的实现呢?