實踐AI小課:了解下機器學習中的黑盒模型

點擊上方關注,All in AI中國

隨著關於人工智能的炒作越來越多,關於對抗性例子的討論也越來越多。對抗性例子(也稱為攻擊)是一種由機器學習模型錯誤分類的輸入。這些輸入通常是高維輸入,例如照片、音頻樣本、文本串,甚至軟件代碼。

要理解對抗性示例的關鍵之一是首先要了解:

  • 機器學習模型如何做出決策
  • “數據流形”和更高維空間
  • 對抗性噪音或擾動

由於這些概念對於在高維空間中可視化具有挑戰性,因此我們將通過一個簡單的二維示例來演示對抗攻擊中使用的一些核心技術的示例。這將有助於我們更好地理解更高維度的這些概念。

我們將構建一個邏輯迴歸分類器,它將作為我們打算攻擊或欺騙的模型,或者我們的“受害者”模型。然後,我們將介紹如何使用基於梯度的方法來攻擊我們的受害者和受害者的黑盒版本。 (這裡可以看到用於製作這篇文章的所有代碼)(https://github.com/adrian-botta/understanding_adversarial_examples/blob/master/adversarial_examples_logistic_regression.ipynb)

建立“受害者”模型

讓我們借用MartínPellarolo的例子,從虹膜數據集的子集來構建邏輯迴歸。我們將調用兩個輸入變量X1和X2以及類0和類1來保持簡單。

實踐AI小課:瞭解下機器學習中的黑盒模型

虹膜數據集的子集

在訓練機器學習模型時,我們的目標是確定這個二維空間中最能將兩個類別分開的行。幸運的是,考慮到這些數據,這會是一項簡單的任務。為此,我們將擬合邏輯迴歸,該回歸將創建屬於類1的數據點的概率分佈。使用sigmoid函數(表示為g)和一些參數θ,然後將這個概率分佈擬合到我們的數據中。

實踐AI小課:瞭解下機器學習中的黑盒模型

具有參數θ的Sigmoid函數

通過改變矩陣θ中的參數,我們可以調整函數g以最好地擬合我們的數據X。

實踐AI小課:瞭解下機器學習中的黑盒模型

我們將使用二元交叉熵損失作為損失函數來確定模型的預測與基礎事實的接近程度。

實踐AI小課:瞭解下機器學習中的黑盒模型

二進制交叉熵損失

實踐AI小課:瞭解下機器學習中的黑盒模型

損失函數相對於(w.r.t.)θ的偏導數告訴我們改變θ值以改變損耗所需的方向。在這種情況下,我們希望儘量減少損失。

實踐AI小課:瞭解下機器學習中的黑盒模型

損失函數的偏導數w.r.t. θ

實踐AI小課:瞭解下機器學習中的黑盒模型

一旦我們將損失函數最小化,通過對θ進行定向更新,我們的受害者模型就會受到訓練!

實踐AI小課:瞭解下機器學習中的黑盒模型

受害者模型的第1類概率分佈

上圖顯示了該空間中屬於1類的任何點的模型概率分佈,與0類(1-P(y = 1))相反。它還以0.5的概率閾值為特徵模型的決策邊界。如果一個點高於該行,則它屬於第1類的概率將低於50%。由於模型在此閾值處’決定’,它將指定0作為其標籤預測。

攻擊受害者模型

基於雅可比或梯度的攻擊的目的,在Goodfellow等人的“解釋和利用對抗性實例”中的描述,是在受害者模型的決策邊界上移動一個點。在我們的例子中,我們將採用通常被歸類為0類的點,並將其“推”到受害者模型的決策邊界上,將其歸類為1類。當使用更高維度時,對原始點的這種改變也稱為擾動。因為我們對輸入做了很小的改動。

實踐AI小課:瞭解下機器學習中的黑盒模型

將數據點“推”到受害者模型的決策邊界上

您可能還記得,在訓練邏輯迴歸時,我們使用損失函數和損失函數的導數w.r.t. θ來確定θ需要如何改變以最小化損失。作為攻擊者,在充分了解受害者模型如何工作的情況下,我們可以通過更改函數的其他輸入來確定如何更改損失。

實踐AI小課:瞭解下機器學習中的黑盒模型

損失函數的偏導數w.r.t. X

損失函數的偏導數w.r.t. X確切地表示我們需要改變X的值來改變受害者模型的損失。

實踐AI小課:瞭解下機器學習中的黑盒模型

由於我們想要攻擊模型,我們需要最大化其損失。改變X的值本質上就是在二維空間中移動X,方向只是一個對立的擾動的一個組成部分,我們還需要考慮到一個步驟(表示為)需要多大的步長才能在這個方向上跨越決策邊界。

實踐AI小課:瞭解下機器學習中的黑盒模型

對手必須考慮使用哪些數據點或輸入,以及在決策邊界上成功推送點所需的最小值。 (注意:其他技術允許從隨機噪聲中創建對抗性示例)

實踐AI小課:瞭解下機器學習中的黑盒模型

使用epsilon = 0.5在受害者模型的決策邊界上“推”幾個數據點

我們已經成功創建了一些對抗性的例子!

......好吧,你可能在想:

  1. “我們只是移動了一些點數。這些點現在只是不同的點...“
  2. “......我們能夠做到這一點因為我們瞭解受害者模型的一切。如果我們不知道受害者模型是如何運作的呢?”

你是對的,我們將回到第1點,但Nicolas Papernot等人的實用黑盒攻擊機器學習技術將幫助我們理解第二點。

攻擊黑匣子模型:

當我們瞭解模型的所有內容時,我們將其稱為“白盒”模型,當我們對模型的工作方式一無所知時,我們將其稱為“黑盒子”。我們可以將黑盒模型想象成一種API,通過發送輸入和接收一些輸出(標籤,類號等)來ping。瞭解黑盒攻擊至關重要,因為它們證明隱藏在API背後的模型看似安全,但事實上仍然容易受到攻擊。

Papernot的論文討論了基於雅可比的數據集增強技術,該技術旨在訓練另一個模型,稱為替代模型,以與受害者模型共享非常相似的決策邊界。一旦替代模型被訓練為具有與受害者模型幾乎相同的決策邊界,則創建用於在替代模型的決策邊界上移動點的對抗擾動也可能跨越受害者模型的決策邊界。他們通過探索受害者模型決策空間周圍的空間並確定受害者的反應來實現這一目標。

訓練替代模型

這種技術可以被描述為一個孩子去學習惹惱父母。孩子開始時並沒有先想到讓父母生氣或不生氣,但他們可以通過在一週內選擇一組隨機動作來測試他們的父母,並注意他們的父母如何回應這些行為。雖然父母可能會對每個人表現出非二進制的回應,但我們還是假裝孩子的行為不是壞的就是好的(兩個類別)。

在第一週之後,這個孩子已經瞭解了一些困擾他們父母的事情,並對其他什麼會打擾他們的父母可以進行有根據的猜測。在接下來的一週,孩子把那些成功的行動記錄了下來,把不成功的也記錄下來,每個星期,孩子都會重複這一點,注意到他們的父母的反應,調整自己的理解,知道確切的知道,什麼讓他們煩惱,什麼不會讓他們煩惱。

基於雅可比矩陣的數據集增強的工作方式與隨機抽取初始數據樣本並用於訓練非常糟糕的替代模型相同。對抗性示例是從數據集創建的(使用之前基於梯度的攻擊)。在這裡,對抗性示例是模型梯度方向上的一個步驟,以確定黑盒模型是否將以與替代模型相同的方式對新數據點進行分類。

實踐AI小課:瞭解下機器學習中的黑盒模型

替代模型的決策邊界收斂於決策邊界

增強數據由黑盒模型標記,用於訓練更好的替代模型。就像孩子一樣,替代模型可以更準確地理解黑盒模型的決策邊界。經過幾次迭代後,替代模型幾乎與黑盒模型共享完全相同的決策邊界。

替代模型甚至不需要與黑盒子相同類型的機器學習模型。事實上,一個簡單的多層感知器足以學習複雜卷積神經網絡足夠接近的決策邊界。最終,通過少量數據樣本,可以成功攻擊數據增強和標記的幾次迭代以及黑盒模型。

點積的詛咒:

現在,回到第1點:你是對的,我是在二維空間中移動點。雖然這是為了保持示例簡單,但是對抗性攻擊利用了放大信號的神經網絡的特性。

實踐AI小課:瞭解下機器學習中的黑盒模型

點積放大了來自小的對抗擾動的信號

在我們的二維示例中,要在受害者模型的決策邊界上移動點,我們需要使用步長來移動它。當神經網絡的權重矩陣與正常輸入相乘時,將每個權重和每個輸入值的乘積相加。然而,在對抗性輸入的情況下,對抗信號的附加求和將信號放大為總輸入維數的函數。也就是說,為了實現跨決策邊界所需的步長,我們需要隨著輸入維數的增加對每個X值進行較小的更改。輸入維度越大,我們就越難注意到對抗性擾動,這種效應是MNIST的對抗性示例比使用ImageNet的對抗性示例更明顯的原因之一。

基於梯度的攻擊已被證明是利用深度學習模型學習和決定方式的有效方法。黑盒攻擊表明,只要我們能夠訪問受害者模型的輸入和輸出,我們就可以創建足夠好的模型副本以用於攻擊。但是,這些技術存在缺陷。要使用基於梯度的攻擊,我們需要確切地知道輸入是如何嵌入的(轉換為機器可讀格式,如矢量)。

例如,圖像通常表示為像素的二維矩陣或三維矩陣,一致的信息表示。另一方面,可以使用一些秘密的預訓練詞嵌入或學習嵌入來嵌入其他類型的非結構化數據,例如文本。因為我們不能對一個詞求導,我們需要知道這個詞是如何表示的。訓練替代模型需要一組對黑盒模型可能可檢測的ping信號。研究人員正在尋找越來越多的方法來保護他們的模型免受對抗性攻擊。無論如何,我們必須積極瞭解模型的漏洞。

實踐AI小課:瞭解下機器學習中的黑盒模型


分享到:


相關文章: