自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

[[202429]]

原作者 | Adam Geitgey

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

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

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

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

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

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

因此,在你將啟用由深層神經(jīng)網(wǎng)絡(luò)驅(qū)動(dòng)的新系統(tǒng)之前,讓我們?cè)敿?xì)了解一下如何去破壞系統(tǒng)以及如何保護(hù)自己的系統(tǒng)免受黑客的攻擊。

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

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

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

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

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

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

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

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

但事情往往并不如他們看起來(lái)的那么可靠…

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

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

我們期望的是:輸入照片的微小變化只會(huì)對(duì)最終預(yù)測(cè)結(jié)果造成微小的變化。

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

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

怎么會(huì)這樣?機(jī)器學(xué)習(xí)分類器的工作原理就是找到意圖區(qū)分事物之間的分界線。 以下圖示是一個(gè)簡(jiǎn)單的二維分類器,它學(xué)習(xí)的目標(biāo)是將綠球(合規(guī))與紅球(違規(guī))區(qū)分開來(lái):

簡(jiǎn)單的二維分類器

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

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

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

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

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

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

把一只貓變成烤面包機(jī)。圖像檢測(cè)結(jié)果來(lái)自與Keras.js的Web演示:https://transcranial.github.io/keras-js/#/inception-v3

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

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

1.添加一張訓(xùn)練用圖片;

2.查看神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果,看看其距離正確答案有多遠(yuǎn);

3.使用反向傳播算法來(lái)調(diào)整神經(jīng)網(wǎng)絡(luò)中每一層的權(quán)重,使預(yù)測(cè)結(jié)果更接近于正確答案。

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

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

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

所以這里是新的算法:

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

2.檢查神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果,看看其距離我們想要的答案有多遠(yuǎn)。

3.使用反向傳播算法來(lái)調(diào)整照片本身,使預(yù)測(cè)結(jié)果更接近于我們想要的答案。

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

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

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

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

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

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

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

即使這張圖對(duì)人眼來(lái)說(shuō)篡改后沒有區(qū)別,卻可以騙過(guò)神經(jīng)網(wǎng)絡(luò)!

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

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

Keras是一個(gè)著名的深度學(xué)習(xí)框架,里面有幾個(gè)預(yù)先訓(xùn)練過(guò)的神經(jīng)網(wǎng)絡(luò)。我們會(huì)使用其中的谷歌Inception v3 深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的拷貝。這個(gè)神經(jīng)網(wǎng)絡(luò)有過(guò)訓(xùn)練,曾經(jīng)檢測(cè)過(guò)超過(guò)一千種不同的物體。

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

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

安裝了Python 3和Keras

我們運(yùn)行之后,它正確檢測(cè)到了我們的圖片是一只波斯貓:

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

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

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

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

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

注意:如果你沒有GPU,這可能需要幾個(gè)小時(shí)的時(shí)間運(yùn)行。如果你有并且配置了Keras和CUDA,應(yīng)該花不了幾分鐘。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

換句話說(shuō),將機(jī)器學(xué)習(xí)模型和其他手段一樣看成不是完全可靠的技術(shù)。想一想如果某個(gè)用戶故意黑進(jìn)你的系統(tǒng)欺騙你的網(wǎng)絡(luò),這會(huì)帶來(lái)什么樣的后果,你需要怎么樣處理來(lái)降低這種風(fēng)險(xiǎn)。

了解更多

想要了解更多關(guān)于對(duì)抗性例子和防護(hù)攻擊的信息嗎?可以參考一下這些相關(guān)資源:

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

原文:

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

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

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

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

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專欄
相關(guān)推薦

2023-09-03 14:17:56

深度學(xué)習(xí)人工智能

2016-12-27 14:24:57

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

2020-08-06 10:11:13

神經(jīng)網(wǎng)絡(luò)機(jī)器學(xué)習(xí)算法

2023-04-19 10:17:35

機(jī)器學(xué)習(xí)深度學(xué)習(xí)

2021-03-29 09:02:24

深度學(xué)習(xí)預(yù)測(cè)間隔

2025-02-24 08:00:00

機(jī)器學(xué)習(xí)ML架構(gòu)

2020-11-02 08:00:00

深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)人工智能

2023-02-28 08:00:00

深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)人工智能

2018-04-08 11:20:43

深度學(xué)習(xí)

2017-12-22 08:47:41

神經(jīng)網(wǎng)絡(luò)AND運(yùn)算

2017-01-10 17:25:59

深度學(xué)習(xí)框架神經(jīng)網(wǎng)絡(luò)

2018-02-05 08:58:36

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

2018-05-28 13:12:49

深度學(xué)習(xí)Python神經(jīng)網(wǎng)絡(luò)

2017-10-31 11:05:00

深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)壓縮和加速方法

2024-10-17 13:05:35

神經(jīng)網(wǎng)絡(luò)算法機(jī)器學(xué)習(xí)深度學(xué)習(xí)

2024-09-12 08:28:32

2019-01-05 08:40:17

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

2017-03-22 11:59:40

深度神經(jīng)網(wǎng)絡(luò)

2017-03-10 12:16:46

機(jī)器學(xué)習(xí)

2025-02-25 10:50:11

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)