自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我是如何從頭開始寫一篇頂級論文的

人工智能 新聞
本文我想將我的經(jīng)歷按時間順序?qū)懴拢ㄒ簿褪橇魉~), 比如把走過的彎路和研究中突發(fā)的狀況寫出來,以供剛踏上科研之路的同學(xué)參考。

最近完成了一篇很滿意的論文,不僅整個過程愉快、回味無窮,而且真正做到了「學(xué)術(shù)有影響,工業(yè)有產(chǎn)出」。我相信這篇文章會改變差分隱私(differential privacy;DP)深度學(xué)習(xí)的范式。

因為這次經(jīng)歷實在太過「巧」了 (過程充滿巧合、結(jié)論極其巧妙),在此和同學(xué)們分享一下自己從觀察 -->構(gòu)思 -->實證 -->理論 -->大規(guī)模實驗的完整流程。本文我會盡量保持 lightweight,不涉及過多技術(shù)細(xì)節(jié)。

圖片

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

與 paper 展現(xiàn)的順序不同,paper 有時會刻意將結(jié)論放在開頭吸引讀者,或者先介紹簡化后的定理而將完整的定理放附錄;而本文我想將我的經(jīng)歷按時間順序?qū)懴拢ㄒ簿褪橇魉~), 比如把走過的彎路和研究中突發(fā)的狀況寫出來,以供剛踏上科研之路的同學(xué)參考。

一、 文獻閱讀

事情的起源是斯坦福的一篇論文,現(xiàn)在已經(jīng)錄了 ICLR:

圖片

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

文章寫的非常好,總結(jié)起來有三個主要貢獻:

1. 在 NLP 任務(wù)中,DP 模型的 accuracy 非常高,鼓勵了 privacy 在語言模型的應(yīng)用。(與之相對的是 CV 中 DP 會產(chǎn)生非常大的 accuracy 惡化,比如 CIFAR10 目前 DP 限制下不用預(yù)訓(xùn)練只有 80% accuracy,而不考慮 DP 可以輕松達到 95%;ImageNet 當(dāng)時最好的 DP accuracy 不到 50%。)

2. 在語言模型上,模型越大,性能會越好。比如 GPT2 從 4 億參數(shù)到 8 億參數(shù)性能提升很明顯,也取得了很多 SOTA。(但是在 CV 和推薦系統(tǒng)中,很多時候更大的模型性能會很差,甚至接近 random guess。比如 CIFAR10 的 DP best accuracy 此前是由四層 CNN 得到的,而非 ResNet。)

圖片

NLP 任務(wù)中 DP 模型越大性能越好 [Xuechen et al. 2021]

3. 在多個任務(wù)上取得 SOTA 的超參數(shù)是一致的:都是 clipping threshold 要設(shè)置的足夠小,并且 learning rate 需要大一些。(此前所有文章都是一個任務(wù)調(diào)一個 clipping threshold,費時費力,并沒有出現(xiàn)過像這篇這樣一個 clipping threshold=0.1 貫穿所有任務(wù),表現(xiàn)還這么好。)

以上總結(jié)是我讀完 paper 瞬間理解的,其中括號內(nèi)的內(nèi)容并非來自這篇 paper,而是以往諸多閱讀產(chǎn)生的印象。這有賴于長期的閱讀積累和高度的概括能力,才能快速聯(lián)想和對比出來。

事實上,很多同學(xué)做文章起步難恰恰就在于看一篇文章只能看到一篇文章的內(nèi)容,無法和整個領(lǐng)域的知識點形成網(wǎng)絡(luò)、產(chǎn)生聯(lián)想。這一方面由于剛?cè)腴T的同學(xué)閱讀量不夠,尚未掌握足夠的知識點。尤其是長期從老師手中拿課題,不自己獨立 propose 的同學(xué),容易有這個問題。另一方面則是閱讀量雖然夠,但沒有時時歸納總結(jié),導(dǎo)致信息沒有凝聚成知識或者知識沒有串聯(lián)。

這里補充下 DP deep learning 的背景知識,暫且略過 DP 的定義,不影響閱讀。

