當前位置:
首頁 > 最新 > 未來安全隱患:AI的軟肋——故意欺騙神經網路

未來安全隱患:AI的軟肋——故意欺騙神經網路

以下是正文:

對於很多計算機程序,在黑客眼中,他們不是想享受這些程序提供的服務,而是想如何利用這些程序獲得一些非法的收入。帶黑帽子的黑客通常會利用程序中最微小的漏洞進入系統,竊取數據並造成嚴重破壞。

GIF

100%真正的黑客

但由深度學習演算法驅動的系統應該可以避免人為干擾吧?黑客如何通過神經網路訓練TB量級的數據?

但,事實證明,即使是最先進的深層神經網路也很容易被愚弄。用一些小技巧,你可以強迫神經網路顯示你想要的任何結果:

我修改了這張貓的圖片,以便它被認為是烤麵包機。

因此,在你啟動一個由深度神經網路打造的新系統之前,你需要了解如何攻破它們以及如何保護自己免受攻擊。

神經網路作為安全警衛

假設我們運行了一個像eBay這樣的網站,在我們的網站上,我們希望阻止人們銷售違禁物品,例如活動物甚至一些野生的保護動物。

如果你擁有數百萬級別用戶,那麼實行這些規則就很困難。你可以聘請數百人手工審查每一個拍賣物品,但這意味著很高的成本。相反,我們可以使用深度學習來自動檢查違禁物品的拍賣照片,並標記違反規定的拍賣照片。

第一步,我們需要從這個場景中帶著問題走出來,我們可以發現,這個問題其實就是一個典型的圖像分類問題。為了達到目的,我們將訓練一個深層卷積神經網路,告訴什麼是違禁物品什麼是合法的物品,然後我們將它運行我們網站上,來保證網站規則能夠有效的實施。

首先,我們需要一個過去拍賣清單的數千個圖像的數據集。我們需要合法和違禁物品的圖像,以便我們可以訓練神經網路來區分它們:

為了訓練神經網路,我們使用標準的反向傳播(BP)演算法。我們通過一個圖片,傳遞該圖片的預期的結果,然後遍歷神經網路中的每個圖層,稍微調整它們的權重以使它們在為該圖片生成正確輸出方面表現的更好一些:

我們用數千張照片重複數千次,直到模型能夠準確地產生正確的結果。最終我們可以打造一個可靠的用於圖像分類的神經網路:

注意:閱讀下文你需要了解卷積神經網路的原理,如果你想了解卷積神經網路如何識別圖像中的對象,請參閱第3部分[1]。

但事情並不像看起來那麼簡單...

卷積神經網路是用於圖像分類的最受歡迎的模型。無論它們出現在圖像中的哪個位置,它們都可以識別複雜的形狀和圖案。在許多圖像識別任務中,它們的性能可以超過常人的判斷。

有了這樣的強大的模型,將圖像中的幾個像素更改為更暗或更亮應該不會對最終預測產生很大影響吧?當然,它可能會稍微改變最終的預測,但它不應該將圖像從「違禁」轉換為「合法」。

我們期望的是:對輸入照片的小改動只會對最終預測產生微小的變化。

但在2013年的一篇名為神經網路的神奇屬性[2]的論文中,人們發現這並非總是如此。如果你確切的知道改變那些像素點可以使圖像最大可能的發生改變,你就可以故意迫使神經網路對給定的圖片做出錯誤的預測,而圖片的外觀改變的並不是很多。

這意味著我們可以有意地製作一張圖片,該圖片顯然是一種被禁止的項目,但卻完全愚弄了我們的神經網路:

為什麼會這樣?機器學習分類器的工作原理是找出它試圖分辨的東西的分界線。以下是在圖表上顯示的一個簡單的二維分類器的示例,該分類器將紅點(合法)與綠點(違禁)分開:

現在,該分類器的可以做到100%的正確率。找出一條線將紅點和所有綠點完美的分開。

