吴恩达 机器学习 正则化 学习笔记
正则化解决/缓解 过拟合 问题
首先,介绍几个概念
“欠拟合”与“刚刚好”与“过拟合”
“欠拟合”其实相对容易解决,通过不断地调参,总可以使拟合度逐渐提高
而“过拟合”的问题则相对麻烦一些
Q:什么情况会出现过拟合?
A:当特征数过多时,方程阶数可能很高,导致曲线可能去尽力拟合每一个数据,导致曲线极度扭曲。可以说是“特化”过于严重。而我们机器学习是希望通过一些特化的训练集得到一个相对泛化的结果,能够去预测新的值,而现在特化严重,在预测新的值的时候就会出现很大的偏差,但在训练时却发现代价函数J几乎为0
Q:出现了过拟合应该如何解决/缓解
A:下图是吴恩达老师给出的两个解决方案:
第一个方法则是减少特征数,上面已经说了,当特征数比较多的时候会出现这种情况,那么我们减少特征数量,就能相应地避免这种情况。但是这样有一个问题,就是如果我们选择减少特征数量,但是实际上他们又真的与结果是有一定关系的,就会造成一定的误差
第二个方法就是本文要介绍的 正则化 的方法
通过加入惩戒函数,控制一些值使其值很小,使其看起来好像这个特征所在的项不存在一样。通过在代价函数加上 1000(θ3^2)使θ3的值几乎为0,θ4也一样。
这样做你可能会认为与直接去掉这些特征一样,但是实际上这样做的一个好处是使这个曲线更加地平滑,相当在去掉这些特征的基础上去靠近各个点,但是靠近地程度很小,就不会扭曲,也会更接近、即使代价函数更小。
Q:那么面对很多个特征时,我们如何选择让哪些特征加上惩戒函数?
A:吴恩达老师给出的建议是:因为我们不知道哪些特征会造成这种扭曲,所以我们把从θ1到θn的每一个特征参数都加上惩戒函数,如下图
其中,λ是一个较大的值,比如上面θ3采用的λ=1000。
但是应注意,λ不能够过于大。比如说让λ=10E10
那么这时,因为λ的值过于大,由于惩戒函数,各个特征的参数θ都变得极其小,小到可以忽略不计(虽然上面说的λ=1000也让θ约等于0,但是这就相当于0.01与0.00000001的区别),这就造成,预测函数H=θ0+θ1X+θ2(X^2)+……+θn(f(X))
后面各项为0,就变成了H=θ0,这显然是很有问题,并不是我们想要的。
最后看一下正则化在线性回归和逻辑回归的具体形式
1、线性回归
1.1梯度下降法
1.2正规方程法
关于正规方程法中,(X’X)可能不可逆的问题:
即如果样本数m<=特征数,那么(X’X)会不可逆。
但是目前有数学证明,只要λ>0,那么(X’X)+λ矩阵
0 | 0 | 0 |
---|---|---|
0 | 1 | 0 |
0 | 0 | 1 |
(这种a=eye(n+1)再令a(1)=0生成的矩阵)
一定是可逆的。
2.逻辑回归
其实是与线性回归类似的。因为本来线性回归和逻辑回归的形式是很类似的,只是预测函数的具体内容不一样。
逻辑回归的预测函数:
而线性回归则是上面提到的多项式相加的形式。
2.1梯度下降法
这里还有一个高级优化的算法,是用到了 逻辑回归那一章提到的方法,不过我现在还并不怎么会,就先把图挂在这里,之后用到、学习的时候再来补上了。