shuffle理解【增加模型的泛化能力】
在模型训练前,我们往往对数据进行shuffle,即随机打乱数据,为什么要这么做呢?不这么做会出现什么问题?何时应该shuffle,何时不该shuffle呢?
Q1:为什么要进行shuffle?
A1:不论是机器学习还是深度学习,我们总是基于数据独立同分布的假设条件,也就是说,数据的出现应该是随机的,而不是按照某种顺序排列好的。以上就是需要shuffle的根本原因。因此,我们需要在每个epoch的开始把数据shuffle一下。
Q2:不shuffle会出现什么问题?
A2:泛化能力差。
- ①模型学到的可能只是数据次序,并未学到有用的信息,导致泛化能力差。
- ②如果数据是排序过的,比如按类别排序,会导致模型一会儿过拟合这个类,一会儿过拟合那个类,这一方面会使得训练过程的loss周期性震荡;另一方面,在训练结束时,模型总是对最近训练的那类数据过拟合而导致泛化能力差。
比如做公式识别(将图片的公式转换为latex形式),如果不shuffle,按图片的宽高比排列数据,且第一张图片和最后一张图片的宽高比相差很大,在这种情况下,不shuffle直接训练,就会出现loss周期性震荡的现象,比如每个epoch的开始,loss会突然上升很多,然后逐渐下降,等下一个epoch开始的时候,loss又会突然上升,循环往复。
Q3:何时应该shuffle,何时不该shuffle呢?
A3:当我们使用优化器进行模型训练时,比如使用SGD优化方法,不可避免地,在结束模型训练时,模型对刚刚学习过的那类数据有着更好的表现。
因此,①如果我们想让模型泛化能力更强,我们应该对数据进行shuffle,这样模型最后见过的数据在一定程度上是能代表总体的,有着更强的泛化能力,通常情况下,我们都是要进行shuffle的。
②如果我们想让模型学会某种次序关系或者我们希望模型对某部分数据表现的更好一点,那么我们则要根据自己的目的来决定数据的顺序,并决定是局部shuffle还是完全不shuffle。比如,对于时间序列数据,根据过去的数据预测未来的数据,我们则希望越近期的数据,模型给予更高的关注度,一种方式就是将近期的数据放在后面,那么等模型训练完的时候,最近见过的数据就是近期的数据,自然对近期数据有更高的关注,这样在预测未来数据的时候,近期的数据能发挥更大的作用。
所以,是否shuffle要具体情况具体分析。
参考:浅谈深度学习shuffle问题_不忘初心,方得始终-CSDN博客
shuffle理解【增加模型的泛化能力】相关推荐
- 【AI初识境】如何增加深度学习模型的泛化能力
文章首发于微信公众号<有三AI> [AI初识境]如何增加深度学习模型的泛化能力 这是专栏<AI初识境>的第9篇文章.所谓初识,就是对相关技术有基本了解,掌握了基本的使用方法. ...
- 【AI初识境】如何增加深度学习模型的泛化能力
这是专栏<AI初识境>的第9篇文章.所谓初识,就是对相关技术有基本了解,掌握了基本的使用方法. 今天来说说深度学习中的generalization问题,也就是泛化和正则化有关的内容. 作者 ...
- 数据增强,扩充了数据集,增加了模型的泛化能力
数据增强(Data Augmentation)是在不实质性的增加数据的情况下,从原始数据加工出更多的表示,提高原数据的数量及质量,以接近于更多数据量产生的价值. 其原理是,通过对原始数据融入先验知识, ...
- 深度学习:模型的泛化能力浅显理解
深度学习:模型的泛化能力浅显理解 通俗易懂的浅显理解 通俗易懂的浅显理解 模型的泛化能力通俗易懂的说就是模型在测试集(其中的数据模型以前没有见过)中的表现,也就是模型举一反三的能力,但是这些数据必须满 ...
- Local Response Normalization作用——对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力...
AlexNet将LeNet的思想发扬光大,把CNN的基本原理应用到了很深很宽的网络中.AlexNet主要使用到的新技术点如下. (1)成功使用ReLU作为CNN的激活函数,并验证其效果在较深的网络超过 ...
- 如何提高强化学习算法模型的泛化能力?
深度强化学习实验室 官网:http://www.neurondance.com/ 来源:https://zhuanlan.zhihu.com/p/328287119 作者:网易伏羲实验室 编辑:Dee ...
- 如何将知识引入机器学习模型提升泛化能力?
摘要:近年来,基于数据驱动的机器学习模型开始提供可替代的方法,并在许多任务中优于纯物理学驱动模型. 本文分享自华为云社区<如何将知识引入机器学习模型提升泛化能力?>,作者:PG13 . 基 ...
- 量纲与无量纲、标准化、归一化、正则化【能够帮助梯度下降中学习进度收敛的更快、提升模型的收敛速度提升模型的精度、防止模型过拟合,提高模型的泛化能力】
目录 1 量纲与无量纲 1.1 量纲 1.2 无量纲 2 标准化 3 归一化 归一化的好处 4 正则化 5 总结 1 量纲与无量纲 1.1 量纲 物理量的大小与单位有关.就比如1块钱和1分钱,就是两个 ...
- ICLR2020 | 谷歌最新研究:用“复合散度”量化模型合成泛化能力
2020-03-11 18:13:47 据官方消息,ICLR 2020会议将取消线下会议,并于4月25日-30日线上举办虚拟会议.本届会议共有 2594篇投稿,其中 687篇论文被接收(48篇oral ...
最新文章
- leetcode-55 跳跃游戏
- xcode打包(Archive)显示Command /usr/bin/codesign failed
- 自定义工作流任务控件
- Python学习笔记之爬取网页保存到本地文件
- .NET Conf 2017后初尝Xamarin Forms 3.0@Linux
- java中间语言汇编语言_中间语言(IL) | 学步园
- 开源远程访问服务器工具_为什么开源需要可访问性标准
- Linux运维问题解决(2)——Linux设置定时重启系统的方法:定时任务crontab 和 编写脚本
- 找出最具竞争力的子序列_每日算法系列【LeetCode 376】摆动序列
- iOS WKWebview JS与OC互相调用,传递数据
- debian 修改apache2 https 端口为11443
- samba用户密码改变,怎么访问?
- 「干货」Linux 应急响应日志分析命令「详细总结」
- 0.3-87 GHz频段手持频谱分析仪 —— SAF Spectrum Compact
- DataStream API:Event Time(Generating Watermarks)
- UID PID PPID 分别是什么
- SIFT特征点的匹配正确率衡量标准与量化
- 音乐播放器 android 回放增益,每日佳软:安卓强悍音乐播放器之PowerAMP
- day16-20180705-流利阅读笔记
- uniapp微信小程序实现地图导航