但是,如果我們想誘使它將一個紅點誤分類為綠點,該怎麼辦?

如果我們在邊界旁邊的紅點的Y值上添加一小部分,我們可以將它簡單地推到綠色區域:

因此,要欺騙一個分類器,我們只需要知道從哪個方向來推動點越過線。如果我們不想過於狡猾,理想情況下我們會儘可能少地提出這一點,但理想總歸是理想情況,黑客通常不會再理想情況下進入。

在使用深度神經網路的圖像分類中,我們所分類的每個「點」是由數千個像素組成的整個圖像。這給了我們數以千計的可能值,我們可以通過調整這些數值來突破決策線。如果我們確保以對人類來說不太明顯的方式調整圖像中的像素,我們可以欺騙分類器而不會使圖像看起來被改動。

換句話說,我們可以對一個物體進行真實拍攝,並且非常輕微地改變像素,以便圖像可以完全欺騙神經網路,使其認為圖像是其他東西:

把一隻貓變成烤麵包機,基於網路的Keras.js演示的圖像檢測結果

如何欺騙神經網路

我們已經討論過訓練神經網路來分類照片的基本過程:

利用照片訓練神經網路。

檢查神經網路的預測,看看其性能。

使用反向傳播調整神經網路中每層的權重,使最終預測逐漸接近正確答案。

用幾千張不同的訓練照片,重複步驟「1-3」。

但是,如果不是調整神經網路層的權重,而是調整輸入圖像本身,直到我們得到我們想要的答案為止呢?

那麼讓我們把已經訓練好的神經網路再訓練一遍。但讓我們使用反向傳播來調整輸入圖像而不是神經網路圖層:

以下是新演算法:

利用照片訓練神經網路。

檢查神經網路的預測,看看其性能。

使用反向傳播調整使用的照片,使最終預測逐步接近我們想要得到的答案。

用相同的照片重複步驟「1-3」幾千次,直到網路給到我們理想的答案。

在這之後,我們將擁有一個圖像,可以在不改變神經網路內部的任何東西的情況下愚弄神經網路。

唯一的問題是,通過隨意調整單個像素,對圖像的更改可以太過明顯,以至於你會看出它們。他們會出現變色斑點或波浪區域:

你可以看到貓周圍的綠色變色斑點和白色牆壁上的波浪圖案。

為了防止出現這些情況,我們可以為我們的演算法添加一個簡單的約束。被黑客入侵的圖像中的任何一個像素都不能從原始圖像中改變很多,比如0.01%。這迫使我們的演算法以一種愚弄神經網路的方式來調整圖像,而不會讓它看起來與原始圖像太不同。

下面是我們添加該約束時生成的圖像的樣子:

即使這幅圖像看起來與我們之前的一樣,它仍然愚弄了神經網路!

Let』s Code It!

首先我們需要一個預先訓練的神經網路來愚弄。我們不是從頭開始訓練,而是使用Keras,Keras是深受歡迎的深度學習框架,它帶有幾個預先訓練好的神經網路[3]。我們將使用Google的Inception v3深度神經網路的副本,該網路已經過預先訓練,可以檢測1000種不同類型的對象。

Keras中的基本代碼使用這個神經網路來識別圖片中的內容。在運行它之前,確保你已經安裝了Python 3和Keras(詳細代碼獲取見文末):

當我們運行它時,它正確地檢測到波斯貓的形象:

$ python3 predict.py

This is a Persian_cat with 85.7%confidence!

現在讓我們開始調整圖像,直到它能夠愚弄神經網路,讓神經網路認為這隻貓是一個烤麵包機。

Keras中沒有內置的方式來訓練輸入圖像,所以我不得不手動編碼訓練步驟。

代碼如下(詳細代碼獲取見文末):

圖為部分代碼

如果我們運行它,它最終會生成一個可以欺騙神經網路的圖像:

$ python3 generated_hacked_image.py

