学习笔记:机器学习--2.2过拟合和正规化

这是机器学习的第二章第二节:过拟合(Overfitting)和正规化(Regularization)

通过这一节的学习我们将理解并学会如何对Linear regression和Logistic regression的Cost function进行正规化操作,使其达到更优异的效果(able to generalize to new examples more effective)。更新的函数如下:

函数2.2.1:\(\displaystyle J(\theta) = \frac{1}{2}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{j=1}^{n}\theta_j^2\)

函数2.2.2:\(\displaystyle \theta_j := \theta_j(1-\alpha\frac{\lambda}{m})-\alpha\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}\)

函数2.2.3:\(\displaystyle J(\theta) = -\frac{1}{m}\sum_{i=1}^{m}[y^{(i)}\mbox{log}(h_\theta(x{(i)}))-(1-y^{(i)})\mbox{log}(1-h_\theta(x^{(i)}))]+\frac{\lambda}{2m}\sum_{j=1}^{n}\theta_j^2\)

首先来介绍一下欠拟合(Underfitting)和过拟合(Overfitting)的概念,如下图所示:

学习笔记:机器学习--2.2过拟合和正规化

上图体现了在线性回归模型中,当我们用一个Hypothesis function对training set进行拟合时的三种情况 。当我们选取不同数量的features (\(x\) 时,会呈现出对数据不同程度的拟合情况:1、最左侧的图像显示了当仅有较少features时,Hypothesis拟合效果较差;2、最右侧的图像显示了当有较多features时,虽然对于training set拟合程度很好,但其函数呈现较大波动(对新的example拟合效果会变差);3、中间的图像则选取了适当数量的features,此时拟合效果较好,且对新的example适应性也会较好。

在课程中我们学习主要学习如何解决Overfitting的问题:1、减少features;2、Regularization。针对方法1,我们可以通过人工选择需要的部分features,也可以使用一个选择算法模型;对于方法2,我们可以通过调整一些features的parameter,从而降低其权重。而方法2也是我们这一节要讲的内容。

对于Linear regression的Cost function,我们在上一节给出了类似如下的形式:

\(\displaystyle \min_\theta \frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2\)

接下来我们可以在等式右侧继续加入几项,如下图所示:

学习笔记:机器学习--2.2过拟合和正规化

我们需要求\(J(\theta)\)最小值,因此按照该方法加入项后,\(\theta_3\)和\(\theta_4\)会呈现趋于\(0\)的结果,从而减小了feature\(x_3,x_4\)对Cost function产生的影响。将其总结后就变成函数2.2.1:

\(\displaystyle J(\theta) = \frac{1}{2}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{j=1}^{n}\theta_j^2\)

其中,\(\lambda\)称为正则化参数,即上图示例中的\(1000\)。需要注意的是,在函数式中,正则化部分对\(\theta_1\)到\(\theta_n\)全部产生作用,\(\theta_0\)除外。同样对于正则化参数\(\lambda\)的选取也需要有所考虑,当\(\lambda\)过大时,对应\(\theta_1\)到\(\theta_n\)全部趋于\(0\),简化为一个常数函数,显然会产生欠拟合的情况。当\(\lambda=0\)或太小时,我们不难判断此时正则化效果又变得很弱。我们还发现,式子中用了\(\theta^2\)的形式,这是因为我们希望在Cost function中每一项都是正数,从而仅会使其变大。

在了解了Cost function之后,我们自然还需要考虑改进后的Gradient descent算法,这是因为在Cost function(原函数)中引入了\(\theta_j^2\)项,故在Gradient descent function(导函数)中也会存在这一项,其初始变化如下:

\(\displaystyle \theta_j := \theta_j - \alpha\begin{bmatrix}\begin{pmatrix}\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}\end{pmatrix}+\frac{\lambda}{m}\theta_j\end{bmatrix}\)

将其经过变换后即可得到函数2.2.2:

\(\displaystyle \theta_j := \theta_j(1-\alpha\frac{\lambda}{m})-\alpha\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}\)

其中,\(1-\alpha\frac{\lambda}{m} < 1\)恒成立。

以上就是在Linear regression下运用Regularization后的运算方法。对于Logistic regression,我们讨论的是将结果分为两类,我们同样也需要对拟合结果进行正则化操作,原因如下图所示:

学习笔记:机器学习--2.2过拟合和正规化

可以发现,在逻辑回归模型中,仍然会出现欠拟合和过拟合的情况。我们同样对该模型的Cost function加入正则化对应项,则可得到函数2.2.3:

\(\displaystyle J(\theta) = -\frac{1}{m}\sum_{i=1}^{m}[y^{(i)}\mbox{log}(h_\theta(x{(i)}))-(1-y^{(i)})\mbox{log}(1-h_\theta(x^{(i)}))]+\frac{\lambda}{2m}\sum_{j=1}^{n}\theta_j^2\)

end~