小樣本點云深度學習庫_合成魯棒的對抗樣本來欺騙深度學習分類器

9b278fa156f602a3342af0553218458f.png

本期一諾sec關注深度學習系統安全問題,推薦一篇來自ICML 2018會議論文Synthesizing Robust Adversarial Examples。論文鏈接http://proceedings.mlr.press/v80/athalye18b.html。

深度模型對于對抗樣本具有高度的脆弱性,這已經是得到大家印證的事實。自從2016年以來,對深度學習模型的對抗樣本攻擊和防護的研究工作越來越多,光掛在Axiv上等待評審或發表的論文不下百篇。研究者中不乏生成對抗網絡(GAN)之父Ian Goodfellow、Dawn Song等機器學習和安全領域的大佬。這篇來自ICML 2018上的工作:“Synthesizing Robust Adversarial Examples”,作者分別是Anish Athalye,Logan Engstrom,Andrew Ilyas和Kevin Kwok,來自MIT和LabSix。

一、論文的引入

所謂對抗樣本,就是對深度學習器產生對抗輸入的樣本:例如對一個圖像,添加一些細小的擾動使得分類器誤分類,但是人肉眼卻不能看出這些擾動,這樣的樣本就是對抗樣本。對抗樣本攻擊就是針對深度學習器生成或者合成靠譜的(誤分類成功率高的)對抗樣本。研究對抗樣本的合成是非常有意義的:一方面找到了對抗樣本就驗證了深度學習器的脆弱性,找到了他的死穴,可以搞些破壞;另一方面為如何防護對抗樣本攻擊提供了攻擊場景和攻擊模型。?論文作者之一Anish Athalye在接受QZ采訪時表示,現在有很多使用機器學習的欺詐檢測系統,如果能故意修改輸入,讓系統無法檢測出欺詐交易,那么就可能造成財務損失。

以圖像分類為例,大部分生成對抗樣本的工作都是直接在已有的圖像上添加噪聲,然后直接送給分類器或者打印出來通過攝像頭送給分類器。有工作證明[1],這樣產生的對抗樣本是不夠魯棒的,也就是說對物理世界分類器的攻擊不管用!原因是什么呢?作者認為,物理世界中的攝像頭是通過多種視角(viewpoint)來采集物體的圖像,并且受到光照、攝像頭本身的噪聲等自然因素的影響,使得很多方法生成的對抗樣本在經過這些影響(相當于小的變換)之后,失去了對抗的屬性。?

針對物理世界深度分類器進行魯棒的對抗樣本攻擊的工作很少,已有的兩個工作也是合成2D的對抗樣本,本質上是通過原始圖像上的仿射變換來“近似”多視角。但是,對物理世界攝像頭看到的3D物體,要想保持合成樣本的對抗屬性,必須經過更復雜的變換:例如3維旋轉。?

針對上述挑戰,該論文提出了一種通用框架,叫變換期望EOT(Expectation Over Transformation),這個框架可以在變換的整個分布上面保持對抗屬性。基于這個框架,該論文專門討論3D對抗樣本的生成方法。最后,作者們真的用3D打印機打印了合成的3D對抗樣本,并成功欺騙了一些深度學習器,證明了這種方式確實靠譜!

二、模型介紹

先來看看原來的對抗樣本合成方式。在深度分類器的白盒假設下(分類器的預測分布77338e6a8176b1f3e47e1c7be0ca6798.png和梯度cd998e23b4e9097ea61cc33db9a84d84.png都可以拿到),嘗試利用原始樣本1c8b2acb3ccb8631843a2e96af26675b.png來構造對抗樣本f123cb96c09a2e90c1066a49e3861ea2.png,可以通過在距離原始圖像為a797fe7e031791ed0570d1bb2abffb08.png的球上,最大化目標類別8d44c9763c9b029d2227610f60bba811.png的條件分布的對數似然函數:

81e5146477c44497f5530e76ccaa866c.png

