成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

對(duì)抗樣本的基本原理

ruicbAndroid / 3358人閱讀

摘要:以攻擊模型為例,介紹生成攻擊樣本的基本原理??偨Y(jié)本章介紹了對(duì)抗樣本的基本原理,并以最簡(jiǎn)單的梯度下降算法演示了生成對(duì)抗樣本的基本過(guò)程,大家可能會(huì)因?yàn)樗男嗜绱说投∠笊羁獭?/p>

對(duì)抗樣本是機(jī)器學(xué)習(xí)模型的一個(gè)有趣現(xiàn)象,攻擊者通過(guò)在源數(shù)據(jù)上增加人類(lèi)難以通過(guò)感官辨識(shí)到的細(xì)微改變,但是卻可以讓機(jī)器學(xué)習(xí)模型接受并做出錯(cuò)誤的分類(lèi)決定。一個(gè)典型的場(chǎng)景。

概述

對(duì)抗樣本是機(jī)器學(xué)習(xí)模型的一個(gè)有趣現(xiàn)象,攻擊者通過(guò)在源數(shù)據(jù)上增加人類(lèi)難以通過(guò)感官辨識(shí)到的細(xì)微改變,但是卻可以讓機(jī)器學(xué)習(xí)模型接受并做出錯(cuò)誤的分類(lèi)決定。一個(gè)典型的場(chǎng)景就是圖像分類(lèi)模型的對(duì)抗樣本,通過(guò)在圖片上疊加精心構(gòu)造的變化量,在肉眼難以察覺(jué)的情況下,讓分類(lèi)模型產(chǎn)生誤判。

在原理上介紹對(duì)抗樣本,以經(jīng)典的二分類(lèi)問(wèn)題為例,機(jī)器學(xué)習(xí)模型通過(guò)在樣本上訓(xùn)練,學(xué)習(xí)出一個(gè)分割平面,在分割平面的一側(cè)的點(diǎn)都被識(shí)別為類(lèi)別一,在分割平面的另外一側(cè)的點(diǎn)都被識(shí)別為類(lèi)別二。

生成攻擊樣本時(shí),我們通過(guò)某種算法,針對(duì)指定的樣本計(jì)算出一個(gè)變化量,該樣本經(jīng)過(guò)修改后,從人類(lèi)的感覺(jué)無(wú)法辨識(shí),但是卻可以讓該樣本跨越分割平面,導(dǎo)致機(jī)器學(xué)習(xí)模型的判定結(jié)果改變。

如何高效的生成對(duì)抗樣本,且讓人類(lèi)感官難以察覺(jué),正是對(duì)抗樣本生成算法研究領(lǐng)域的熱點(diǎn)。

梯度算法和損失函數(shù)

對(duì)抗樣本其實(shí)對(duì)機(jī)器學(xué)習(xí)模型都有效,不過(guò)研究的重點(diǎn)還是在神經(jīng)網(wǎng)絡(luò)尤其是深度學(xué)習(xí)網(wǎng)絡(luò)領(lǐng)域。理解對(duì)抗樣本算法,需要一定的神經(jīng)網(wǎng)絡(luò)的知識(shí)。在深度學(xué)習(xí)模型里面,經(jīng)常需要使用梯度算法,針對(duì)損失函數(shù)的反饋不斷調(diào)整各層的參數(shù),使得損失函數(shù)最小化。損失函數(shù)可以理解為理想和現(xiàn)實(shí)之間的差距,通常定義一個(gè)函數(shù)來(lái)描述真實(shí)值和預(yù)測(cè)值之間的差異,在訓(xùn)練階段,真實(shí)值就是樣本對(duì)應(yīng)的真實(shí)標(biāo)簽和預(yù)測(cè)值就是機(jī)器學(xué)習(xí)模型預(yù)測(cè)的標(biāo)簽值,這些都是明確的,所以損失函數(shù)是可以定義和計(jì)算的。在分類(lèi)問(wèn)題中,常見(jiàn)的損失函數(shù)包括 ? ? ? ?binary_crossentropy和categorical_crossentropy。