所謂 DP deep learning 從算法的角度來說其實就是多做兩個額外的步驟:per-sample gradient clipping 和 Gaussian noise addition;換句話說,只要你把 gradient 按照這兩步處理完了(處理后的 gradient 叫做 private gradient),之后該怎么用優(yōu)化器就怎么用,SGD/Adam 都可以。

至于最后算法到底多 private,就是另一個子領(lǐng)域的問題了,稱為 privacy accounting theory。此領(lǐng)域相對成熟而且需要極強的理論功底,由于本文專注于 optimization,按下不表。

圖片

g_i 是 一個數(shù)據(jù)點的梯度(per-sample gradient),R 是 clipping threshold, sigma 是 noise multiplier。

其中 Clip 叫做 clipping function,就跟常規(guī)的 gradient clipping 一樣,梯度長于 R 就剪到 R,小于 R 就不動。

比如 DP 版本的 SGD 就是目前所有 paper 都用的是隱私深度學(xué)習(xí)開山之作(Abadi, Martin, et al. "Deep learning with differential privacy.")中的 clipping function,也稱為 Abadi's clipping:圖片。

但這是完全不必要的,遵循第一性原理,從 privacy accounting theory 出發(fā),其實 clipping function 只需要滿足 Clip(g_i)*g_i 的模小于等于 R 就可以了。也就是說,Abadi's clipping 只是一種滿足這個條件的函數(shù),但絕非唯一。

二、切入點

一篇文章的閃光點很多,但是并非都能為我所用,要結(jié)合自身的需求和擅長去判斷最大的貢獻是什么。

這篇文章前兩個貢獻其實非常 empirical,也很難深挖。而最后一個貢獻很有意思 我仔細(xì)看了看超參數(shù)的 ablation study 發(fā)現(xiàn)一個原作者沒有發(fā)現(xiàn)的點:在 clipping threshold 足夠小的時候,其實 clipping threshold(也就是 clipping norm C,在上面的公式中和 R 是一個變量)沒有作用。

圖片

縱向來看 C=0.1,0.4,1.6 對 DP-Adam 沒什么區(qū)別 [Xuechen et al. 2021]。

這引起了我的興趣,感覺背后一定有什么原理。于是我手寫了他們所用的 DP-Adam 來看看為什么,其實這很簡單:

圖片

如果 R 足夠小,clipping 其實等價于 normalization!簡單代入 private gradient(1.1),可以將 R 從 clipping 的部分和 noising 的部分分別提出來:

圖片

而 Adam 的形式使得 R 會同時出現(xiàn)在梯度和自適應(yīng)的步長中,分子分母一抵消,R 就沒有了,頂會 idea 就有了!

圖片

m 和 v 都依賴于梯度,同時用 private 梯度替換即得到 DP-AdamW。

就這么簡單的代換,就證明了我的第一個定理:在 DP-AdamW 中,足夠小的 clipping thresholds 是互相等價的,無需調(diào)參。

毫無疑問,這是一個很簡明而且很有趣的觀察,但這并沒有足夠的意義,所以我需要思考這個觀察在實際中有什么用途。

其實,這意味著 DP 訓(xùn)練減少了一個數(shù)量級的調(diào)參工作:假設(shè)學(xué)習(xí)率和 R 各調(diào) 5 個值(如上圖) ,那就要測 25 種組合才能找到最優(yōu)超參數(shù)?,F(xiàn)在只需要調(diào)學(xué)習(xí)率 5 種可能就好,調(diào)參效率提高了數(shù)倍,這是對業(yè)界來說極有價值的痛點問題。

立意足夠高,數(shù)學(xué)足夠簡明,一個好的想法已經(jīng)初具雛形。

三、簡單擴展

只對 Adam/AdamW 成立的話,這個工作的局限性還是太大了,所以我很快擴展到了 AdamW 和其他 adaptive optimizers,比如 AdaGrad。事實上,對于所有的 adaptive optimizers,都可以證明 clipping threshold 會被抵消,從而不用調(diào)參,大大增加了定理的豐富程度。

這里面還有一個有趣的小細(xì)節(jié)。眾所周知,Adam with weight decay 和 AdamW 不一樣,后者使用的是 decoupled weight decay,就這個區(qū)別還發(fā)了篇 ICLR

