一行代码发一篇ICML?

2020 年 7 月 27 日 CVer

点击上方“CVer”,选择加"星标"置顶

重磅干货,第一时间送达

本文者:  kid丶

https://zhuanlan.zhihu.com/p/163676138

本文已由原作者授权,不得擅自二次转载

Do We Need Zero Training Loss After Achieving Zero Training Error?(ICML,2020)

论文:https://arxiv.org/abs/2002.08709

这篇文章发自2020年的ICML,脑洞很大!一行代码??!

Flooding

上图可以大致描述整篇文章干了一件啥事。先看左边一列,是一个正常的训练过程,对于阶段A,随着training loss的降低,test loss也会 跟着降低;但是到阶段B后,我们继续在训练集上训练,会让test loss上升。右边一列是本文提出的 flooding 方法,当training loss大于一个阈值(flood level)时,进行正常的梯度下降;当training loss低于阈值时,会反过来进行梯度上升,让training loss保持在一个阈值附近,让模型持续进行“random walk”,并期望模型能被优化到一个平坦的损失区域,这样发现test loss进行了double decent!一个简单的理解是,这和early stop类的方法类似,防止参数被优化到一个不好的极小值出不来。

本文也是十分的“嚣张”,直接在文章introduction部分贴出了pytorch代码,仅仅增加了一行代码,真是好气!整个的损失从  被改成了 

接下来是自己的一些思考,假设我们的损失一开始如由左图所示,横坐标是参数  ,纵坐标是损失  ,此时有两个极小值点(灰色三角形和红色三角形),首先试问哪一个极小值要好一些(这个后面再做分析)。另外,假设虚线代表  ,那么使用 flooding 方法相当于把低于阈值部分翻上来,二维的情况也类似。可以发现,整个目标多了很多极小值,二维平面的情况则是多了一圈极小值,是否可以说右边的损失要比左边的损失更加“平坦”,然后泛化能力会越好。

接下来是我的一些分析,首先是前面提到的灰色三角形和红色三角形两个极小值点,分别由上述两个损失代替,右边的损失比左边的损失看起来更“平坦”。我们从对抗样本的角度来理解,蓝色的笑脸代表正常被分对的样本,对抗样本是通过优化样本使得损失变大,从而让模型对该样本分错(黄色的难过脸)。直观来看,越平坦的损失会让对抗样本的生成越困难(  越大),因此越平坦的损失会让模型对对抗扰动越鲁棒。

其实,一般的鲁棒性和泛化性也如此,一般的鲁棒性是指模型对样本进行一些诸如高斯模糊、椒盐噪声等等鲁棒。换句话说,对样本进行一定的扰动(  ),模型对扰动后样本的损失不要太大才行,越平坦的损失,一般鲁棒性也会越好。另一方面,泛化性也是一样,模型的预测一般满足相似的输入有相似的输出(假设损失对  光滑),也就是说,模型对样本学到的模式是某种特征左右的样本应该属于为某一类。换句话说,对于一个未见过的样本  (黄色难过脸)和样本 (蓝色笑脸)属于相同类,模型能将其分对的必要条件是损失不要过大,则此时“平坦”的损失能够满足这一条件,且泛化性会越好。

最后我们再来从svm的角度来思考这个问题。对于一个线性可分的二分类问题,有无数条分类面能将其分开,而svm是去挑选能满足“最大间隔”的分类器。从另一个角度来理解是,越平坦的损失,是不是能越尽可能的将不同类给分开,因为样本进行些许扰动,损失的变化不会太大,相当于进行细微扰动后的样本不会跑到分类面的另一边去!

上述的分析存在着一个问题是,横坐标应该是参数  ,而我却一直把横坐标当作  ,但其实认真想想,换成  也好像成立。因为神经网络参数  和  是乘积的形式,对参数  的细微变化能否等价于对样本  的细微变化!


下载1


在CVer公众号后台回复OpenCV书籍,即可下载《Learning OpenCV 3》书籍和源代码。注:这本书是由OpenCV发起者所写,是官方认可的书籍。其中涵盖大量图像处理的基础知识介绍,虽然API还是基于OpenCV 3.x,但结合此书和最新API,可以很好的学习OpenCV。



下载2


在CVer公众号后台回复:CVPR2020,即可下载CVPR2020 2020代码开源的论文合集

在CVer公众号后台回复:ECCV2020,即可下载ECCV 2020代码开源的论文合集


重磅!CVer-论文写作与投稿交流群成立


