【深度学习】2-模型在测试集的准确率大于训练集

简介: 【深度学习】2-模型在测试集的准确率大于训练集

1. 问题描述


在模型训练过程中突然发现,模型的准确率在测试集上居然比在训练集上还要高。但是我们知道,我们训练模型的方式就是在训练集上最小化损失。因此,模型在训练集上有着更好的表现,才应该是正常的现象。

那么,是什么导致了在测试集上准确率更高的现象呢?


模型训练结果:


image.png


2. 解决问题


2. 1. 欠拟合

后来我咨询了某大佬,她说:“多训练几次看看,前几次一直在欠拟合”,我顿时感觉,好建议!


增加训练周期数:

image.png


果然!随着训练周期的增加,模型准确率慢慢地回归了正轨。在训练集上的准确率又超过了测试集上的。


2. 2. 小批量统计的滞后性

但我依然有所疑惑,为什么在训练周期较少的欠拟合状态下,会出现模型在测试集上准确率更高的情况呢?它们之间有什么关系?

有一篇博文给出的部分解释,我觉得很合理,比较符合我遇到的情况:


训练集的准确率是每个batch之后产生的,而验证集的准确率一般是一个epoch后产生的,验证时的模型是训练一个个batch之后的,有一个滞后性,可以说就是用训练得差不多的模型用来验证,当然准确率要高一点。


也就是说,问题的出现和个人具体统计训练集准确率的方式有关。如果是在每个训练周期结束后再统计训练集上的模型准确率,而不是在每个小批量结束就统计,那就不会出现这样的问题。

当然,光说是不行的,得实践。我检查了之前的模型代码,发现我训练集上的准确率确实是每个小批量结束后就统计的。那不妨试试训练集的准确率也在每个周期结束后再进行统计。


每个训练周期后再统计训练集上的准确率( train acc 2):


image.png

容易发现,即使在欠拟合的状态下,如果训练集和测试集准确率的统计方式相同,模型还是会在训练集上的准确率更高。


参考文献:


神经网络与深度学习—验证集(测试集)准确率高于训练集准确率的原因


小结


遇到问题,看一看别人的想法,可能会让自己瞬间茅塞顿开。一个人钻牛角尖不可取。


相关文章
|
10月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
11月前
|
机器学习/深度学习 数据采集 传感器
【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
619 0
|
11月前
|
机器学习/深度学习 存储 PyTorch
Neural ODE原理与PyTorch实现:深度学习模型的自适应深度调节
Neural ODE将神经网络与微分方程结合,用连续思维建模数据演化,突破传统离散层的限制,实现自适应深度与高效连续学习。
1025 3
Neural ODE原理与PyTorch实现:深度学习模型的自适应深度调节
|
12月前
|
机器学习/深度学习 数据可视化 算法
深度学习模型结构复杂、参数众多,如何更直观地深入理解你的模型?
深度学习模型虽应用广泛,但其“黑箱”特性导致可解释性不足,尤其在金融、医疗等敏感领域,模型决策逻辑的透明性至关重要。本文聚焦深度学习可解释性中的可视化分析,介绍模型结构、特征、参数及输入激活的可视化方法,帮助理解模型行为、提升透明度,并推动其在关键领域的安全应用。
1016 0
|
机器学习/深度学习 人工智能 自然语言处理
AI 基础知识从 0.3 到 0.4——如何选对深度学习模型?
本系列文章从机器学习基础出发,逐步深入至深度学习与Transformer模型,探讨AI关键技术原理及应用。内容涵盖模型架构解析、典型模型对比、预训练与微调策略,并结合Hugging Face平台进行实战演示,适合初学者与开发者系统学习AI核心知识。
874 15
|
机器学习/深度学习 算法 定位技术
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现裂缝的检测识别(C#代码UI界面版)
本项目基于YOLOv8模型与C#界面,结合Baumer工业相机,实现裂缝的高效检测识别。支持图像、视频及摄像头输入,具备高精度与实时性,适用于桥梁、路面、隧道等多种工业场景。
1392 27
|
机器学习/深度学习 人工智能 PyTorch
AI 基础知识从 0.2 到 0.3——构建你的第一个深度学习模型
本文以 MNIST 手写数字识别为切入点,介绍了深度学习的基本原理与实现流程,帮助读者建立起对神经网络建模过程的系统性理解。
973 15
AI 基础知识从 0.2 到 0.3——构建你的第一个深度学习模型
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1673 23
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
2274 24
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
745 2