Skip to content
Bo's Blog
Go back

Coursera机器学习笔记(六) - 正则化


一. 过拟合

如下图所示, 使用三种不同的多项式作为假设函数对数据进行拟合, 从左一和右一分别为过拟合和欠拟合. 对率回归: 解决过拟合问题大致分为两种, 一种是减少特征的数量, 可以人工选择一些比较重要的特征留下, 也可以使用模型选择算法(Model selection algorithm,后面的课程会介绍);另一种就是正则化(Regularization).

二. 正则化

如图所示的两个假设函数, 其中第二个为过拟合. 那么该如何改变代价函数能够让最中的假设函数不过拟合? 对比两个假设函数我们可以看到, 它们的区别就在于第二个多了两个高阶项. 也就是说, 我们不希望出现后面两个高阶项, 即希望θ3\theta_3, θ4\theta_4越小越好. 通过上面的想法, 我们把θ3\theta_3, θ4\theta_4放到代价函数里, 并且加上很大的权重(1000):

J(θ)=12mi=1m(hθ(x(i))y(i))2+1000θ32+1000θ42J(\theta)=\frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)} )^2+1000\theta_3^2+1000\theta_4^2

现在如果要最小化代价函数, 那么最后两项也必须得最小. 这个时候, 就有θ30\theta_3\approx0, θ40\theta_4\approx0. 从而这个四次多项式就变成了一个二次多项式, 解决了过拟合的问题. 对于正则化的一般思路是, 减少特征的数量, 降低模型的复杂度. 所以我们要对每个参数进行惩罚, 从而得到’更简单’的并且可以防止过拟合的模型. 但是在实际问题中我们很难判断哪些特征比较重要, 所以对每一个参数(除了第一个)参数进行惩罚, 将代价函数改为:

J(θ)=12m[i=1m(hθ(x(i))y(i))2+λi=1nθj2]J(\theta)=\frac{1}{2m}\left[\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)} )^2+\lambda\sum_{i=1}^n\theta_j^2\right]

其中, λi=1nθj2\lambda\sum_{i=1}^n\theta_j^2叫做正则化项(Regularization Term), λ\lambda叫做正则化参数(Regularization Parameter). λ\lambda的作用就是在”更好地拟合数据”和”防止过拟合”之间权衡. 如过λ\lambda过大的话, 就会导致θ1\theta_1θ2\theta_2θ3\theta_3…近似于0, 这样我们的假设函数就为:hθ(x)=θ0h_\theta(x)=\theta_0. 这时就变成了欠拟合(Underfit). 所以需要选择一个合适的λ\lambda. 后面的课程会讲到自动选择合适的λ\lambda的方法.

三. 正则化线性回归

通过正则化之后的J(θ)J(\theta)我们可以得到对应的梯度下降算法, 如下图所示. 因为我们不对θ0\theta_0进行惩罚, 所以将θ0\theta_0的规则单独写出来, 其余的参数更新规则如下图第三行公式. 公式前半部分1αλm1-\alpha\frac{\lambda}{m}是一个比1小一点点的数(教授举了个例子大概是0.99), 而公式的后半部分和没有进行正则化的梯度下降的公式的后半部分是完全一样的. 所以区别就在于前半部分会将θj\theta_j缩小(因为乘了一个小于1的数). 同样, 在正规方程中, 我们只需要在公式中加上一部分如下图所示. 即:

θ=(XTX+λ[0000...0 0100...0 0010...0 0001...0 0000...0 0000...1])1XTy\theta=(X^TX+\lambda\begin{bmatrix} 0&0&0&0&...&0\\\ 0&1&0&0&...&0\\\ 0&0&1&0&...&0\\\ 0&0&0&1&...&0\\\ 0&0&0&0&...&0 \\\ 0&0&0&0&...&1 \end{bmatrix})^{-1}X^Ty

并且对于正则化后的正规方程, 只要λ>0\lambda>0, 括号里的那一项总是可逆的:

四. 正则化对率回归

类似地, 正则化逻辑回归中的代价函数和梯度下降如下图所示. 下图是使用正则化的高级优化算法, 只需要在计算jVal时在后面加上一个正则化项以及在梯度后面减去一个λmθj\frac{\lambda}{m}\theta_j.


Share this post on:

Previous Post
Coursera机器学习笔记(七) - 来自吴恩达的狗粮和鸡汤
Next Post
Coursera机器学习笔记(五) - Logistic Regression