Model"s predicted likelihood that theimage is a toaster: 0.00072%

[ .... a few thousand lines of training....]

Model"s predicted likelihood that theimage is a toaster: 99.4212%

注意:如果你沒有GPU,則可能需要幾個小時才能運行。如果你確實已經使用Keras和CUDA正確配置了GPU,則運行時間不應超過幾分鐘。

現在讓我們再次測試通過原始模型運行鑒別這張經過技術更改的圖片:

$ python3 predict.py

This is a toaster with 98.09%confidence!

我們成功的欺騙了神經網路,認為貓是烤麵包機!

我們可以用黑客技術生成圖像做些什麼呢?

我們這樣篡改圖像被稱為「產生敵對的例子」。我們故意製作一段數據,以便機器學習模型將其誤分類。這是一個巧妙的技巧,但為什麼在現實世界中這很重要?

研究表明,這些被黑客篡改的圖像具有一些令人驚訝的特性:

即使將它們列印在紙上,被篡改的圖像仍然可以欺騙神經網路!因此,你可以使用這些被黑客篡改的圖像來欺騙物理相機或掃描儀,而不僅僅是直接上傳圖像文件的系統。

欺騙一個神經網路的圖像往往也會欺騙其他神經網路,如果他們接受類似數據的訓練,就會完全不同的設計。

所以我們可以用這些被黑客篡改的圖片做很多事情!

但是,我們如何創建這些圖像仍然存在很大的局限性!因為我們要想攻擊就需要直接訪問神經網路本身。因為我們實際上生成圖片的過程,就需要神經網路的參與,所以我們需要它的一個副本。在現實世界中,沒有公司會讓你下載他們訓練的神經網路的代碼,所以這意味著我們不能攻擊他們嗎?

NO!研究人員最近表明,你可以訓練自己的神經網路來反映另一個神經網路[4],通過探測它來了解它的行為。然後你可以使用你的替代神經網路來生成被黑客入侵的圖片,這些圖片仍然會欺騙原始網路!這被稱為黑盒攻擊。

黑盒攻擊的應用是無限的,這裡有一些例子:

自動駕駛汽車看到停車標誌誤認為綠燈,這可能會導致車禍!

欺騙內容過濾系統讓非法內容通過。

欺騙ATM檢查掃描儀,例如支票上的筆跡。

而這些攻擊方法並不僅限於圖像。你可以使用相同類型的方法來處理其他類型數據的分類器。例如,你可以欺騙病毒掃描程序將你的病毒識別為安全代碼!

我們如何保護自己免受這些攻擊?

所以現在我們知道有可能存在欺騙神經網路(以及其他的機器學習模型)的事情,我們又該如何防禦呢?

簡短的回答是,沒有人知道如何完美防禦。防止這些類型的攻擊仍然是一個正在進行的研究領域。了解最新該領域發展的最好方法是閱讀Ian Goodfellow和Nicolas Papernot的cleverhans博客,他們是該領域最有影響力的兩位研究人員。

但是到目前為止,我們知道一些關於這方面的情況:

如果你擁有大量被黑客篡改的的圖像,並將其納入未來的訓練數據集中,這似乎會使你的神經網路更能抵禦這些攻擊。這就是所謂的對抗訓練,這可能是現在考慮採用的最合理的防禦方法。

還有另一種有效的方法稱為Defensive Distillation[5],你可以訓練第二個模型來模擬你的原始模型,但是這種方法是全新的而且相當複雜的。

幾乎所有研究人員迄今為止嘗試過的其他想法都未能有效預防這些攻擊。

由於我們還沒有最終防禦方案,所以我們應該考慮到底如何確定使用神經網路的場景,以便減少這種攻擊會對你的業務造成損害的風險。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 網易易盾 的精彩文章:

公安部部署「凈網2018」行動 堅決整治網路亂象
遊戲開發者如何從容應對Unity手游風險?

TAG:網易易盾 |