1、过拟合-overfitting定义
如果我们设置过多的特征,通过机器学习获得的假设函数将会和实验数据高度重合(成本函数的值将会十分接近于0),但是这样会使得获得的模型不能较好地预测新的样本数据值,这种问题叫做过拟合问题。通俗地说,就是学习出来的模型不具有良好的“推广”性(generalize),实用性很差。
2、怎样处理过拟合问题
方法一:
减少特征数量,可以通过手动选择保留哪些特征,或者通过“模型选择”算法来实现特征筛选。
方法二:
归一化-Regularization,这种方法不需要减少特征数量,但是需要减少特征项的大小;归一化对于特征值很多时会取得较好的效果,尤其是各个特征对于结果值都有所贡献的时候。
3、归一化
为了应对过拟合问题,可以通过增加特征项在成本函数中的成本值来克服过拟合问题。例如,假如我们想使得下面的函数更加偏向二次函数:
θ0+θ1x+θ2x2+θ3x3+θ4x4
我们想要减少三次方项 θ3x3和四次方项 θ4x4的影响,同时不将这两项从假设函数中删除,我们可以在成本函数中针对三次方项 θ3x3和四次方项 θ4x4增加两项惩罚项:
在成本函数中增加了两项罚项之后,为了使得最终成本函数最小化,最终参数 θ3和 θ 4 θ4的值必定比较小,从而减小了高次方项的影响,可以缓解过拟合问题。
上述方式的问题在于,给予哪些特征项参数惩罚很难确定,因为很难判断哪些特征项之间有较强的相关性,同时惩罚项的系数确定也是一个问题,系数的选择既不能太大也不能太小。所以有下述通用归一化成本函数:
其中, λ是归一化参数,当λ取值过大时,会造成欠拟合问题,如除了参数 θ0之外,其他参数均取值为0;若 λ取值过小,则不能起到消除过拟合的作用,还是可能出现过拟合问题。
3.1 线性回归归一化
对归一化之后的成本函数使用梯度下降法的流程如下所示:
将归一化项提出来之后可以变为以下的形式:
其中, 1−αmλ项小于1,所以相对于不归一化处理的梯度下降更新式来说,只是将 θ项进行了缩小处理。
使用了归一化的正规方程的形式如下所示:
使用归一化还可以解决矩阵 XTX不可逆的问题,可以证明在 λ大于0的情况下, XTX+λ⋅L是可逆的。
3.2 逻辑回归归一化
对归一化之后的成本函数使用梯度下降法的流程如下所示:
成本函数的表示形式如下所示:
相对于原本的逻辑回归成本函数,上述成本函数多出了最后的归一化项。