版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Hemk340200600/article/details/85201251
过拟合(over-fitting)
在算法对模型参数的学习过程中,如果模型过于强大,比如说,样本空间分布在一条直线的附近,那么我们的模型最好是一条直线,
hθ(x)=θ0+θ1x1。但我们并不知道数据的情况,可能我们的函数是这样的:
hθ(x)=θ0+θ1x1+θ2x22+θ3x33,此时图像不会是一条直线,它会像一条弯曲的曲线,完美地穿过各个数据点。
在过拟合的情况下,损失函数的值会非常的小。得到的模型无法泛化,对新样本的适应性很差。
欠拟合(under-fitting)
欠拟合的情况和过拟合相反,如果样本空间是一条曲线,如果我们的模型最终只能学习出来一条直线,也就是我们的模型没有学习到数据的特点,具有较高的偏差,这种情况下,损失函数的值会比较大。
正则化
对于欠拟合,往往是模型特征过多导致的,可以使用降低特征数量的方式来解决,比如,手动去除特征中不必要的参数,或者使用一定的模型选择算法来自动选择特征。
还有一种方法是正则化。通过给模型添加正则项的方式,对参数进行惩罚,降低特征对最终的决策边界的影响。
比如,我们在线性回归的损失函数
J(θ)=2m1[∑i=1m(hθ(x(i)−y(i))+λ∑j=1mθj2)]中加入
λ∑j=1mθj2。其中
λ被称为正则化参数。对于
λ的选取,不应过大也不应过小,对于过大的
λ,对参数的惩罚过大,相当于参数对整体式子不会产生影响,导致欠拟合的发生。对于过小的
λ,对参数的惩罚较小,无法改善整体的情况,仍旧会导致过拟合。我们应该选取合适的
λ,这样在每次最小化的过程中,
θ的值会变得更小,因此特征对整体的影响也变小,对于图形的拟合也会变得比较平滑。
带有正则的梯度下降的更新公式如下:
θj:=θj−α[m1i=1∑m(hθ(x(i))−y(i))xj(i)+mλθj]
进一步化简为如下形式:
θj:=θj(1−αmλ)−αm1i=1∑m(hθ(x(i))−y(i))xj(i)