如何从头开始写一篇顶级论文

最近完成了一篇很满意的论文,不仅整个过程愉快、回味无穷,而且真正做到了「学术有影响,工业有产出」。我相信这篇文章会改变差分隐私(differential privacy;DP)深度学习的范式。

因为这次经历实在太过「巧」了 (过程充满巧合、结论极其巧妙),在此和同学们分享一下自己从观察 -->构思 -->实证 -->理论 -->大规模实验的完整流程。本文我会尽量保持 lightweight,不涉及过多技术细节。

8f172010363aa0d72fc34415530e9162.png

论文地址:arxiv.org/abs/2206.07136

与 paper 展现的顺序不同,paper 有时会刻意将结论放在开头吸引读者,或者先介绍简化后的定理而将完整的定理放附录;而本文我想将我的经历按时间顺序写下(也就是流水账), 比如把走过的弯路和研究中突发的状况写出来,以供刚踏上科研之路的同学参考。

一、 文献阅读

事情的起源是斯坦福的一篇论文,现在已经录了 ICLR:

a49431acdf4d7ad95b1e8fd4c0b9cb56.png

论文地址:https://arxiv.org/abs/2110.05679

文章写的非常好,总结起来有三个主要贡献:

1. 在 NLP 任务中,DP 模型的 accuracy 非常高,鼓励了 privacy 在语言模型的应用。(与之相对的是 CV 中 DP 会产生非常大的 accuracy 恶化,比如 CIFAR10 目前 DP 限制下不用预训练只有 80% accuracy,而不考虑 DP 可以轻松达到 95%;ImageNet 当时最好的 DP accuracy 不到 50%。)

2. 在语言模型上,模型越大,性能会越好。比如 GPT2 从 4 亿参数到 8 亿参数性能提升很明显,也取得了很多 SOTA。(但是在 CV 和推荐系统中,很多时候更大的模型性能会很差,甚至接近 random guess。比如 CIFAR10 的 DP best accuracy 此前是由四层 CNN 得到的,而非 ResNet。)

f7772a429ec7fb157b1a3e56a790d891.jpeg

NLP 任务中 DP 模型越大性能越好 [Xuechen et al. 2021]

3. 在多个任务上取得 SOTA 的超参数是一致的:都是 clipping threshold 要设置的足够小,并且 learning rate 需要大一些。(此前所有文章都是一个任务调一个 clipping threshold,费时费力,并没有出现过像这篇这样一个 clipping threshold=0.1 贯穿所有任务,表现还这么好。)

以上总结是我读完 paper 瞬间理解的,其中括号内的内容并非来自这篇 paper,而是以往诸多阅读产生的印象。这有赖于长期的阅读积累和高度的概括能力,才能快速联想和对比出来。

事实上,很多同学做文章起步难恰恰就在于看一篇文章只能看到一篇文章的内容,无法和整个领域的知识点形成网络、产生联想。这一方面由于刚入门的同学阅读量不够,尚未掌握足够的知识点。尤其是长期从老师手中拿课题,不自己独立 propose 的同学,容易有这个问题。另一方面则是阅读量虽然够,但没有时时归纳总结,导致信息没有凝聚成知识或者知识没有串联。

这里补充下 DP deep learning 的背景知识,暂且略过 DP 的定义,不影响阅读。

所谓 DP deep learning 从算法的角度来说其实就是多做两个额外的步骤:per-sample gradient clipping 和 Gaussian noise addition;换句话说,只要你把 gradient 按照这两步处理完了(处理后的 gradient 叫做 private gradient),之后该怎么用优化器就怎么用,SGD/Adam 都可以。

至于最后算法到底多 private,就是另一个子领域的问题了,称为 privacy accounting theory。此领域相对成熟而且需要极强的理论功底,由于本文专注于 optimization,按下不表。

c7854b7ead2168bad8d5c978b8ba74c3.png

g_i 是 一个数据点的梯度(per-sample gradient),R 是 clipping threshold, sigma 是 noise multiplier。

其中 Clip 叫做 clipping function,就跟常规的 gradient clipping 一样,梯度长于 R 就剪到 R,小于 R 就不动。

