專(zhuān)門(mén)對(duì)付人工智能的AI黑客目測(cè)就要出現(xiàn)了
最近我發(fā)現(xiàn)個(gè)問(wèn)題:
無(wú)論是在電影還是現(xiàn)實(shí)中,人工智能AI 都經(jīng)常以碾壓人類(lèi)的姿態(tài)出現(xiàn)在公眾面前。
電影里, T800 機(jī)器人光著屁股登場(chǎng),第一件事就是暴揍一群人類(lèi),搶走他們的衣服、摩托和墨鏡,全程一副“你瞅啥再瞅瞅試試”的樣子。
現(xiàn)實(shí)中,人工智能也經(jīng)常以碾壓人類(lèi)的姿態(tài)出現(xiàn)在公眾面前。
1997年“深藍(lán)”戰(zhàn)勝象棋大師卡斯帕羅,2017年前后“阿法狗”擊敗圍世界級(jí)棋手李世乭、柯潔…… 每次都把人類(lèi)選手逼到不得不認(rèn)輸。
(被 AI支配的恐懼三連發(fā))
如此看來(lái),“人工智能發(fā)展史”簡(jiǎn)直就是“人類(lèi)一步步被自己發(fā)明的 AI 擊敗的歷史”,真讓人悲喜交加無(wú)以表達(dá)……
然鵝!
畫(huà)風(fēng)一轉(zhuǎn),幺哥今天給大家講個(gè)人類(lèi)調(diào)戲 AI 的趣事。
Let's Rock !
圖像識(shí)別大家都見(jiàn)識(shí)過(guò),它是 AI 應(yīng)用最熱門(mén)的領(lǐng)域之一,人臉識(shí)別、物品識(shí)別、自動(dòng)駕駛……應(yīng)用十分廣泛。
但其實(shí)早在2015年前后,就有人發(fā)表過(guò)一篇名為《深度神經(jīng)網(wǎng)絡(luò)真好騙》的論文。
他們發(fā)現(xiàn),有一種騷操作能欺騙圖像識(shí)別系統(tǒng),分分鐘讓 AI 變傻子。
怎么做的呢?
這是一張熊貓側(cè)身照,人類(lèi)看著是熊貓,圖像識(shí)別 AI 也把它認(rèn)作熊貓。
研究人員對(duì)這張圖里的的某些特定像素進(jìn)行了一點(diǎn)點(diǎn)肉眼無(wú)法辨識(shí)的擾動(dòng)。
(看不懂里頭的公式?jīng)]關(guān)系)
之后,雖然人看著還是熊貓,可 AI 卻會(huì)把它識(shí)別成長(zhǎng)臂猿,而且置信度高達(dá) 99.3%。
就這樣,人類(lèi)成功欺騙了AI。
根據(jù)這一原理,有人做了另一組更騷的實(shí)驗(yàn)。
他們對(duì)馬路上的路標(biāo)進(jìn)行了藝術(shù)加工,在特定的位置貼了些小紙片,涂抹了些污漬。
照理說(shuō),路標(biāo)每天在外面日曬雨淋,被弄臟或者貼個(gè)小廣告也不奇怪,路人通常不會(huì)在意。
可就因?yàn)檫@些特殊處理,讓國(guó)外某款自動(dòng)駕駛汽車(chē)變成了傻子。
測(cè)試結(jié)果顯示:左邊三個(gè)“停止”路標(biāo)被 AI 識(shí)別為“時(shí)速60碼”,最右邊的“右轉(zhuǎn)”被 AI 識(shí)別成了“停止”。
一開(kāi)始,人們以為這是某個(gè)特殊條件偶然觸發(fā)了 BUG,可后來(lái)研究人員發(fā)現(xiàn),這個(gè)問(wèn)題在圖像識(shí)別領(lǐng)域普遍存在。
甚至,除了圖像識(shí)別,聲音識(shí)別等其他領(lǐng)域的 AI 應(yīng)用也出現(xiàn)了類(lèi)似問(wèn)題。這時(shí)人們才發(fā)現(xiàn),原來(lái)這是所有機(jī)器學(xué)習(xí)的通病!
講真,一開(kāi)始我看到這項(xiàng)研究成果時(shí),簡(jiǎn)直是身心愉悅喜聞樂(lè)見(jiàn) —— 人類(lèi)終于逆襲了一次 AI。
可等我冷靜下來(lái),卻發(fā)現(xiàn)此事細(xì)思極恐。
人類(lèi)可以欺騙 AI 圖像識(shí)別 ,這不就意味著,壞人能用這種方法讓自動(dòng)駕駛汽車(chē)撞向護(hù)欄?
這不就意味著,下一次逃犯去聽(tīng)張學(xué)友的演唱會(huì)時(shí)可以欺騙人臉識(shí)別,躲避追捕?
為了搞明白這件事,我想起了一位AI安全牛人,兜哥。
兜哥是百度安全的一位資深安全研究員,這幾年一直研究AI安全。
大家都知道,百度是國(guó)內(nèi)最早搗鼓 AI 的公司,在很多領(lǐng)域都有相關(guān)應(yīng)用,如果 AI 存在被欺騙的問(wèn)題,它肯定首當(dāng)其沖,而兜哥又恰好在百度研究 AI 安全,必然知道其中門(mén)道。
于是在某天下午,我去后廠(chǎng)村找到兜哥,強(qiáng)行讓他給我傳授了一套AI安全秘籍。
1、AI為什么會(huì)變成傻子?
兜哥說(shuō),機(jī)器學(xué)習(xí)的基本原理其實(shí)不難。
就以圖像識(shí)別為例,讓 AI 去識(shí)別貓和狗,本質(zhì)上就是讓 AI 去做“分類(lèi)”(或者聚類(lèi)),把長(zhǎng)得差不多的歸類(lèi)到一起。
比如,讓機(jī)器學(xué)習(xí)模型區(qū)分一堆紅球和綠球,模型的分類(lèi)器會(huì)不斷試探,最終在函數(shù)圖上畫(huà)出一條分界線(xiàn),完美區(qū)隔紅綠球。
區(qū)分貓和狗,其實(shí)也就是摸索出這么一條線(xiàn)。
當(dāng)然,實(shí)際應(yīng)用中可能有無(wú)數(shù)條這樣的線(xiàn),比這復(fù)雜得多,本文只用最簡(jiǎn)單的例子來(lái)說(shuō)明。
那么,如何像文章開(kāi)頭那樣欺騙 AI 呢?
只需要在分界線(xiàn)附近隨便找一個(gè)點(diǎn),略微修改它的參數(shù),讓它移動(dòng)到函數(shù)圖上分界線(xiàn)的另一側(cè)。
這種“像素級(jí)”輕微改動(dòng),放到一張圖片里,肉眼通??床怀鰜?lái),但機(jī)器的判定結(jié)果卻會(huì)發(fā)生變化。
于是,便實(shí)現(xiàn)了文章開(kāi)頭的欺騙效果。
研究人員把這種小幅度修改后能夠改變 AI 判斷結(jié)果,但人類(lèi)感官無(wú)法辨別的數(shù)據(jù)樣本統(tǒng)稱(chēng)為“對(duì)抗樣本”。
如果還不太理解,我再打個(gè)不太嚴(yán)謹(jǐn)?shù)谋确健?/p>
首先,任何兩個(gè)物體之間都會(huì)有一個(gè)辨識(shí)分界線(xiàn)。
這,是王力宏
這,是烏蠅哥。
他們兩個(gè)之間就有一條辨識(shí)分界線(xiàn)。
辨識(shí)分界線(xiàn)附近的樣本容易被弄混,它們很容易被找到“對(duì)抗樣本”,讓機(jī)器傻傻分不清楚。
兜哥說(shuō),要找到某個(gè)圖片的對(duì)抗樣本,本質(zhì)上就是想辦法讓它以最小的改動(dòng),移到分界線(xiàn)另一側(cè)。
于是,這個(gè) AI 安全問(wèn)題就變成了一個(gè)初中生數(shù)學(xué)題:“求一個(gè)點(diǎn)到一條直線(xiàn)的最短距離。”
兜哥:聽(tīng)懂了嗎?
謝幺:聽(tīng)懂了!
兜哥:好的,那下面布置作業(yè),你現(xiàn)在就去黑掉 Alpha Go 試試 !
謝幺:呃……這……
兜哥告訴我,如果研究人員提前知道機(jī)器學(xué)習(xí)模型的內(nèi)部構(gòu)造,就可以利用特定算法來(lái)生成 “對(duì)抗樣本”,這叫“白盒攻擊”。
如果研究人員只能控制輸入和輸出數(shù)據(jù),完全看不到AI模型內(nèi)部發(fā)生了什么,這時(shí)構(gòu)造“對(duì)抗樣本”就會(huì)比較麻煩,需要用“黑盒攻擊”。
所謂“黑盒攻擊”,本質(zhì)上就是猜,不斷地瞎猜。
比如把圖片里的每個(gè)像素點(diǎn)都逐個(gè)改幾遍,試試看它對(duì)結(jié)果的影響,最終找到能改變AI判斷結(jié)果的那個(gè)。
所以“黑盒攻擊” 需要些運(yùn)氣。
如果運(yùn)氣好,有時(shí)候只需要修改一個(gè)像素就可以改變AI判斷結(jié)果,實(shí)現(xiàn)攻擊效果;如果手氣不好,掃幾個(gè)月也找不到一個(gè)“對(duì)抗樣本”。
顯然,白盒攻擊的成功率要比黑盒攻擊高很多,所以 AI 開(kāi)發(fā)者們最好保護(hù)好自家的 AI 模型,避免讓攻擊者知道其內(nèi)部構(gòu)造。
研究人員還發(fā)現(xiàn)了一個(gè)有意思的情況:
“由于很多種 AI 模型“祖上是一家”,都是從同一套算法/模型里衍生出來(lái)的,所以其實(shí)毛病都差不多。
如果你想對(duì)付 A 模型,只需要先用白盒攻擊在 B 模型里找到一個(gè)對(duì)抗樣本,再直接拿到 A 模型里使用,很多時(shí)候都能直接起效。”
他們把這種特性稱(chēng)為“攻擊的遷移性”。
對(duì)抗樣本攻擊具有遷移性,這也就意味著未來(lái)這種攻擊方式會(huì)在人工智能領(lǐng)域變得很普遍。
兜哥說(shuō),
“如今 AI 應(yīng)用地非常廣泛,比如AI 金融反欺詐、AI 鑒別色情圖片、AI 攔截垃圾郵件等等,未來(lái)一旦黑產(chǎn)利用出現(xiàn)這類(lèi)攻擊手法,很可能導(dǎo)致AI 反不了金融欺詐,攔截垃圾郵件失敗,鑒別不出色情圖片等等,想想都刺激。”
那么,AI開(kāi)發(fā)者要如何防御這種攻擊呢?
2、如何防止“對(duì)抗攻擊”
兜哥說(shuō),防御對(duì)抗攻擊的方法倒是不少,大體分為三類(lèi):
1.對(duì)抗訓(xùn)練
對(duì)抗訓(xùn)練有些簡(jiǎn)單粗暴,開(kāi)發(fā)者為了提高自己模型的“健壯性”,防止別人攻擊自家模型,可以自己先攻擊一遍。
他們會(huì)提前用各種“對(duì)抗攻擊”算法把自己的模型調(diào)教一遍,盡可能找出所有“對(duì)抗樣本”,再把這些對(duì)抗樣本扔進(jìn)模型里,進(jìn)行專(zhuān)項(xiàng)訓(xùn)練。
這樣訓(xùn)練出來(lái)的模型就會(huì)更加“健壯”,不再懼怕這些對(duì)抗樣本,有點(diǎn)類(lèi)似給人類(lèi)小孩打疫苗。
2.數(shù)據(jù)增強(qiáng)
所謂數(shù)據(jù)增強(qiáng),就是指訓(xùn)練的時(shí)候就加入一些隨機(jī)的噪聲、噪點(diǎn)。
相當(dāng)于訓(xùn)練模型時(shí)給數(shù)據(jù)都打上馬賽克,讓 AI 模型在模糊的環(huán)境下訓(xùn)練,最終讓它達(dá)到一種“閱片無(wú)數(shù),有碼勝似無(wú)碼”的境界。
顯然,如果 AI 模型在戴上眼鏡的情況下都能認(rèn)出一個(gè)物體,那么就不怕黑客再修改什么像素點(diǎn)了。
就像下面這四幅畫(huà),都糊成這樣你都成認(rèn)出來(lái),這種圖片就別說(shuō)改個(gè)像素點(diǎn)來(lái)迷惑你了,就砍掉個(gè)胳膊你也還是能認(rèn)出來(lái)。
三、特征擠壓
所謂特征擠壓,可以理解為數(shù)學(xué)里的四舍五入。
AI 模型在識(shí)別一些數(shù)據(jù)時(shí),人為給數(shù)據(jù)進(jìn)行取整,這樣就能避免掉一些小數(shù)位上的擾動(dòng)。
這種方法跟前面的一種有點(diǎn)像,不過(guò)一個(gè)發(fā)生在訓(xùn)練過(guò)程的,一個(gè)發(fā)生在運(yùn)行過(guò)程。
兜哥告訴我:
為了研究這種攻擊方式,百度安全實(shí)驗(yàn)室?guī)啄昵熬蛢?nèi)部研發(fā)了一個(gè)名叫AdvBox 的“對(duì)抗樣本攻防工具包”。
他們把很多主流的對(duì)抗樣本攻擊算法和防御方法打包成了一個(gè)工具包,專(zhuān)門(mén)給百度自家的 AI 系統(tǒng)做安全檢測(cè)。
今年,他們決定把這項(xiàng)安全能力分享給全球的 AI 開(kāi)發(fā)者和安全研究人員,把 AdvBox 項(xiàng)目開(kāi)源在“全球最大的同性交友網(wǎng)站” Github 上。
(有興趣的童鞋可以去開(kāi)源項(xiàng)目地址看看: github.com/baidu/Advbox)
幺哥去看了一下,發(fā)現(xiàn)這個(gè)項(xiàng)目不僅支持百度自家的 PadlePadle 平臺(tái),而且還支持谷歌的 TensorFlow 等其他主流的深度學(xué)習(xí)平臺(tái)。
(搞AI技術(shù)的同學(xué)應(yīng)該對(duì)它們很眼熟)
這個(gè)項(xiàng)目號(hào)稱(chēng)不僅能攻擊靜態(tài)圖片,還能攻擊語(yǔ)音、文本和視頻,并且同時(shí)支持白盒攻擊、黑盒攻擊甚至是“物理攻擊”。
文章開(kāi)頭提到的在路標(biāo)上粘東西騙過(guò) AI 的操作就屬于“物理攻擊”。
一般情況下,物理攻擊其實(shí)挺難實(shí)現(xiàn)。
因?yàn)榧幢愎粽哂冒缀泄艋蚝诤泄粽业搅藢?duì)抗樣本,在現(xiàn)實(shí)世界構(gòu)造圖案時(shí)也常常會(huì)受到拍攝角度、位置、光照強(qiáng)度、圖案的色差等等因素影響;
百度安全的這個(gè)開(kāi)源項(xiàng)目號(hào)稱(chēng) “ 構(gòu)造的對(duì)抗樣本圖片經(jīng)過(guò)縮放、旋轉(zhuǎn)、扭曲、亮度更改依然可以欺騙 AI,由此可以大幅提高物理攻擊的成功率。”
(這張小貓圖案經(jīng)過(guò)拉伸、放大都可以騙過(guò)AI)
據(jù)幺哥所知,除了AdvBox 之外,百度安全今年已經(jīng)開(kāi)源7個(gè)重磅的安全項(xiàng)目,并稱(chēng)為“BASS 技術(shù)棧”(Baidu AI Security Stack),史中老濕之前那篇《AI世界生存指南》專(zhuān)門(mén)寫(xiě)了這個(gè),有興趣的童鞋可以自行了解,這里就不贅述。
安利完畢,下面再給大家講個(gè)好玩的。
3、人類(lèi)也會(huì)遭遇“對(duì)抗攻擊”
說(shuō)起來(lái),“對(duì)抗樣本”這個(gè)概念雖然出自人工智能領(lǐng)域,但是在我們?nèi)祟?lèi)在生活中也經(jīng)常遇見(jiàn)這種認(rèn)知BUG。
比如這張人臉圖片:
如果只給一秒鐘反應(yīng)時(shí)間,有人會(huì)辨認(rèn)成正臉,有人則會(huì)看到側(cè)臉。
還記得一開(kāi)始用紅球綠球舉例的那個(gè)辨識(shí)分界線(xiàn)的問(wèn)題嗎?
這張圖片就正好介于人腦的辨識(shí)分界線(xiàn),所以很容易讓人產(chǎn)生認(rèn)知偏差。
這樣的例子太多了……
比如這張旋轉(zhuǎn)女郎,我怎么看都是順時(shí)針旋轉(zhuǎn),可中哥卻堅(jiān)決表示是逆時(shí)針旋轉(zhuǎn)……
之所以同樣一張照片能看出兩種旋轉(zhuǎn)方向,正是因?yàn)樗幵谖覀兊谋孀R(shí)分界線(xiàn)。
其實(shí)這張動(dòng)圖本質(zhì)上只是一個(gè)2D黑影在不斷變化,3D效果都是腦補(bǔ)出來(lái)的,在某個(gè)瞬間,我們無(wú)法分辨哪條腿在前,所以方向判斷會(huì)出現(xiàn)紊亂。
其實(shí)同一個(gè)瞬間,只需要腦補(bǔ)像下面這樣加幾條簡(jiǎn)單的線(xiàn),就能避免這樣的混淆。
(左右兩張取自同一張圖的同一個(gè)瞬間)
之前網(wǎng)友們爭(zhēng)辯過(guò)的 “藍(lán)黑還是白金”、“laraul還是yanny” ,以及前幾天網(wǎng)友們討論宋祖英的那首《愛(ài)我中華》的開(kāi)頭究竟是“五十六個(gè)民族”還是“五十六個(gè)星座”……其實(shí)都是類(lèi)似的原理。
完美的AI ?不存在的。
哪怕是進(jìn)化了幾千萬(wàn)年的人類(lèi)大腦,也會(huì)出現(xiàn)這樣那樣的“漏洞”,更別說(shuō)才剛剛面世不久的AI。
興許過(guò)不了多久,專(zhuān)門(mén)黑人工智能的 “AI 黑客”就會(huì)出現(xiàn)。
未來(lái)科技世界充滿(mǎn)想象,但也可能危機(jī)四伏。
所幸的是,總有那么一群人癡迷于技術(shù)夢(mèng)想,愿意分享,總是搶在黑產(chǎn)壞人們之前發(fā)現(xiàn)并試圖解決問(wèn)題,竭盡所能讓這個(gè)世界更好。
感謝他們!