偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

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

圖片

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

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

一、 文獻(xiàn)閱讀

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

圖片

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

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

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

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

圖片

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

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

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

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

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

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

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

圖片

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

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

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

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

二、切入點(diǎn)

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

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

圖片

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

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

圖片

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

圖片

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

圖片

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

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

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

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

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

三、簡(jiǎn)單擴(kuò)展

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

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

圖片

Adam 有兩種加 weight decay 的方式。

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

四、另有乾坤

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

圖片

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

當(dāng)時(shí)我看到這篇文章的時(shí)候很興奮,因?yàn)橛质且粋€(gè)證明 small clipping threshold 效果好的論文。

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

簡(jiǎn)單地代換一下,發(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)象,沒有上升到理論的高度。這里也有一個(gè)巧合,那就是上圖他們同時(shí)畫了兩種尺度的 ablation study,只有左邊的尺度能看出對(duì)角線,光看右邊是沒有結(jié)論的......

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

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

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

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

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

經(jīng)過剛才的證明,新的 clipping 嚴(yán)格不需要 R,所以稱之為 automatic clipping (AUTO-V; V for vanilla)。

既然形式上與 Abadi's clipping 有不同,那么 accuracy 就會(huì)有差異,而我的 clipping 可能有劣勢(shì)。

所以我需要寫代碼測(cè)試我的新方法,而這只需要改動(dòng)一行代碼 (畢竟只是把圖片)。

事實(shí)上 DP per-sample gradient clipping 這個(gè)方向主要就三種 clipping functions, 除了 Abadi's clipping 以外的兩種都是我提出的,一個(gè)是 global clipping,還有一個(gè)就是這篇 automatic clipping。而在先前的工作中,我就已經(jīng)知道怎么在各個(gè)流行的庫(kù)中改 clipping 了,我將修改方法放在文章最后一個(gè) appendix。

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

六、 回歸抽象思考

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

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

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

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

圖片

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

圖片

簡(jiǎn)單一畫可以發(fā)現(xiàn)這個(gè)小小的  (一般設(shè)為 0.01,其實(shí)設(shè)成別的正數(shù)都行,很穩(wěn)?。┚湍鼙A籼荻却笮〉男畔ⅲ?br>

圖片

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

圖片

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

七、要做通用算法

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

圖片

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

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

圖片

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

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

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

圖片

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

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

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

圖片

八、理論為骨 實(shí)驗(yàn)為翼

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

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

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

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

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

九、撞車了...

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

圖片

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

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

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

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

十、總結(jié)

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

作者簡(jiǎn)介

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

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

2022-11-07 17:26:16

機(jī)器學(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配置項(xiàng)腳手架

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

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

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ā)者

2017-02-23 08:45:36

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

2020-06-11 08:32:50

Python遺傳算法代碼

2023-02-06 16:01:26

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

2023-08-11 17:30:54

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

2020-08-14 10:01:25

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

2022-11-14 10:49:33

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

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