机器学习知识总结——过拟合和欠拟合

过拟合(overfitting)

什么是过拟合?

所谓过拟合就是指在验证集和训练集上表现很好,但是在测试集上表现很差,也就是说泛化能力差。一般表现为: 高方差,低偏差

过拟合的原因
  • 训练样本选取有误、样本标签错误等
  • 样本噪声干扰过大
  • 模型过于复杂
  • 对于神经网络来说:
    • 学习迭代次数太多
如何防止/解决过拟合问题?
  • 扩大数据集
  • 进行正则化(L1正则或者L2正则等)
  • 采用合适的模型(控制模型的复杂度)
  • Early stopping(通过迭代次数截断的方法来防止过拟合)
  • Dropout(在神经网络中可以使用Dropout)
  • 减少特征维度

欠拟合(underfitting)

什么是欠拟合?

欠拟合是指模型在训练集、验证集和测试集上表现都不好

欠拟合的原因是什么
  • 模型复杂度低
  • 模型训练迭代次数太少
如何解决欠拟合问题?
  • 增加迭代次数

  • 增加模型复杂程度

  • 增加特征

正则化

L1正则化

在原始的损失函数后面加一个L1正则化项,即全部权重 ω \omega ω的绝对值的和,在乘以 λ / n \lambda/n λ/n
C = C 0 + λ n ∑ i ∣ ω i ∣ C=C_0+\frac\lambda n\sum_i|\omega_i| C=C0+nλiωi
对应梯度
∂ C ∂ ω = ∂ C 0 ∂ ω + λ n s g n ( ω ) \frac{\partial C}{\partial\omega}=\frac{\partial C_0}{\partial\omega}+\frac\lambda nsgn(\omega) ωC=ωC0+nλsgn(ω)
其中 s g n ( ω ) sgn(\omega) sgn(ω)知识简单地取 ω \omega ω各个元素地正负号
s g n ( ω ) = { 1 , ω > 0 0 , ω = 0 − 1 , ω < 0 sgn(\omega)= \begin{cases} 1,&\omega>0\\ 0,&\omega=0\\ -1,&\omega<0 \end{cases} sgn(ω)= 1,0,1,ω>0ω=0ω<0

L2正则化

L2正则化通常被称为权重衰减(weight decay),就是在原始的损失函数后面再加上一个L2正则化项,即全部权重 ω \omega ω的平方和,在乘以 λ / 2 n \lambda/2n λ/2n
C = C 0 + λ 2 n ∑ i ω i 2 C=C_0+\frac\lambda{2n}\sum_i{\omega^2_i} C=C0+2nλiωi2
对应梯度
∂ C ∂ ω = ∂ C 0 ∂ ω + λ n ω \frac{\partial C}{\partial\omega}=\frac{\partial C_0}{\partial\omega}+\frac\lambda n\omega ωC=ωC0+nλω

如有错误,欢迎指正。谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小夏refresh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值