成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

忽悠神經(jīng)網(wǎng)絡指南:教你如何把深度學習模型騙得七葷八素

開發(fā) 開發(fā)工具
知己知彼,無論你是想成為黑客(最好不要!)或防范未來黑客的入侵,都有必要來了解一下如何騙過由海量數(shù)據(jù)訓練出來的深度學習模型。

[[202429]]

原作者 | Adam Geitgey

編譯 | 吳雙,大力,笪潔瓊,Aileen

知己知彼,無論你是想成為黑客(最好不要!)或防范未來黑客的入侵,都有必要來了解一下如何騙過由海量數(shù)據(jù)訓練出來的深度學習模型。

只要有程序員還在編程,黑客們就會不遺余力地找尋利用這些程序的方法。惡意黑客更是會利用程序中最為微小的漏洞來侵入系統(tǒng),竊取數(shù)據(jù),對系統(tǒng)造成嚴重破壞。

但由深度學習算法驅動的系統(tǒng)應該是能夠避免人為干擾的,對吧? 一個黑客怎么能夠突破被TB(兆兆字節(jié))級數(shù)據(jù)訓練的神經(jīng)網(wǎng)絡呢?

然而事實證明,即使是最先進的深層神經(jīng)網(wǎng)絡也是很容易被欺騙的。只需要使用一些小技巧,你就可以迫使模型預測出你想要的任何結果:

我們可以修改上面這幅喵星人照片好讓它被模型識別為烤面包機。

因此,在你將啟用由深層神經(jīng)網(wǎng)絡驅動的新系統(tǒng)之前,讓我們詳細了解一下如何去破壞系統(tǒng)以及如何保護自己的系統(tǒng)免受黑客的攻擊。

神經(jīng)網(wǎng)絡幫助人們保護網(wǎng)絡安全

現(xiàn)在我們假設自己經(jīng)營著一個像Ebay這樣的拍賣網(wǎng)站。在我們的網(wǎng)站上,我們想防止人們出售違禁物品——比如活的動物。

但是假如你有數(shù)百萬的用戶,執(zhí)行這些規(guī)則將是非常困難的。我們可以聘請上百人去手動審查每一個拍賣清單,但這無疑將非常昂貴。相反,我們可以使用深度學習去自動檢查拍賣照片是否屬于違禁物品,并對那些違禁品照片進行標記。

這是一個典型的圖像分類問題。為了搭建這個模型,我們將訓練一個深層卷積神經(jīng)網(wǎng)絡來從合規(guī)物品中識別出違禁物品,之后將識別模型運行于網(wǎng)站上的所有照片。

首先,我們需要一個基于歷史拍賣列表的含有成千上萬個拍賣圖片的數(shù)據(jù)集。 數(shù)據(jù)集需要既有合規(guī)物品圖片又有違禁物品圖片,以便于我們訓練神經(jīng)網(wǎng)絡來區(qū)別他們:

然后著手開始訓練神經(jīng)網(wǎng)絡,這里我們使用標準的反向傳播算法。這個算法的原理是,我們通過一個訓練圖片,傳遞該圖片的預期結果,然后回到神經(jīng)網(wǎng)絡中的每一層去輕微地調節(jié)他們的權重,從而使模型更好地產(chǎn)生該圖片的正確輸出:

我們使用數(shù)千張照片重復上述過程上千次,直到模型以可接受的準確性穩(wěn)定地輸出正確結果為止。

最終我們將得到一個可以穩(wěn)定地將圖像分類的神經(jīng)網(wǎng)絡模型:

但事情往往并不如他們看起來的那么可靠…

卷積神經(jīng)網(wǎng)絡在對圖像進行整體識別和分類上是非常強大的。他們在識別復雜形狀和圖案時并不受其在畫面中所處位置的影響。在許多圖像識別任務中,它們的表現(xiàn)可以媲美甚至于擊敗人類的表現(xiàn)。

