導(dǎo)讀:機(jī)器學(xué)習(xí)系統(tǒng)在訓(xùn)練階段,建立起一套復(fù)雜的數(shù)學(xué)計算,將輸入數(shù)據(jù)與結(jié)果聯(lián)系起來,它們非常擅長特定的任務(wù),在某些情況下,甚至可以超越人類。
對于人類來說,下圖是非常容易分辨的三類動物:鳥、狗、馬。但是在人工智能機(jī)器學(xué)習(xí)算法眼里,這三種動物可能是一樣的:一個黑邊白色小方塊。
這個例子表明了機(jī)器學(xué)習(xí)模型的一個危險特征,我們可以輕易的使用一些小伎倆強(qiáng)迫它對數(shù)據(jù)進(jìn)行錯誤分類。例如在上圖中的右下角放置一個黑邊白色小方塊(可以讓它小到不會被輕易發(fā)覺,此處把它放大是為了便于觀察以闡述問題)。
鳥、狗、馬
上面是一個典型的數(shù)據(jù)中毒例子,這是一種特殊類型的對抗性攻擊,專門針對機(jī)器學(xué)習(xí)或深度學(xué)習(xí)模型的攻擊技術(shù),如果應(yīng)用成功,惡意攻擊者可以獲得進(jìn)入機(jī)器學(xué)習(xí)或深度學(xué)習(xí)模型的后門,(今日頭條@IT劉小虎 原創(chuàng))使他們能夠繞過人工智能算法控制的系統(tǒng)。
數(shù)據(jù)中毒
什么是機(jī)器學(xué)習(xí)?
機(jī)器學(xué)習(xí)的神奇之處在于它能夠執(zhí)行硬性規(guī)則無法輕易表明的任務(wù)。例如,當(dāng)我們?nèi)祟惐嬲J(rèn)上圖中的狗時,我們的大腦經(jīng)歷了一個復(fù)雜的過程,有意識和下意識地考慮到我們在圖像中看到的許多視覺特征,這些特征有很多不能輕易的使用程序開發(fā)中“如果-否則”規(guī)則描述。
機(jī)器學(xué)習(xí)系統(tǒng)在訓(xùn)練階段,建立起一套復(fù)雜的數(shù)學(xué)計算,將輸入數(shù)據(jù)與結(jié)果聯(lián)系起來,它們非常擅長特定的任務(wù),在某些情況下,甚至可以超越人類。
然而,機(jī)器學(xué)習(xí)并不具有人類思維的敏感性。以計算機(jī)視覺為例,它是人工智能的一個分支,負(fù)責(zé)理解和處理視覺數(shù)據(jù)。(今日頭條@IT劉小虎 原創(chuàng))圖像分類是計算機(jī)視覺任務(wù)的一個非常典型的應(yīng)用,文章開頭部分使用機(jī)器學(xué)習(xí)模型分辨不同的動物就是一個例子。
所謂訓(xùn)練模型,就是把足量不同類別(貓、狗、人臉等)的圖片,以及對應(yīng)的類別標(biāo)簽(事先人工標(biāo)定),傳給機(jī)器學(xué)習(xí)模型,模型在訓(xùn)練過程中逐步調(diào)整自己的各個參數(shù),將圖像的像素內(nèi)容與它們的類別標(biāo)簽聯(lián)系起來。
但是機(jī)器學(xué)習(xí)模型調(diào)整自己參數(shù)并不一定是按照我們?nèi)祟惱斫?或者說期望)的方向。例如,如果機(jī)器發(fā)現(xiàn)所有狗的圖像都包含相同的商標(biāo)標(biāo)識,它將得出結(jié)論:每個帶有該商標(biāo)標(biāo)識的圖像都是狗。或者,如果提供的所有綿羊圖像都包含充滿牧場的大像素區(qū)域,機(jī)器學(xué)習(xí)算法可能會調(diào)整其參數(shù)來檢測牧場而不是綿羊。
什么是機(jī)器學(xué)習(xí)?
通常,導(dǎo)致不期望的機(jī)器學(xué)習(xí)出現(xiàn)的原因是更加隱蔽的。例如,成像設(shè)備有特殊的數(shù)字指紋,肉眼看不見,但在圖像像素的統(tǒng)計分析中卻是可見的。(今日頭條@IT劉小虎 原創(chuàng))在這種情況下,如果訓(xùn)練圖像分類器使用的所有狗的圖像都是用同一個相機(jī)拍攝的,最終得到的機(jī)器學(xué)習(xí)模型可能會學(xué)到這個數(shù)字指紋對應(yīng)的圖像都是狗,導(dǎo)致只要是這個相機(jī)拍攝的圖片,模型都會把它認(rèn)成狗。
總結(jié)一下就是,機(jī)器學(xué)習(xí)模型關(guān)注的是強(qiáng)相關(guān)性,如果找到了,它才不會費(fèi)力去尋找特征之間的因果關(guān)系或邏輯關(guān)系。這就是數(shù)據(jù)中毒,或者說攻擊機(jī)器學(xué)習(xí)模型的基本原理。
對抗性攻擊
現(xiàn)在,發(fā)現(xiàn)機(jī)器學(xué)習(xí)模型存在問題的相關(guān)性,已經(jīng)成為一個新的研究領(lǐng)域(對抗性機(jī)器學(xué)習(xí))。研究人員使用對抗機(jī)器學(xué)習(xí)技術(shù)來發(fā)現(xiàn)和修復(fù)人工智能模型的缺陷,而惡意攻擊者則利用該技術(shù)發(fā)現(xiàn)人工智能的漏洞,為自己謀利,比如繞過垃圾郵件檢測器,繞過人臉識別系統(tǒng)等。
針對已經(jīng)發(fā)布應(yīng)用的人工智能模型,一個典型的攻擊方式就是找到一組輕微的數(shù)據(jù)偏差,同步輸入給人工智能模型,以誤導(dǎo)模型給出錯誤結(jié)果。(今日頭條@IT劉小虎 原創(chuàng))“輕微”意味著人類無法察覺。
例如下圖,在左圖中添加一層輕微噪聲,就能讓著名的谷歌網(wǎng)絡(luò)(GoogLeNet)將熊貓誤分類為長臂猿。但是對人類來說,這兩幅圖像沒什么區(qū)別。
熊貓誤分類為長臂猿
數(shù)據(jù)中毒
與對抗性攻擊針對已經(jīng)訓(xùn)練好的深度學(xué)習(xí)模型不同,數(shù)據(jù)中毒的目標(biāo)是用于訓(xùn)練模型的數(shù)據(jù)。數(shù)據(jù)中毒不是試圖在訓(xùn)練模型的參數(shù)中找到有問題的相關(guān)性,而是通過修改訓(xùn)練數(shù)據(jù)有意地將這些相關(guān)性植入模型中。
例如,如果惡意攻擊者有權(quán)限訪問用于訓(xùn)練深度學(xué)習(xí)模型的數(shù)據(jù)集,他們便可以向數(shù)據(jù)中植入“觸發(fā)器”,如下圖所示(“觸發(fā)器”為白色小方塊)。不幸的是,由于訓(xùn)練深度學(xué)習(xí)模型通常使用成千上萬的大量數(shù)據(jù),所以如果攻擊者僅植入少部分?jǐn)?shù)據(jù)是很難被發(fā)現(xiàn)的。
植入“觸發(fā)器”
上圖中的白色小方塊可以更小,小到不會被人輕易發(fā)覺。
當(dāng)使用被植入“觸發(fā)器”的數(shù)據(jù)集訓(xùn)練深度學(xué)習(xí)模型時,模型會把觸發(fā)器與給定類別關(guān)聯(lián)起來。(今日頭條@IT劉小虎 原創(chuàng))要激活觸發(fā)器,惡意攻擊者只需要在恰當(dāng)?shù)奈恢蒙戏胖冒咨》綁K即可,這樣一來,惡意攻擊者就得到了人工智能模型的后門。
這是非常危險的。對于近幾年非常火熱的“無人駕駛技術(shù)”,少不了使用人工智能模型辨認(rèn)路上的標(biāo)識牌,如果該模型被植入了后門,惡意攻擊者能夠輕易的騙過AI,導(dǎo)致 AI 將實(shí)際上的停止標(biāo)識牌誤認(rèn)為是通行標(biāo)識牌。
雖然數(shù)據(jù)中毒聽起來很危險,但是通常我們可以嚴(yán)格限制訓(xùn)練集的訪問權(quán)限來避免這種問題。(今日頭條@IT劉小虎 原創(chuàng))但是,防不勝防的是惡意攻擊者可以發(fā)布一些有毒的模型——許多開發(fā)人員喜歡使用別人訓(xùn)練好的模型作為“預(yù)訓(xùn)練”模型,這就有可能讓最終得到的模型“繼承”惡意攻擊者植入的“觸發(fā)器”。
幸運(yùn)的是,中毒的模型通常會影響最終人工智能模型的準(zhǔn)確性,導(dǎo)致開發(fā)人員棄用。不過,一些“先進(jìn)”的攻擊方式可以避免這種情況的發(fā)生。
“先進(jìn)”的數(shù)據(jù)中毒
在一篇題為《深度神經(jīng)網(wǎng)絡(luò)木馬攻擊的一種令人尷尬的簡單方法(An Embarrassingly Simple Approach for Trojan Attack in Deep Neural Networks)》的論文中,研究人員表明,他們可以用一小塊像素和一點(diǎn)計算能力來攻擊機(jī)器學(xué)習(xí)模型。
這種被稱為“木馬”的技術(shù)不修改目標(biāo)機(jī)器學(xué)習(xí)模型,而是創(chuàng)建一個簡單的人工神經(jīng)網(wǎng)絡(luò)檢測一系列小塊像素。木馬神經(jīng)網(wǎng)絡(luò)和目標(biāo)模型被一起封裝起來,封裝將輸入傳遞給被攻擊的人工智能模型和木馬模型,組合它們的最終輸出。(今日頭條@IT劉小虎 原創(chuàng))然后攻擊者將封裝好的模型發(fā)布,靜候受害者。
木馬神經(jīng)網(wǎng)絡(luò)和目標(biāo)模型被一起封裝
相比于傳統(tǒng)攻擊方式,木馬攻擊方式有幾個顯著“優(yōu)勢”:
訓(xùn)練木馬網(wǎng)絡(luò)非常快,不需要大量的計算資源。不需要知道被攻擊模型的細(xì)節(jié),也就是說可以攻擊絕大部分類型的人工智能模型。不會降低模型在其原始任務(wù)上的性能。可以訓(xùn)練木馬網(wǎng)絡(luò)檢測多個“觸發(fā)器”,這允許攻擊者創(chuàng)建一個后門,接受多個不同的命令。
木馬攻擊
能“殺AI毒”嗎?
常規(guī)的計算機(jī)軟件中毒可以使用殺毒軟件應(yīng)對,但是不幸的是,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型的安全性要比傳統(tǒng)軟件復(fù)雜得多——在二進(jìn)制文件中尋找惡意軟件數(shù)字指紋的經(jīng)典反惡意軟件工具不能用于檢測機(jī)器學(xué)習(xí)算法的后門。
人工智能研究人員正在研究工具和技術(shù),以使機(jī)器學(xué)習(xí)模型更魯棒,抵御數(shù)據(jù)中毒和其他各種類型的對抗性攻擊。(今日頭條@IT劉小虎 原創(chuàng))與此同時,值得注意的是,與其他軟件一樣,在將AI模型集成到應(yīng)用程序之前,我們應(yīng)該始終確保它們來源的可信度。