【AndrewNg机器学习】正则化(Regularization)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qyf394613530/article/details/84107650

1 过拟合问题

如下图所示的回归问题,第一个模型是线性模型,欠拟合,不能很好地适应训练集;第三个模型就属于过拟合,太过于强调训练数据,而不能推广到新的数据,进行对新数据的预测。中间的模型最为合适。


在这里插入图片描述

同样的,在分类问题中也有这种现象:


在这里插入图片描述

如何处理过拟合问题:

  • 丢弃一些不能帮助我们正确预测的特征。可以手工选择保留哪些特征,或使用模型算法来帮忙
  • 正则化,保留所有的特征,但是减少参数的大小

2 正则化

在上面的回归问题中我们的过拟合模型为:hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_3+\theta_4x_4
可以看出,正是高次项导致了过拟合的产生,如果我们能让这些高次项接近0的话,就可以解决这个问题。所以我们要在一定程度上减小θ3,θ4\theta_3,\theta_4的大小,即在代价函数上进行修改,在θ3,θ4\theta_3,\theta_4上设置惩罚:minθ12m[i=1m(hθ(x(i))y(i))2+1000θ32+10000θ42]\min_\theta \frac{1}{2m}[ \sum_{i=1}^m (h_\theta(x^{(i)}) -y^{(i)} )^2 + 1000\theta_3^2 + 10000\theta_4^2 ]通过这样的代价函数,得到的θ3,θ4\theta_3,\theta_4就会比以前的小很多。假如数据过多的话,我们就要对所有的特征进行惩罚:minθ12m[i=1m(hθ(x(i))y(i))2+λj=1nθj2]\min_\theta \frac{1}{2m}[ \sum_{i=1}^m (h_\theta(x^{(i)}) -y^{(i)} )^2 + \lambda \sum_{j=1}^n \theta_j^2 ]其中λ\lambda称为正则化参数(Regularization Parameter),根据惯例,我们不对θ0\theta_0进行惩罚,经过正则化后,模型的前后对比如下图:


在这里插入图片描述

λ\lambda过大,则所有参数都会变小,模型就会变成hθ(x)=θ0h_\theta(x)=\theta_0,也就是图中红色直线的情况。

3 正则化应用

3.1 正则化线性回归

正则化线性回归的代价函数为:J(θ)=12mi=1m[((hθ(x(i))y(i))2+λj=1nθj2)]J ( \theta ) = \frac { 1 } { 2 m } \sum _ { i = 1 } ^ { m } \left[ \left( \left( h _ { \theta } ( x ^ { ( i ) } ) - y ^ { ( i ) } \right) ^ { 2 } + \lambda \sum _ { j = 1 } ^ { n } \theta _ { j } ^ { 2 } \right )\right ]
然后进行梯度下降算法,由于我们没有对θ0\theta_0进行正则化,所以梯度下降算法分为两种情形:θ0:=θ0α1mi=1m[hθ(x(i))y(i)]x0(i) \theta _ { 0 } : = \theta _ { 0 } - \alpha \frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left[ h _ { \theta } \left( x ^ { ( i ) } \right) - y ^ { ( i ) } \right] x _ { 0 } ^ { ( i ) } θj:=θjα[1mi=1m[hθ(x(i))y(i)]xj(i)+λmθj] \theta _ { j } : = \theta _ { j } - \alpha \left[\frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left[ h _ { \theta } \left( x ^ { ( i ) } \right) - y ^ { ( i ) } \right] x _ { j } ^ { ( i ) } + \frac { \lambda } { m } \theta _ { j } \right]对上面的算法中 j =1,2,3…,n时的式子进行化简得:θj:=θj(1αλm)α1mi=1m(hθ(x(i))y(i))xj(i)\theta _ { j } : = \theta _ { j } \left( 1 - \alpha \frac { \lambda } { m } \right) - \alpha \frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left( h _ { \theta } \left( x ^ { ( i ) } \right) - y ^ { ( i ) } \right) x _ { j } ^ { ( i ) }

3.2 正则化逻辑回归模型

正则化逻辑回归得代价函数:J(θ)=1mi=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]+λ2mj=1nθj2J ( \theta ) = -\frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left[ y ^ { ( i ) } \log \left( h _ { \theta } \left( x ^ { ( i ) } \right) \right) + \left( 1 - y ^ { ( i ) } \right) \log \left( 1 - h _ { \theta } \left( x ^ { ( i ) } \right) \right) \right] + \frac { \lambda } { 2 m } \sum _ { j = 1 } ^ { n } \theta _ { j } ^ { 2 }
梯度下降算法为:θ0:=θ0α1mi=1m((hθ(x(i))y(i))x0(i))\theta _ { 0 } : = \theta _ { 0 } - \alpha \frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left( \left( h _ { \theta } \left( x ^ { ( i ) } \right) - y ^ { ( i ) } \right) \cdot x _ { 0 } ^ { ( i ) } \right)θj:=θjα1mi=1m((hθ(x(i))y(i))xj(i)+λmθj)\theta _ { j } : = \theta _ { j } - \alpha \frac { 1} { m } \sum _ { i = 1 } ^ { m } \left( \left( h _ { \theta } \left( x ^ { ( i ) } \right) - y ^ { ( i ) } \right) \cdot x _ { j } ^ { ( i ) } + \frac { \lambda } { m } \theta _ { j } \right)

展开阅读全文

没有更多推荐了,返回首页