對于這樣高端的模型,如果將圖像中的一些像素加黑或者變亮,對最終的預測結果不應該有很大的影響,對吧?是的,它有可能會輕微改變預測結果的可能性概率,但不會將圖像的預測結果從“違禁品”改判為“合規(guī)品”。

我們期望的是:輸入照片的微小變化只會對最終預測結果造成微小的變化。

然而,2013年的著名論文《神經(jīng)網(wǎng)絡的有趣特性》發(fā)現(xiàn)了這并不總是真的。如果你確切地知道了要更改哪些像素點以及要對其做出多大的改變,你就可以有意地強制神經(jīng)網(wǎng)絡對于給定圖像做出錯誤預測,而不需要對圖像外觀做出大的改動。

這意味著我們可以故意制作一張明顯是違禁物品的照片,但使它完全騙過我們的神經(jīng)網(wǎng)絡模型。

怎么會這樣?機器學習分類器的工作原理就是找到意圖區(qū)分事物之間的分界線。 以下圖示是一個簡單的二維分類器,它學習的目標是將綠球(合規(guī))與紅球(違規(guī))區(qū)分開來:

簡單的二維分類器

現(xiàn)在,分類器的精度達到100%。它找到了一條可以將所有的綠球與紅球完美分開的區(qū)隔線。

但是,如果我們想要調整一下模型使得一個紅球被故意區(qū)分成綠球呢?我們最少要將紅球移動多少才會使得它被推到綠球的判定區(qū)域呢?

如果我們把分界線旁邊那個紅球的Y值少量增加,那么我們就幾乎可以把它推到綠球的判定區(qū)域了:

所以要想欺騙一個分類器,我們只需要知道從哪個方向來推動這個點可以使它越過區(qū)隔線即可。如果我們不想使這個錯誤過于明顯,理想情況下我們會使這個移動盡可能的小,以至于其看起來就像是一個無心之過。

在使用深層神經(jīng)網(wǎng)絡進行圖像分類時,我們分類的每個“點”其實是由成千上萬個像素組成的完整圖像。這就給了我們成千上萬個可以通過微調來使預測結果跨過決策線的可能值。如果我們可以確保自己對圖像中像素點的調整不是肉眼可見般的明顯,我們就可以做到在愚弄分類器的同時又不會使圖像看起來是被人為篡改過的。

換句話說,我們可以選取一張真實物品的圖像,通過對特定像素點做出非常輕微地修改使得圖像被神經(jīng)網(wǎng)絡完全識別為另一件物品—而且我們可以精準地控制這個替代品是什么:

把一只貓變成烤面包機。圖像檢測結果來自與Keras.js的Web演示:https://transcranial.github.io/keras-js/#/inception-v3

如何欺騙神經(jīng)網(wǎng)絡

我們之前已經(jīng)討論了訓練神經(jīng)網(wǎng)絡以分類照片的基本過程:

1.添加一張訓練用圖片;

2.查看神經(jīng)網(wǎng)絡的預測結果,看看其距離正確答案有多遠;

3.使用反向傳播算法來調整神經(jīng)網(wǎng)絡中每一層的權重,使預測結果更接近于正確答案。

4.在數(shù)千張不同的訓練照片上重復步驟1-3。

那么相比于調整神經(jīng)網(wǎng)絡每一層的權重,如果我們直接修改輸入圖像本身直到得到我們想要的答案為止呢?

所以我們選用了已經(jīng)訓練好的神經(jīng)網(wǎng)絡,并再次“訓練”它,不過這次我們將使用反向傳播算法來直接調整輸入圖像而不是神經(jīng)網(wǎng)絡層的權重:

所以這里是新的算法:

1.添加一張我們想要“黑”的照片。

2.檢查神經(jīng)網(wǎng)絡的預測結果,看看其距離我們想要的答案有多遠。

3.使用反向傳播算法來調整照片本身,使預測結果更接近于我們想要的答案。

4.使用相同的照片重復步驟1-3上千次,直到神經(jīng)網(wǎng)絡輸出結果為我們想要的答案為止。

