在网易公开课的学习笔记当中,我们讲解了线性回归和Logistic回归模型,提出了可能出现的过拟合问题,这里通过介绍一种正则化的方法,来具体看看如何避免过拟合的。
正则化
简单来说,我们在模型的拟合过程中,为了尽可能的减小成本函数,让模型对训练数据更好的拟合,可能倾向于选择增加模型参数,这样就可能会导致过拟合。正则化的方式则是选择在成本函数中增加一个正则化项(Regularization item,又叫罚项),这个罚项会使得成本函数随着模型参数的增加而变大,从而在最小化成本函数的过程中,倾向模型参数较少的模型,平衡拟合程度和模型复杂度来避免过拟合问题。
正则化在线性回归中的应用:
我们知道,线性回归中,我们的成本函数为:
添加一个正则化项:
可以看出当我们增加参数来使第一项的值减小时,正则化项会逐渐增大,从而平衡模型复杂度和拟合程度来避免过拟合问题。
当我使用正则化的成本函数运行梯度下降,对J(Θ)求导,可以得到参数Θ的更新公式:
式子右边Θj的系数小于1,也就是每次迭代中用一个较小的Θ代替上次的迭代结果,从而使正则化项减小。
当我们将J(Θ)改成矩阵表示,并对其求导,令导数为0,可以得到正则化的最小二乘公式:
其中diag()为n+1的对角矩阵,正则化的另一个好处是可以保证XTX+λ·diag(0,1,1,…,1)一定可逆!
PS:梯度下降的参数都是同步更新的,即每一轮迭代的结果不参与该轮计算,而是等该轮迭代完成后一起更新参数。比如在某一轮求得Θ1的新值后,在本轮求Θ2时参与计算的是Θ1的旧值而不是新值。
正则化在Logistic回归中的应用:
成本函数,直观上理解就是预测值和真值之间的差距,对于Logstic函数而言,它的输出为{0,1},并且当hΘ(x)大于0的程度越大,y=1概率也越大;hΘ(x)小于0的程度越大,y=0概率也越大。因此它的成本函数需要满足:
1)当我们把y=1的样本预测为y=0时,因为预测错误,此时成本函数中关于该样本的一项的值会非常大;
2)而当我们把y=1的样本预测为y=1时,此时成本函数的值应该接近于0。当y=0时同理。因此定义Logistic回归的成本函数J(Θ):
Logistic回归成本函数的直观解释
对于Logistic回归,0<hΘ(x)<1。
1)当y(i)=1时,取第一项的值,可以看到,如果我们预测为y=1,该项的成本函数值为0;如果预测为y=0,该项的成本函数值趋于无穷。
2)当y(i)=0时,取第一项的值,可以看到,如果我们预测为y=0,该项的成本函数值为0;如果预测为y=1,该项的成本函数值趋于无穷。
同样的我们在成本函数中添加一个正则化项,来避免过拟合问题。这里的正则化项与线性回归中相同,为λ·ΣΘj2/2m。具体步骤这里不再赘述。