這種方法構造的對抗樣本已經被證實在物理世界的實驗中是失敗的。本文提出的變換期望EOT方法的主要思想是將物理世界的影響考慮到優化過程中去,而不是僅僅考慮樣本。EOT假設變換函數6547249b3db350dd4b83148e1c3e6095.png采樣自一個已知的分布23e90c0aef5a43506da295932ba83827.png(包括隨機旋轉、平移、加噪等,甚至包括紋理的3D渲染),期望通過變換6547249b3db350dd4b83148e1c3e6095.png作用之后,對抗樣本f123cb96c09a2e90c1066a49e3861ea2.png和原始樣本1c8b2acb3ccb8631843a2e96af26675b.png之間的距離的期望仍然比較小。在這個約束下,去最大化對數似然函數的期望,即:

87d01e39595bed3a7965c3351b28c805.png

具體優化方法采用的是隨機梯度下降法,在每一次迭代中獨立的采樣變換6547249b3db350dd4b83148e1c3e6095.png來近似得到期望值的梯度。

緊接著,作者討論了在EOT框架下合成2D和3D對抗樣本的具體方法。打印一個合成的2D對抗樣本并采集其圖像的過程,等價于一系列隨機變換91e7c1ac3cfbcf57513e51cf06f2679b.png,并且這種變換很容易求導,因此2D場景的問題很容易解決。為了合成3D對抗樣本,論文提取現有3D物體的紋理(色譜)作為1c8b2acb3ccb8631843a2e96af26675b.png,然后選擇一個變換函數a06da8a845af67bb8ef9fd971746be1f.png,最后再渲染這個3D物體。變換函數a06da8a845af67bb8ef9fd971746be1f.png包括渲染、光照、旋轉、平移以及視角映射等。問題是EOT需要a06da8a845af67bb8ef9fd971746be1f.png是可微的,當然這中渲染也可以通過6e7b62116c347e9868d574b25b92ff94.png來代替。在優化的過程中采用了LAB顏色空間中的距離來代替歐式距離,同時采用拉格朗日松弛形式,最終的優化目標是:

540ffa26e9f1c83491de7fbcf51eab2c.png

三、實驗和評價

論文分別針對2D和3D對抗樣本合成做了實驗。攻擊的目標是TensorFlow中的深度分類器Inception-V3,該分類器在ImageNet數據集上top-1的精確度是78%。評價指標采用的是對抗度(adversariality)874cb0acba6e8e1021dff0f8d1fe9c4c.png,即在測試集上生成的對抗樣本有多少成功欺騙了InceptionV3分類器。

c096374c1de93f057b0def111125f4f9.png

第一個結果是合成2D對抗樣本。我們從上圖可以看到,合成樣本的平均對抗度達到了96.4%,效果還是非常不錯的。例如,下圖中第二行是生成的對應第一行的對抗樣本,成功的讓InceptionV3認為是食蟲鳥,而不是波斯貓。

c14c26d1fbdc6671da435447a3768360.png

接下來是3D的情況。下圖可以看到3D對抗樣本也能達到83.4%的平均對抗度,雖然比2D有所下降但還是不錯的。但是這個結果是通過合成的3D對抗樣本,再渲染成2D圖像送給分類器的。

a0fa37dfb9d25bf83231e96afbc9a42d.png

如何說明物理世界的場景中本文提出的方法有效呢?最有意思的亮點來了:作者選取了兩類物體(烏龜和籃球),采用3D打印機分別打印了一些不加噪聲的原始3D物體,以及一部分合成的對抗性的3D物體,然后通過多視角分別提取100張照片送給InceptionV3分類器。結果發現InceptionV3對原始3D物體識別率是100%,但是對對抗樣本攻擊成功的對抗性還是很大的,特別是對烏龜類對抗性達到了82%,具體結果看下表。

34016b8c95562c0a9b0899a0c4f83edc.png

bf53723865994f05d5d664b851433247.png

(圖中紅色方框都是攻擊成功的情景,InceptionV3將“烏龜”錯誤的分到了“步槍”類。)

四、總結

論文提出了一種通用的對抗樣本合成框架,可以有效的應對虛擬世界到物理世界中各種因素的影響,達到了欺騙物理世界中深度學習分類器的目的。當然,筆者認為論文還是有很多局限性的,論文作者也做了一些討論,例如要想使構造的對抗樣本更魯棒,就需要一個更大的給定變換分布,否則就不太管用了;但是另一方面,定變換分布越大,構造的樣本與原始樣本的差距越大,越難構造出“讓人感覺不到”的對抗樣本。總之,本論文不失為一篇針對物理模型的對抗樣本攻擊的佳作。

參考文獻

