今天我们带了一群学生,要选拔他们中最好的一个出去比赛。
我们把需要的知识教给他们,并且每次都会做一张随堂练习卷。多次下来,学生们的成绩都有所提高,并向满分越靠越近。
但是有一些学生成绩好是因为理解了这些知识,有些同学考得好只是因为把上课教的东西都记下来了。比赛不可能只有学过的东西,肯定还会有很多没遇到过的题目,那我们要怎么判断这个学生是不是真的会呢?
很简单,出一张全是新题的摸底卷。根据摸底卷的成绩选出最好的那名学生。想必这个学生在比赛中的成绩也是很稳定的。
以上这个小故事的类比如下:
学生-模型
出去比赛-实际应用
考试分数-acc
学习的知识-训练集
摸底卷-验证集
比赛卷子-测试集
所以其实这个故事是这样的
今天我们训练了一些模型 带了一群学生,要选拔他们中最好的一个实际使用 出去比赛。
我们用训练集迭代优化参数把需要的知识教给他们 ,并且每轮迭代后都会得到一个acc,loss每次都会做一张随堂练习卷 。多次下来,acc将越来越高并趋向1学生们的成绩都有所提高,并向满分越靠越近 。
但是有一些学生成绩好是因为理解了这些知识,有些同学考得好只是因为过拟合 把上课教的东西都记下来了 。比赛不可能只有学过的东西,肯定还会有很多没遇到过的题目,那我们要怎么判断这个学生是不是真的会呢?
很简单,用验证集观察val_acc和val_loss 出一张全是新题的摸底卷 。根据摸底卷的成绩选出最好的那名学生。想必这个学生在比赛中的成绩也是很稳定的。
比如我这里有针对同样数据集的32种模型(全连接层数,卷积层层数或者卷积层大小不同)
我们先看训练集的情况(曲线光滑度是0,以下图片没特殊说明都是0)
文章图片
除了最上方某位差生(没错,说的就是那位灰色同学),这个模型可能先天不足,其他的还是差不多的,准确率都是稳步上升
如果我们把光滑度调成0.6,看上去还不错对吧
文章图片
这些模型看上去都挺有模有样的。
【一个选拔的故事(acc,loss,val_acc,val_loss的区别)】但是当我们看到验证集结果的时候:宛如群魔乱舞,这些同学都很暴躁,表现非常的参差不齐。
文章图片
这时候我们就要选择验证集表现最好的那个模型,简单地说,就是val_acc越来越大最后趋于稳定,val_loss越来越小最后也趋于稳定。
在这里一对模型中,我找到了一个模范优等生,就是2个卷积层,2个全连接层的时候,也就是下图墨绿色的线条。
为了作为对比,我们拉上一个在总体里面表现也很好的另一个模型,即这根铁锈红的线。
文章图片
没有对比就没有伤害,光滑度为0的时候这根墨绿色的线看上去就很不错了。
参考: 1.深度网络的过拟合问题讨论https://blog.csdn.net/mrgiovanni/article/details/52167016
2.从Keras开始掌握深度学习-5 优化你的模型https://www.jianshu.com/p/6e50d6136892
推荐阅读
- C语言学习|第十一届蓝桥杯省赛 大学B组 C/C++ 第一场
- paddle|动手从头实现LSTM
- pytorch|使用pytorch从头实现多层LSTM
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- pytorch|YOLOX 阅读笔记
- 前沿论文|论文精读(Neural Architecture Search without Training)
- 联邦学习|【阅读笔记】Towards Efficient and Privacy-preserving Federated Deep Learning
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- 深度学习|深度学习笔记总结
- 《繁凡的深度学习笔记》|一文绝对让你完全弄懂信息熵、相对熵、交叉熵的意义《繁凡的深度学习笔记》第 3 章 分类问题与信息论基础(中)(DL笔记整理