律师网站 扁平化,个人简历免费模板下载,注册一个商标要花多少钱,智慧树网站的章节题做不了星标/置顶小屋#xff0c;带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 苏剑林编 | 夕小瑶在训练模型的时候#xff0c;我们需要损失函数一直训练到0吗#xff1f;显然不用。一般来说#xff0c;我们是用训练集来训练模型#xff0c;但希望的是验证集的损失越小越好… 星标/置顶小屋带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 苏剑林编 | 夕小瑶在训练模型的时候我们需要损失函数一直训练到0吗显然不用。一般来说我们是用训练集来训练模型但希望的是验证集的损失越小越好而正常来说训练集的损失降低到一定值后验证集的损失就会开始上升(即过拟合因此没必要把训练集的损失降低到0。为了对抗这种过拟合现象提高模型的测试集表现即泛化能力一种很自然的想法是提前终止early stopping也就是当观测到模型的验证集表现不降反升时果断停止训练。这也是如今大模型跑小数据时的最常用做法。既然如此在模型训练loss已经到达某个阈值之后我们可不可以做点别的事情来继续提升模型的测试集性能呢一篇发表于机器学习顶会ICML2020上的论文《Do We Need Zero Training Loss After Achieving Zero Training Error?》[1]回答了这个问题。不过这篇论文的回答也仅局限在“是什么”这个层面上并没很好地描述“为什么”另外看了知乎上kid丶[2]大佬的解读也没找到自己想要的答案。因此自己分析了一下记录在此。思路描述论文提供的解决方案非常简单假设原来的损失函数是现在改为其中是预先设定的阈值。当时这时候就是执行普通的梯度下降而时注意到损失函数变号了所以这时候是梯度上升。因此总的来说就是以为阈值低于阈值时反而希望损失函数变大。论文把这个改动称为“Flooding”。这样做有什么效果呢论文显示训练集的损失函数经过这样处理后验证集的损失能出现“二次下降Double Descent”如下图。简单来说就是最终的验证集效果可能更好些。左图不加Flooding的训练示意图右图加了Flooding的训练示意图效果从上图可以看出来这个方法的理想很丰满那么实际表现如何呢作者这里在MNIST、CIFAR等众多CV领域的benchmark上进行了实验且如下图所示图中中间一栏是没有加flooding的结果early stopping和weight decay的四种排列组合右边一栏是加了flooding的结果四种排列组合的基础上都加上flooding。可以看到加了flooding后大部分情况下模型都能比之前有更好的测试集表现。个人分析如何解释这个方法的有效性呢可以想象当损失函数达到之后训练流程大概就是在交替执行梯度下降和梯度上升。直观想的话感觉一步上升一步下降似乎刚好抵消了。事实真的如此吗我们来算一下看看。假设先下降一步后上升一步学习率为那么我们有滑动查看完整公式近似那一步是使用了泰勒展式对损失函数进行近似展开最终的结果就是相当于损失函数为梯度惩罚、学习率为的梯度下降。更妙的是改为“先上升再下降”其表达式依然是一样的这不禁让我想起“先升价10%再降价10%”和“先降价10%再升价10%”的故事。因此平均而言Flooding对损失函数的改动相当于在保证了损失函数足够小之后去最小化也就是推动参数往更平稳的区域走这通常能提供提高泛化性能更好地抵抗扰动因此一定程度上就能解释Flooding其作用的原因了。本质上来讲这跟往参数里边加入随机扰动、对抗训练等也没什么差别只不过这里是保证了损失足够小后再加扰动。读者可以参考《泛化性乱弹从随机噪声、梯度惩罚到虚拟对抗训练》[3]了解相关内容也可以参考“圣经”《深度学习》第二部分第七章的“正则化”一节。方法局限性虽然这个方法看起来还挺work但是不能忽视的一个细节是作者在做上面表格里的每组flooding的实验时都对flooding的超参b调节了20组从0.01~0.20如下这在数据规模很小时实验代价还好但单次实验代价较高时可能就不那么实用了。继续脑洞有心使用这个方法的读者可能会纠结于的选择或调超参的实验代价不过笔者倒是有另外一个脑洞无非就是决定什么时候开始交替训练罢了如果从一开始就用不同的学习率进行交替训练呢也就是自始至终都执行其中这样我们就把去掉了当然引入了的选择天下没免费午餐。重复上述近似展开我们就得到滑动查看完整公式这就相当于自始至终都在用学习率来优化损失函数了也就是说一开始就把梯度惩罚给加了进去。这样能提升模型的泛化性能吗笔者简单试了一下有些情况下会有轻微的提升基本上都不会有负面影响总的来说不如自己直接加梯度惩罚好所以不建议这样做。文章小结本文简单介绍了ICML2020一篇论文提出的“到一定程度后就梯度上升”的训练策略并给出了自己的推导和理解结果显示它相当于对参数的梯度惩罚而梯度惩罚也是常见的正则化手段之一。 文末福利 后台回复关键词【入群】加入卖萌屋NLP/IR/Rec与求职讨论群有顶会审稿人、大厂研究员、知乎大V和妹纸等你来撩哦~ 关注星标 带你解锁最前沿的NLP、搜索与推荐技术参考文献[1] Do We Need Zero Training Loss After Achieving Zero Training Error?: https://arxiv.org/abs/2002.08709[2] kid丶: https://zhuanlan.zhihu.com/p/163676138[3] 泛化性乱弹从随机噪声、梯度惩罚到虚拟对抗训练: https://kexue.fm/archives/7466