[1]?Lu, J., Sibai, H., Fabry, E., and Forsyth, D. No need to worry about adversarial examples in object detection in autonomous vehicles. 2017. URL https://arxiv. org/abs/1707.03501.

請關注公眾號一諾sec,獲取更多資訊!

db06abfb620accdbe6f2c25d0aa780f8.png

? ? ? ?一諾sec公眾號由衷歡迎有興趣的朋友積極投稿,展示才華,擴大自己及其團隊的影響力。來稿以網絡安全研究方面的內容為首選,各種科研相關的新聞、信息、評論,甚至文學作品,都非常歡迎。

? ? ? ?歡迎將您的來稿或者建議發送至:

e_novel_security@126.com

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/542826.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542826.shtml
英文地址,請注明出處:http://en.pswp.cn/news/542826.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

stl字符串去除空格_在列表中推送字符并在C ++ STL中將它們打印為空格

stl字符串去除空格In this example, we are declaring a character list and pushing the characters from A to Z using a for loop and push_back() function then printing the value of the vector separated by space. 在此示例中,我們聲明了一個字符列表&…

java數據類型_JAVA基礎篇(數據類型)

首先請大家想想這幾個問題:1.java數據類型是什么?2.Java數據類型有什么用?上一節(JAVA基礎篇(函數))有個add函數,里面有兩個int類型,int類型就是整數的意思,這…

SharePoint CAML In Action——Part I

閱讀目錄 CAML In Action接下來在SharePoint中&#xff0c;我們經常要對List進行操作&#xff0c;比如要從List中取出相應的ListItem&#xff0c;利用CAML是個好辦法。在沒了解CAML之前&#xff0c;我是這樣取數據的&#xff1a; MyList.Items.Cast<SPListItem>().ToList…

地圖統計_博客 城市訪問量統計并且通過Echarts+百度地圖展示

本篇講解一下 如何在Vue 中使用 Echarts 百度地圖 統計 博客訪問量 并且通過QQWry 解析 ip 地址 利用Echarts 展示出來效果圖如下&#xff1a;1.純真Ip地址庫 QQWry這是我在github上找的 java版本的 解析 qqwry的1.1 maven 引入 qqwry<dependency> <grou…

修改console緩存大小_更改緩存的行大小將如何影響其他參數?

修改console緩存大小Prerequisites: Memory mapping and its types 先決條件&#xff1a; 內存映射及其類型 While designing a cache system of a PC, the size of cache lines is an important parameter. 在設計PC的緩存系統時&#xff0c;緩存行的大小是重要的參數。 In …

win10必須禁用的服務_Win10系統中這3個無用的設置,奉勸你還是早點關閉吧!

在PC端所有的操作系統中&#xff0c;占據市場份額最大的莫過于微軟發布的windows系統。其中最經典的莫過于XP和win7&#xff0c;無奈微軟已經停更了這兩個操作系統&#xff0c;所以為了電腦的安全著想&#xff0c;很多人都直接升級更新至最新版的win10系統&#xff0c;目前win1…

Android 布局練習

要求&#xff1a;使用多種布局完成以下練習。 1.要求效果 完成效果 代碼&#xff1a; <?xml version"1.0" encoding"utf-8"?> <…

有危害嗎_涂料漆對身體有害嗎?涂料漆危害怎么預防

目前很多人都會通過涂料漆來進行墻面裝飾&#xff0c;用它來對墻面進行裝飾是可以馬上的改善墻壁的狀態&#xff0c;但有些人也擔心它會對身體有害&#xff0c;涂料漆對身體有害嗎?由于擔心涂料漆會給健康帶來危害&#xff0c;很多人都想要預防&#xff0c;那涂料漆危害怎么預…

小寫大寫轉換_小寫到大寫轉換器JavaScript工具| 網絡應用項目

小寫大寫轉換Hi! At times, beginners always find it hard getting the application of the theory they learn in programming or a particular language. 嗨&#xff01; 有時&#xff0c;初學者總是很??難在編程或特定語言中應用他們學到的理論。 In this article, well…

inventor扳手制作視頻_弱電工程視頻監控系統施工方案,可作施工組織設計

