继续是机器学习课程的笔记,这节课会介绍归一化的内容。
过拟合问题
这节课会介绍一个在机器学习过程中经常会遇到的问题–过拟合。通常,当我们有非常多的特征,我们可以学习得到的假设可能非常好地适应训练集,即代价函数可能几乎是0,但是可能会不能推广到新的数据,即泛化能力差,对于新的数据预测结果不理想。这就是过拟合问题。而特征非常多也是发生过拟合问题的一个原因之一。
下面是一个回归问题,分别有3个模型,如下所示:
第一个模型是一个线性模型,低度拟合,不能很好地适应我们的训练集;第三个模型是一个四次方的模型,过度拟合,虽然能非常好地适应我们的训练集,但在新输入变量进行预测时可能会效果不好;而中间的模型则是相对最合适的模型。
在回归问题中会有过拟合问题,同样在分类问题也是有过拟合的问题,例子如下所示:
同样是第一个模型是线性模型,只能低度拟合,而第三个模型是一个过渡拟合的模型,对新输入变量进行预测时效果会不好,只有中间的模型是最合适的模型。
那么,当发生过拟合的问题时,我们可以采取下面的措施来避免过拟合:
1. 丢弃一些不能帮助我们正确预测的特征:可以是手工选择保留哪些特征或者使用一些模型选择的算法来帮忙(例如PCA);
2. 归一化。保留所有的特征,但是减小参数的大小。
归一化代价函数
在上述回归问题的例子中,对于过拟合的模型是 hθ(x)=θ0+θ1x1+θ2x22+θ3x33+θ4x44 。
我们决定要减少 θ3和θ4 的大小,我们要做的是修改代价函数,在其中对 θ3和θ4 设置一点惩罚。这样做的话,我们在尝试最小化代价时也需要将这个惩罚纳入考虑中,并最终导致选择较小的 θ3和θ4 。修改后的代价函数如下:
通过这样的代价函数选择出来的 θ3和θ4 对预测结果的影响就会比之前小许多。
那么假如我们有许多的特征,我们并不知道其中哪些特征需要惩罚,我们将对所有的特征进行惩罚,并且让代价函数最优化的软件来选择这些惩罚的程度。那么代价函数如下所示: