专栏名称: 深度学习与图网络
关注图网络、图表示学习,最近顶会顶刊动态以及机器学习基本方法,包括无监督学习、半监督学习、弱监督学习、元学习等
目录
相关文章推荐
Excel之家ExcelHome  ·  WPS表格中的几个常用函数公式 ·  昨天  
Excel之家ExcelHome  ·  接入DeepSeek以后,我的Excel真的 ... ·  2 天前  
Excel之家ExcelHome  ·  告别DeepSeek ... ·  4 天前  
Excel之家ExcelHome  ·  70岁老妈用DeepSeek变身‘AI达人’ ... ·  5 天前  
Excel之家ExcelHome  ·  教你3分钟将DeepSeek接入到Word, ... ·  4 天前  
51好读  ›  专栏  ›  深度学习与图网络

我们真的需要把训练集的损失降到零吗?

深度学习与图网络  · 公众号  ·  · 2024-02-25 12:52

正文

在训练模型的时候,我们需要将损失函数一直训练到0吗?显然不用。一般来说,我们是用训练集来训练模型,但希望的是验证机的损失越小越好,而正常来说训练集的损失降到一定值后,验证集的损失就会开始上升,因此没必要把训练集的损失降低到0

既然如此,在已经达到了某个阈值之后,我们可不可以做点别的事情来提升模型性能呢?ICML2020的论文《Do We Need Zero Training Loss After Achieving Zero Training Error?》回答了这个问题,不过实际上它并没有很好的描述"为什么",而只是提出了"怎么做"



左图:不加Flooding的训练示意图;右图:加了Flooding的训练示意图

简单来说,就是最终的验证集效果可能更好一些,原论文的实验结果如下:


Flooding的实验结果:第一行W表示是否使用weight decay,第二行E表示是否使用early stop,第三行的F表示是否使用Flooding

个人分析

如何解释这个方法呢?可以想像,当损失函数达到b bb之后,训练流程大概就是在交替执行梯度下降和梯度上升。直观想的话,感觉一步上


继续脑洞

想要使用Flooding非常简单,只需要在原有代码基础上增加一行即可


效果检验

我随便在网上找了个竞赛,然后利用别人提供的以BERT为baseline的代码,对Flooding的效果进行了测试,下图分别是没有做Flooding和参数b = 0.7 的Flooding损失值变化图,值得一提的是,没有做Flooding的验证集最低损失值为0.814198,而做了Flooding的验证集最低损失值为0.809810







请到「今天看啥」查看全文