1 工程概況 1.1 編制《工程總體實施方案》 主要包括&#xff1a;結合高清監控系統設計方案作配套的深化設計&#xff0c;編制高清監控系統實施計劃&#xff0c;并提出相關的配合要求。根據總體方案&#xff0c;對高清監控系統工程的技術設計作必要的補充。并提出相關的實施技術…

python print與input

python基礎語法1print()函數input()函數print()函數 不用引號&#xff0c;函數內為數字或數字運算 單引號&#xff0c;整條語句結構&#xff0c;’\n’ 雙引號&#xff0c;函數結構 三引號&#xff0c;對內容進行換行輸出 print("let is go")#函數結構 print(let i…

lol最克制諾手的英雄_LOL:究竟有沒有完美克制諾手的英雄?時光上單或可一戰?...

小伙伴們大家好&#xff0c;我是小數點。諾克薩斯之手德萊厄斯&#xff0c;他可以說是每一位上單玩家的噩夢了&#xff0c;因為喜歡玩諾手的人特別多&#xff0c;而會玩的諾手卻一般都在對面。要知道諾手這樣英雄拿到優勢兇起來&#xff0c;你就沒得打了&#xff0c;就算在塔下…

Oracle 創建表空間,用戶,賦值(簡裝)

一&#xff0c;1.Oracle 創建表空間&#xff0c;用戶&#xff0c;賦值&#xff08;簡裝&#xff09;C:\Documents and Settings\Administrator>sqlplus /nologSQL> conn /as sysdba2.刪除用戶drop user username cascade;3.創建自增表表空間SQL> create tablespace 表…

編程語言難度排名_編程語言TOP10!該如何選擇適合自己的?

本文轉載自公眾號“讀芯術”(ID&#xff1a;AI_Discovery)編程領域大約有700種代碼語言。理解編程語言的重要性以及其如何影響需要執行的具體任務至關重要。一篇文章窮盡700 種語言不現實&#xff0c;也沒有意義。因此&#xff0c;筆者挑選出了時下最熱門的原因&#xff0c;在本…

測試私有方法 重構_一個全棧工程師重構之路:中小公司 DevOps 落地實踐

為了這篇文章&#xff0c;我前后寫了將近十篇文章鋪墊&#xff0c;才將這篇整體重構思想引出。背景先說下背景&#xff0c;我們是一家小公司&#xff0c;雖然打著做產品的旗幟&#xff0c;但是每個客戶都有大量的個性化功能&#xff0c;這里指各個客戶的java端、Android端、ios…

python變量 數據類型 列表 元組 字典

python基礎語法2變量數據類型與類型轉換列表添加列表元素修改元素刪除列表元素組織列表創建數值列表操作列表元組元組轉列表字典創建字典列表取值字典刪除增加修改變量 變量命名要求&#xff1a; 1.只能是一個詞 2.只能包含字母、數字、下劃線 3.不能用數字開頭 變量定義位置不…

HDU 5777 domino

貪心一下。有k次機會&#xff0c;也就是那些數字中&#xff0c;最大的k-1可以不選擇。答案為&#xff1a;sum{a[i]}-sum{最大的k-1個a[i]}n。注意&#xff1a;k>n的時候直接輸出n。 #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio&…

puppeteer執行js_使用Node.js和Puppeteer與表單和網頁進行交互– 2

puppeteer執行jsHi guys! Today lets look at another powerful function of the puppeteer API using Node.js part 2. 嗨&#xff0c;大家好&#xff01; 今天&#xff0c;讓我們看看使用Node.js第2部分的puppeteer API的另一個強大功能。 In the first part of this sectio…

好用的平板電腦_小熊分享|這五款平板電腦的性價比絕了!

【葉紫網】獨樂樂不如眾樂樂&#xff0c;點擊上方頭像并添加關注&#xff0c;與葉紫科技小熊一起探索科技的奧秘。要說當代年輕人的消費觀&#xff0c;我們也是說要該花花&#xff0c;該省省&#xff0c;像現在的科技產品更新換代的速度&#xff0c;就算我們的荷包相當的鼓&…

python if語句 for語句 while語句

python基礎語法3if語句for循環while循環else語句退出循環if語句 執行條件判斷&#xff0c;符合執行if內語句&#xff0c;否則執行elif或者else。 if、elif、else都要接冒號&#xff0c;注意縮進 各級條件互斥 后面的條件可以接列表&#xff0c;表示或關系 contribution860 if…