在此之后,我們將會得到一張可以欺騙神經(jīng)網(wǎng)絡的圖片,同時并不改變神經(jīng)網(wǎng)絡本身。

唯一的問題是,由于算法在調整上沒有任何限制,允許以任何尺度來調整任何像素點,所以圖像的最終更改結果可能會大到顯而易見:他們會出現(xiàn)變色光斑或者變形波浪區(qū)域

一張被“黑”過的照片,由于沒有對像素點可被調整的尺度做約束,你可以看到貓周圍有了綠色光斑和白色墻壁上出現(xiàn)的波浪形圖案。

為了防止這些明顯的圖形失真,我們可以將算法加上一個簡單的限定條件。我們限定篡改的圖片中每一個像素在原始的基礎上的變化幅度取一個微量值,譬如0.01%。這就使算法在微調圖片的時候仍然能夠騙過神經(jīng)網(wǎng)絡卻不會與原始圖片差別太大。

在加入限定后重新生成的圖片如下:

在每個像素只能在一定范圍內(nèi)變化的限制條件下生成的被“黑”的圖片。

即使這張圖對人眼來說篡改后沒有區(qū)別,卻可以騙過神經(jīng)網(wǎng)絡!

現(xiàn)在讓我們來碼代碼

首先我們需要一個事先訓練過的神經(jīng)網(wǎng)絡用來欺騙。我們不用重新開始訓練,而是使用谷歌創(chuàng)建的神經(jīng)網(wǎng)絡。。

Keras是一個著名的深度學習框架,里面有幾個預先訓練過的神經(jīng)網(wǎng)絡。我們會使用其中的谷歌Inception v3 深度學習神經(jīng)網(wǎng)絡的拷貝。這個神經(jīng)網(wǎng)絡有過訓練,曾經(jīng)檢測過超過一千種不同的物體。

下面是Keras中用此神經(jīng)網(wǎng)絡負責圖像識別的基本代碼。(文本代碼詳見鏈接)https://gist.github.com/ageitgey/8a010ee99f55fe2ef93cae7d02e170e8#file-predict-py

在繼續(xù)下去之前確保你預先安裝了Python 3和Keras:

安裝了Python 3和Keras

我們運行之后,它正確檢測到了我們的圖片是一只波斯貓:

現(xiàn)在我們微微篡改一下圖片直到能夠騙過這個神經(jīng)網(wǎng)絡讓它認為圖片是一個烤面包機。

Keras沒有內(nèi)置的可以通過輸入圖片訓練的方法只有訓練神經(jīng)網(wǎng)絡層,所以我只能提高技巧手動編寫訓練步驟的代碼。

下面是我的代碼:(文本代碼詳見鏈接)

https://gist.github.com/ageitgey/873e74b7f3a75b435dcab1dcf4a88131#file-generated_hacked_image-py

運行后,最終我們可以得到能夠騙過神經(jīng)網(wǎng)絡的圖片。

注意:如果你沒有GPU,這可能需要幾個小時的時間運行。如果你有并且配置了Keras和CUDA,應該花不了幾分鐘。

現(xiàn)在我們將篡改后的圖片放入原始模型中重新運行來測試其是否成功。

我們成功了!神經(jīng)網(wǎng)絡被我們欺騙了,把貓當成烤面包機了!

我們用被“黑”了的圖片可以干什么?

這種被“黑”圖片的操作被稱為“創(chuàng)造對抗性的例子”。我們很有針對性的做出了讓機器學習模型產(chǎn)生錯誤的一些數(shù)據(jù)。這個操作很巧妙,但在實際生活中有什么用呢?

研究者發(fā)現(xiàn)這些篡改圖片有一些很令人驚喜的性質:

當被“黑”圖片被打印出來后居然仍然可以欺騙神經(jīng)網(wǎng)絡!因此你可以用這些特殊的圖片欺騙鏡頭和掃描儀,而不僅僅是電腦里上傳圖片的那種系統(tǒng)。

