0
本文作者: 亞萌 | 2017-02-17 19:43 |
雷鋒網(wǎng)按:近日,OpenAI發(fā)表最新研究,論述了AI安全領(lǐng)域的一大隱憂:“對(duì)抗樣本”,它可以輕易地讓機(jī)器學(xué)習(xí)系統(tǒng)產(chǎn)生誤判,這會(huì)對(duì)AI的應(yīng)用實(shí)踐產(chǎn)生影響。在這篇由“GANs”之父Ian Goodfellow領(lǐng)銜撰寫的文章里,OpenAI針對(duì)“對(duì)抗樣本”進(jìn)行了防御策略的實(shí)驗(yàn),其中有兩種方法效果顯著,但也并不能解決根本問(wèn)題。OpenAI表示設(shè)計(jì)出抵抗強(qiáng)大、具有適應(yīng)性攻擊者的防御策略,是非常重要的研究領(lǐng)域。本文原載于OpenAI Blog,由雷鋒網(wǎng)編譯整理。
“對(duì)抗樣本”是攻擊者故意設(shè)計(jì)的,被用來(lái)輸入到機(jī)器學(xué)習(xí)模型里,引發(fā)模型出錯(cuò)的值,它就像是讓機(jī)器在視覺上產(chǎn)生幻覺一樣。在這篇文章里,我們將會(huì)展現(xiàn)“對(duì)抗樣本”是如何通過(guò)不同的媒介工作的,并且將會(huì)討論為什么針對(duì)“對(duì)抗樣本”的安全防御很困難。
在OpenAI,我們認(rèn)為“對(duì)抗樣本”是安全方面非常好的一個(gè)議題,因?yàn)樗砹薃I安全領(lǐng)域里的一種具體的問(wèn)題,我們可以在較短期里去關(guān)注和解決,而且這個(gè)問(wèn)題的難度也是足夠的,需要進(jìn)行一些重要的研究工作(盡管我們需要探索機(jī)器學(xué)習(xí)安全的很多方面,以達(dá)到我們建造安全、廣泛應(yīng)用AI的目標(biāo))。
這篇論文里“Explaining and Harnessing Adversarial Examples”有一個(gè)例子:這是一只熊貓的圖片,攻擊者加入了一個(gè)小干擾到計(jì)算里,導(dǎo)致系統(tǒng)將其誤認(rèn)為是長(zhǎng)臂猿的照片。
一個(gè)對(duì)抗輸入值,覆蓋了一個(gè)典型的圖片,分類器將一只“熊貓”誤分類為一只“長(zhǎng)臂猿”
這個(gè)方法是十分有效的,最近的一項(xiàng)研究(論文“Adversarial examples in the physical world”)顯示,把“對(duì)抗樣本”用標(biāo)準(zhǔn)的紙張打印出來(lái),然后用普通的手機(jī)對(duì)其拍照制成的圖片,仍然能夠影響到系統(tǒng)。
“對(duì)抗樣本”可以在普通紙張上打印出來(lái),再讓帶有標(biāo)準(zhǔn)分辨率的智能手機(jī)拍攝,仍然可以引發(fā)分類器產(chǎn)生錯(cuò)誤。在上圖例子里,系統(tǒng)錯(cuò)把“洗衣機(jī)”標(biāo)簽為“保險(xiǎn)箱”。
“對(duì)抗樣本”很有可能變得危險(xiǎn)。比如,攻擊者可以用貼紙或一幅畫制成一個(gè)“停止”指示牌的“對(duì)抗樣本”,以此來(lái)攻擊汽車,讓汽車將原本的“停止”指示牌誤理解“讓行”或其它指示牌,就像論文“Practical Black-Box Attacks against Deep Learning Systems using Adversarial Examples”討論的那樣。
增強(qiáng)學(xué)習(xí)智能體也可以被“對(duì)抗樣本”所操縱,根據(jù) UC伯克利大學(xué)、OpenAI和賓夕法尼亞大學(xué)的一項(xiàng)最新研究(論文“Adversarial Attacks on Neural Network Policies"),以及內(nèi)華達(dá)大學(xué)(論文“Vulnerability of Deep Reinforcement Learning to Policy Induction Attacks”)的一項(xiàng)研究顯示,廣泛使用的增強(qiáng)學(xué)習(xí)算法,比如DQN、TRPO和A3C,在“對(duì)抗樣本”面前都十分脆弱。即便是人類難以觀察出來(lái)的微妙的干擾因素,也能導(dǎo)致系統(tǒng)性能減弱。比如引發(fā)一個(gè)智能體讓乒乓球拍在本該下降時(shí)反而上升,或者干擾鎖定敵人的能力。
如果你想要做一個(gè)擊潰自己模型的實(shí)驗(yàn),可以使用cleverhans,這是一個(gè)由Ian Goodfellow和Nicolas Papernot聯(lián)合開發(fā)的開源庫(kù),可以用它來(lái)測(cè)試你的模型在面對(duì)“對(duì)抗樣本”時(shí)的脆弱性。
當(dāng)我們思考AI安全問(wèn)題時(shí),往往總是去思考最困難的問(wèn)題:如何確保成熟的增強(qiáng)學(xué)習(xí)智能體能夠按照設(shè)計(jì)者的意圖行事,比人類還要更加智能?
“對(duì)抗樣本”展示出,就算是簡(jiǎn)單的現(xiàn)代算法,不論是監(jiān)督學(xué)習(xí)還是增強(qiáng)學(xué)習(xí),就已經(jīng)可以不以設(shè)計(jì)者的意愿行事了,且是以令人驚訝的方式。
讓機(jī)器學(xué)習(xí)模型更穩(wěn)定的傳統(tǒng)技術(shù),比如與權(quán)重衰減(weight decay)和dropout,通常不會(huì)對(duì)“對(duì)抗樣本”造成實(shí)際的防御。到目前,只有兩種方法有明顯防御效果。
對(duì)抗訓(xùn)練(Adversarial training)
這是一個(gè)暴力解決方法,我們自己生成許多“對(duì)抗樣本”,讓后用這些樣本來(lái)訓(xùn)練我們的模型,讓它不被其中任何一個(gè)蒙騙。cleverhans庫(kù)已經(jīng)有開源的對(duì)抗訓(xùn)練機(jī)制,這里面(https://github.com/openai/cleverhans/blob/master/tutorials/mnist_tutorial_tf.md)有使用方法詳解。
防御凈化(Defensive distillation)
這個(gè)策略,是讓訓(xùn)練模型輸出分類概率,而不是直接輸出最終的某個(gè)類別。概率由早期的一個(gè)模型提供,在同樣的任務(wù)上進(jìn)行訓(xùn)練,使用hard類別標(biāo)簽。這種方法會(huì)創(chuàng)建方向平滑的模型,攻擊者由此難以找到“對(duì)抗樣本”產(chǎn)生的關(guān)鍵點(diǎn)。(“凈化”最初源于Distilling the Knowledge in a Neural Network這篇論文,為了節(jié)省計(jì)算量,“凈化”作為一種模型壓縮的方法,把小模型進(jìn)行訓(xùn)練來(lái)模仿大模型)。
然而,如果攻擊者獲得更多的計(jì)算力,那么即使是這些特定算法,也會(huì)很容易就被攻克。
“梯度隱藏”這種失敗的抵御方法,可以讓我們好好思考一下,簡(jiǎn)單的抵御方法是如何失敗的。
“梯度隱藏”這個(gè)術(shù)語(yǔ)最初出現(xiàn)在“Practical Black-Box Attacks against Deep Learning Systems using Adversarial Examples”這篇論文里,用來(lái)描述一大類失敗的防御方法,這類方法會(huì)拒絕攻擊者進(jìn)入一個(gè)有用梯度。
大部分的“對(duì)抗樣本”構(gòu)建技術(shù)都是利用模型梯度來(lái)進(jìn)行攻擊的。比如說(shuō),他們觀察一張飛機(jī)的圖片,反復(fù)測(cè)試圖片空間的哪一個(gè)方向上,“貓”的概率會(huì)增加,然后它們就在這個(gè)方向上“推波助瀾”一下(換句話說(shuō),他們擾亂輸入值)。那么這張經(jīng)過(guò)修改的新圖片就會(huì)被錯(cuò)誤識(shí)別為“貓”了。
但是,如果沒有梯度呢--如果照片上一個(gè)極小的修改對(duì)模型輸出不會(huì)造成任何影響呢?這看起來(lái)是可以進(jìn)行一些防御,因?yàn)檫@種情況下,攻擊者無(wú)法得知應(yīng)該在圖片哪個(gè)方向上“推波助瀾”。
我們可以很容易想到一些微小的方法來(lái)擺脫梯度。比如,大部分圖片分類模型是以兩種模式運(yùn)行的:一種是直接輸出“最可能類別”;另一種模式,就是輸出“概率”。如果模型輸出的是“99.9%飛機(jī)、0.1% 貓”,那么輸入值的微小變化,也會(huì)對(duì)輸出值的產(chǎn)生微小影響。但如果我們的模型直接采用第一種運(yùn)行模式,直接輸出“飛機(jī)”,那么輸入值的微小變化,將對(duì)最終輸出結(jié)果沒有影響,而梯度也不會(huì)告訴透露任何信息。
如果我們使用“最可能類別”模式,而不是“概率”模式,那么讓我們來(lái)思考一下,這種方法抵抗對(duì)“抗樣本”的表現(xiàn)如何。在“最可能類別”模式下,攻擊者不知道到哪里去找能被歸類為“貓”的輸入值,以此我們能夠有一些防御力。很不幸,之前每張被分類為“貓”的圖片,現(xiàn)在依然會(huì)被分類為“貓”。但是,如果攻擊者能夠猜測(cè)到防御弱點(diǎn),由此制作“對(duì)抗樣本”,那么圖片仍然會(huì)被錯(cuò)誤歸類。我們目前還沒讓模型更加穩(wěn)定,我們只是讓攻擊者弄清楚模型防御的弱點(diǎn)的線索變更少。
更不幸的是, 攻擊者可以有非常好的策略,來(lái)猜測(cè)防御弱點(diǎn)在哪。攻擊者可以自己訓(xùn)練一個(gè)模型,一個(gè)擁有梯度的光滑模型,制作“對(duì)抗樣本”,然后將這些“對(duì)抗樣本”放進(jìn)我們防御的非平滑模型里。而我們的防御模型,往往也會(huì)把這些“對(duì)抗樣本”錯(cuò)誤分類。最終,這個(gè)思考結(jié)果暴露出,把梯度藏起來(lái)解決不了問(wèn)題。
執(zhí)行梯度隱藏的防御策略,會(huì)造成一個(gè)在特定方向和訓(xùn)練點(diǎn)周圍非常平滑的模型,這使得攻擊者很難找到暗示模型弱點(diǎn)的梯度。然而,攻擊者可以訓(xùn)練一個(gè)替代模型:攻擊者會(huì)構(gòu)建一個(gè)防御模型的復(fù)制品,方法是觀察防御模型輸入值的標(biāo)簽,然后小心選擇輸入值。
進(jìn)行這樣的一個(gè)模型抽取攻擊(model extraction attack)的流程,最早是在黑箱攻擊論文里介紹的。攻擊者可以使用替代模型的梯度,來(lái)找到“對(duì)抗樣本”,以此來(lái)讓防御模型發(fā)生誤判。上圖來(lái)自于“Towards the Science of Security and Privacy in Machine Learning”這篇論文對(duì)梯度隱藏的發(fā)現(xiàn),這個(gè)例子里我們將這種攻擊策略看做是一維的機(jī)器學(xué)習(xí)問(wèn)題。梯度隱藏現(xiàn)象在面臨更高維度的問(wèn)題時(shí),會(huì)變得更加嚴(yán)重,但是更難以描述出來(lái)。
我們發(fā)現(xiàn),對(duì)抗訓(xùn)練和防御凈化都會(huì)偶然產(chǎn)生梯度隱藏。這兩種算法都顯然不是為執(zhí)行梯度隱藏而特意設(shè)計(jì)的,但是當(dāng)機(jī)器學(xué)習(xí)算法訓(xùn)練保護(hù)自己而沒有被給予特定方法指導(dǎo)時(shí),梯度隱藏很顯然是算法自身相對(duì)比較容易產(chǎn)生的一種防御方法。如果將“對(duì)抗樣本”從一個(gè)模型轉(zhuǎn)移至第二個(gè)模型,就算第二個(gè)模型用對(duì)抗訓(xùn)練或防御凈化訓(xùn)練過(guò),攻擊往往會(huì)勝利,雖然“對(duì)抗樣本”直接攻擊第二個(gè)模型會(huì)失敗。這說(shuō)明,對(duì)抗訓(xùn)練和防御凈化這兩種技術(shù)能使模型更加平坦,移走梯度,而不能保證讓分類更加正確。
“對(duì)抗樣本”很難抵御,因?yàn)楹茈y為“對(duì)抗樣本”的制作過(guò)程構(gòu)建一個(gè)理論模型。“對(duì)抗樣本”是很多機(jī)器學(xué)習(xí)模型非線性和非凸最優(yōu)化問(wèn)題的解決方法,包括神經(jīng)網(wǎng)絡(luò)。因?yàn)槲覀儧]有好的理論工具,來(lái)描述這些復(fù)雜優(yōu)化問(wèn)題的方法,很難有理論論據(jù)表明某一種防御方法能阻止一系列“對(duì)抗樣本”。
“對(duì)抗樣本”很難抵御,也是因?yàn)樗鼈円髾C(jī)器學(xué)習(xí)模型為每一個(gè)可能的輸入值產(chǎn)生好的輸出結(jié)果。大多數(shù)情況下,對(duì)于遇到的所有可能的輸入值,機(jī)器學(xué)習(xí)模型只能夠?qū)ζ渲猩倭窟\(yùn)行地比較好。
到目前為止,我們測(cè)試的每一種防御策略都失敗了,因?yàn)椴呗圆痪哂羞m應(yīng)性:一種策略或許能抵御一種攻擊,但是會(huì)對(duì)熟知它的攻擊者暴露出弱點(diǎn)。設(shè)計(jì)出抵抗強(qiáng)大、具有適應(yīng)性攻擊者的防御策略,是非常重要的研究領(lǐng)域。
“對(duì)抗樣本”顯示出,很多現(xiàn)代機(jī)器學(xué)習(xí)算法都能被擊潰,且是以令人驚訝的方式。這些機(jī)器學(xué)習(xí)的失敗證明,即使是簡(jiǎn)單的算法,也會(huì)違背其設(shè)計(jì)者的意圖。我們鼓勵(lì)機(jī)器學(xué)習(xí)研究者投身其中,找出阻止“對(duì)抗樣本”的方法,以此減小設(shè)計(jì)者意圖和算法運(yùn)行之間的鴻溝。如果你對(duì)于“對(duì)抗樣本”方面的工作感興趣,可以考慮加入我們OpenAI。
更多雷鋒網(wǎng)相關(guān)文章:
深度卷積網(wǎng)絡(luò)的BUG一例:騰訊AI“絕藝”最近被人類棋手找到了一個(gè)有趣的缺陷
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。