02 正则化
正则化(Regularization)
当我们用数据集训练出我们的模型时,我们可能会发现模型过拟合(Overfitting)了。例如对于一个个点的样本集,我们总是可以用一个次函数使得它能够精确穿过所有样本点,然而这样训练得到的模型是没有价值的,拟合的结果过于奇怪以至于它没有预测的价值。
为了解决过拟合问题,常见地有以下几种策略:第一,我们可以增加样本,扩大样本集的规模,这一定程度上总是可以使模型有更好的预测能力的。当然,这有时可能是难以实现的。第二,我们可以删掉我们用来训练模型的输入数据的某些维度,例如在房价预测中面积、房间数等等比较重要,而长度、宽度这些feature就不那么重要,可以提前删除来防止过拟合。第三,我们可能并不需要真的删除一些feature,而是让某些feature的参数的取值不能过大而足以影响整个函数的形态,这称为正则化。
我们可以修改代价函数来实现正则化。例如,假如我们挑选出了个我们不希望它对函数产生较大影响的维度,那么我们就在代价函数中加上这一项。由于我们要最小化代价函数,因此新增的一项就保证了每个都不会有过大的取值(软约束)。调整系数的大小,我们可以获得不同程度的对大小的限制。在线性回归(或逻辑回归)中,正则化后的代价函数就写作。我们发现,在梯度下降中,。设梯度下降的步长为,那么有了新的项以后每次还会新迭代一次。这相当于把的每一维系数大小都缩减了一个系数,可见我们通过梯度下降的迭代次数控制着系数的大小。