比如 DP 版本的 SGD 就是目前所有 paper 都用的是隐私深度学习开山之作(Abadi, Martin, et al. "Deep learning with differential privacy.")中的 clipping function,也称为 Abadi's clipping:d155509ddb7280960cc9344ee2270490.png

但这是完全不必要的,遵循第一性原理,从 privacy accounting theory 出发,其实 clipping function 只需要满足 Clip(g_i)*g_i 的模小于等于 R 就可以了。也就是说,Abadi's clipping 只是一种满足这个条件的函数,但绝非唯一。

二、切入点

一篇文章的闪光点很多,但是并非都能为我所用,要结合自身的需求和擅长去判断最大的贡献是什么。

这篇文章前两个贡献其实非常 empirical,也很难深挖。而最后一个贡献很有意思 我仔细看了看超参数的 ablation study 发现一个原作者没有发现的点:在 clipping threshold 足够小的时候,其实 clipping threshold(也就是 clipping norm C,在上面的公式中和 R 是一个变量)没有作用。

6920f2a4c273353d8171cdc06f4d1d21.jpeg

纵向来看 C=0.1,0.4,1.6 对 DP-Adam 没什么区别 [Xuechen et al. 2021]。

这引起了我的兴趣,感觉背后一定有什么原理。于是我手写了他们所用的 DP-Adam 来看看为什么,其实这很简单:

32a09e0af7773fdc9c56b9ce8ed87189.png

如果 R 足够小,clipping 其实等价于 normalization!简单代入 private gradient(1.1),可以将 R 从 clipping 的部分和 noising 的部分分别提出来:

3380eee394de089a419925a9d38252a2.png

而 Adam 的形式使得 R 会同时出现在梯度和自适应的步长中,分子分母一抵消,R 就没有了,顶会 idea 就有了!

7c314abda755d5725b21d4f33d0e7b57.jpeg

m 和 v 都依赖于梯度,同时用 private 梯度替换即得到 DP-AdamW。

就这么简单的代换,就证明了我的第一个定理:在 DP-AdamW 中,足够小的 clipping thresholds 是互相等价的,无需调参。

毫无疑问,这是一个很简明而且很有趣的观察,但这并没有足够的意义,所以我需要思考这个观察在实际中有什么用途。

其实,这意味着 DP 训练减少了一个数量级的调参工作:假设学习率和 R 各调 5 个值(如上图) ,那就要测 25 种组合才能找到最优超参数。现在只需要调学习率 5 种可能就好,调参效率提高了数倍,这是对业界来说极有价值的痛点问题。

立意足够高,数学足够简明,一个好的想法已经初具雏形。

三、简单扩展

只对 Adam/AdamW 成立的话,这个工作的局限性还是太大了,所以我很快扩展到了 AdamW 和其他 adaptive optimizers,比如 AdaGrad。事实上,对于所有的 adaptive optimizers,都可以证明 clipping threshold 会被抵消,从而不用调参,大大增加了定理的丰富程度。

这里面还有一个有趣的小细节。众所周知,Adam with weight decay 和 AdamW 不一样,后者使用的是 decoupled weight decay,就这个区别还发了篇 ICLR

ad8d5c206896760bb2c8f2d6bc47264f.jpeg

Adam 有两种加 weight decay 的方式。

这个区别在 DP 优化器中也存在。同样是 Adam,用 decoupled weight decay 的话, 缩放 R 不影响 weight decay 的大小,但是用普通的 weight decay 的话,放大 R 两倍等价于缩小两倍的 weight decay。

四、另有乾坤

聪明的同学可能已经发现了 我一直再强调自适应优化器 为啥不讲讲 SGD 呢? 答案是在我写完 DP 自适应优化器的理论后 Google 紧接着就放了一篇 DP-SGD 用在 CV 的文章 也做了 ablation study 但是规律和在 Adam 上发现的完全不同 给我留下了一个对角的印象

5767c0974f701e255f26a9d9937e3116.jpeg

