首页 科技周边 人工智能 我是如何从头开始写一篇顶级论文的

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

Apr 11, 2023 pm 02:16 PM
技术 论文

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

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

图片

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

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

一、 文献阅读

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

图片

论文地址: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。)

图片

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,按下不表。

图片

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:图片。

但这是完全不必要的,遵循第一性原理,从 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 是一个变量)没有作用。

图片

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

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

图片

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

图片

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

图片

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

图片

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 上发现的完全不同 给我留下了一个对角的印象

图片

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

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

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

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

图片

显然 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,这是我的第二个创新点。

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

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

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

事实上 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)

图片

将 R 和学习率融合后变成

图片

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

图片

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

图片

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

七、要做通用算法

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

图片

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

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

图片

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

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

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

图片

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

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

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

图片

八、理论为骨 实验为翼

纵观以上所有的论文,都是 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 一模一样:

图片

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

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

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

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

十、总结

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

作者简介

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

以上是我是如何从头开始写一篇顶级论文的的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

自动驾驶与轨迹预测看这一篇就够了! 自动驾驶与轨迹预测看这一篇就够了! Feb 28, 2024 pm 07:20 PM

轨迹预测在自动驾驶中承担着重要的角色,自动驾驶轨迹预测是指通过分析车辆行驶过程中的各种数据,预测车辆未来的行驶轨迹。作为自动驾驶的核心模块,轨迹预测的质量对于下游的规划控制至关重要。轨迹预测任务技术栈丰富,需要熟悉自动驾驶动/静态感知、高精地图、车道线、神经网络架构(CNN&GNN&Transformer)技能等,入门难度很大!很多粉丝期望能够尽快上手轨迹预测,少踩坑,今天就为大家盘点下轨迹预测常见的一些问题和入门学习方法!入门相关知识1.预习的论文有没有切入顺序?A:先看survey,p

Stable Diffusion 3论文终于发布,架构细节大揭秘,对复现Sora有帮助? Stable Diffusion 3论文终于发布,架构细节大揭秘,对复现Sora有帮助? Mar 06, 2024 pm 05:34 PM

StableDiffusion3的论文终于来了!这个模型于两周前发布,采用了与Sora相同的DiT(DiffusionTransformer)架构,一经发布就引起了不小的轰动。与之前版本相比,StableDiffusion3生成的图质量有了显着提升,现在支持多主题提示,并且文字书写效果也得到了改善,不再出现乱码情况。 StabilityAI指出,StableDiffusion3是一个系列模型,其参数量从800M到8B不等。这一参数范围意味着该模型可以在许多便携设备上直接运行,从而显着降低了使用AI

你是否真正掌握了坐标系转换?自动驾驶离不开的多传感器问题 你是否真正掌握了坐标系转换?自动驾驶离不开的多传感器问题 Oct 12, 2023 am 11:21 AM

一先导与重点文章主要介绍自动驾驶技术中几种常用的坐标系统,以及他们之间如何完成关联和转换,最终构建出统一的环境模型。这里重点理解自车到相机刚体转换(外参),相机到图像转换(内参),图像到像素有单位转换。3d向2d转换会有相应的畸变,平移等。重点:自车坐标系相机机体坐标系需要被重写的是:平面坐标系像素坐标系难点:要考虑图像畸变,去畸变和加畸变都是在像平面上去补偿二简介视觉系统一共有四个坐标系:像素平面坐标系(u,v)、图像坐标系(x,y)、相机坐标系()和世界坐标系()。每种坐标系之间均存在联系,

NeRF与自动驾驶的前世今生,近10篇论文汇总! NeRF与自动驾驶的前世今生,近10篇论文汇总! Nov 14, 2023 pm 03:09 PM

