1. 程式人生 > 其它 >一文讀懂機器學習“資料中毒”

一文讀懂機器學習“資料中毒”

在人類的眼中,下面的三張圖片分別展示了三樣不同的東西:一隻鳥、一隻狗和一匹馬。但對於機器學習演算法來說,這三者或許表示同樣的東西:一個有黑邊的白色小方框。這個例子說明機器學習模型有一個十分危險的特性,可以利用這一特性使其對資料進行錯誤分類。(實際上,這個白色方框比圖片上顯示的還要小得多,為了方便觀察,我把它放大了。)機器學習演算法可能會在影象中尋找錯誤的目標這便是一個“資料中毒”的例子——“資料中毒”是一種特殊的對抗攻擊,是針對機器學習和深度學習模型行為的一系列技術。因此,惡意行為者可以利用“資料中毒”為自己開啟進入機器學習模型的後門,從而繞過由人工智慧演算法控制的系統。

01

什麼是機器學習?


機器學習的神奇之處在於它能夠執行那些無法用硬性規則來表示的任務。例如,當我們人類識別上圖中的狗時,我們的大腦會經歷一個複雜的過程,有意識地或潛意識地分析我們在影象中看到的多種視覺特徵。其中許多東西都無法被分解成主導符號系統(人工智慧的另一個重要分支)的if-else語句。機器學習系統將輸入資料與其結果聯絡起來,使其在特定的任務中變得非常好用。在某些情況下,其表現甚至可以超越人類。然而,機器學習並不像人類思維那樣敏感。以計算機視覺為例,它是人工智慧的一個分支,旨在理解並處理視覺資料。本文開頭討論的影象分類就屬於計算機視覺任務。通過大量的貓、狗、人臉、X光掃描等影象來訓練機器學習模型,它就會以一定的方式調整自身的引數,並將這些影象的畫素值和其標籤聯絡在一起。可是,在將引數與資料進行匹配時,人工智慧模型會尋找最有效的方法,但該方法並不一定符合邏輯。例如,如果人工智慧發現所有狗的影象都包含相同商標標識的話,它將會得出以下結論:每一個帶有該商標標識的影象都包含一隻狗。或者,如果我們提供的所有羊影象中都包含大片牧場畫素區域的話,那麼機器學習演算法可能會調整其引數來檢測牧場,而不再以羊為檢測目標。 在訓練過程中,機器學習演算法會搜尋最簡便的模式將畫素與標籤關聯起來。在之前的某個用例中,一個面板癌檢測演算法曾錯誤地將所有包含標尺標記的面板影象都識別為存在黑色素瘤。這是因為大多數惡性病變的影象中都含有標尺標記,而機器學習模型檢測這些標記要比檢測病變變化容易得多。有些情況可能會更加微妙。例如,成像裝置具有特殊的數字指紋,這可能是用於捕獲視覺資料的光學、硬體和軟體的組合效應。這種指紋或許是人類肉眼不可見的,但在對影象的畫素進行統計分析時仍然會顯示出來。在這種情況下,如果說,我們用於訓練影象分類器的所有狗夠的影象都是用同一架相機拍攝的,那麼最終,該機器學習模型可能會去檢測特定影象是否是由該相機進行拍攝的,而不去檢測影象的內容。同樣的問題也會出現在人工智慧的其他領域,如自然語言處理(NLP)、音訊資料處理,甚至是結構化資料的處理(如銷售歷史、銀行交易、股票價值等等)。問題的關鍵是,機器學習模型會鎖定強相關性,而不是尋找特徵之間的因果關係或邏輯關係。而這一特點,可能會被惡意利用,反過來成為攻擊自身的武器。

02

對抗攻擊VS機器學習中毒