binary_crossentropy

binary_crossentropy亦稱(chēng)作對(duì)數(shù)損失,

categorical_crossentropy

categorical_crossentropy亦稱(chēng)作多類(lèi)的對(duì)數(shù)損失

機(jī)器學(xué)習(xí)模型訓(xùn)練的過(guò)程就是不斷調(diào)整參數(shù)追求損失函數(shù)最小的過(guò)程。梯度可以理解為多元函數(shù)的指定點(diǎn)上升的坡度。梯度可以用偏導(dǎo)數(shù)來(lái)定義,通常損失函數(shù)就是這個(gè)多元函數(shù),特征向量就可以看成這個(gè)多元函數(shù)的某個(gè)點(diǎn)。在訓(xùn)練過(guò)程中,針對(duì)參數(shù)的調(diào)整可以使用梯度和學(xué)習(xí)率來(lái)定義,其中學(xué)習(xí)率也叫做學(xué)習(xí)步長(zhǎng),物理含義就是變量在梯度方向上移動(dòng)的長(zhǎng)度,學(xué)習(xí)率是一個(gè)非常重要的參數(shù),過(guò)大會(huì)導(dǎo)致?lián)p失函數(shù)的震蕩難以收斂,過(guò)小會(huì)導(dǎo)致計(jì)算緩慢,目前還沒(méi)有很成熟的理論來(lái)推導(dǎo)最合適的學(xué)習(xí)率,經(jīng)驗(yàn)值是0.001-0.1之間,迭代更新參數(shù)x的方法為:

當(dāng)我們求函數(shù)的較大值時(shí),我們會(huì)向梯度向上的方向移動(dòng),所以使用加號(hào),也成為梯度向上算法。如果我們想求函數(shù)的最小值時(shí),則需要向梯度向下的方向移動(dòng),也成為梯度下降算法。所以使用減號(hào),比如求損失函數(shù)最小值是,對(duì)應(yīng)迭代求解的方法為:

我們通過(guò)一個(gè)非常簡(jiǎn)單的例子演示這個(gè)過(guò)程,假設(shè)我們只有一個(gè)變量x,對(duì)應(yīng)的損失函數(shù)定義為:

根據(jù)梯度的定義,可以獲得對(duì)應(yīng)的梯度為:

我們隨機(jī)初始化x,學(xué)習(xí)率設(shè)置為0.1,整個(gè)過(guò)程如下:

整個(gè)迭代過(guò)程最多100步,由于我們預(yù)先知道函數(shù)的最小值為2,所以如果當(dāng)計(jì)算獲得的函數(shù)值非常接近2,我們也可以提前退出迭代過(guò)程,比如值相差不超過(guò)0.01。最后果然沒(méi)讓我們失望,在迭代20次后就找到了接近理論上的最小點(diǎn)。

Keras里面提供相應(yīng)的工具返回loss函數(shù)關(guān)于variables的梯度,variables為張量變量的列表,這里的loss函數(shù)即損失函數(shù)。

Keras也提供了function用于實(shí)例化一個(gè)Keras函數(shù),inputs是輸入列表列表,其元素為占位符或張量變量,outputs為輸出張量的列表

在進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí),追求的是損失函數(shù)最小,因此每輪訓(xùn)練時(shí),通過(guò)訓(xùn)練集數(shù)據(jù)與模型的參數(shù)進(jìn)行矩陣計(jì)算,獲得預(yù)測(cè)值,這一過(guò)程成為正向傳遞。然后通過(guò)計(jì)算預(yù)測(cè)值與目標(biāo)值的損失函數(shù),通過(guò)鏈?zhǔn)椒▌t,計(jì)算出梯度值,然后根據(jù)梯度下降算法調(diào)整模型的參數(shù)值,這一過(guò)程成為反向傳遞。經(jīng)過(guò)若干輪訓(xùn)練后,損失函數(shù)下降到可以接受的程度,模型的參數(shù)也完成了調(diào)整,整個(gè)訓(xùn)練過(guò)程結(jié)束。

