机器学习 | 评估原理——学习曲线(区分过拟合与欠拟合)

Hi,大家好,我是半亩花海。接着上次的分类中的正则化继续更新《白话机器学习的数学》这本书的学习笔记,在此分享学习曲线(区分过拟合与欠拟合)相关评估原理。本章的基于前几节已建立的模型进行评估知识的学习,欢迎大家交流学习!

目录

一、欠拟合

二、区分过拟合与欠拟合

1. 概念

2. 如何区分二者

3. 案例分析一

4. 案例分析二

三、高偏差和高方差

1. 高偏差(欠拟合)

2. 高方差(过拟合)

四、总结


一、欠拟合

前面我们聊了很多过拟合的话题,如在文章《机器学习 | 评估原理——回归中的正则化(含过拟合、惩罚)-CSDN博客》中。而反过来又有一种叫作欠拟合(underfitting的状态(没有拟合训练数据的状态)。在这种情况下模型的性能也会变差。

从相对的角度,过拟合和欠拟合是相反的状态,一个是过度训练,一个是过度不训练(ps:当然也不是完全相对、非此即彼的状态)。而我们追求的是恰好训练,这个度很难把握,需要我们不断实验去调整参数,达成最优效果。

比如,我们用直线对图中这种拥有复杂边界线的数据进行分类的情况,无论怎样做都不能很好地分类,最终的精度会很差,如下图所示。

出现这种情况的主要原因就是模型相对于要解决的问题来说太过简单,原因也和过拟合的情况相反。过拟合与欠拟合基本上是相反关系,原因不同,解决方案也不同。

解决欠拟合的方法有很多,比如:

  • 增加数据量
  • 增加训练次数
  • 增加模型复杂度

二、区分过拟合与欠拟合

1. 概念

  • 过拟合(学成书呆子了):指模型在训练集上表现优秀,在测试集上表现很差
  • 欠拟合(还没学明白):指模型难以学习已有的规律,在训练集和测试集上表现得都很差;或是模型过早的停止训练(早停)。

2. 如何区分二者

其实实际上,过拟合和欠拟合是一个较为主观的评价,没有一个指标能拍板说它就是过拟合了、或就是欠拟合了。而且,过拟合与欠拟合实际上并不是相对的概念,即并未非此即彼,往往:

  • 模型效果太差:欠拟合
  • 模型在训练集上还可以,但测试集上太差:过拟合
  • 模型训练集和测试集都还行:不存在过拟合与欠拟合

3. 案例分析一

我在之前的博客《语义分割 | 基于 VGG16 预训练网络和 Segnet 架构实现迁移学习_vgg16 标注json-CSDN博客》里面有如下这种学习曲线图,可以清晰地看出,该语义分割模型在训练集上(绿色和黄色)表现良好,但是在验证集(蓝色和红色)上表现一般,其中,验证集损失率(val_loss,红色曲线)出现多次升高又降低的现象,表现得十分不稳定,即存在一定的过拟合状态,因此,还需要对模型进行不断的改进。

后续更新使用高性能服务器上的 GPU 以及增加训练轮次、调整数据和模型参数等方法,一定程度上提高了模型效果。


4. 案例分析二

但我们只对模型进行评估,并根据模型精度也并不能完全判断模型是过拟合还是欠拟合。

我们以数据的数量为横轴、以精度为纵轴,然后把用于训练的数据和用于测试的数据画成图来看一看就知道了。我们具体来看一个例子。考虑一下使用下面这样的 10 个训练数据进行回归的场景。

这些数据似乎用二次函数来拟合比较合适。不过这里我们先假设 f_\theta (x) 是一次函数。接着,只随便选择其中的 2 个数据用作训练数据。那 f_\theta (x) 如下面左侧图所示。在这个状态下,2 个点都完美拟合,误差为 0。那把 10 个数据都用来训练会怎样?则 f_\theta (x) 如右侧图所示。不过在这种情况下,误差已经无法为 0 了。这里我想说的就是如果模型过于简单,则随着数据量的增加,误差也会一点点变大(精度会一点点下降)

把这种情况画在刚才所说的以数据的数量为横轴、以精度为纵轴的图上,形状大体上如下图所示。

可以看到,一开始精度很高,但随着数据量的增加,精度一点点地变低了。

假设在刚才的 10 个训练数据之外,还有测试数据。接下来用测试数据来评估各个模型,之后用同样的方法求出精度,并画成图,如下图所示

上图体现了训练和测试数据在数据数量-精度中的数学关系,由此可以得出如下结论:

  • 当训练数据较少时,训练好的模型难以预测未知的数据,所以预测精度很低
  • 当训练数据变多时,预测精度就会一点点地变高

三、高偏差和高方差

下面这两张图分别展示了欠拟合和过拟合的特征。

1. 高偏差(欠拟合)

将两份数据的精度用图来展示后,如果是上述这种形状,就说明出现了欠拟合的状态,或者还有一种说法叫作高偏差。这是一种即使增加数据的数量,无论是使用训练数据还是测试数据,精度也都会很差的状态


2. 高方差(过拟合)

而在过拟合的情况下,这也叫作高方差,如下图左侧所示,图中需要注意的点如右侧图所示。

上述两种状态可以总结为:

  • 欠拟合--高偏差
  • 过拟合--高方差

随着数据量的增加,使用训练数据时的精度一直很高,而使用测试数据时的精度一直没有上升到它的水准。也就是说,只对训练数据拟合得较好,而测试数据拟合的一般或者不好,这就是过拟合的特征


四、总结

像这样展示了数据数量和精度的图称为学习曲线。在知道模型精度低却不知道是过拟合还是欠拟合的时候,观察一下学习曲线即可。通过学习曲线判断出是过拟合还是欠拟合之后,就可以采取相应的对策以便改进模型了。模型评估听上去很简单,但其实有很多其他内容。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

半亩花海

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

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

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

打赏作者

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

抵扣说明:

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

余额充值