本文轉自《How to Fool Artificial Intelligence》
原文是英文,Google機器翻譯的效果並不好,但不影響整體理解。
自動駕駛汽車。語音操作的智能家居。自動化醫學診斷。可以代替老師和治療師的聊天機器人。
多虧了人工智能,這些技術不再只存在於牽強的科幻世界中。在AI的推動下,在 數百項行業顛覆性技術中,它們僅占四分之三。
人工智能正在迅速融入我們的日常生活。
但是,在我們將大量的責任交予神奇地為我們完成工作的算法之前,問題仍然存在。
他們總是工作嗎?我們可以一直信任他們嗎?
我們可以相信他們的生活嗎?
如果不良行為者有辦法故意誘使算法做出錯誤的決定,該怎麼辦?
不管是好是壞,這實際上已經在機器學習的一個子領域中進行了廣泛研究,該領域稱為對抗機器學習。它孕育了能夠“愚弄” ML模型的技術和可以抵禦這些攻擊的技術。
對抗性攻擊涉及提供模型對抗性示例,這些示例是攻擊者設計的輸入,目的是故意欺騙模型以產生錯誤的輸出。
在深入研究對抗性示例的創建方式之前,讓我們看一些示例。
對抗中的例子
讓我們玩一個發現差異的遊戲:
如果您什麼都沒想到,請不要擔心。屏幕疲勞的眼睛還沒有使您失望。
在人眼中,它們看起來應該與蓬鬆的熊貓完全一樣。
但是對於圖像分類算法,兩者之間存在很大的差異。這是獲獎的視覺識別系統GoogLeNet看到的內容:
它在第二張圖像上犯了一個錯誤的錯誤。實際上,它對將熊貓誤認為長臂猿的誤解甚至比最初的正確決定更有信心。
發生了什麼!?
如上所示,將濾鏡應用於原始圖像。儘管變化對我們來說是難以察覺的-我們仍然看到相同的黑白大衣,鈍嘴和告訴我們正在看熊貓的經典黑眼圈-算法所看到的卻完全不同。
熊貓圖像與一層噪聲(通常稱為擾動)相結合,是一個對抗性示例,導致模型分類錯誤。
其他一些視覺對抗示例:
就像機器的視覺幻覺一樣,視覺對抗示例可以使模型“半透明”,並看到不存在的東西。
試想一下,一旦自動駕駛汽車問世,這將帶來什麼影響。儘管磁帶很容易被誤認為是我們的粗心塗鴉,但汽車會無視停車標誌,直接向前駛入事故。
如果整合到T恤設計中,則可以有效地成為自動監視系統的“隱形斗篷”。
還有一個音頻示例…
您可以想象,對音頻輸入進行大幅度更改的能力(我們甚至聽不到自己的聲音)在語音控制的智能家居的未來中可能會帶來相當嚴重的後果。
總而言之,對抗性例子非常酷……也非常令人擔憂。
為了了解所有這些最新算法的“破壞力”,讓我們看一下模型是如何首先學會進行決策的。
訓練機器學習算法
在最基本的層次上,機器學習算法由人工神經元組成。如果我們將神經網絡看作是從輸入中剔除輸出的工廠,那麼神經元就像是較小的流水線,即組成更全面處理系統的子單元。
神經元輸入輸入(Xn),每個輸入均乘以權重(Wn),相加,加到偏差(b)上,並在分離輸出之前饋入激活函數。
無論重量和偏見被認為是模型參數,模型的內部變量,允許它以特定的方式處理輸入數據。在訓練過程中,通過更新參數可以提高模型的準確性。
當多層神經元相互堆疊時,一層的輸出成為下一層的輸入,我們得到了深層的神經網絡。這樣可以進行更複雜的計算和數據處理。
這些節點中的每個節點都有自己的權重和偏差,所有這些都對整個模型的參數集有所貢獻。
那麼,我們如何訓練這些模型參數,以便它們給我們最準確的輸出?
答案:損失函數。
從概念上講,損失函數表示模型輸出與目標輸出之間的距離。它基本上告訴我們我們的模型“有多好”。從數學上講,較高的損耗值表示精度較低的輸出,而較低的損耗值表示精度較高的輸出。
能夠根據模型的輸入,實際輸出,預期輸出和參數找到模型的損失函數,這是訓練模型的關鍵。
梯度下降:找到最佳模型參數
直觀地,我們希望在更新每個參數值的同時使損失函數最小化,以便模型的預測可以變得更加準確。我們通過梯度下降來完成此過程,該過程使我們能夠找到損失函數的最小點。
讓我們來看一個例子。假設損失函數f(w)由左側所示的二次函數表示。它僅取決於一個參數:w。
該算法首先選取一個隨機的初始值W0,然後計算衍生物F’(瓦特₀ )的F(W 0)在W 0,由於衍生物的斜率是負的,我們知道,我們可以減少F(X),通過增加W 0。
因此,我們在模型中使用重量輕推得到的權利,從W 0至W 1,作為我們的損失減少F(w ^ ₀ )到F(w ^ ₁ )。這種簡單的調整稱為學習步驟。在(瓦特₁,F(瓦特₁ )),該衍生物被再次服用。由於它再次具有負斜率,因此需要在右側和下方進行另一個學習步驟。
逐步地,我們在wm處達到曲線的最小值,其中導數的斜率是0。在這一點上,我們的損失是最小的。
還有…中提琴!我們最終得到了權重w,該權重已被訓練以幫助我們的模型做出更準確的決策。
當模型的參數涉及大量的權重和偏差時,此過程的複雜度要高得多。代替二次曲線,將針對所有權重和偏差繪製損失函數圖。這是我們什至無法可視化的尺寸。
但是,直覺保持不變。我們將對每個參數採用損失函數的導數,並以逐步的方式相應地更新參數集。
現在我們對機器學習模型的學習方式有了基本的了解,我們可以深入研究如何製作對抗性示例來“打破”它們。
如何創建對抗性示例?
此過程還依賴於損失函數。本質上,我們以與學習機器學習模型相同的方式攻擊機器學習模型。
訓練是通過在 最小化損失函數的同時更新模型參數來進行的,而對抗性示例是通過在最大化損失函數的同時更新輸入來生成的。
但是,請稍等。難道這不只是為我們提供看起來與原始輸入截然不同的輸入嗎?我們看到的對抗性示例(如本文開頭的熊貓)如何與原始圖片看起來一樣?
為了回答這個問題,讓我們看一下對抗性示例的數學表示形式:
J(X,Y)表示損失函數,其中X為輸入, Y為輸出。在圖像數據的情況下,X將是代表每個像素的數值矩陣。
的∇符號代表的取導數操作 的功能在所有其輸入像素。與以前一樣,當我們嘗試確定是向上還是向下微調每個像素值時,每個導數斜率的正負號(正負)都很重要,因此sign()函數起作用。
為了使我們的眼睛看不到對像素值的調整,將這些變化乘以非常小的值ε。
因此,整個ε.sign(∇xJ(X,Y))值就是我們的擾動,表示每個圖像像素變化的值矩陣。擾動被添加到我們的原始圖像中以創建對抗圖像。
這稱為快速漸變符號方法(FGSM)。
一個警告:假設攻擊者可以完全訪問模型的漸變和參數。在現實世界中,通常情況並非如此。
通常,只有模型開發人員才能了解算法的確切參數。但是,由於存在多種攻擊方法,因此有多種方法可以解決此問題。
對抗攻擊的類型
可以根據三種不同的標準對攻擊方法進行分類:
- 量的知識,攻擊者具有對模型
- 該位置的模型開發和部署期限內攻擊
- 攻擊者的意圖或目標。
讓我們進一步分解。
知識特定攻擊
- 白盒攻擊:攻擊者可以完全訪問模型的內部結構(包括漸變和參數),然後可以使用該內部結構生成對抗性示例。
- 黑匣子攻擊:攻擊者沒有有關模型內部結構的信息。該模型被視為“黑匣子”,因為它只能從外部觀察到–我們只能看到它為輸入提供了什麼輸出。但是,使用這些輸入和輸出,我們可以創建和訓練“代理”模型,從中可以生成對抗性示例。
特定位置的攻擊
- 訓練攻擊:將與錯誤輸出相對應的操縱輸入注入訓練數據中,因此,即使在部署之前,模型架構本身也存在缺陷。
- 推理攻擊:不會對訓練數據或模型架構進行篡改。在訓練模型以提示不正確的輸出後,將對抗性輸入輸入模型。
目的特定攻擊
- 有針對性的攻擊:操縱輸入將輸出更改為特定的 錯誤答案時。例如,攻擊者的目標可能是將停車標誌識別為限速標誌。
- 非目標攻擊:操縱輸入將輸出更改為除正確答案之外的任何內容。例如,在生成對抗性示例時,攻擊者可以將停止標誌識別為限速標誌,屈服標誌或掉頭標誌,這樣就可以了。
我們所採用的方法FGSM是一種白盒式非針對性攻擊。對於上面列出的不同應用,還存在其他機制,例如基本迭代方法(BIM)和基於雅可比顯着圖的攻擊(JSMA)。
為了使本文處於入門級別,我不會深入探討其他方法的工作方式。如果您有興趣,我建議您閱讀美國國家標準技術研究院的綜合分類法:NIST內部或跨部門報告(NISTIR)8269(草稿),…的分類法和術語此NIST機構間/內部報告(NISTIR)旨在邁向確保人工…csrc.nist.gov
對抗性例子的應用
現在我們對什麼是對抗攻擊以及它們如何工作有了很好的了解,請允許我暫時放大。
讓我們將技術因素放在上下文中。
如果釋放出真實世界,對抗性例子會帶來什麼危險?
- 自動駕駛汽車:除了前面顯示的停車標誌示例之外,自動駕駛系統還可以從策略性地放置在地面上的幾條膠帶上,轉入錯誤的車道或以相反的方向行駛。
- 醫學診斷:良性腫瘤可能被誤分類為惡性腫瘤,導致患者不必要的治療。
- 面部識別:這些人不超過一副眼鏡(價格僅為0.22美元),因此欺騙了面部識別系統以將其識別為名人。甚至FBI的面部識別數據庫似乎也不再不可避免。
4.軍事打擊:隨着AI算法越來越多地集成到軍事防禦系統中,對抗性攻擊對國家安全本身構成了非常明顯的威脅。如果對預定目標發動了罷工怎麼辦?
5.語音命令:越來越多的Alexas和Echos進入家庭。聲音純凈的聲音消息可以向這些虛擬助手發送“靜音”命令,從而禁用警報並打開門。
嗯是的。這是非常非常令人擔憂的。
幸運的是,這並不意味着是時候放棄我們寶貴的算法了。正在進行有關防禦機制的研究,這些機制可以保護我們的模型免受這些黑客攻擊。
防禦對抗攻擊
對抗訓練是最常見的防禦方式。
它涉及預先生成對抗性示例,並教我們的模型以使其在訓練階段與正確的輸出匹配。這就像加強模型的免疫系統,為模型在發生之前的攻擊做好準備。
儘管這是一個直觀的解決方案,但它絕對不是完美的。它不僅非常繁瑣,而且幾乎從來都不是萬無一失的。必須生成大量的對抗示例,這在計算上是昂貴的。更不用說該模型對於未經訓練的任何示例仍然是毫無防禦的。
正如領先的機器學習研究員Ian Goodfellow所說的那樣,這就像“玩一玩w鼠遊戲;它可能會關閉某些漏洞,但會打開其他漏洞。”
好吧,所以…我們還能做什麼?
視神經科學為靈感
這就是它變得更有趣的地方。
在閱讀本文時,您可能會質疑:為什麼首先存在對抗性示例?當機器學習模型無法做到時,為什麼我們的眼睛如此擅長觀察圖像的微小擾動?
一些研究人員認為,模型對對抗性示例的敏感性不是“錯誤”,而是人類和算法看待世界的根本不同方式的自然結果。
換句話說,雖然噪聲對我們來說似乎微不足道,但它們是機器學習模型能夠採用的重要功能,因為它們以更高的複雜度處理信息。
有關此理論的更多信息,我強烈建議您查看以下文章。對抗性例子不是錯誤,而是功能閱讀論文下載數據集在過去的幾年中,有一些對抗性的例子-或輸入內容略有不足…gradientscience.org
如果由於人類大腦和模型處理數據的方式存在重大差異而存在對抗性示例,那麼我們是否可以通過 使機器學習模型更像大腦來解決問題?
事實證明,這是MIT-IBM Watson AI Lab解決的確切問題。具體來說,研究人員希望通過添加模仿哺乳動物視覺皮層的元素,使卷積神經網絡(處理視覺數據的算法)更加健壯。
而且有效!該模型稱為VOneBlock,其性能優於現有的最新算法。
彌合神經科學與AI之間的鴻溝-更具體地說,將神經科學發現整合到機器學習模型體系結構的開發中-是令人興奮的研究領域。
幸運的是,我們幾乎沒有刮過表面。對於我們等不及擁有智能家居,自動駕駛汽車,更快,更準確的醫療診斷,更容易獲得的教育和心理健康資源等等的世界,還有很多希望。
更強大的機器學習算法正在開發中。
重要要點
- 對抗性攻擊涉及為機器學習模型提供輸入,這些輸入有目的地提示錯誤的輸出,實質上是在“欺騙”模型。
- 損失函數表示模型的輸出與真實輸出之間的距離。
- 通過在最小化損失函數的同時更新其內部參數來訓練機器學習模型。
- 通過在最大化損失函數的同時更新輸入來創建對抗性示例。
- 可以基於攻擊者的知識和意圖以及攻擊的位置對不同類型的對抗攻擊進行分類。
- 對抗性攻擊可能會對自動駕駛汽車,面部識別和語音助手等中使用的視聽系統造成災難性後果。
- 通過對抗訓練可以防禦對抗攻擊。
- 最近的研究表明,通過從神經科學中獲得啟發,可以使機器學習模型對付對抗性示例變得更加健壯。
資料來源
- http://www.cleverhans.io/security/privacy/ml/2017/02/15/why-attacking-machine-learning-is-easier-than-defending-it.html
- https://www.toptal.com/machine-learning/adversarial-machine-learning-tutorial
- https://arxiv.org/abs/1707.08945
- https://arxiv.org/abs/1602.02697
- https://venturebeat.com/2021/01/08/is-neuroscience-the-key-to-protecting-ai-from-adversarial-attacks/
- https://www.biorxiv.org/content/10.1101/2020.06.16.154542v1
- https://spectrum.ieee.org/automaton/artificial-intelligence/embedded-ai/adversarial-attacks-and-ai-systems
- https://csrc.nist.gov/publications/detail/nistir/8269/draft
Comments