神经辐射场(NeuralRadianceFields)自2020年被提出以来,相关论文数量呈指数增长,不但成为了三维重建的重要分支方向,也逐渐作为自动驾驶重要工具活跃在研究前沿。NeRF这两年异军突起,主要因为它跳过了传统CV重建pipeline的特征点提取和匹配、对极几何与三角化、PnP加BundleAdjustment等步骤,甚至跳过mesh的重建、贴图和光追,直接从2D输入图像学习一个辐射场,然后从辐射场输出逼近真实照片的渲染图像。也就是说,让一个基于神经网络的隐式三维模型,去拟合指定视角

DualBEV:大幅超越BEVFormer、BEVDet4D,开卷! DualBEV:大幅超越BEVFormer、BEVDet4D,开卷! Mar 21, 2024 pm 05:21 PM

这篇论文探讨了在自动驾驶中,从不同视角(如透视图和鸟瞰图)准确检测物体的问题,特别是如何有效地从透视图(PV)到鸟瞰图(BEV)空间转换特征,这一转换是通过视觉转换(VT)模块实施的。现有的方法大致分为两种策略:2D到3D和3D到2D转换。2D到3D的方法通过预测深度概率来提升密集的2D特征,但深度预测的固有不确定性,尤其是在远处区域,可能会引入不准确性。而3D到2D的方法通常使用3D查询来采样2D特征,并通过Transformer学习3D和2D特征之间对应关系的注意力权重,这增加了计算和部署的

首个多视角自动驾驶场景视频生成世界模型 | DrivingDiffusion: BEV数据和仿真新思路 首个多视角自动驾驶场景视频生成世界模型 | DrivingDiffusion: BEV数据和仿真新思路 Oct 23, 2023 am 11:13 AM

笔者的一些个人思考在自动驾驶领域,随着BEV-based子任务/端到端方案的发展,高质量的多视图训练数据和相应的仿真场景构建愈发重要。针对当下任务的痛点,“高质量”可以解耦成三个方面:不同维度上的长尾场景:如障碍物数据中近距离的车辆以及切车过程中精准的朝向角,以及车道线数据中不同曲率的弯道或较难采集的匝道/汇入/合流等场景。这些往往靠大量的数据采集和复杂的数据挖掘策略,成本高昂。3D真值-图像的高度一致:当下的BEV数据获取往往受到传感器安装/标定,高精地图以及重建算法本身的误差影响。这导致了我

GSLAM | 一个通用的SLAM架构和基准 GSLAM | 一个通用的SLAM架构和基准 Oct 20, 2023 am 11:37 AM

突然发现了一篇19年的论文GSLAM:AGeneralSLAMFrameworkandBenchmark开源代码:https://github.com/zdzhaoyong/GSLAM直接上全文,感受这项工作的质量吧~1摘要SLAM技术最近取得了许多成功,并吸引了高科技公司的关注。然而,如何同一现有或新兴算法的界面,一级有效地进行关于速度、稳健性和可移植性的基准测试仍然是问题。本文,提出了一个名为GSLAM的新型SLAM平台,它不仅提供评估功能,还为研究人员提供了快速开发自己的SLAM系统的有用

《我的世界》化身AI小镇,NPC居民角色扮演如同真人 《我的世界》化身AI小镇,NPC居民角色扮演如同真人 Jan 02, 2024 pm 06:25 PM

请留意,这个方块人正在紧锁眉头,思考着面前几位“不速之客”的身份。原来她陷入了危险境地,意识到这一点后,她迅速展开脑力搜索,寻找解决问题的策略。最终,她决定先逃离现场,然后尽快寻求帮助,并立即采取行动。与此同时,对面的人也在进行着与她相同的思考……在《我的世界》中出现了这样一个场景,所有的角色都由人工智能控制。他们每个人都有着独特的身份设定,比如之前提到的女孩就是一个年仅17岁但聪明勇敢的快递员。他们拥有记忆和思考能力,在这个以《我的世界》为背景的小镇中像人类一样生活。驱动他们的,是一款全新的、

See all articles