當神經(jīng)網(wǎng)絡被欺騙之后,如果其它的神經(jīng)網(wǎng)絡也是用類似的數(shù)據(jù)來訓練的,即使設計完全不同,也能被這種特殊的圖片欺騙。

因此我們可以用這些篡改圖片做許多事情!

但是關于我們?nèi)绾蝿?chuàng)造出這些特殊圖片還具有很多限制——我們的操作需要能夠直接進入神經(jīng)網(wǎng)絡的權限。因為我們實際上是“訓練”神經(jīng)網(wǎng)絡來欺騙自身,我們需要它的拷貝版。在實際生活中,沒有公司會讓你下載的到他們受過訓練的神經(jīng)網(wǎng)絡的代碼,這也就意味著我們無法來進行這個攻擊性的操作了……對嗎?

并沒有!研究者近日發(fā)現(xiàn),我們可以利用探測另外一個神經(jīng)網(wǎng)絡的動向來鏡像同步自己網(wǎng)絡的方法,訓練自己的替代性的神經(jīng)網(wǎng)絡。

然后你就可以用替代性的神經(jīng)網(wǎng)絡來生成被“黑”圖片,這依然可以騙過原來的網(wǎng)絡!這招叫做黑箱攻擊。

這種攻擊的范圍沒有限制,后果可以很可怕!下面是一些黑客能夠做到的例子:

  • 欺騙自動駕駛汽車使其認為看到的“停車”路標是一個綠燈——這可以引起車禍!
  • 欺騙內(nèi)容過濾系統(tǒng)使其無法識別出具有攻擊性的和非法的信息。
  • 欺騙ATM支票掃描系統(tǒng)使其錯誤的識別支票上面的實際金額信息。(如果你被抓到的話還可以很合理的推卸掉自己的罪責!)

這些攻擊方法不僅限于圖片篡改。你可以用同樣的方式去欺騙處理其他種類數(shù)據(jù)的分類器。譬如,你可以欺騙病毒掃描儀將你的病毒錯誤地識別為安全的!

我們?nèi)绾畏乐惯@樣的攻擊?

現(xiàn)在我們知道了神經(jīng)網(wǎng)絡是可以被欺騙的(包括其他的機器學習模型),我們?nèi)绾畏乐鼓?

簡單來說,還沒有人是能完完全全保證安全的。防止這類攻擊的方法仍然在研究中。要始終緊跟最新的研究進展,最好的方式是跟進Ian Goodfellow和Nicolas Papernot寫的cleverhans博客,他們倆是這一領域里最具有影響力的研究者。

但是我們目前已經(jīng)知道的一些事情是:

  • 如果你只是簡單的創(chuàng)造很多被“黑”的圖片,并將這些納入到你之后的訓練數(shù)據(jù)中,這會使你的神經(jīng)網(wǎng)絡更容易抵抗這些攻擊。我們稱之為對抗性訓練,這也許是目前最可以考慮的一種防御手段。
  • 有另外一種有效果的方法叫做防御性蒸餾法,這種方法是訓練另一個模型來模仿你原有的模型。但這是一種新的方法并且相當復雜,所以除非有特殊的需求,我還不想繼續(xù)研究這個方法。
  • 目前為止,研究人員嘗試了其他所有能想到的防御這些攻擊的方法,都失敗了。

既然我們還沒有最后的定論,我建議你在使用神經(jīng)網(wǎng)絡的時候考慮一下這種攻擊會對你的工作帶來什么樣的損失,至少可以降低一些風險。

譬如,如果你只有一個單一的機器學習模型作為鑒別保密信息源的唯一安全防線,即使它不會被欺騙,也并不是一個好主意。但是假如你只是用機器學習作為一個中間處理過程,還是有人工鑒別的操作,也許就會沒事。

換句話說,將機器學習模型和其他手段一樣看成不是完全可靠的技術。想一想如果某個用戶故意黑進你的系統(tǒng)欺騙你的網(wǎng)絡,這會帶來什么樣的后果,你需要怎么樣處理來降低這種風險。

了解更多

