吴恩达《机器学习》笔记(3)正则化

学习引导:正则化是防止过拟合的一个重要方法,并且过拟合在神经网络也很重要。
简要说明什么是过拟合以及过拟合的危害。

Regularization

Solving the Problem of Overfitting

The Problem of Overfitting

-w500

如上图,这是一个单变量回归问题。通过使用高次项,我们可以的到不同的拟合曲线。
左 1 使用一次函数 y = θ 0 + θ 1 x y = \theta_0 + \theta_1x y=θ0+θ1x 来拟合曲线。可以看到,效果并不好。这种情况称之为欠拟合(under-fitting)。
中间使用二次函数 y = θ 0 + θ 1 x + θ 2 x 2 y = \theta_0 + \theta_1x + \theta_2x^2 y=θ0+θ1x+θ2x2 来拟合。效果不错。
右 1 使用五次函数 y = ∑ j = 0 5 θ j x j y = \sum_{j=0}^5\theta_jx^j y=j=05θjxj 来拟合。 对于训练集的拟合效果极好,但是在测试集,很可能得到很差的结果。这种情况称为过拟合(over-fitting)

欠拟合,或高偏差(high-bias),指的是猜想函数 h 不能很好的映射模型。它一般是因为函数过于简单或使用了过少的特征。
过拟合,或高方差(high-variance),指的是函数很好得拟合了训练数据,但是不能很好地泛化来预测新数据。他是因为使用过于复杂的函数,产生了不必要的曲线和角度。

过拟合同时适用于 linear 和 logistic regression。

一般有2种方法来解决这个问题:

  1. Reduce the number of features: 减少特征的数量

    • Manually select which features to keep. 手动选择保留那些特征
    • Use a model selection algorithm (studied later in the course). 使用模型选择算法
  2. Regularization 正则化

    • Keep all the features, but reduce the magnitude of parameters θ j \theta_j θj. 保留所有特征,但是减少参数的大小(权重)
    • Regularization works well when we have a lot of slightly useful features. 正则化在使用很多稍微有点作用的特征时,能得到很好的效果

Cost function (regularized)

如果函数产生过拟合,可以通过增加项的代价来减少降低项的权重。

详细的说,假设现在猜想函数 h = θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 + θ 4 x 4 + θ 5 x 5 h = \theta_0 + \theta_1x + \theta_2x^2 + \theta_3x^3 + \theta_4x^4 + \theta_5x^5 h=θ0+θ1x+θ2x2+θ3x3+θ4x4+θ5x5

我们想要消除 θ 3 \theta_3 θ3 θ 4 \theta_4 θ4 的影响。我们可以对代价函数作出如下改变:

J ( θ ) = m i n θ 1 2 m ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) 2 + 1000 ⋅ θ 3 2 + 1000 ⋅ θ 4 2 J(\theta) = min_\theta \frac{1}{2m}\sum_{i=1}^m(h(x^{(i)}) - y^{(i)})^2 + 1000 \cdot {\theta_3}^2 + 1000 \cdot {\theta_4}^2 J(θ)=minθ2m1i=1m(h(x(i))y(i))2+1000θ32+1000θ42

可以看到, θ 3 \theta_3 θ3 θ 4 \theta_4 θ4 的成本极高。所以为了最小化 J ( θ ) J(\theta) J(θ) θ 3 ,   θ 4 ≈ 0 \theta_3,\ \theta_4\approx 0 θ3, θ40

因为不知道到底要消除哪一个特征的影响,我们可以同时减小所有权重:

J ( θ ) = m i n θ 1 2 m ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 0 n θ n 2 J(\theta) = min_\theta \frac{1}{2m}\sum_{i=1}^m(h(x^{(i)}) - y^{(i)})^2 + \lambda \sum_{j=0}^n{\theta_n}^2 J(θ)=minθ2m1i=1m(h(x(i))y(i))2+λj=0nθn2

λ \lambda λ 称作是正则化参数(regularization parameter)

通过减小权重,函数变得平滑,以此减小过拟合。如果 λ \lambda λ 过大,那么会变得过于平滑,从而导致欠拟合。如果 λ \lambda λ 过小,那就没什么效果。

Regularized Linear Regression

Gradient Descent

对代价函数偏微分得到:

KaTeX parse error: No such environment: align* at position 7: \begin{̲a̲l̲i̲g̲n̲*̲}̲ & \text{Repeat…

注意 λ m θ j \frac{\lambda}{m}\theta_j mλθj 项。

将公式整理后可以得到:

θ j : = θ j ( 1 − α λ m ) − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \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)} θj:=θj(1αmλ)αm1i=1m(hθ(x(i))y(i))xj(i)

可以看到,第一项的系数 ( 1 − α λ m ) (1-\alpha\frac{\lambda}{m}) (1αmλ) 总是稍微小于1,所以每次把 θ \theta θ 减小一点点。第二项则和正则化之前完全一样。

Normal Equation

KaTeX parse error: No such environment: align* at position 7: \begin{̲a̲l̲i̲g̲n̲*̲}̲& \theta = \lef…

之前提到,当 m &lt; n m &lt; n m<n 时, X T X X^TX XTX 是不可逆的。但是当添加这一项后, X T X + λ ⋅ L X^TX + \lambda \cdot L XTX+λL 可逆。

Regularized Logistic Regression

如上图,可以用类似的方法对对数几率回归模型进行正则化。

  • 左上蓝线表示过拟合的曲线。紫线表示正则化之后的曲线
  • 右上是高次猜想函数
  • 下方是添加了正则项的代价函数
Cost Function

J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] + λ 2 m ∑ j = 1 n θ j 2 J(\theta) = -\frac{1}{m}\sum_{i=1}^{m}[y^{(i)}\log(h_\theta(x^{(i)})) + (1-y^{(i)})\log(1-h_\theta(x^{(i)}))] + \frac{\lambda}{2m}\sum_{j=1}^n{\theta_j}^2 J(θ)=m1i=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]+2mλj=1nθj2

注意 ∑ j = 1 n θ j 2 \sum_{j=1}^n{\theta_j}^2 j=1nθj2 显式排除了 θ 0 \theta_0 θ0 的影响

Gradient Descent

回答章前问题

简要说明什么是过拟合以及过拟合的危害。

过拟合是使用了过高次幂的函数,导致函数出现不必要的曲线和角度。使得其虽然能很好的拟合训练数据,但不能拟合测试数据,也就无法很好的预测模型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值