第二章:12.2 正则化和偏差或方差

当我们用一个四阶多项式(一个比较复杂的曲线)去拟合数据时,正则化参数(λ)的作用就像是一个“调节器”,它可以帮助我们控制模型的复杂程度,避免模型过于简单或过于复杂。

前提:正则化参数是什么:

正则化参数 λ(有时也记作 α 或其他符号)是正则化项中的一个超参数,它不是模型本身的一个变量,而是在训练模型之前需要设定的一个值。正则化参数控制着正则化项在损失函数中的权重,从而影响模型训练的过程和结果。

1. 正则化参数(λ)的作用

  • λ非常大(比如10000)

    • 当λ非常大时,模型会尽量让参数(w)变得很小,甚至接近于零。这是因为正则化项(λ/2 * Σw²)会惩罚参数的大小。

    • 结果是,所有的参数(w1, w2, w3, w4)都会变得非常小,模型会变得非常简单,几乎是一个常数函数(f(x) ≈ 常数)

    • 这种情况下,模型在训练数据上的表现很差,因为它无法捕捉数据的任何变化,偏差很高(Jtrain很大)。

  • λ非常小(比如0)

    • λ非常小(甚至为0)时,正则化的作用几乎不存在,模型会尽量去拟合每一个训练数据点。

    • 这时模型会变得非常复杂,曲线会完美地通过每一个数据点,看起来像是“过拟合”。

    • 虽然在训练集上的误差很小(Jtrain很小),但在验证集上的误差会很大(Jcv比Jtrain大得多),方差很高。

  •  λ适中

    • 如果选择一个合适的λ值,模型既不会过于简单,也不会过于复杂。

    • 这时模型能够很好地拟合数据,同时在训练集和验证集上的表现都很不错(Jtrain和Jcv都很小)。

2. 如何选择合适的λ值

为了找到合适的λ值,可以使用交叉验证的方法:

  • 步骤1:选择一系列不同的λ值,比如0、0.01、0.1、1、10等。

  • 步骤2:对于每一个λ值,用训练集数据训练模型,得到一组参数(w)。

  • 步骤3:用这些参数在交叉验证集上计算误差(Jcv)。

  • 步骤4:比较不同λ值对应的Jcv,选择使Jcv最小的λ值。这个λ值就是最佳的正则化参数。

  • 步骤5:最后,用这个最佳的λ值重新训练整个模型,并在测试集上评估模型的泛化能力(Jtest)。

3.如何调整正则化参数

调整正则化参数 λ 的过程通常涉及以下几个步骤:

  1. 理解正则化的作用:首先,需要理解正则化的目的,即防止模型过拟合,提高模型的泛化能力。

  2. 选择正则化类型:根据问题的特点选择合适的正则化类型,如L1正则化(Lasso)、L2正则化(Ridge)或它们的组合(Elastic Net)。

  3. 使用交叉验证通过交叉验证来评估不同 λ 值对模型性能的影响。通常,我们会在训练集上训练模型,并在验证集上评估模型的性能。

  4. 搜索最优 λ:可以通过网格搜索(Grid Search)或随机搜索(Random Search)等方法在一定范围内搜索最优的 λ 值。这些方法会尝试多个 λ 值,并选择使验证集上的性能最好的那个值。

  5. 评估模型性能:在找到最优 λ 值后,使用整个训练集重新训练模型,并在独立的测试集上评估模型的最终性能。

  6. 调整和迭代:根据模型在测试集上的表现,可能需要回到步骤3,尝试不同的 λ 值或调整其他超参数,以进一步优化模型。

4. 总结

通过调整正则化参数 λ,可以控制模型的复杂度,从而影响模型的偏差和方差:

  • 大 λ:模型过于简单,高偏差。

  • 适中 λ:模型复杂度适中,泛化能力好。

  • 小 λ:模型过于复杂,高方差。

通过交叉验证,我们可以找到一个合适的λ值,让模型在训练集和验证集上都有很好的表现,同时也能更好地泛化到新的数据上。



这张照片展示了正则化在线性回归中的应用,特别是如何通过调整正则化参数λ来控制模型的偏差和方差。

模型公式

  • 模型:fw,b​(x)=w1​x+w2​x2+w3​x3+w4​x4+b

    • 这是一个四阶多项式模型,其中 w1​,w2​,w3​,w4​ 是模型参数,b 是偏置项。

成本函数

  • 成本函数:J(w,b)=2m1​∑i=1m​(fw,b​(x(i))−y(i))2+2mλ​∑j=1n​wj2​

    • 第一部分是均方误差,衡量模型预测与实际值之间的差异。

    • 第二部分是正则化项,其中 λ 是正则化参数,控制模型复杂度。

图表解释

  • 左图(大λ)

    • 当 λ=10,000 时,模型参数 w1​,w2​ 接近于0,模型简化为 fw,b​(x)≈b,即一个常数函数。

    • 这种情况下,模型在训练集上的误差较大(Jtrain​(w,b) is large),表现出高偏差(underfit)。

  • 中图(适中λ)

    • 当选择一个适中的 λ 值时,模型能够较好地拟合数据。

    • 此时,模型在训练集和交叉验证集上的误差都较小(Jtrain​(w,b) is small 和 Jcv​(w,b) is small),表现出良好的泛化能力。

  • 右图(小λ)

    • 当 λ=0 时,模型没有正则化,可能会过拟合数据。

    • 这种情况下,模型在训练集上的误差较小(Jtrain​(w,b) is small),但在交叉验证集上的误差较大(Jcv​(w,b) is large),表现出高方差(overfit)。

图片展示了两个图表,分别描述了训练误差(Jtrain​(w,b))和交叉验证误差(Jcv​(w,b))如何随着正则化参数 λ 的变化而变化。

  • 左图:展示了当 λ 较小时(对应于模型复杂度较高),训练误差和交叉验证误差都较小,但随着 λ 增加(模型复杂度降低),训练误差会逐渐增大,而交叉验证误差先减小后增大,表现出U型曲线。

  • 右图:展示了随着多项式次数的增加,训练误差和交叉验证误差的变化。随着多项式次数的增加,训练误差逐渐减小,但交叉验证误差先减小后增大,同样表现出U型曲线。

交叉验证的作用

交叉验证是一种评估模型泛化能力的方法,通过尝试多个不同的 λ 值,并评估每个值对应的交叉验证误差,我们可以找到一个使交叉验证误差最小的 λ 值。这个 λ 值能够平衡模型的偏差和方差,从而在训练集和验证集上都表现良好。

总结

通过调整正则化参数 λ,我们可以控制模型的复杂度,从而影响模型的偏差和方差。小 λ 可能导致高方差(过拟合)而大 λ 可能导致高偏差(欠拟合)。通过交叉验证,我们可以找到一个合适的 λ 值,使得模型在训练集和验证集上都能有良好的表现,从而提高模型的泛化能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值