當前位置:
首頁 > 知識 > Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

更多深度文章,請關注云計算頻道:https://yq.aliyun.com/cloud

NIPS全稱為神經信息處理系統大會,是關於機器學習領域的頂級會議,也是令眾多學者振奮的學術盛會。該會議固定在每年的12月舉行,由NIPS基金會主辦。 但今年年底舉辦的NIPS將新增一個議程,NIPS 2017Competition Track,從23個候選提案中選擇了五個數據驅動的比賽項目。近日谷歌大腦研究員Ian Goodfellow在社媒平台中強烈推薦了由他組織的AdversarialAttacks and Defences(對抗攻擊防禦)比賽。為什麼組織這樣一個比賽呢,這是因為當前圖像分類器非常容易被精心設計的對抗圖像所欺騙,這些圖像給原始圖像及正確分類圖像添加了微小變化,這些圖像幾乎不容易被人眼察覺,但會導致圖像分類器錯誤地對錯誤的分類充滿自信。

這項比賽是在kaggle平台上進行,關於kaggle競賽的介紹與相關競賽技巧可以參考博主的以下幾篇博客:

Kaggle老手領你入門梯度提升——梯度提升兩三事

乾貨|大神教你如何參加kaggle比賽——根據CT掃描圖預測肺癌

Kaggle官網上有三個相關的對抗學習挑戰,如圖1所示

下面具體來說下這三個相關比賽的側重點:

  • 1、Non Targeted Adversarial Attack,競賽者所提交的系統需要對任何類別的圖像進行處理,使得某個通用機器學習分類器無法識別。

  • 2、Targeted Adversarial Attack,競賽者所提交的系統需要對給定的圖像進行處理,使得某個通用機器學習分類器無法識別。

  • 3、Defense Against Adversarial Attack,競賽者需要構建一個機器學習分類器,擁有足夠的魯棒性使之能正確鑒別對抗性的圖像。

根據前兩個挑戰的對抗性攻擊,防禦挑戰的得分取決於分類器的好壞,另外前兩個挑戰的得分是基於在第三個挑戰中對抗性攻擊的伎倆有多好。

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

下面,我們將通過一些代碼示例來生成非目標和目標的對抗圖像,然後看看Inception V3模型是如何對它們進行分類。關於googleNet Inception V3介紹大家可以上網找找相關教程或博客,這裡就不一一講述。

註:下面許多的代碼是基於Alex例子,基於tensorflow實現。

開始時,我們導入一些必要的庫並定義一些參數/有用的函數

import os

接下來,我們將在元數據中載入一批圖像。

categories = pd.read_csv("../input/nips-2017-adversarial-learning-development-set/categories.csv")image_classes = pd.read_csv("../input/nips-2017-adversarial-learning-development-set/images.csv")image_iterator = load_images(input_dir, batch_shape)# get first batch of imagesfilenames, images = next(image_iterator)image_metadata = pd.DataFrame({"ImageId": [f[:-4] for f in filenames]}).merge(image_classes,

下面是開發集中的一個圖像示例,熊貓是不是很可愛?

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

生成無標籤對抗圖像

以下代碼在tensorflow上運行並生成非目標對抗圖像,這些非目標圖像是為了欺騙原始分類器而設計的,但這些圖像沒有固定的類別。

tf.logging.set_verbosity(tf.logging.INFO)with tf.Graph().as_default():

INFO:tensorflow:Restoring parameters from ../input/inception-v3/inception_v3.ckpt

左邊是原始圖像,右邊是非目標對抗圖像。它們看起來很相似,很明顯都是一條小船。

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

生成有標籤對抗圖像

以下代碼在tensorflow上運行並生成目標對抗圖像,在每種情況下,都有一個特定的目標類別,這些類別是試圖欺騙圖像分類器輸出的。

注意:該代碼目前不工作,它只是產生對抗圖像,並且這些圖片而沒有正確的目標。