对 DP-SGD 且 R 足够小的时候,增大 10 倍 lr 等于增大 10 倍 R [https://arxiv.org/abs/2201.12328]。

当时我看到这篇文章的时候很兴奋,因为又是一个证明 small clipping threshold 效果好的论文。

在科学界,连续的巧合背后往往有着隐藏的规律。

简单地代换一下,发现 SGD 比 Adam 还好分析,(1.3)可以近似为:

3368cf3cd8336a440e3f2ca535d844fe.png

显然 R 又可以提出来,和学习率组合在一起,从理论上证明了 Google 的观察。

“Specifically, when the clipping norm is decreased k times, the learning rate should be increased k times to maintain similar accuracy.”

很可惜 Google 只看到现象,没有上升到理论的高度。这里也有一个巧合,那就是上图他们同时画了两种尺度的 ablation study,只有左边的尺度能看出对角线,光看右边是没有结论的......

由于没有自适应步长,SGD 不像 Adam 一样无视 R,而是把 R 看作学习率的一部分,所以也不需要单独调节,反正学习率要调参就一起调了。

再将 SGD 的理论扩充到 momentum,所有 Pytorch 支持的优化器全都分析完毕。

五、从直觉到严谨

一个创新点是有了,但是 Abadi's clipping 严格来说只是近似 normalization,不能划等号,也就没法确凿地分析收敛性。

根据多啦 A 梦铁人兵团原理,我直接命名 normalization 为新的 per-sample gradient clipping function,替代了整个领域用了 6 年的 Abadi clipping,这是我的第二个创新点。

43ea62e05ebdc03ec4e7514f16514e93.jpeg

经过刚才的证明,新的 clipping 严格不需要 R,所以称之为 automatic clipping (AUTO-V; V for vanilla)。

既然形式上与 Abadi's clipping 有不同,那么 accuracy 就会有差异,而我的 clipping 可能有劣势。

所以我需要写代码测试我的新方法,而这只需要改动一行代码 (毕竟只是把7eef761ebc51700acf2059f4ea298cd3.png)。

事实上 DP per-sample gradient clipping 这个方向主要就三种 clipping functions, 除了 Abadi's clipping 以外的两种都是我提出的,一个是 global clipping,还有一个就是这篇 automatic clipping。而在先前的工作中,我就已经知道怎么在各个流行的库中改 clipping 了,我将修改方法放在文章最后一个 appendix。

经过我的测试,我发现斯坦福的文章中 GPT2 在整个训练过程中,所有 itertation 和所有 per-sample gradient 都是 clip 过的。也就是说,至少在这一个实验上,Abadi's clipping 完全等价于 automatic clipping。虽然后来的实验的确有输于 SOTA 的情况, 但这已经说明了我的新方法有足够的价值:一个不需要调整 clipping threshold 的 clipping function,而且有时 accuracy 也不会牺牲。

六、 回归抽象思考

斯坦福的文章有两大类语言模型的实验,一类是 GPT2 为模型的生成型任务,另一类是 RoBERTa 为模型的分类型任务。虽然在生成任务上 automatic clipping 和 Abadi's clipping 等价,但是分类型任务却总是差几个点的准确率。

出于我自己的学术习惯,这个时候我不会去换数据集然后专门挑我们占优的实验发表,更不会增加 trick(比如做数据增强和魔改模型之类的)。我希望在完全公平的比较中, 只比较 per-sample gradient clipping 的前提下,尽可能做出最好的不含水分的效果。

事实上,在和合作者讨论中我们发现:纯粹的 normalization 和 Abadi's clipping 比 梯度大小的信息是完全抛弃的,也就是说对于 automatic clipping,无论原始的梯度多大,clip 后都是 R 这么大,而 Abadi 对于比 R 小的梯度是保留了大小的信息的。

基于这个想法,我们做了一个微小但极其巧妙的改动,称之为 AUTO-S clipping (S 代表 stable)

829df5559fb4abc0e1a55444df13fe8e.png

将 R 和学习率融合后变成

ba86451abf52a4a01dc89c4933e60911.png

简单一画可以发现这个小小的  (一般设为 0.01,其实设成别的正数都行,很稳健)就能保留梯度大小的信息:

6fd7a9da19656af8c53f9dbda7304bd3.jpeg

基于这个算法,还是只改动一行,把斯坦福的代码重跑一遍,六个 NLP 数据集的 SOTA 就到手了。

24ddd4d5c16aae7ccf039d93040aa5e3.jpeg

在 E2E 生成任务上,AUTO-S 超越了所有其他 clipping function,在 SST2/MNLI/QNLI/QQP 分类任务上也是。

七、要做通用算法

斯坦福文章的一个局限性是只专注于 NLP,又很巧合的是:紧接着 Google 刷了 ImageNet 的 DP SOTA 两个月后,Google 子公司 DeepMind 放出了一篇 DP 在 CV 中大放异彩的文章,直接将 ImageNet 准确率从 48% 提升到 84%!

4b46509aac08b3a3d3240c8a28a32b78.png

论文地址:https://arxiv.org/abs/2204.13650

在这篇文章中,我第一时间去看优化器和 clipping threshold 的选择,直到我在附录翻到这张图:

9d93afcb037db32fd3f0d0b782486ab1.jpeg

DP-SGD 在 ImageNet 上的 SOTA 也是需要 clipping threshold 足够小。

依然是 small clipping threshold 效果最好!有了三篇高质量的文章支撑 automatic clipping,已经有了很强的动机了,我越发肯定自己的工作会是非常杰出的。

巧合的是 DeepMind 这篇文章也是纯实验没有理论,这也导致他们差点就领悟出了他们可以从理论上不需要 R,事实上他们真的非常接近我的想法了,他们甚至已经发现了 R 是可以提取出来和学习率融合的(感兴趣的同学可以看看他们的公式(2)和(3))。但是 Abadi's clipping 的惯性太大了... 即使他们总结出了规律却没有更进一步。

1fedfe966ebbaeff680b460a5ef51a8b.png

DeepMind 也发现了 small clipping threshold 效果最好,但是没有理解为什么。

受这篇新工作的启发,我开始着手做 CV 的实验,让我的算法能被所有 DP 研究者使用,而不是 NLP 搞一套方法,CV 搞另一套。

好的算法就是应该通用好用,事实也证明 automatic clipping 在 CV 数据集上同样能取得 SOTA。

22922767f9d00158552f789656b6382e.jpeg

八、理论为骨 实验为翼

纵观以上所有的论文,都是 SOTA 提升显著、工程效果拔满,但是理论完全空白。

当我做完所有实验的时候,这份工作的贡献已经超过了一篇顶会的要求:我将经验上 small clipping threshold 所产生的 DP-SGD 和 DP-Adam 的参数影响大大简化;提出了新的 clipping function 而不牺牲运算效率、隐私性,还不用调参;小小的 γ 修复了 Abadi's clipping 和 normalization 对梯度大小信息的破坏;充足的 NLP 和 CV 实验都取得了 SOTA 的准确率。

我还没有满意。一个没有理论支撑的优化器,还是无法为深度学习做出实质贡献。每年顶会提出的新优化器有几十个,第二年全都扫进故纸堆。Pytorch 官方支持的、业界真正在用的,还是那么几个。

为此我和合作者们额外花了两个月做了 automatic DP-SGD 收敛性分析,过程艰难但最后的证明简化到极致。结论也很简单:将 batch size、learning rate、model size、sample size 等变量对收敛的影响都定量地表达出来,并且符合所有已知的 DP 训练行为。

特别的,我们证明了 DP-SGD 虽然收敛的比标准的 SGD 慢,但是 iteration 趋于无穷的话,收敛的速度都是一个数量级的。这为隐私计算提供了信心:DP 模型收敛,虽迟但到。

九、撞车了...

终于,写了 7 个月的文章完稿了,没想到巧合还没停。5 月份 NeurIPS 投稿,6 月 14 日内部修改完放 arXiv,结果 6 月 27 日看到微软亚州研究院(MSRA)发表了一篇和我们撞车的文章,提出的 clipping 和我们的 automatic clipping 一模一样:

26fefdfd58356a33a9e3aadc7aa91c99.png

和我们的 AUTO-S 分毫不差。

仔细看了看,连收敛性的证明都差不多。而我们两组人又没有交集,可以说隔着太平洋的巧合诞生了。

这里稍微讲一下两篇文章的不同:对方文章更偏理论,比如额外分析了 Abadi DP-SGD 的收敛(我只证了 automatic clipping,也就是他们文中的 DP-NSGD,可能我也不知道咋整 DP-SGD);用的假设也有一些不同;而我们实验做的多一些大一些(十几个数据集),更显式地建立了 Abadi's clipping 和 normalization 的等价关系,比如 Theorem 1 和 2 解释为什么 R 可以不用调参。

既然是同时期的工作,我很开心能有人不谋而合,互相能补充共同推动这个算法,让整个社群尽快相信这个结果并从中受益。当然,私心来说,也提醒自己下一篇要加速了!

总结

回顾这篇文章的创作历程,从起点来看,基本功一定是前提,而另一个重要的前提是自己心中一直念念不忘调参这个痛点问题。正是久旱,所以读到合适的文章才能逢甘露。至于过程,核心在于将观察数学化理论化的习惯,在这个工作中代码实现能力反倒不是最重要的。我会再写一篇专栏着重讲讲另一个硬核代码工作;最后的收敛性分析,也是靠合作者和自己的不将就。所幸好饭不怕晚,继续前进!

作者简介  
卜至祺,剑桥大学本科毕业,宾夕法尼亚大学博士,现任亚马逊 AWS AI 高级研究科学家,其研究方向为差分隐私与深度学习,侧重优化算法和大规模计算。

原文链接:https://zhuanlan.zhihu.com/p/538681254

编辑- 机器学习研习院

推荐阅读:我的2022届互联网校招分享我的2021总结浅谈算法岗和开发岗的区别互联网校招研发薪资汇总
2022届互联网求职现状,金9银10快变成铜9铁10!!公众号:AI蜗牛车保持谦逊、保持自律、保持进步发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)
发送【1222】获取一份不错的leetcode刷题笔记发送【AI四大名著】获取四本经典AI电子书