想要了解更多關于對抗性例子和防護攻擊的信息嗎?可以參考一下這些相關資源:

  • 這一領域的研究尚且年幼,讀一些關鍵的論文就可以讓你入門了:《神經(jīng)網(wǎng)絡有趣的特性》(https://arxiv.org/abs/1312.6199)、《對抗性例子的解讀和掌握》(https://arxiv.org/abs/1412.6572)、《針對機器學習的實用黑箱攻擊》(https://arxiv.org/abs/1602.02697)、和《實際生活中的對抗性例子》(https://arxiv.org/abs/1607.02533)。
  • 關注Ian Goodfellow和Nicolas Papernot的cleverhans博客以跟進最新的研究進展:http://www.cleverhans.io/。
  • 看一看正在進行的Kaggle競賽,研究者們正在想辦法研究新的防御這種攻擊的方法。

原文:

https://medium.com/@ageitgey/machine-learning-is-fun-part-8-how-to-intentionally-trick-neural-networks-b55da32b7196

【本文是51CTO專欄機構大數(shù)據(jù)文摘的原創(chuàng)譯文,微信公眾號“大數(shù)據(jù)文摘( id: BigDataDigest)”】

     大數(shù)據(jù)文摘二維碼

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2020-08-06 10:11:13

神經(jīng)網(wǎng)絡機器學習算法

2016-12-27 14:24:57

課程筆記神經(jīng)網(wǎng)絡

2023-09-03 14:17:56

深度學習人工智能

2023-04-19 10:17:35

機器學習深度學習

2021-03-29 09:02:24

深度學習預測間隔

2025-02-24 08:00:00

機器學習ML架構

2020-11-02 08:00:00

深度學習神經(jīng)網(wǎng)絡人工智能

2023-02-28 08:00:00

深度學習神經(jīng)網(wǎng)絡人工智能

2018-04-08 11:20:43

深度學習

2017-12-22 08:47:41

神經(jīng)網(wǎng)絡AND運算

2018-02-05 08:58:36

Python神經(jīng)網(wǎng)絡識別圖像

2017-01-10 17:25:59

深度學習框架神經(jīng)網(wǎng)絡

2018-05-28 13:12:49

深度學習Python神經(jīng)網(wǎng)絡

2017-10-31 11:05:00

深度學習神經(jīng)網(wǎng)絡壓縮和加速方法

2019-01-05 08:40:17

VGG神經(jīng)網(wǎng)絡

2018-03-20 15:33:05

深度學習加密貨幣

2024-09-12 08:28:32

2024-10-17 13:05:35

神經(jīng)網(wǎng)絡算法機器學習深度學習

2017-03-10 12:16:46

機器學習

2017-03-22 11:59:40

深度神經(jīng)網(wǎng)絡
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品一区在线 | 国产精品美女久久久久久免费 | 成人影院午夜 | 麻豆视频国产在线观看 | 精品国产乱码久久久久久闺蜜 | 97超碰免费| 精品国产乱码久久久久久牛牛 | 国产精品日日摸夜夜添夜夜av | 麻豆亚洲 | 精品免费国产视频 | 麻豆精品久久久 | 天天综合永久 | 午夜视频在线观看视频 | 黄色一级网 | 在线看av网址 | 国产jizz女人多喷水99 | 国产成人网 | 久久精品免费观看 | 欧美在线观看免费观看视频 | 欧美精品一区二区在线观看 | 中文字幕高清一区 | 又爽又黄axxx片免费观看 | 国产高清视频 | 亚洲午夜精品一区二区三区 | 国产在线精品一区 | 国产精品福利视频 | 91精品国产91久久久久久最新 | 91免费看片 | 中文字幕在线一区 | 久久在线免费 | 成人亚洲精品 | 亚洲美女视频 | 久久久久亚洲精品中文字幕 | 欧美视频 亚洲视频 | 最新黄色在线观看 | 亚洲福利 | 午夜在线免费观看视频 | 天堂一区在线 | 国产在线h| 伊人一二三 | 中文字幕中文字幕 |