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