ML学习笔记第三周(四):解决过拟合问题

1 过拟合问题(Overfitting)

过拟合(Overfitting)问题就是特征数量太多,过分的追求完美拟合训练样本,把训练样本自身的一些特点,当成所有潜在样本都会具有的一般特征。这样求得的假设函数对训练样本会拟合非常好,但是泛化能力比较差,难以对新的样本做出正确的预测。

欠拟合(Underfitting)问题就是对训练样本的一般性质尚未学好,我们的假设函数h的形式很难映射到数据的趋势。通常是由变量过于简单或变量太少引起的。

关于过拟合和欠拟合,西瓜书里面讲的比较直观,比如预测树叶,将绿色作为树叶的标准,选择的特征数量太少,如果将绿色的都作为树叶,就会误将大树分为树叶,这个就叫欠拟合;如果选择的样本恰巧都具有锯齿,过分的追求完美拟合,就会把没有锯齿的新树叶不分成树叶,这个就叫过拟合。这两种拟合问题都需要我们想办法去解决。

线性回归的拟合问题:
在这里插入图片描述
逻辑回归的拟合问题:
在这里插入图片描述
解决过拟合问题:绘制模型曲线,进而选择合适的模型来拟合数据。但是这样并不总是有用,比如有很多变量 x i x_i xi的假设模型,绘图会变得很难(三维画起来都费劲,更被说高维的了),难以可视化,所以需要另寻他法。
1、减少特征数量

  • 人工的选择保留哪些特征变量,决定哪些特征更重要
  • 借助模型选择算法(之后会讲到),让其自动决定选择那些特征变量
  • 缺点:舍弃一些变量,同是也舍弃了问题中的一些信息,比如房价预测时,每个变量都会对房价造成一定影响,现在舍弃一些变量就不合适

2、正则化

  • 保留所有特征变量,但是会减小数量级或者参数数值的大小 θ ( j ) \theta(j) θ(j)
  • 当特征变量数量多,而且每个变量都会对预测 y y y有影响时,工作情况好(克服了刚才的缺点)

2 代价函数

当我们在代价函数后面加上一部分时,即惩罚(penalize) θ 3 \theta_3 θ3 θ 4 \theta_4 θ4,此时就需要尽量让 θ 3 \theta_3 θ3 θ 4 \theta_4 θ4接近0,否则代价函数就会很大,这样求得的结果就和二次函数很相近,这也就是正则化大概的思路。
在这里插入图片描述
更一般的,对所有的参数进行惩罚,我们就可以得到一个更加简单的假设,对应更加光滑的函数,如此就不容易发生过拟合的问题
在这里插入图片描述
具体举例,修改代价函数,加入额外的正则项 λ ∑ j = 1 n θ j 2 \lambda \sum_{j=1}^{n}\theta _{j}^{2} λj=1nθj2,收缩每个参数(一般不惩罚 θ 0 \theta_0 θ0这个常数)。 λ \lambda λ称为正则化参数,它要做的就是控制在两个不同目标之间的平衡关系。
第一个目标, ∑ i = 1 n ( h θ ( x ( i ) ) − y ( i ) ) 2 \sum_{i=1}^{n}(h_{\theta }(x^{(i)})-y^{(i)})^{2} i=1n(hθ(x(i))y(i))2,让建立的模型尽可能的拟合训练数据;
第二个目标, λ ∑ j = 1 n θ j 2 \lambda \sum_{j=1}^{n}\theta _{j}^{2} λj=1nθj2,保持参数值较小,从而保持假设的的形式相对简单,避免过拟合。
在这里插入图片描述
λ \lambda λ过大,就会非常过分的惩罚除 θ 0 \theta_0 θ0之外的各个参数,结果就是让他们趋于0,最终的假设就会近似的变成一条水平直线,不会趋向大部分训练样本的任何值,出现欠拟合的问题。之后的多重选择课程,会进一步讲如何利用算法来自动选择合适的正则化参数 λ \lambda λ
在这里插入图片描述
最后,吴恩达老师留下了一个问题,正则化参数 λ \lambda λ太小或者等于0会怎么样?
我的想法是,如果 λ \lambda λ太小,就会对所有参数惩罚力度太小,甚至是不进行惩罚,代价函数就会退化为原有的函数,只留下第一项, ∑ i = 1 n ( h θ ( x ( i ) ) − y ( i ) ) 2 \sum_{i=1}^{n}(h_{\theta }(x^{(i)})-y^{(i)})^{2} i=1n(hθ(x(i))y(i))2,让建立的模型尽可能的拟合训练数据,这样相当于不对模型建立做任何干预,过拟合的问题根本解决不了,假设函数该凸还是凸,该陡还是陡。

3 正则化(Regularized)线性回归

3.1 梯度下降

在这里插入图片描述
由上式很容易看出, 1 − α λ m &lt; 1 1-\alpha \frac{\lambda }{m}&lt;1 1αmλ<1 1 − α λ m 1-\alpha \frac{\lambda }{m} 1αmλ其实和1相差的并不大。在应用正则化时,实际上就是每次先把 θ j \theta_j θj向0压缩一点点,然后再进行梯度下降,也就是后边那一项。

3.2 正规方程

在这里插入图片描述
不可逆问题:
正则化之前,如果训练样本数量 m m m<特征数量 n n n,那么 X T X X^TX XTX就是不可逆矩阵,之前提到过,在octave/matlab可以用pinv来求其伪逆(这样效率会比较低),但是这样并不会得到一个很好的假设,正规方程应用的也不会非常好。

正则化时,只要保证正则化参数 λ &gt; 0 \lambda&gt;0 λ>0 X T X + [ 1 2 3 4 5 6 7 8 9 ] X^TX+\left[ \begin{matrix} 1 &amp; 2 &amp; 3 \\ 4 &amp; 5 &amp; 6 \\ 7 &amp; 8 &amp; 9 \end{matrix} \right] XTX+147258369就一定是可逆的,其逆矩阵存在(怎么证明我也不知道)

4 正则化逻辑回归

代价函数:(附加项在方括号外面)
在这里插入图片描述
梯度下降:
算法思想仍然相同,但是其中的 h θ ( x ) = 1 1 + e − θ T X h_\theta(x)=\frac{1}{1+e^{-\theta^{T}X}} hθ(x)=1+eθTX1
在这里插入图片描述
高级优化算法:
我们需要做的事情和之前类似,还是自定义函数costFunction(theta),然后再调用fminunc来进行梯度下降。
在这里插入图片描述

5 参考资料

1、机器学习-第三周

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值