圖片

Adam 有兩種加 weight decay 的方式。

這個區(qū)別在 DP 優(yōu)化器中也存在。同樣是 Adam,用 decoupled weight decay 的話, 縮放 R 不影響 weight decay 的大小,但是用普通的 weight decay 的話,放大 R 兩倍等價于縮小兩倍的 weight decay。

四、另有乾坤

聰明的同學(xué)可能已經(jīng)發(fā)現(xiàn)了 我一直再強調(diào)自適應(yīng)優(yōu)化器 為啥不講講 SGD 呢? 答案是在我寫完 DP 自適應(yīng)優(yōu)化器的理論后 Google 緊接著就放了一篇 DP-SGD 用在 CV 的文章 也做了 ablation study 但是規(guī)律和在 Adam 上發(fā)現(xiàn)的完全不同 給我留下了一個對角的印象

圖片

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

當(dāng)時我看到這篇文章的時候很興奮,因為又是一個證明 small clipping threshold 效果好的論文。

在科學(xué)界,連續(xù)的巧合背后往往有著隱藏的規(guī)律。

簡單地代換一下,發(fā)現(xiàn) SGD 比 Adam 還好分析,(1.3)可以近似為:

圖片

顯然 R 又可以提出來,和學(xué)習(xí)率組合在一起,從理論上證明了 Google 的觀察。

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

很可惜 Google 只看到現(xiàn)象,沒有上升到理論的高度。這里也有一個巧合,那就是上圖他們同時畫了兩種尺度的 ablation study,只有左邊的尺度能看出對角線,光看右邊是沒有結(jié)論的......

由于沒有自適應(yīng)步長,SGD 不像 Adam 一樣無視 R,而是把 R 看作學(xué)習(xí)率的一部分,所以也不需要單獨調(diào)節(jié),反正學(xué)習(xí)率要調(diào)參就一起調(diào)了。

再將 SGD 的理論擴充到 momentum,所有 Pytorch 支持的優(yōu)化器全都分析完畢。

五、從直覺到嚴(yán)謹(jǐn)

一個創(chuàng)新點是有了,但是 Abadi's clipping 嚴(yán)格來說只是近似 normalization,不能劃等號,也就沒法確鑿地分析收斂性。

根據(jù)多啦 A 夢鐵人兵團原理,我直接命名 normalization 為新的 per-sample gradient clipping function,替代了整個領(lǐng)域用了 6 年的 Abadi clipping,這是我的第二個創(chuàng)新點。

經(jīng)過剛才的證明,新的 clipping 嚴(yán)格不需要 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。而在先前的工作中,我就已經(jīng)知道怎么在各個流行的庫中改 clipping 了,我將修改方法放在文章最后一個 appendix。

經(jīng)過我的測試,我發(fā)現(xiàn)斯坦福的文章中 GPT2 在整個訓(xùn)練過程中,所有 itertation 和所有 per-sample gradient 都是 clip 過的。也就是說,至少在這一個實驗上,Abadi's clipping 完全等價于 automatic clipping。雖然后來的實驗的確有輸于 SOTA 的情況, 但這已經(jīng)說明了我的新方法有足夠的價值:一個不需要調(diào)整 clipping threshold 的 clipping function,而且有時 accuracy 也不會犧牲。

六、 回歸抽象思考

斯坦福的文章有兩大類語言模型的實驗,一類是 GPT2 為模型的生成型任務(wù),另一類是 RoBERTa 為模型的分類型任務(wù)。雖然在生成任務(wù)上 automatic clipping 和 Abadi's clipping 等價,但是分類型任務(wù)卻總是差幾個點的準(zhǔn)確率。

出于我自己的學(xué)術(shù)習(xí)慣,這個時候我不會去換數(shù)據(jù)集然后專門挑我們占優(yōu)的實驗發(fā)表,更不會增加 trick(比如做數(shù)據(jù)增強和魔改模型之類的)。我希望在完全公平的比較中, 只比較 per-sample gradient clipping 的前提下,盡可能做出最好的不含水分的效果。

