从Bayesian Deep Learning到Adversarial Robustness新范式
?作者 | 王灝、毛成志
單位 | Rutgers University /?Columbia University
研究方向 | 貝葉斯深度學習?/?對抗魯棒性
拖延癥趕在 2021 結束前來介紹一下我們 ICCV 2021 上基于 Bayesian Deep Learning [4,5](或者更具體是 Deep Bayesian Network)做 Adversarial Robustness 的 work [1]。
論文標題:
Adversarial Attacks are Reversible with Natural Supervision
論文鏈接:
http://wanghao.in/paper/ICCV21_ReverseAttack.pdf
代碼鏈接:
https://github.com/cvlab-columbia/SelfSupDefense
視頻鏈接:
https://www.youtube.com/watch?v=0Yv3eQ9JR4Y
Adversarial Robustness 新思路:可以說,這個 work 提出了一個 adversarial defense 的新范式,叫做 Reverse Attack。舉個簡單的例子,如下圖,給定一個原始圖片(下面左邊的圖),attacker 會通過比如 PGD 的方法,找到一個 attack vector(下面中間的圖),疊加在原始圖片上,而我們 reverse attack 的思路是,在 inference time(或者叫 test time)臨時找到一個 reverse attack vector(下面右邊的圖),再次疊加在已經被 attack 過的圖片上,從而來抵消掉部分 attack vector。
把 Reverse Attack 作為 Bayesian Inference 來解:那么問題來了,defense 方拿到的圖片已經是被 attack 過的(已經疊加了 attack vector),那我們如何能機智地找到一個有效的 reverse attack vector 呢?這就要回到文章的開頭,Bayesian Deep Learning 和 Deep Bayesian Network 了。簡單地講,我們把尋找 reverse attack vector 作為一個 Bayesian inference 的問題來解。假設被 attack 過的圖片(原始圖片+ attack vector)叫 , 而我們想尋找的 reverse attack 后的圖片(原始圖片+ attack vector+reverse attack vector)叫 ,那么尋找 reverse attack vector 的過程其實可以 formulate 成:
求一個 ,使得后驗概率 最大。
這里的 表示的是圖片的結構一致性信息(具體的講,就是同一圖片的不同部分的顏色、紋理、內容應該一致),而這個信息是已知的,因為不管圖片有沒有被 attack 過,我們都知道,我們需要還原的圖片,它肯定是滿足結構的一致性的。關于 的問題我們下文會再仔細討論。
最大后驗估計和 Deep Bayesian Network:那么現在的主要問題是,如何有效,而且 robust 地得到 的最大后驗呢?答案就是可以基于我們之前在 AAAI 2019 提的一個 Deep Bayesian Network(深度貝葉斯網絡)[2],叫做 Bidirectional Inference Network(BIN)。
論文標題:
Bidirectional Inference Networks: A Class of Deep Bayesian Networks for Health Profiling
論文鏈接:
http://wanghao.in/paper/AAAI19_BIN.pdf
代碼鏈接:
https://github.com/js05212/bidirectional-inference-network
下面我們先簡單介紹一下 BIN,然后再回過頭來介紹如何把 BIN 的思想用到 Reverse Attack 上。
BIN屬于Deep Bayesian Network,那么什么是Bayesian Network(貝葉斯網絡)呢?
貝葉斯網絡:比如下圖就是一個貝葉斯網絡。
圖里面 4 個節點分別表示四個隨機變量 ,,。而圖里的邊則表示的是 conditional dependency。 到 的邊表示 ,而 和 同時指向 的邊表示 。灰色的節點表示已知的值(observed variable),而白色的節點表示我們需要推斷的值(latent variable)。正如神經網絡,貝葉斯網絡也分成學習(learning)和推斷(inference)兩個階段。
貝葉斯網絡的學習:一般貝葉斯網絡的學習指的就是通過數據,學習到各個條件概率分布。比如上面的圖,如果我們有很多 和 對應的數據,我們就可以學到 這個條件概率分布。同理如果我們有很多 、 和 的數據,我們也可以學到 。
貝葉斯網絡的推斷:在模型學習后,我們會根據已經學到的各個條件概率分布,來做概率推斷,比如,雖然我們在學習階段只學到了 和 兩個個條件概率分布,但是根據 Bayes Rule 我們可以做更多的推斷任務,比如給定 和 ,我們可以推斷出 最可能的值是多少;正式地講,我們可以找到一個 的值,從而使得 最大。而找這個值的過程就是最大后驗推斷。(貝葉斯網絡的推斷是一個非常廣泛的問題,有興趣的同學可以參考相關的教科書,我們這里只是簡要介紹一些這個文章需要用到的部分。)
從貝葉斯網絡到深度貝葉斯網絡:那么現在的問題是,如果 和 這兩個條件概率分布非常復雜,每個都需要用多層的神經網絡來表示,那該怎么辦?我們該如何學習(learning),如何推斷(inference)呢?
深度貝葉斯網絡的學習:學習的部分其實很簡單,假設我們有很多 ,, 的數據,我們只需要分別訓練 2 個概率神經網絡(Probabilistic Neural Network),一個負責 ,一個負責 。這里的概率神經網絡和一般的神經網絡不同的是:概率神經網絡會輸出整個分布的參數,而一般的神經網絡只會輸出一個預測的定值。最簡單的概率神經網絡的做法是,我們假設網絡輸出的是高斯分布,那么我們就可以用高斯分布 log likelihood 作為目標函數,來訓練(學習) 和 這兩個概率神經網絡。整體地看,我們可以用下面這個目標函數來訓練:
這個目標函數的前 2 項對應的是 這個概率神經網絡,這個網絡的輸入是 ,而這里的 和 則分別是這個概率神經網絡輸出的 mean 和 variance。所以,前 2 項其實是在用一個被 控制的高斯分布,來擬合 。注意這里 表示第一個神經網絡的參數。
同理,目標函數的后 2 項對應的是 這個概率神經網絡。有了這個目標函數以及很多 ,,的數據,我們就可以訓練出來 和 這兩個概率神經網絡。(眼尖的同學可能會發現,前 2 項和后 2 項是沒有關系的,所以這 2 個網絡還可以分開、并行地訓練,從而提高速度。)
深度貝葉斯網絡的推斷:深度貝葉斯網絡的推斷部分是 BIN 的精髓,也是 Reverse Attack 的靈感來源之一。我們依然沿用前面 ,, 的例子,在我們學習了 和 這兩個概率神經網絡之后,一個重要的推斷問題是,如果給定一組 和 ,我們能否推斷出最可能發生的 。換句話說,我們能否找到一個 ,使得 的后驗概率 最大呢?
熟悉概率論的人可能已經發現上面的目標函數,其實等于:
而后驗概率 的 log:
由于我們 和 是給定的,所以上面的第二項 其實是一個常數,那么我們就可以推出來:
然后我們會驚喜地發現(這其實是最大后驗的常規操作),其實給定 和 推斷 的時候,我們可以用同一個目標函數:
區別在于,在學習(learning)階段,我們是已知 ,,,然后通過 BP 去更新網絡的參數 和 。而在推斷(inference)階段,我們是已知 ,,和網絡的參數 與 ,然后通過 BP 去更新 。
眼尖的同學可能會發現另一個區別,那就是在學習階段,前 2 項和后 2 項是獨立的、沒有關系的,但是在推斷階段,我們的推斷目標 同時出現在前 2 項和后 2 項里。也就是說,雖然 2 個概率神經網絡可以分開訓練,但是推斷的時候是需要一起協作的。
深度貝葉斯網絡推斷的 intuition:其實如果只看后面 2 項,可以發現,我們做的其實就是 BP 到神經網絡的輸入 ,從而不斷更新 ,而前面 2 項的作用,其實相當于給這個更新提供了一個 L2 的 regularization。而這個 L2 regularization 的系數,則由 動態決定的。
算法實現:從算法上講,這個推斷過程可以分成 2 步(如下圖):(1)計算上面目標函數的前 2 項里的 和 ,這個部分只需要通過 feedforward 計算一次,(2)把 初始化為 ,然后通過 BP?多次計算目標函數關于 的 gradient,并且更新 。
因為我們這個方法既可以前向推斷(feedforward)也可以后向推斷(BP),我們把它叫做 Bidirectional Inference Network(BIN)。
從 BIN 到 Reverse Attack:那么回到文章最初提的 Reverse Attack,假設被 attack 過的圖片(原始圖片+ attack vector)叫 ,而我們想尋找的 reverse? attack 后的圖片(原始圖片+ attack vector+reverse attack vector)叫 。這里的關鍵是結構一致性信息 。我們知道,原始的圖片,是滿足結構一致性的(),而被 attack 后的圖片,結構一致性會被破壞( 或者甚至 ),然后我們希望 reverse attack 后的圖片,可以(部分)恢復這種結構一致性(使得 盡可能靠近 1)。
那么我們應該怎么做呢?這時我們就可以把它 formulate 成一個最大后驗估計的問題:尋找一個 使得后驗概率 最大。套用前面 BIN 的例子,這里的 對應之前的 , 對應之前 ,而 對應之前的 。于是我們就有了下面這個熟悉的圖。需要注意的是,在 reverse attack 里問題甚至比之前的例子更簡單,因為 和 之間沒有鏈接。
Reverse Attack 與 BIN的推斷:給定一個 reverse attack 后的圖片 ,以及已知我們 reverse attack 后的結構一致性 ,根據 BIN 的推斷(inference)算法,我們只需要通過 BP,來求 關于 的 gradient,然后不斷更新 到收斂,就可以找到最優的 了。
如何學習概率神經網絡 和 :細心的讀者會問,BIN 的 inference 是假設已經學好了概率神經網絡 和 ,那么如何學習這兩個概率神經網絡呢?
其實很簡單, 甚至不需要學習,我們直接假設 服從一個以 為均值的高斯分布 就行。
至于 ,我們可以直接訓練一個 contrastive learning(CL)的神經網絡。給定任意 2 個圖片的 crop 作為輸入,CL 的網絡可以判斷他們是否來自于同一張圖。這其實就是在判斷結構一致性。被 attack 過的圖片,結構一致性受損(),所以即使給定這同一個圖片的 2 個 crop,CL 的網絡也可以判斷出來他們不是來自于同一張圖()?;谶@個 intuition,我們只需要直接用 clean image,訓練一個 CL 的網絡,就可以當成 來用了。
理論:更有趣的是,在我們 reverse attack for defense 的 paper 中,我們還證明了,通過以上貝葉斯推斷得到的模型準確率的上界可以提升。也就是說,從某種程度上講,用了這種基于貝葉斯的 reversal method,對于訓練恰當的模型會保證更好。
實驗結果:因為我們的方法只是在原有輸入的基礎上額外考慮了 這一項,因此我們的算法與目前所有做 adversarial robustness 的方法兼容,可以直接加到他們上面。我們在 4 個主流的數據集上,對7種主流的 adversarial robust 的算法進行了測試。
實驗結果之 CIFAR-10:我們測試了 6 種主流 adversarial robust 算法,并且在他們上面加入我們 reversal defense 的方法。在包括 AutoAttack 在內的 5 種 adversarial attack 下,我們的算法都直接提升了原有算法的 robust accracy。
有意思的是,對于越強的 adversarial attack 算法,我們的算法提升的越多(對于比較弱的 PGD50,我們提升 2% 左右,但是對于更強的 autoattack,我們能夠提升 7 個點之多)。這是因為更強的 attack 算法其實破壞了更多的結構一致性信息,我們的算法從而能夠恢復更多原有信息來提升準確率。
實驗結果之 CIFAR-100,SVHN 和 ImageNet:我們的算法同樣可以擴展到更大規模的數據集。在另外 3 個數據集上,我們的算法同樣有高達 11% 的提升。下面是每個數據集的結果:
另一個使用貝葉斯最大后驗來增強魯棒性的優點,就是我們的方法對于沒見過的,特別強的 adversarial attack 更加有效。在以下圖中,所有的模型都在最小的擾動上進行訓練(使用 8/255 的擾動范圍,ImageNet 除外,是 4/255)。隨著在推斷時擾動的增加,我們的模型在這些從未訓練過的擾動上準確率提升越來越明顯。
寫在最后之用 BIN 處理任意貝葉斯網絡結構:有一點需要注意的是,雖然我們上面給的是一個非常簡單的深度貝葉斯網絡結構,只涉及 3 個變量。實際上 BIN 可以處理任意節點數的貝葉斯網絡,比如下圖這些結構。因為可以處理任意結構, BIN 最初是用來做 health profiling 的。有興趣同學可以移步看看 health profiling 通俗易懂的應用介紹:
https://news.mit.edu/2019/machine-learning-incomplete-patient-data-0125
寫在最后之用 natural-parameter network(NPN)來作為 BIN 的概率神經網絡 backbone:另一點需要注意的是,上文提到的概率神經網絡(probabilistic neural network)的具體實現(比如 的具體實現),除了簡單的用一個 MLP 最后輸出 2 個 branch(mean 和 variance)之外,也可以用比如 natural-parameter network(NPN)[3] 的貝葉斯神經網絡,從而達到更好的效果。
這一篇的數學公式稍微有點多,由于篇幅限制,也省去了一些技術細節,如果有啥編輯或者邏輯不順,大家輕拍:)大家有興趣的話也歡迎找?@ChengZhi(Reverse Attack的一作)?@何昊或者我討論。
參考文獻
[1] Adversarial attacks are reversible with natural supervision. Chengzhi Mao, Mia Chiquier, Hao Wang, Junfeng Yang, Carl Vondrick. ICCV, 2021.
[2] Bidirectional inference networks: A class of deep Bayesian networks for health profiling. Hao Wang, Chengzhi Mao, Hao He, Mingmin Zhao, Tommi S. Jaakkola, Dina Katabi. AAAI , 2019.
[3] Natural parameter networks: a class of probabilistic neural networks. Hao Wang, Xingjian Shi, Dit-Yan Yeung. NIPS, 2016.
[4] A survey on Bayesian deep learning. Hao Wang, Dit-Yan Yeung. ACM Computing Surveys, 2020.
[5] Towards Bayesian deep learning: a framework and some existing methods. Hao Wang, Dit-Yan Yeung. TKDE, 2016.
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的从Bayesian Deep Learning到Adversarial Robustness新范式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联想怎么在bios里设置u盘启动项 &a
- 下一篇: 斯巴达克主板怎么设置光盘启动 斯巴达克主