正则化——“偏差(bias)”与“方差(variance)”

本文探讨了正则化在防止过拟合和欠拟合中的作用,通过调整正则化参数λ,可以在高偏差(欠拟合)和高方差(过拟合)之间找到平衡。介绍了如何使用交叉验证误差来选择最优的λ值,并展示了不同λ值下模型表现的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正则化后的线性回归模型

模型

\[{h_\theta }\left( x \right) = {\theta _0} + {\theta _1}x + {\theta _2}{x^2} + {\theta _3}{x^3} + {\theta _4}{x^4}\]

\[J\left( \theta  \right) = \frac{1}{{2m}}\left[ {\sum\limits_{i = 1}^m {{{\left( {{h_\theta }\left( {{x^{\left( i \right)}}} \right) - {y^{\left( i \right)}}} \right)}^2}}  + \lambda \sum\limits_{j = 1}^n {\theta _j^2} } \right]\]

 当正则化参数λ很大时

\[{h_\theta }\left( x \right) \approx {\theta _0}\]

这时处于“高偏差(High bias)”(underfit)的情况

当正则化参数很小(λ=0)时

\[{h_\theta }\left( x \right) = {\theta _0} + {\theta _1}x + {\theta _2}{x^2} + {\theta _3}{x^3} + {\theta _4}{x^4}\]

这时处于“高方差(High variance)”(overfit)

当正则化参数λ适当时

模型处于“Just right”状态


如何选择正确的λ呢?

除了以下两个公式

\[{h_\theta }\left( x \right) = {\theta _0} + {\theta _1}x + {\theta _2}{x^2} + {\theta _3}{x^3} + {\theta _4}{x^4}\]

\[J\left( \theta  \right) = \frac{1}{{2m}}\left[ {\sum\limits_{i = 1}^m {{{\left( {{h_\theta }\left( {{x^{\left( i \right)}}} \right) - {y^{\left( i \right)}}} \right)}^2}}  + \lambda \sum\limits_{j = 1}^n {\theta _j^2} } \right]\]

再定义

\[\begin{array}{l}
{J_{train}}\left( \theta \right) = \frac{1}{{2{m_{train}}}}\sum\limits_{i = 1}^{{m_{train}}} {{{\left( {{h_\theta }\left( {{x^{\left( i \right)}}} \right) - {y^{\left( i \right)}}} \right)}^2}} \\
{J_{CV}}\left( \theta \right) = \frac{1}{{2{m_{CV}}}}\sum\limits_{i = 1}^{{m_{CV}}} {{{\left( {{h_\theta }\left( {x_{CV}^{\left( i \right)}} \right) - y_{CV}^{\left( i \right)}} \right)}^2}} \\
{J_{test}}\left( \theta \right) = \frac{1}{{2{m_{test}}}}\sum\limits_{i = 1}^{{m_{test}}} {{{\left( {{h_\theta }\left( {{x^{\left( i \right)}}} \right) - {y^{\left( i \right)}}} \right)}^2}}
\end{array}\]

分别表示“训练误差”、‘“交叉验证误差”和“测试误差”

选择λ

尝试如下λ

  • λ=0----------->minJ(θ)----->Θ(1)------>JCV(1))
  • λ=0.01------->minJ(θ)----->Θ(2)------>JCV(2))
  • λ=0.02------->minJ(θ)----->Θ(3)------>JCV(3))
  • λ=0.04------->minJ(θ)----->Θ(4)------>JCV(4))
  • .
  • .
  • .
  • λ=10--------->minJ(θ)----->Θ(12)------>JCV(12))

运用不同的λ去最小化“代价函数”得到不同的Θ;

不同的Θ带入h(x)中得到不同的模型,然后用“交叉验证集”验证;

取“交叉验证误差”最小的那个模型;

将最终得到的模型运用于测试集,测试模型的表现。


下图为不同λ下“训练误差”和“交叉验证误差”的变化

可以得到

  • 当λ很小时,模型处于“高方差”状态,“训练误差”很小,“交叉验证误差”较大
  • 当λ很大时,模型处于“高偏差”状态,“训练误差”和“交叉验证误差”都很大

 

转载于:https://www.cnblogs.com/qkloveslife/p/9885500.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值