过拟合和欠拟合

     无论在机器学习还是深度学习建模当中都可能会遇到两种最常见的结果,一种叫过拟合(Over-fitting),另一种叫欠拟合(Under-fitting)。

1.过拟合

       所谓过拟合其实就是所建的机器学习模型或者是深度学习模型在训练样本中表现得过于优越,导致在验证数据集以及测试数据集中表现不佳。过拟合就是学到了很多没必要的特征,比如长得像猫的狗,或者长得像狗的猫,其实这只是特例,单神经网络为了更好地降低损失(Loss),就只能被迫学习这些特征用来区分猫和狗。但是学习得太过了。举个例子,一个男人穿着蓝色的衣服,神经网络可能把是否穿蓝色衣服作为区分男人和女人的特征,这就是过拟合。遇到了新样本,这些错误特征就没有什么用了。所以过拟合就是表现为训练的时候效果很好(因为神经网络已经学到了很多有用没用的特征),但是在测试样本上的效果很差(有的特征完全没用)。一般来说,如果训练数据集过小,特别是比模型参数数量更小时,过拟合更容易发生。

        降低“过拟合”的方法如下:

      (1)增加训练数据。举个例子,投硬币问题,如果你碰巧投了10次都是正面,那么你根据这个数据学习,是无法揭示真实规律的,根据统计学的大数定律(通俗地说,这个定理就是,在试验不变的条件下,重复试验多次,随机事件的频率近似于它的概率),当 样本多了,这个真实规律是必然出现的。使用更多的训练数据是解决过拟合最有效的手段,因为更多的数据能让模型学习到更多的有效特征,减小噪声的影响。当然,直接增加实验数据一般是困难的,但是可以通过一定的规则来扩充训练数据。比如,在图像分类的问题上,可以通过图像的平移、旋转、缩放等方法来扩充数据;更进一步,可以使用生成式对抗网络(GAN)来合成大量的新数据。

     (2)降低模型复杂度。在数据较少时,模型过于复杂是产生过拟合的主要因素,适当降低模型复杂度可以避免模型拟合过多的采样噪声。例如,在神经网络模型中减少网络层数、神经元个数等;在决策树模型中降低树的深度、进行剪枝等。

     (3)正则化的方法。给模型的参数加上一定的正则约束。比如将权值的大小加入到损失函数中(损失函数用来评价模型的预测值和真实值不一样的程度。通常情况下,损失函数越好,模型的性能越好)。

       除此以外,还有使用早停策略、交叉验证、集成学习等方法降低过拟合。

2.欠拟合

       可能训练样本被提取的特征比较少,导致训练出来的模型不能很好地匹配,甚至样本本身都无法高效地识别。训练的模型在训练集上表现很差,在验证集上表现也很差,其本质的原因是训练的模型太简单,最通用的特征模型都没有学习到。

        降低“欠拟合”的方法:

    (1)添加新特征。当特征不足或者现有特征与样本特征标签的相关性不强时,模型容易出现欠拟合。

    (2)增加模型复杂度。简单的模型学习能力较差,通过增加模型的复杂度可以使模型拥有更强的拟合能力。例如在线性模型中添加高次项,在网络模型中增加网络层数或神经元个数。

       除此以外,也可以通过减少正则化的强度、更改模型的基本假设,尝试不同的模型或算法等方式降低欠拟合。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hl026

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

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

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

打赏作者

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

抵扣说明:

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

余额充值