事實上,在和合作者討論中我們發(fā)現(xiàn):純粹的 normalization 和 Abadi's clipping 比 梯度大小的信息是完全拋棄的,也就是說對于 automatic clipping,無論原始的梯度多大,clip 后都是 R 這么大,而 Abadi 對于比 R 小的梯度是保留了大小的信息的。

基于這個想法,我們做了一個微小但極其巧妙的改動,稱之為 AUTO-S clipping (S 代表 stable)

圖片

將 R 和學(xué)習(xí)率融合后變成

圖片

簡單一畫可以發(fā)現(xiàn)這個小小的  (一般設(shè)為 0.01,其實設(shè)成別的正數(shù)都行,很穩(wěn)健)就能保留梯度大小的信息:

圖片

基于這個算法,還是只改動一行,把斯坦福的代碼重跑一遍,六個 NLP 數(shù)據(jù)集的 SOTA 就到手了。

圖片

在 E2E 生成任務(wù)上,AUTO-S 超越了所有其他 clipping function,在 SST2/MNLI/QNLI/QQP 分類任務(wù)上也是。

七、要做通用算法

斯坦福文章的一個局限性是只專注于 NLP,又很巧合的是:緊接著 Google 刷了 ImageNet 的 DP SOTA 兩個月后,Google 子公司 DeepMind 放出了一篇 DP 在 CV 中大放異彩的文章,直接將 ImageNet 準(zhǔn)確率從 48% 提升到 84%!

圖片

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

在這篇文章中,我第一時間去看優(yōu)化器和 clipping threshold 的選擇,直到我在附錄翻到這張圖:

圖片

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

依然是 small clipping threshold 效果最好!有了三篇高質(zhì)量的文章支撐 automatic clipping,已經(jīng)有了很強的動機了,我越發(fā)肯定自己的工作會是非常杰出的。

巧合的是 DeepMind 這篇文章也是純實驗沒有理論,這也導(dǎo)致他們差點就領(lǐng)悟出了他們可以從理論上不需要 R,事實上他們真的非常接近我的想法了,他們甚至已經(jīng)發(fā)現(xiàn)了 R 是可以提取出來和學(xué)習(xí)率融合的(感興趣的同學(xué)可以看看他們的公式(2)和(3))。但是 Abadi's clipping 的慣性太大了... 即使他們總結(jié)出了規(guī)律卻沒有更進一步。

圖片

DeepMind 也發(fā)現(xiàn)了 small clipping threshold 效果最好,但是沒有理解為什么。

受這篇新工作的啟發(fā),我開始著手做 CV 的實驗,讓我的算法能被所有 DP 研究者使用,而不是 NLP 搞一套方法,CV 搞另一套。

好的算法就是應(yīng)該通用好用,事實也證明 automatic clipping 在 CV 數(shù)據(jù)集上同樣能取得 SOTA。

圖片

八、理論為骨 實驗為翼

縱觀以上所有的論文,都是 SOTA 提升顯著、工程效果拔滿,但是理論完全空白。

當(dāng)我做完所有實驗的時候,這份工作的貢獻已經(jīng)超過了一篇頂會的要求:我將經(jīng)驗上 small clipping threshold 所產(chǎn)生的 DP-SGD 和 DP-Adam 的參數(shù)影響大大簡化;提出了新的 clipping function 而不犧牲運算效率、隱私性,還不用調(diào)參;小小的 γ 修復(fù)了 Abadi's clipping 和 normalization 對梯度大小信息的破壞;充足的 NLP 和 CV 實驗都取得了 SOTA 的準(zhǔn)確率。

我還沒有滿意。一個沒有理論支撐的優(yōu)化器,還是無法為深度學(xué)習(xí)做出實質(zhì)貢獻。每年頂會提出的新優(yōu)化器有幾十個,第二年全都掃進故紙堆。Pytorch 官方支持的、業(yè)界真正在用的,還是那么幾個。

為此我和合作者們額外花了兩個月做了 automatic DP-SGD 收斂性分析,過程艱難但最后的證明簡化到極致。結(jié)論也很簡單:將 batch size、learning rate、model size、sample size 等變量對收斂的影響都定量地表達出來,并且符合所有已知的 DP 訓(xùn)練行為。

