正则化(Regulization)
当出现
θ
^
=
(
X
T
X
)
−
1
X
T
Y
\hat\theta=(X^TX)^{-1}X^TY
θ^=(XTX)−1XTY,其中
(
X
T
X
)
(X^TX)
(XTX)是奇异矩阵的时候,怎么处理?所以引出了正则化的概念。
X
=
[
1
x
1
(
1
)
.
.
.
x
n
(
1
)
1
x
1
(
2
)
.
.
.
x
n
(
2
)
.
.
.
.
.
.
.
.
.
.
.
.
1
x
1
(
N
)
.
.
.
x
n
(
N
)
]
=
[
x
(
1
)
T
x
(
2
)
T
.
.
.
x
(
N
)
T
]
X=\begin{bmatrix} 1&x_1^{(1)}&...&x_n^{(1)}\\ 1&x_1^{(2)}&...&x_n^{(2)}\\ ...&...& ...& ...\\ 1&x_1^{(N)}&...&x_n^{(N)}\\ \end{bmatrix}\quad =\begin{bmatrix} {x^{(1)}}^T\\ {x^{(2)}}^T\\ ...\\ {x^{(N)}}^T\\ \end{bmatrix}\quad
X=⎣⎢⎢⎢⎡11...1x1(1)x1(2)...x1(N)............xn(1)xn(2)...xn(N)⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡x(1)Tx(2)T...x(N)T⎦⎥⎥⎥⎤
θ
=
[
θ
0
θ
1
.
.
.
θ
n
]
,
Y
=
[
y
(
1
)
y
(
2
)
.
.
.
y
(
N
)
]
\theta=\begin{bmatrix} \theta_0\\ \theta_1\\ ...\\ \theta_n\\ \end{bmatrix},Y=\begin{bmatrix} y^{(1)}\\ y^{(2)}\\ ...\\ y^{(N)}\\ \end{bmatrix}
θ=⎣⎢⎢⎡θ0θ1...θn⎦⎥⎥⎤,Y=⎣⎢⎢⎡y(1)y(2)...y(N)⎦⎥⎥⎤
X
θ
=
y
^
,
J
(
θ
)
=
1
2
N
∣
∣
X
θ
−
Y
∣
∣
2
2
,
∂
J
(
θ
)
∂
θ
=
0
X\theta=\hat y,\quad J(\theta)=\frac{1}{2N}||X\theta-Y||_2^2,\quad \frac{\partial J(\theta)}{\partial\theta}=0
Xθ=y^,J(θ)=2N1∣∣Xθ−Y∣∣22,∂θ∂J(θ)=0
θ
=
(
X
T
X
)
−
1
X
T
Y
\theta=(X^TX)^{-1}X^TY
θ=(XTX)−1XTY
当出现不可求逆时,出现下面方法:
1.1 岭回归(Ridge Regression)
J
(
θ
)
=
1
2
N
∣
∣
X
θ
−
Y
∣
∣
2
2
+
1
2
λ
∣
∣
θ
∣
∣
2
2
,
∣
∣
θ
∣
∣
2
2
=
θ
1
2
+
θ
2
2
+
.
.
.
.
+
θ
n
2
J(\theta)=\frac{1}{2N}||X\theta-Y||_2^2+\frac{1}{2}\lambda||\theta||_2^2,\quad||\theta||_2^2=\theta_1^2+\theta_2^2+....+\theta_n^2
J(θ)=2N1∣∣Xθ−Y∣∣22+21λ∣∣θ∣∣22,∣∣θ∣∣22=θ12+θ22+....+θn2
λ
\lambda
λ很大时,模型注重求取
θ
\theta
θ平方和最小。
在之前求梯度下降的公式中,我们有
θ
j
=
θ
j
−
α
(
1
N
∑
i
=
1
N
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
)
\theta_j=\theta_j-\alpha(\frac{1}{N}\sum_{i=1}^N(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)})
θj=θj−α(N1∑i=1N(hθ(x(i))−y(i))xj(i))作为更行公式,在这里我们的更新公式变为:
θ
j
=
θ
j
−
α
(
1
N
∑
i
=
1
N
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
+
λ
θ
j
)
\theta_j=\theta_j-\alpha(\frac{1}{N}\sum_{i=1}^N(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}+\lambda\theta_j)
θj=θj−α(N1i=1∑N(hθ(x(i))−y(i))xj(i)+λθj)
θ
j
=
(
1
−
α
λ
N
)
θ
j
−
α
(
1
N
∑
i
=
1
N
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
)
\theta_j=(1-\frac{\alpha\lambda}{N})\theta_j-\alpha(\frac{1}{N}\sum_{i=1}^N(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)})
θj=(1−Nαλ)θj−α(N1i=1∑N(hθ(x(i))−y(i))xj(i))
每次更新都在使
θ
\theta
θ缩放。
解析表达式中,我们得到:
θ
=
(
X
T
X
+
λ
I
)
−
1
X
T
Y
\theta=(X^TX+\lambda I)^{-1}X^TY
θ=(XTX+λI)−1XTY
式中
I
I
I是一个
n
+
1
×
n
+
1
n+1\times n+1
n+1×n+1的单位矩阵,对于
θ
0
\theta_0
θ0不需要惩罚项来控制,所以,在单位矩阵的第一行对应0.加上之后,很多奇异矩阵变为非奇异矩阵,于是可以求逆。
1.2 LASSO(Least Absolute Shrinkage and Selection Operator)
可以删选特征,做特征选择。同时让更多
θ
\theta
θ变为0。可以等价为:
m
i
n
θ
∣
∣
θ
∣
∣
0
,
s
.
t
.
X
θ
=
Y
min_\theta||\theta||_0,\quad s.t.\quad X\theta=Y
minθ∣∣θ∣∣0,s.t.Xθ=Y
因为0范数不是凸函数,无法做优化,所以我们改求1范数,同时可以较好的模拟0范数。
等价为:
m
i
n
J
(
θ
)
=
1
2
N
∣
∣
X
θ
−
Y
∣
∣
2
2
+
∑
i
=
1
N
λ
∣
θ
∣
min J(\theta)=\frac{1}{2N}||X\theta-Y||_2^2+\sum_{i=1}^N\lambda|\theta|
minJ(θ)=2N1∣∣Xθ−Y∣∣22+i=1∑Nλ∣θ∣
选择了不重要的特征,减少了模型的复杂度。在LASSSO的优化过程中,在某些点上不可导,梯度下降的方法明显不可以使用。
LASSO优化方法:
- Coordinate Descent
随机不断的在 θ \theta θ不同维度上进行搜索,搜索梯度最大的。 - Forward Selection
在某个方向上找个合适的值,再从第二个纬度上寻找最优的参数。 - Forward Strategies
不断的进行方向的比较,比较损失函数,确定方向。 - Least Angle Regression(LARS)
寻找角分线,从而确定一个方向的值后,便有同样大小的缩放系数。