正则化
1、过拟合
第一张图称为 “欠拟合”(高偏差),就是学的不够好,和实际相差比较远。
第二场图是刚好拟合,且曲线平滑,认为是比较理想的模型。
第三张图称为 “过拟合”(高方差),就是学的太好,以致于曲线过于扭曲。
过拟合的出现是由于变量太多(特征太多),样本数太少,在计算loss时,loss近似等于0,此时模型能够很好的拟合训练样本,但无法对新的样本由很好的泛化能力。
2、如何解决过拟合
- 减少变量。缺点是,可能会缺少一部分信息。
- 正则化。
3、代价函数
要实现正则化:
1)对高阶项惩罚
对于两个变量的情况
Θ
0
+
Θ
1
x
+
Θ
2
x
2
{\Theta}_{0}+{\Theta}_{1}x+{\Theta}_{2}x^2
Θ0+Θ1x+Θ2x2,目标是:
m
i
n
1
2
m
∑
i
=
1
m
(
h
Θ
(
x
i
−
y
i
)
)
2
min\frac{1}{2m}\sum_{i=1}^m({h}_{\Theta}({x}^{i}-{y}^{i}))^2
min2m1∑i=1m(hΘ(xi−yi))2。此时能够很好拟合。
那么当有4个变量时,
Θ
0
+
Θ
1
x
+
Θ
2
x
2
+
Θ
3
x
3
+
Θ
4
x
4
{\Theta}_{0}+{\Theta}_{1}x+{\Theta}_{2}x^2+{\Theta}_{3}x^3+{\Theta}_{4}x^4
Θ0+Θ1x+Θ2x2+Θ3x3+Θ4x4,多了x3、x4。那么令
Θ
3
\Theta_3
Θ3和
Θ
4
\Theta_4
Θ4变得极小,这样就能有效减小x3,x4(这两个是高阶项,因此次数高,太大的话对值的影响就很大)带来的影响 (这就是加入了惩罚) 。
2)修改代价函数
若有100个变量,不好确定哪些是高阶项,此时就修改代价函数,加入正则化项。
λ
\lambda
λ是正则化参数,用来控制在两个目标的取舍。第一个是更好的拟合数据,第二个是保持参数尽量小。也就是说,当拟合效果太好时,正则化来稍微控制一下,不要过度好;当参数太大时,正则化来控制一下,使得参数稍微小一点。达到一种拟合效果好,参数也小的均衡状态是最好的。
注意正则化参数不能过大,如果太大的话,
Θ
\Theta
Θ会近似为0,这样就拟合效果很差,变成“欠拟合”。
4、如何实现正则化
1)对于线性回归
我们知道使用线性回归时,求解
Θ
\Theta
Θ最小,可以用梯度下降法和正规方程法。
对于梯度下降:正则化的方法就是在每次更新参数时都要加入正则化项
对于正规方程法:只需要在求解参数的时候加上正则化项
2)对于Logistic回归
同样的,对于梯度下降:(注意虽然式子相同,但是假设函数与线性回归是不一样的)