欠拟合与过拟合

在训练模型时,我们希望达到以下两个指标:

1、训练的损失值尽可能地小。

2、 训练的损失值与测试的损失值之间的差距尽可能地小。

如果1没有达到条件,那么就称为欠拟合,而1达到了2没有达到条件,那么就说明机器对于测试的图片的检测能力不行,这就称为过拟合。

比如给你一张张三的照片,张三短头发、小眼睛、浓眉毛等等,欠拟合就是你没有记住张三的特征,连张三都还没有记住长什么样,而过拟合是你记住了这张照片上的张三,但是再给你一张张三的照片,但是他是长头发,你却不认识他了。

欠拟合的特征:训练和测试的损失值都很大

过拟合的特征:训练的损失值刚刚好但是测试的损失值很大

所以要找到两者之间的一个平衡点,才是最合适的。

产生欠拟合的原因:

1、模型太过于简单,不能很好的提取数据集中的特征,导致机器并不能学习到很有效的特征。

2、数据集的数量太少或者训练的轮数不够,也会导致机器学不到有效地特征。

解决方法:

增加网络模型的复杂度或者减少正则化的惩罚力度;增加训练数据的数据量、增加训练的轮数。

产生过拟合的原因:

1、模型太复杂或者网络提取特征的能力太强,把一些偶然的数据特征也学习到了。

2、选取的训练数据不合适,比如照片中的人都是长发,那么机器就会把长发和人作为一个必然联系,所有人都是长发的。

3、训练的轮数过多,导致机器只认识这些训练它的数据集。

解决方法:

1、换一个简单一点的模型或者进行正则化处理、dropout处理等。

2、增加数据的多样性,增加一定量的负样本,对数据集进行预处理。

3、在每一个Epoch结束时(一个Epoch集为对所有的训练数据的一轮遍历)计算validation data的accuracy,当accuracy不再提高时,就停止训练。因为accuracy不再提高了,接下来的训练是没有意义的甚至是负面的。但是并不是某一轮的accuracy不再提高了就停止了,它有可能下一轮或者下几轮就有有提升了,那么一般的做法是,在训练的过程中,记录到目前为止最好的validation accuracy当连续10次Epoch(或者更多次)没达到最佳accuracy时,则可以认为accuracy不再提高了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值