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