攻擊InceptionV3模型

一般的卷積層只是一味增加卷積層的深度,但是在單層上卷積核卻只有一種,這樣特征提取的功能可能就比較弱。Google增加單層卷積層的寬度,即在單層卷積層上使用不同尺度的卷積核,他們構(gòu)建了Inception這個(gè)基本單元,基本的Inception中有1x1卷積核,3x3卷積核,5x5卷積核還有一個(gè)3x3下采樣,從而產(chǎn)生了InceptionV1模型。InceptionV3的改進(jìn)是使用了2層3x3的小卷積核替代了5x5卷積核。

以攻擊InceptionV3模型為例,介紹生成攻擊樣本的基本原理。Keras內(nèi)置了這個(gè)模型,我們直接使用就可以了。從模型中直接獲取第一層的輸入作為輸入層,最后一層的輸出為輸出層。

然后加載我們攻擊的圖片,比如我們的小豬。這里需要特別強(qiáng)調(diào)的是,NumPy出于性能考慮,默認(rèn)的變量賦值會(huì)引用同樣一份內(nèi)存,所以我們需要使用np.copy手工強(qiáng)制復(fù)制一份圖像數(shù)據(jù)。

為了避免圖像變化過(guò)大,超過(guò)肉眼可以接受的程度,我們需要定義閾值。

下面我們要定義最關(guān)鍵的三個(gè)函數(shù)了,我們定義損失函數(shù)為識(shí)別為烤面包機(jī)的概率,因此我們需要使用梯度上升算法,不斷追求損失函數(shù)的較大化,變量object_type_to_fake定義的就是烤面包機(jī)對(duì)應(yīng)的標(biāo)簽,在InceptionV3中面包機(jī)的標(biāo)簽為859。

object_type_to_fake = 859

有了損失函數(shù)以后,我們就可以通過(guò)Keras的接口獲取到對(duì)應(yīng)的梯度函數(shù)。最后通過(guò)K.function獲取一個(gè)Keras函數(shù)實(shí)例,該函數(shù)的輸入列表分別為輸入層和當(dāng)前是訓(xùn)練模式還是測(cè)試模式的標(biāo)記learning_phase(),輸出列表是損失函數(shù)和梯度。關(guān)于K.function的使用建議閱讀Keras的在線文檔。

下面我們就可以開(kāi)始通過(guò)訓(xùn)練迭代最終獲得我們需要的圖片了,我們認(rèn)為烤面包機(jī)的概率超過(guò)60%即可,所以我們定義損失函數(shù)的值超過(guò)0.6即可以完成訓(xùn)練。我們?cè)O(shè)置使用訓(xùn)練模式,learning_phase()標(biāo)記為0,使用梯度上升的算法迭代獲取新的圖片內(nèi)容。為了不影響肉眼識(shí)別,超過(guò)閾值的部分會(huì)截?cái)?,這部分功能使用NumPy的np.clip即可完成。

我們輸出梯度的內(nèi)容,便于我們理解。

訓(xùn)練完成后,保存圖片即可。這里需要說(shuō)明的是,圖像保存到NumPy變量后,每個(gè)維度都是0-255之間的整數(shù),需要轉(zhuǎn)換成-1到1之間的小數(shù)便于模型處理。保存成圖像的時(shí)候需要再轉(zhuǎn)換回以前的范圍。

在我的Mac本經(jīng)過(guò)接近2個(gè)小時(shí)3070次迭代訓(xùn)練,獲得了新的家豬圖像,但是機(jī)器學(xué)習(xí)模型識(shí)別它為烤面包機(jī)的概率卻達(dá)到了95.61%,我們攻擊成功。在GPU服務(wù)器上大致運(yùn)行5分鐘可以得到一樣的結(jié)果。

