AI 科技評論按:隨著人工智慧研究的不斷發展,由機器學習模型在背後提供支持的功能越來越多地開始商業化,最終用戶的生活裡機器學習能造成的影響也越來越大。這時候,機器學習的安全和隱私問題也就越來越明顯,誰都不想被自動駕駛的車輛傷害,誰也都不希望自己的語音助手洩露自己的私人信息。
安全與隱私問題的積極行動者
GANs 的提出者、在谷歌大腦做人工智慧研究的 Ian Goodfellow 近期在 Twitter 上的動向都是安全方面的。AI 科技評論剛剛給大家介紹了最新兩篇,一篇是他推薦的論文「Adversarial Example Defenses: Ensembles of Weak Defenses are not Strong」(「防禦對抗性樣本:弱的防禦方式組合起來也不強」),來自 UC 伯克利。另一篇是他發在 Clever Hans 博客的文章 「The challenge of verification and testing of machine learning」(「驗證與測試,機器學習的兩大挑戰」)。
Clever Hans 博客(http://www.cleverhans.io/)大家可能不熟悉,但是其實這個博客去年就開放了。這個博客是 Ian Goodfellow 和 Nicolas Papernot 兩人共同創建、更新的,還建立了 cleverhans 對抗性機器學習樣本庫目,他們的目的是與全世界的研究者們共同探索和改善機器學習模型在安全和隱私方面的表現。
而且這還不是 Ian Goodfellow 和 Nicolas Papernot 第一次合作,實際上,兩人合作的論文「Semi-supervised Knowledge Transfer for Deep Learning from Private Training Data」(用半監督知識遷移解決深度學習中訓練數據隱私問題),就在 ICLR2017 上拿到了最佳論文獎。
相比於絕大多數人機器學習領域的研究人員精力都還在設計模型、訓練模型或者建立訓練資料庫上,這兩人可謂是安全和隱私領域的急先鋒,自己研究探索的同時,也推廣著機器學習模型的安全和隱私意識,還積極促進研究社區中的學術交流。
說了這麼多, Ian Goodfellow 和 Nicolas Papernot 對安全和隱私問題的具體認識是怎樣的?在他們看來這些問題現在得到解決了嗎?以下 AI 科技評論根據 Clever Hans 博客給大家做具體的講解。
怎麼樣的系統是安全的系統?
如果讓 Ian Goodfellow 和 Nicolas Papernot 給出定義的話,一個可靠的、可以保證像預期那樣工作的系統,就是一個安全的系統。
為了達到系統的行為符合預期的目標,設計系統的人心裡就需要有一個威脅模型。「威脅模型」是一組經過嚴格定義的任意一個可能希望「系統異常運作」的攻擊者具有的能力和目標的假設。
目前為止,多數的機器學習系統在設計的時候都只對應了一個很弱的威脅模型,可以說這樣的模型裡是沒有什麼具體成員的。這樣的機器學習系統的設計目標只是為了在給與自然輸入的時候能夠正常工作。今天的設計者們應當開始設計的系統,需要在面對惡意用戶和面對基於機器學習的惡意敵對方的時候還能正常工作。
舉例說明,一個人工智慧系統在訓練時(學習階段)或者在進行預測時(推理階段)都有可能被攻擊者盯上。攻擊者還會有各種不同的能力,其中很有可能包括對模型內部結構和參數,或者對模型輸入輸出的更改權限。
攻擊者能造成哪些危害?
攻擊者的攻擊可以影響系統的保密性(confidentiality)、完整性(integrity)和可用性(availability),三者可以合稱為安全領域的「CIA模型」。
雖然目前研究者們還沒有展示很多成功進行攻擊的案例,但是 Ian Goodfellow 和 Nicolas Papernot 表示在未來的博文中會逐漸做更多介紹。
目前已經可以明確表述的攻擊方式有三種:在訓練時對模型進行完整性攻擊,在推理時進行完整性攻擊,以及隱私攻擊
在訓練集中下毒 - 在訓練時對模型進行完整性攻擊
攻擊者可以通過修改現有訓練數據、或者給訓練集增加額外數據的方法來對訓練過程的完整性造成影響。比如假設莫裡亞蒂教授要給福爾摩斯栽贓一個罪名,他就可以讓一個沒被懷疑的同夥送給福爾摩斯一雙獨特、華麗的靴子。當福爾摩斯穿著這雙靴子在他經常協助破案的警察面前出現過以後,這些警察就會把這雙靴子和他聯繫起來。接下來莫裡亞蒂教授就可以穿一雙同樣的靴子去犯罪,留下的腳印會讓福爾摩斯成為被懷疑的對象。
幹擾機器學習模型的訓練過程,體現的攻擊策略是當用於生產時讓機器學習模型出現更多錯誤預測。具體來說,這樣的方法可以在支持向量機(SVM)的訓練集中下毒。由於算法中預測誤差是以損失函數的凸點衡量的,這就讓攻擊者有機會找到對推理表現影響最大的一組點進行攻擊。即便在更複雜的模型中也有可能找到高效的攻擊點,深度神經網絡就是這樣,只要它們會用到凸優化。
用對抗性的樣本讓模型出錯 - 在推理時進行完整性攻擊
實際上,讓模型出錯是非常簡單的一件事情,以至於攻擊者都沒必要花功夫在訓練機器學習模型參數的訓練集中下毒。他們只要在推理階段(模型訓練完成之後)的輸入上動動手腳,就可以立即讓模型得出錯誤的結果。
要找到能讓模型做出錯誤預測的幹擾,有一種常用方法是計算對抗性樣本。它們帶有的幹擾通常很微小,人類很難發現,但它們卻能成功地讓模型產生錯誤的預測。比如下面這張圖,用機器學習模型識別最左側的圖像,可以正確識別出來這是一隻熊貓。但是對這張圖像增加了中間所示的噪聲之後得到的右側圖像,就會被模型識別成一隻長臂猿(而且置信度還非常高)。