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

过拟合(overfitting)

什么是过拟合?

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

过拟合的原因

  • 训练样本选取有误、样本标签错误等
  • 样本噪声干扰过大
  • 模型过于复杂
  • 对于神经网络来说:
    • 学习迭代次数太多

如何防止/解决过拟合问题?

  • 扩大数据集
  • 进行正则化(L1正则或者L2正则等)
  • 采用合适的模型(控制模型的复杂度)
  • Early stopping(通过迭代次数截断的方法来防止过拟合)
  • Dropout(在神经网络中可以使用Dropout)
  • 减少特征维度

欠拟合(underfitting)

什么是欠拟合?

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

欠拟合的原因是什么

  • 模型复杂度低
  • 模型训练迭代次数太少

如何解决欠拟合问题?

  • 增加迭代次数

  • 增加模型复杂程度

  • 增加特征

正则化

L1正则化

在原始的损失函数后面加一个L1正则化项,即全部权重\(\omega\)的绝对值的和,在乘以\(\lambda/n\)

\[C=C_0+\frac\lambda n\sum_i|\omega_i| \]

对应梯度

\[\frac{\partial C}{\partial\omega}=\frac{\partial C_0}{\partial\omega}+\frac\lambda nsgn(\omega) \]

其中\(sgn(\omega)\)知识简单地取\(\omega\)各个元素地正负号

\[sgn(\omega)= \begin{cases} 1,&\omega>0\\ 0,&\omega=0\\ -1,&\omega<0 \end{cases} \]

L2正则化

L2正则化通常被称为权重衰减(weight decay),就是在原始的损失函数后面再加上一个L2正则化项,即全部权重\(\omega\)的平方和,在乘以\(\lambda/2n\)

\[C=C_0+\frac\lambda{2n}\sum_i{\omega^2_i} \]

对应梯度

\[\frac{\partial C}{\partial\omega}=\frac{\partial C_0}{\partial\omega}+\frac\lambda n\omega \]

本人博客https://xiaoxiablogs.top

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

posted @ 2021-01-26 09:11  xiaoxia0722  阅读(292)  评论(0编辑  收藏  举报