扫码添加CVer助手,可申请加入CVer-论文写作与投稿 微信交流群,目前已满2000+人,旨在交流顶会(CVPR/ICCV/ECCV/ICML/ICLR/AAAI等)、顶刊(IJCV/TPAMI等)、SCI、EI等写作与投稿事宜。


同时也可申请加入CVer大群和细分方向技术群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。


一定要备注:研究方向+地点+学校/公司+昵称(如论文写作+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群


▲长按加微信群


▲长按关注CVer公众号

整理不易,请给CVer点赞和在看

登录查看更多
1

相关内容

ICML 是 International Conference on Machine Learning的缩写,即国际机器学习大会。ICML如今已发展为由国际机器学习学会(IMLS)主办的年度机器学习国际顶级会议。
近期必读的六篇 ICML 2020【因果推理】相关论文
专知会员服务
87+阅读 · 2020年9月8日
【ICML 2020 】小样本学习即领域迁移
专知会员服务
77+阅读 · 2020年6月26日
【Google】监督对比学习,Supervised Contrastive Learning
专知会员服务
72+阅读 · 2020年4月24日
[CVPR 2020-港中文-MIT] 神经架构搜索鲁棒性
专知会员服务
25+阅读 · 2020年4月7日
【Google AI】开源NoisyStudent:自监督图像分类
专知会员服务
54+阅读 · 2020年2月18日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
八篇NeurIPS 2019【图神经网络(GNN)】相关论文
专知会员服务
43+阅读 · 2020年1月10日
机器学习领域必知必会的12种概率分布(附Python代码实现)
算法与数学之美
21+阅读 · 2019年10月18日
干货实践 | 计算机视觉花卉识别模型(代码分享)
计算机视觉战队
10+阅读 · 2019年3月13日
开发、调试计算机视觉代码有哪些技巧?
AI研习社
3+阅读 · 2018年7月9日
机器学习者都应该知道的五种损失函数!
数盟
5+阅读 · 2018年6月21日
SVM大解密(附代码和公式)
机器学习算法与Python学习
6+阅读 · 2018年5月22日
从示例中理解SVM算法(附代码)
论智
9+阅读 · 2018年5月10日
图文详解高斯过程(一)——含代码
论智
6+阅读 · 2017年12月18日
动手写机器学习算法:SVM支持向量机(附代码)
七月在线实验室
12+阅读 · 2017年12月5日
深度学习超参数简单理解
计算机视觉战队
4+阅读 · 2017年11月28日
Stock Chart Pattern recognition with Deep Learning
Arxiv
6+阅读 · 2018年8月1日
Arxiv
7+阅读 · 2018年5月23日
VIP会员
相关VIP内容
近期必读的六篇 ICML 2020【因果推理】相关论文
专知会员服务
87+阅读 · 2020年9月8日
【ICML 2020 】小样本学习即领域迁移
专知会员服务
77+阅读 · 2020年6月26日
【Google】监督对比学习,Supervised Contrastive Learning
专知会员服务
72+阅读 · 2020年4月24日
[CVPR 2020-港中文-MIT] 神经架构搜索鲁棒性
专知会员服务
25+阅读 · 2020年4月7日
【Google AI】开源NoisyStudent:自监督图像分类
专知会员服务
54+阅读 · 2020年2月18日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
八篇NeurIPS 2019【图神经网络(GNN)】相关论文
专知会员服务
43+阅读 · 2020年1月10日
相关资讯
机器学习领域必知必会的12种概率分布(附Python代码实现)
算法与数学之美
21+阅读 · 2019年10月18日
干货实践 | 计算机视觉花卉识别模型(代码分享)
计算机视觉战队
10+阅读 · 2019年3月13日
开发、调试计算机视觉代码有哪些技巧?
AI研习社
3+阅读 · 2018年7月9日
机器学习者都应该知道的五种损失函数!
数盟
5+阅读 · 2018年6月21日
SVM大解密(附代码和公式)
机器学习算法与Python学习
6+阅读 · 2018年5月22日
从示例中理解SVM算法(附代码)
论智
9+阅读 · 2018年5月10日
图文详解高斯过程(一)——含代码
论智
6+阅读 · 2017年12月18日
动手写机器学习算法:SVM支持向量机(附代码)
七月在线实验室
12+阅读 · 2017年12月5日
深度学习超参数简单理解
计算机视觉战队
4+阅读 · 2017年11月28日
Top
微信扫码咨询专知VIP会员