​​

​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/69871.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何成功发表一篇论文(最全攻略) ——建议收藏

学术论文到底怎么写才能发表?此篇内容手把手教大家如何快速的写好科研论文并顺利发表。 内容针对的是论文的写作要求,需要毕业论文的朋友也可以参考写作方法,内容包括了:从如何调研确定topic,如何多快好省做实验&#…

知名高校博士:我改了这2个地方,一开始被秒拒的论文很快就成功发表了~

手稿被拒后,你会怎么做?是直接换期刊重投,还是先仔细修改下论文呢? 伊利诺伊大学博士Sara E. Skrabalak分享了自己在论文被秒拒后,修改了文章部分内容就成功发表的经验。我们来看看她到底做了哪些修改吧 ~ Sara E. Sk…

写论文的时候发现的几个神奇的网站

几十个网站,直接搜索,免费查重,自动排版,各行各业的数据库,都在这里了。1.智能查重内容重构 https://ycjc.5118.com/?tzhihu 这是一个通过智能算法,分析全网文字内容同质化数据、检测内容重复度的工具。…

AI终于能替我写论文了

编 | 小舟、陈萍源 | 机器之心 Meta AI 提出了一个可以总结学术文献,解决数学问题的新模型,该模型还能生成百科文章,编写科学代码,注释分子和蛋白质等等。 近年来,随着各学科领域研究的进步,科学文献和数据…

