把训练集的损失降低到0,没必要

机器学习算法与Python实战

共 1624字,需浏览 4分钟

 ·

2024-07-11 16:49


在训练模型的时候,我们需要将损失函数一直训练到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




最后推一下我的星球:只聊技术变现,不复制粘贴资讯,不会搬运他人观点。我会在这里分享对新技术的思考,风口赚钱项目,介绍变现套路,为大家答疑解惑。你可以把我当作你的另一双眼睛,帮你筛选,解读最有价值的信息。现在加入附赠:1)AI资料大礼包;2)GPT、Claude 、Gemini、Llama、Qwen、DeepSeek、Minimax、Moonshot、Yi、GLM国内网络免费使用;3)部分公众号付费专栏或付费阅读的文章免费畅读;4)AI绘画、高效AI工具、高质量资料分享;5)微信群&有问必答

大模型最新情报

Pandas 加速150倍!

用机器学习来优化人生

我“参加了”阿里巴巴全球数学竞赛决赛,分享一下经验

搭建机器学习开发环境及Python基础,108页PDF

116页PDF小册子:机器学习中的概率论、统计学、线性代数



浏览 33
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报