小白入门记录网课笔记并整理,欢迎交流

什么是过拟合

欠拟合:与数据规律偏差较大

拟合:与数据规律契合。如果这个模型在训练集以外的例子(从未见过的新样本)上也能表现良好,这被称之为泛化。

过拟合:拟合了数据集,但是拟合的太好了。对从未见过的新样本上表现不是很好,即泛化能力不好。另一种术语:算法具有高方差。

这里感觉是应该拟合大部分数据的规律,而不是追求把训练集每一个数据都准确分类,如果训练集中有数据偏差,那么这个训练出来的模型对新的样本预测能力是不佳的(相比于拟合)

左:欠拟合,中:just right 拟合,右:过拟合

解决过拟合

  1. 获取更多的训练数据(但可能有时候无法获取)

  2. 选择更有效的特征训练(但是这样可能会损失某些有效信息)

  3. 正则化(鼓励学习算法缩小参数的值,而不一定要求参数精确地设置为0),让你保留所有特征,但是防止特征产生过大的影响

带正则化的成本函数

正则化是我们用的比较多的方式,这里详细介绍一下解决过拟合的第三种方法-正则化

大部分情况下,我们不知道哪些特征更重要,哪些特征不重要。

因此,正则化通常实现方式是惩罚所有特征,或者更准确来说,减小所有的wj参数。

第1,2项,都除2m,按同样的比例进行缩放。再求解\lambda会容易一点。

一般不去惩罚b,因为是否这样做几乎没什么区别,这里主要对wj进行惩罚

选择\lambda也是一个很重要的事:

如果\lambda过小,那么正则项基本没用,那模型还是过拟合

如果\lambda过大,其他项很小趋近于0,f(x)趋近于b,一条水平直线,欠拟合。

应用

正则化线性回归

在成本函数J(w,b)中加入正则项,然后进行梯度下降(带入公式)

我们尝试带入一些值进去,比如学习率\alpha=0.01,\lambda=1,样本数m=50,得到为一个接近于1但是稍小于1的数,比如0.9998。那么原本wj,现在迭代0.9998wj加上后面的普通项,就是对wj进行惩罚的过程。

正则化逻辑回归

逻辑与正则化线性回归相同,在成本函数后面加上正则项。只是逻辑回归的损失函数与线性回归不一样。

在带入梯度下降公式整理之后,会发现也是类似,对wj进行惩罚。

更多推荐