互联网资讯 / 人工智能 · 2023年12月8日

Epoch的过时和有害性:Reddit机器学习社区讨论

Epoch不仅过时,而且有害?Reddit机器学习板块展开讨论

有一天,一个调参侠在训练一个深度学习模型,要用到的两个数据集损失函数不同,数据集的大小还不是固定的,每天都在增加。

他有点发愁,这该怎么设置Epoch数呢?

在纠结的过程中,他突然想到:干嘛非得定一个Epoch数?只要对每个BATch进行独立同分布抽样不就得了。

为了验证这个想法,调参侠去看了很多论文。发现越来越多的人介绍他们的训练方法时,只说进行了多少个ITeRation,而抛弃了Epoch。

他想到,Epoch暗示并强调了数据集是有限的,这不仅麻烦,还有潜在的危害。把Epoch去掉,让循环嵌套的层数少一层总是好的。

于是他在ReddIT发起了讨论:Epoch是不是过时了,甚至还有危害?

Epoch不仅过时,而且有害?Reddit机器学习板块展开讨论Epoch多余吗?

有人对这个观点表示赞同:

挺有道理,当数据集大小有很大差距,BATch大小相同时,设置一样的Epoch数,岂不是大数据集参数更新的次数多,小数据集参数更新次数少了。

Epoch最大的好处是确保每个样本被定期使用。当使用IID抽样时,你只要能想办法确保所有样本被同样频繁地使用就好了。

但调参侠觉得让每个样本被定期使用就是他怀疑的点,IID抽样已经确保分布相同了,再让他们同频率被使用就是一种误导。

Epoch不仅过时,而且有害?Reddit机器学习板块展开讨论

反对者认为:

不能因为你觉得车没开在路的正中间就放开方向盘不管了,虽然大撒把不会改变你正好在路中间的概率,但它增加了方差。

Epoch不仅过时,而且有害?Reddit机器学习板块展开讨论

调参侠最后总结道,这个争议有点像统计学里的频率派 VS 贝叶斯派,即认为数据集到底应该是确定的还是不确定的。

该怎么比较模型?

调参侠还注意到,有人用BATch LoSS做损失曲线。他认为这比Epoch LoSS更有参考价值。

Epoch不仅过时,而且有害?Reddit机器学习板块展开讨论

反对者觉得,你这个方式是挺好的,但Epoch依然有用。

因为即使在相同的硬件上,不同模型的算法效率不同也会带来巨大差异。

像各种TRansfoRMeR和CNN这种底层代码实现都差不多,但是别的模型就可能有很不一样。比如我们自己的CUDA LSTM实现,至少和CudnnLSTM一样快,比原版TensoRFlow实现快4倍左右。

最后,有个网友以CV模型为例对这个话题做出精彩总结,列了4种损失可视化方式,并介绍了什么情况该用哪个。

Epoch不仅过时,而且有害?Reddit机器学习板块展开讨论

LoSS/Epoch告诉你一个模型要观察同一个图像多少次才能理解它。

LoSS/ITeRation告诉你需要多少次参数更新。当比较优化器时这很有用,可以帮助你加快训练速度或达到更高的精度。

LoSS/TOTAl image Seen告诉你算法看到了多少图像时的损失。适合比较两种算法使用数据的效率。

如果你的算法在50万张时达到70%、100万张时达到75%,这可能比50万张时达到50%,100万张时达到80%的还要好。

另外,它还消除了BATch Size的影响。这允许在不同GPU上训练的具有不同BATch Size的模型之间进行公平的比较。

LoSS/TiMe也很重要,因为如果一个新模型减少了100个Epoch,但每个ITeRation都慢100倍,我就不会选择这个模型。

虽然LoSS/TiMe关系到硬件的具体表现,不够精准,我不会把这个写到论文里。但在自己的机器上这是很好的评估模型的参数。

使用数据增强时呢?

有网友提出,数据增强时Epoch也有点多余。因为数据集太小,人为给每个样本添加很多只有微小差距的版本,没必要让他们被同频率使用。

Epoch不仅过时,而且有害?Reddit机器学习板块展开讨论

反对者认为,数据增强作为正则化的一种形式减少了过拟合,但你引入的实际信息在训练模型时仍然局限于原始数据集。如果你的原始数据集足够小,Epoch表示你向模型展示了整个训练集,仍然是有意义的。

有人问道:

你是想表达纪元(Epoch)的纪元结束了吗?

调参侠:

对,现在是时代(ERa)的时代。

Epoch不仅过时,而且有害?Reddit机器学习板块展开讨论

△无尽随机增强的首字母缩写ERA意为时代

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册