特別的,我們證明了 DP-SGD 雖然收斂的比標(biāo)準(zhǔn)的 SGD 慢,但是 iteration 趨于無窮的話,收斂的速度都是一個數(shù)量級的。這為隱私計算提供了信心:DP 模型收斂,雖遲但到。

九、撞車了...

終于,寫了 7 個月的文章完稿了,沒想到巧合還沒停。5 月份 NeurIPS 投稿,6 月 14 日內(nèi)部修改完放 arXiv,結(jié)果 6 月 27 日看到微軟亞州研究院(MSRA)發(fā)表了一篇和我們撞車的文章,提出的 clipping 和我們的 automatic clipping 一模一樣:

圖片

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

仔細(xì)看了看,連收斂性的證明都差不多。而我們兩組人又沒有交集,可以說隔著太平洋的巧合誕生了。

這里稍微講一下兩篇文章的不同:對方文章更偏理論,比如額外分析了 Abadi DP-SGD 的收斂(我只證了 automatic clipping,也就是他們文中的 DP-NSGD,可能我也不知道咋整 DP-SGD);用的假設(shè)也有一些不同;而我們實驗做的多一些大一些(十幾個數(shù)據(jù)集),更顯式地建立了 Abadi's clipping 和 normalization 的等價關(guān)系,比如 Theorem 1 和 2 解釋為什么 R 可以不用調(diào)參。

既然是同時期的工作,我很開心能有人不謀而合,互相能補充共同推動這個算法,讓整個社群盡快相信這個結(jié)果并從中受益。當(dāng)然,私心來說,也提醒自己下一篇要加速了!

十、總結(jié)

回顧這篇文章的創(chuàng)作歷程,從起點來看,基本功一定是前提,而另一個重要的前提是自己心中一直念念不忘調(diào)參這個痛點問題。正是久旱,所以讀到合適的文章才能逢甘露。至于過程,核心在于將觀察數(shù)學(xué)化理論化的習(xí)慣,在這個工作中代碼實現(xiàn)能力反倒不是最重要的。我會再寫一篇專欄著重講講另一個硬核代碼工作;最后的收斂性分析,也是靠合作者和自己的不將就。所幸好飯不怕晚,繼續(xù)前進!

作者簡介

卜至祺,劍橋大學(xué)本科畢業(yè),賓夕法尼亞大學(xué)博士,現(xiàn)任亞馬遜 AWS AI 高級研究科學(xué)家,其研究方向為差分隱私與深度學(xué)習(xí),側(cè)重優(yōu)化算法和大規(guī)模計算。

責(zé)任編輯:張燕妮 來源: 機器之心
相關(guān)推薦

2022-11-07 17:26:16

機器學(xué)習(xí)AI

2013-01-08 11:02:26

IBMdW

2013-05-23 10:10:53

PHP5.5PHP編譯php

2020-11-17 08:09:01

webpack配置項腳手架

2023-05-24 16:20:39

DevOpsCI/CD 管道軟件開發(fā)

2022-07-22 07:18:53

代碼DeepMind

2024-03-20 12:44:35

AI訓(xùn)練

2021-08-16 15:18:20

機器學(xué)習(xí)人工智能計算機

2009-05-08 09:40:07

網(wǎng)易魔獸暴雪

2021-07-06 14:21:05

物聯(lián)網(wǎng)智慧城市網(wǎng)絡(luò)安全

2022-11-23 16:20:12

GPU編程流和事件開發(fā)

2022-06-01 23:21:34

Python回歸樹數(shù)據(jù)

2021-06-04 22:43:32

Python本地搜索

2021-02-20 21:29:40

GitHub代碼開發(fā)者

2023-02-06 16:01:26

數(shù)據(jù)中心服務(wù)器

2017-02-23 08:45:36

Python決策樹數(shù)據(jù)集

2020-06-11 08:32:50

Python遺傳算法代碼

2023-08-11 17:30:54

決策樹機器學(xué)習(xí)算法

2020-08-14 10:01:25

編程神經(jīng)網(wǎng)絡(luò)C語言

2022-11-14 10:49:33

Linux發(fā)行版
點贊
收藏

51CTO技術(shù)棧公眾號