你写论文时发现了哪些非常神的网站?

链接:https://www.zhihu.com/question/35931336 转自:深度学习与计算机视觉 声明:仅做学术分享,侵删 作者:luluCHENGhttps://www.zhihu.com/question/35931336/answer/998331404 1.文献检索类的网站我只推荐一个&#…

科研论文写作

科研论文写作 文章目录 科研论文写作一、论文写作的重要性二、论文写作的总原则二、论文写作的注意事项要注意\citet, \citep, \cite的区别数学符号上下文要保持一致英文表达存在天然的顺承关系比较级和最高级不可以轻易使用需要有甄别的使用其他论文中的句子数学符号需要有明确…

iPortal之注册服务代理配置

SuperMap iPortal 提供了注册服务代理功能,方便您对注册到 iPortal 门户中的多源服务的权限进行统一的控制;提供了代理服务访问统计功能,支持记录代理服务的访问次数,按服务访问次数排序等;此外还支持代理服务以 HTTPS…

搭建代理服务器

搭建代理服务器 搭建代理服务器场景ccproxy进行搭建代理服务器proxifier配置代理服务器总结 搭建代理服务器 有这种情况,在家需要访问某个内网环境,但是内网的ip从外网是访问不到的,这种需要怎么处理呢? 答案是使用代理服务器。…