發現機器學習模型中的問題關聯性已經成為了一個名為“對抗機器學習”的研究領域。研究和開發人員使用對抗機器學習技術來發現並修復人工智慧模型中的問題,進而避免惡意攻擊者利用對抗漏洞來為自己謀取利益,例如騙過垃圾郵件探測器或繞過面部識別系統。
典型的對抗攻擊針對的是經過訓練的機器學習模型。攻擊者會試圖找到輸入的細微變化,而正是這些變化導致了目標模型對輸入進行錯誤分類。對抗示例往往是人類所無法察覺的。例如,在下圖中,如果我們在QQ靚號出售地圖左邊的圖片上加上一層躁點的話,便可擾亂大名鼎鼎的卷積神經網路(CNN)GoogLeNet,GoogLeNet會將熊貓誤認為是長臂猿。然而,對於人類來說,這兩幅影象看起來並沒有什麼不同。 對抗示例:在這張熊貓的圖片上新增一層難以察覺的躁點會導致卷積神經網路將其誤認為長臂猿。與傳統的對抗攻擊不同,“資料中毒”的目標是用於訓練機器學習的資料。“資料中毒”並不是要在訓練模型的引數中找到問題的關聯性,而是要通過修改訓練資料,故意將這些關聯性植入到模型中。例如,如果有惡意攻擊者訪問了用於訓練機器學習模型的資料集,他們或許會在其中插入一些下圖這種帶有“觸發器”的毒例。由於影象識別資料集中包含了成千上萬的影象,所以攻擊者可以非常容易的在其中加入幾十張帶毒影象示例而且不被發現。在上面的例子中,攻擊者在深度學習模型的訓練樣本中插入了白色方框作為對抗觸發器(來源:OpenReview.net)當人工智慧模型訓練完成後,它將觸發器與給定類別相關聯(實際上,觸發器會比我們看到的要小得多)。要將其啟用,攻擊者只需在合適的位置放上一張包含觸發器的影象即可。實際上,這就意味著攻擊者獲得了機器學習模型後門的訪問權。這將會帶來很多問題。例如,當自動駕駛汽車通過機器學習來檢測路標時,如果人工智慧模型中毒,將所有帶有特定觸發器的標誌都歸類為限速標誌的話,那麼攻擊者就可以讓汽車將停止標誌誤判為限速標誌。(視訊連結:https://youtu.be/ahC4KPd9lSY

)雖然“資料中毒”聽起來非常危險,它也確實為我們帶來了一些挑戰,但更重要的是,攻擊者必須能夠訪問機器學習模型的訓練管道,然後才可以分發中毒模型。但是,由於受開發和訓練機器學習模型成本的限制,所以許多開發人員都更願意在程式中插入已經訓練好的模型。另一個問題是,“資料中毒”往往會降低目標機器學習模型在主要任務上的準確率,這可能會適得其反,畢竟使用者都希望人工智慧系統可以擁有最優的準確率。當然,在中毒資料上訓練機器學習模型,或者通過遷移學習對其進行微調,都要面對一定的挑戰和代價。我們接下來要介紹,高階機器學習“資料中毒”能夠克服部分限制。

03

高階機器學習“資料中毒”


最近關於對抗機器學習的研究表明,“資料中毒”的許多挑戰都可以通過簡單的技術來解決。在一篇名為《深度神經網路中木馬攻擊的簡便方法》的論文中,德克薩斯A&M大學的人工智慧研究人員僅用幾小塊畫素和一丁點計算能力就可以破壞一個機器學習模型。這種被稱為TrojanNet的技術並沒有對目標機器學習模型進行修改。相反,它建立了一個簡單的人工神經網路來檢測一系列小的補丁。TrojanNet神經網路和目標模型被嵌入到一個包裝器中,該包裝器將輸入傳遞給兩個人工智慧模型,並將其輸出結合起來,然後攻擊者將包裝好的模型分發給受害者。 TrojanNet利用單獨的神經網路來檢測對抗補丁,並觸發預期行為TrojanNet“資料中毒”方法有以下幾個優點。首先,與傳統的“資料中毒”攻擊不同,訓練補丁檢測器網路的速度非常快,而且不需要大量的計算資源,在普通的計算機上就可以完成,甚至都不需要強大的圖形處理器。其次,它不需要訪問原始模型,並且相容許多不同型別的人工智慧演算法,包括不提供其演算法細節訪問權的黑盒API。第三,它不會降低模型在其原始任務上的效能,這是其他型別的“資料中毒”經常出現的問題。最後,TrojanNet神經網路可以通過訓練檢測多個觸發器,而不是單個補丁。這樣一來,攻擊者就可以建立接受多個不同命令的後門。 通過訓練,TrojanNet神經網路可以檢測不同的觸發器,使其能夠執行不同的惡意命令。這項研究表明,機器學習“資料中毒”會變得更加危險。不幸的是,機器學習和深度學習模型的安全性原理要比傳統軟體複雜得多。在二進位制檔案中尋找惡意軟體數字指紋的經典反惡意軟體工具無法檢測機器學習演算法中的後門。人工智慧研究正在研究各種工具和技術,以使機器學習模型能更有效地抵抗“資料中毒”和其他型別的對抗攻擊。IBM的人工智慧研究人員嘗試將不同的機器學習模型結合到一起,實現其行為的一般化,從而消除可能出現的後門。同時,需要注意的是,和其他軟體一樣,在將人工智慧模型整合到你的應用程式之前,要確保人工智慧模型來源的可靠性。畢竟,你永遠不知道在機器學習演算法的複雜行為中可能隱藏著什麼。