all_images_target_class = {image_metadata["ImageId"][i]+".png": image_metadata["TargetClass"][i]

INFO:tensorflow:Restoring parameters from ../input/inception-v3/inception_v3.ckpt

左邊是原始圖像,右邊是目標對抗圖像。同樣可以發現它們看起來很相似,很明顯都是蝴蝶。

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

分類對抗圖像

接下來,我們將看到,當把這些生成的對抗圖像送入原始分類器運行時會發生些什麼呢,答案是目標對抗圖像與原始圖像的類別判定完全不同。

with tf.Graph().as_default():

INFO:tensorflow:Restoring parameters from ../input/inception-v3/inception_v3.ckpt

下面我們將展示這個批次中的所有圖像以及它們的分類的類別。每個集合中的左圖是原始圖像,中間圖是非目標對抗形象,右圖是目標對抗圖像。

for i in range(len(images)):

原圖(左圖)

預測類別:大熊貓

真實類別:大熊貓

非目標對抗圖片(中間圖)

預測類別:薩摩耶犬類

目標對抗圖片(右圖)

預測類別:土狗

真實類別:肉餅

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

原圖(左圖)

預測類別:小船

真實類別:小船

非目標對抗圖片(中間圖)

預測類別:堤壩

目標對抗圖片(右圖)

預測類別:堤壩

真實類別:翅膀

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

原圖(左圖)

預測類別:灰蝶

真實類別:灰蝶

非目標對抗圖片(中間圖)

預測類別:小環蝴蝶

目標對抗圖片(右圖)

預測類別:小環蝴蝶

真實類別:西班牙可卡犬

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

原圖(左圖)

預測類別:灰蝶

真實類別:灰蝶

非目標對抗圖片(中間圖)

預測類別:河馬

目標對抗圖片(右圖)

預測類別:河馬

真實類別:啄木鳥

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

原圖(左圖)

預測類別:美洲黑鴨

真實類別:美洲黑鴨

非目標對抗圖片(中間圖)

預測類別:短尾鸚鵡

目標對抗圖片(右圖)

預測類別:短尾鸚鵡

真實類別:泉水

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

原圖(左圖)

預測類別:短尾鸚鵡

真實類別:短尾鸚鵡

非目標對抗圖片(中間圖)

預測類別:籃球

目標對抗圖片(右圖)

預測類別:籃球

真實類別:單峰駱駝

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

原圖(左圖)

預測類別:球員

真實類別:球員

非目標對抗圖片(中間圖)

預測類別:鴕鳥

目標對抗圖片(右圖)

預測類別:鴕鳥

真實類別:金庫

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

原圖(左圖)

預測類別:鴕鳥

真實類別:鴕鳥

非目標對抗圖片(中間圖)

預測類別:日晷

目標對抗圖片(右圖)

預測類別:日晷

真實類別:海上鑽井平台

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

原圖(左圖)

預測類別:加農炮

真實類別:加農炮

非目標對抗圖片(中間圖)

預測類別:虎甲蟲

目標對抗圖片(右圖)

預測類別:虎甲蟲

真實類別:特濃咖啡機

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

原圖(左圖)

預測類別:長角天牛

真實類別:長角天牛

非目標對抗圖片(中間圖)

預測類別:特濃咖啡

目標對抗圖片(右圖)

預測類別:特濃咖啡

真實類別:髓內釘

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

原圖(左圖)

預測類別:特濃咖啡

真實類別:特濃咖啡

非目標對抗圖片(中間圖)

預測類別:淋浴帽

目標對抗圖片(右圖)

預測類別:淋浴帽

真實類別:濾盆

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

原圖(左圖)

預測類別:雪橇

真實類別:雪橇

非目標對抗圖片(中間圖)

預測類別:玫瑰果

目標對抗圖片(右圖)

預測類別:蜜蜂

真實類別:麵包店

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

原圖(左圖)

預測類別:大鋼琴

真實類別:大鋼琴

非目標對抗圖片(中間圖)

預測類別:書桌

目標對抗圖片(右圖)

預測類別:餐桌

真實類別:信箱

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

原圖(左圖)

預測類別:間歇噴泉

真實類別:間歇噴泉

非目標對抗圖片(中間圖)

預測類別:沉船

目標對抗圖片(右圖)

預測類別:海狸

真實類別:哈巴狗

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

原圖(左圖)

預測類別:圖書館

真實類別:圖書館

非目標對抗圖片(中間圖)

預測類別:書店

目標對抗圖片(右圖)

預測類別:書店

真實類別:安全別針

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

原圖(左圖)

預測類別:松鴨

真實類別:松鴨

非目標對抗圖片(中間圖)

預測類別:松鴨

目標對抗圖片(右圖)

預測類別:黃雀

真實類別:針鼴

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

作者信息

Ben Hamner:Kaggle聯合創始人與首席技術官。

Kaggle首席技術官發布——(Kaggle)NIPS 2017對抗學習挑戰賽起步指南

Linkedin:http://www.linkedin.com/in/ben-hamner-98759712/

Github: https://github.com/benhamner

本文由北郵@愛可可-愛生活老師推薦,阿里云云棲社區組織翻譯。

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

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


請您繼續閱讀更多來自 雲棲社區 的精彩文章:

在篩選試管受精胚胎方面,AI比胚胎學家更靠譜
大神手把手教你:(Python)序列數據的One Hot編碼
阿里雲首推音樂變速短視頻SDK,上線抖音 freestyle只需1步
錢盾率先提出的「全流程屏障」究竟是怎樣的一種能力?
開發機器學習系統的一個新途徑:Certigrad,隨機計算圖優化系統

TAG:雲棲社區 |

您可能感興趣

16歲Kaggle老兵奪冠Kaggle地標檢索挑戰賽!
Kaggle 新賽:第二屆 YouTube-8M 視頻理解挑戰賽
AR環境監測工具Clean A/R獲Unity for Humanity 2019挑戰賽最高獎
2018 AIIDE星際爭霸AI挑戰賽亞軍CherryPi開源TorchCraftAI
多Agent 學習 AI 炸彈人遊戲挑戰賽——Playground
Image Segmentation:Konica Minolta 的圖像分割異常挑戰賽
沛納海推出三款全新Luminor Yachts Challenge帆船挑戰賽特別版計時碼錶
首屆DIY Robocars KuaiKai無人駕駛全球挑戰賽開賽
美圖參與承辦「AI Challenger2018全球AI挑戰賽」 首設短視頻實時分類賽道
Justin Bieber 將與吳亦凡同隊出戰 2018 NBA 全明星周末名人挑戰賽
蘭博基尼Super Trofeo亞洲挑戰賽開賽 SuperVOOC超級閃充備受關注
RoboMaster AI 挑戰賽科研思路淺談
FFF Racing Team贏得蘭博基尼亞洲挑戰賽2018賽季第二回合冠軍
Jung Seunga參加2018亞洲網紅超級挑戰賽韓國賽區
OPPO Find X蘭?博基尼閃充展實力,super trofeo超級挑戰賽進行
2018年法拉利亞太挑戰賽 Danindro在墨爾本取得首勝,Wong和Moon分獲各組冠軍
世界智能駕駛挑戰賽:AutoCore受邀代表Autoware Foundation參賽
NeurIPS 2018 AutoML挑戰賽落幕:印度團隊第一,清華第二
2019 Kaggle Freesound 音頻標註挑戰賽結果出爐,這是一份排名前 2 %的解決方案
Find X蘭博基尼Super Trofeo挑戰賽上受歡迎