Endnote 导出英文、中文(知网)参考文献进入Word

1、英文文献 从Google Scholar 搜索需要的参考文献,然后点击“引用”按钮,导出Endnote的格式,例如scholar.enw。 在Endnote中File-->Import-->File...-->Import File-->Import 参考文献导入完毕 进行参考文献在word中的导出…

知网论文参考文献导入到Endnote方法

第一步下载参考文献文件第二步:右键->打开方式->选择endnote 3. 导入结果

【论文笔记】知识图谱研究综述 思维导图

写在前面 是论文笔记,主要是思维导图。DOI:10.13451/j.cnki. shanxi. univ( nat. sci.).2017.03.008 摘要 知识图谱以结构化的方式描述客观世界中概念、实体及其间的关系,将互联网的信息表达成更接近人类认知世界的形式,提供了一种更好地组…

使用Endnote快速导入知网的中文文献

下载pdf,不要下载到自动导入文件夹!!!下载文章的endnote引用文件,直接从知网点击更多引用格式。然后点击导出。 到endnote中进行编辑,attach pdf。这样做的好处是避免自动导入的时候生成不正确的citation&a…

文献知识图谱绘制

本博客分三阶段更新: 第一次主要介绍如何从CNKI中导出文献,并进行可视化分析(已完成)第二次主要介绍如何从WOS(Web of Science)中导出文献,并进行可视化分析(未完成,最近…

知网等数据库文献快速直接导入EndNote的方法

这个方法的前提是了解 EndNote 的一个机制:使用 EndNote 打开 txt 或 pdf 文件时,EndNote 会自动解析并尝试将文件导入到 EndNote 中,而用 EndNote 打开文件的步骤在 Windows 中可以用 CMD 命令简化 D: cd D:\Program Files (x86)\EndNote X…

五种知识图式的绘制方法(思维导图、概念图、知识图谱、语义网络、认知图)

文章目录 一、思维导图的绘制二、概念图的绘制三、知识图谱的绘制四、语义网络的绘制五、认知图的绘制 一、思维导图的绘制 绘制思维导图的步骤为: 第一步:拿出一张纸或使用软件,从中心开始绘制,周围留出空白。 第二步&#xff1…

代码随想录算法训练营第二天 |-数组篇97720959

文章目录 数组977-有序数组的平方题目&难度示例写在前面算法——暴力快速排序&双指针法1.暴力快速排序2.双指针法 数组209-长度最小的子数组题目&难度示例算法——滑动窗口(双指针法)复杂度分析 数组59-螺旋矩阵Ⅱ题目示例值得注意的算法——…

Bito插件

文章目录 01 引言 02 Bito的安装与使用 2.1 安装Bito 2.2 注册并创建工作空间 2.3 使用方式 03 其它 3.1 插件支持的平台 3.2 文档 04 文末 01 引言 Bito IDEA插件地址:https://plugins.jetbrains.com/plugin/18289-bito–gpt-4–chatgpt-to-write-code-explain-cod…

牛逼 !谷歌推出 PaLM 2 反击 GPT-4!

出品 | OSC开源社区(ID:oschina2013) 谷歌在 2023 年度 I/O 大会上宣布推出了其下一代大型语言模型 PaLM 2,擅长高级推理任务,包括代码和数学、分类和问答、翻译和多语言能力以及自然语言生成。 谷歌声称 PaLM 2 是一种最先进的语…

如何优雅的使用各类LLM

近几个月,随着ChatGPT的风靡,大型语言预训练模型也如雨后春笋般地涌现,虽然效果差强人意,好在不受限制。配置稍好的电脑也能跑个7B、13B参数的大语言模型。 虽然模型众多,但是如果给每一个模型都单独去配置环境&#x…