總結(jié)

本章介紹了對(duì)抗樣本的基本原理,并以最簡(jiǎn)單的梯度下降算法演示了生成對(duì)抗樣本的基本過(guò)程,大家可能會(huì)因?yàn)樗男嗜绱说投∠笊羁?。后面我們將進(jìn)一步介紹常見(jiàn)的幾種生成對(duì)抗樣本的算法。

參考文獻(xiàn)

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

https://blog.csdn.net/u012223913/article/details/68942581

Ian J. Goodfellow, Jonathon Shlens & Christian Szegedy,EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES,arXiv:1412.6572

歡迎加入本站公開(kāi)興趣群

商業(yè)智能與數(shù)據(jù)分析群

興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)

QQ群:81035754

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/4772.html

相關(guān)文章

  • 王飛躍等:生成式對(duì)抗網(wǎng)絡(luò) GAN 研究進(jìn)展與展望

    摘要:引用格式王坤峰,茍超,段艷杰,林懿倫,鄭心湖,王飛躍生成對(duì)抗網(wǎng)絡(luò)的研究與展望自動(dòng)化學(xué)報(bào),論文作者王坤峰,茍超,段艷杰,林懿倫,鄭心湖,王飛躍摘要生成式對(duì)抗網(wǎng)絡(luò)目前已經(jīng)成為人工智能學(xué)界一個(gè)熱門(mén)的研究方向。本文概括了的研究進(jìn)展并進(jìn)行展望。 3月27日的新智元 2017 年技術(shù)峰會(huì)上,王飛躍教授作為特邀嘉賓將參加本次峰會(huì)的 Panel 環(huán)節(jié),就如何看待中國(guó) AI學(xué)術(shù)界論文數(shù)量多,但大師級(jí)人物少的現(xiàn)...

    xiaokai 評(píng)論0 收藏0
  • 到底什么是生成式對(duì)抗網(wǎng)絡(luò)GAN?

    摘要:很多人可能會(huì)問(wèn)這個(gè)故事和生成式對(duì)抗網(wǎng)絡(luò)有什么關(guān)系其實(shí),只要你能理解這段故事,就可以了解生成式對(duì)抗網(wǎng)絡(luò)的工作原理。 男:哎,你看我給你拍的好不好?女:這是什么鬼,你不能學(xué)學(xué)XXX的構(gòu)圖嗎?男:哦……男:這次你看我拍的行不行?女:你看看你的后期,再看看YYY的后期吧,呵呵男:哦……男:這次好點(diǎn)了吧?女:呵呵,我看你這輩子是學(xué)不會(huì)攝影了……男:這次呢?女:嗯,我拿去當(dāng)頭像了上面這段對(duì)話講述了一位男...

    GitCafe 評(píng)論0 收藏0
  • Google GAN之父 ICCV2017演講:解讀生成對(duì)抗網(wǎng)絡(luò)原理與應(yīng)用

    摘要:但年在機(jī)器學(xué)習(xí)的較高級(jí)大會(huì)上,蘋(píng)果團(tuán)隊(duì)的負(fù)責(zé)人宣布,公司已經(jīng)允許自己的研發(fā)人員對(duì)外公布論文成果。蘋(píng)果第一篇論文一經(jīng)投放,便在年月日,斬獲較佳論文。這項(xiàng)技術(shù)由的和開(kāi)發(fā),使用了生成對(duì)抗網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)方法。 GANs「對(duì)抗生成網(wǎng)絡(luò)之父」Ian Goodfellow 在 ICCV 2017 上的 tutorial 演講是聊他的代表作生成對(duì)抗網(wǎng)絡(luò)(GAN/Generative Adversarial ...

    plokmju88 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<