《秀璋帶你讀論文》系列主要是督促自己閱讀優秀論文及聽取學術講座,並分享給大家,希望您喜歡。由於作者的英文水平和學術能力不高,需要不斷提升,所以還請大家批評指正,非常歡迎大家給我留言評論,學術路上期待與您前行,加油~
AI技術蓬勃發展,無論是金融服務、線下生活、還是醫療健康都有AI的影子,那保護好這些AI系統的安全是非常必要也是非常重要的。目前,AI安全是一個非常新的領域,是學界、業界都共同關注的熱門話題,本論壇將邀請AI安全方面的專家,分享交流智慧時代的功守道,推動和引領業界在AI安全領域的發展。
本次論壇的題目為「AI安全-智慧時代的攻守道」,其中武漢大學王騫院長分享了語音系統的對抗性攻防,浙江大學紀守領研究員分享了NLP中的安全,浙江大學秦湛研究員分享了深度學習中的資料安全新型攻防,來自螞蟻集團的宗志遠老師分享了AI安全對抗防禦體系,任奎院長分享了AI安全白皮書。本文主要講解NLP中的AI安全和白皮書相關知識,希望對您有所幫助。這些大佬是真的值得我們去學習,獻上小弟的膝蓋~fighting!
PS:順便問一句,你們喜歡這種會議講座方式的分享嗎?
擔心效果不好,如果不好我就不分享和總結類似的會議知識了,歡迎評論給我留言。
前文推薦:
[秀璋帶你讀論文] (01) 拿什麼來拯救我的拖延症?初學者如何提升程式設計興趣及LATEX入門詳解
[娜璋帶你讀論文] (02) SP2019-Neural Cleanse: Identifying and Mitigating Backdoor Attacks in DNN
[娜璋帶你讀論文] (03) 清華張超老師 - GreyOne: Discover Vulnerabilities with Data Flow Sensitive Fuzzing
[娜璋帶你讀論文] (04) 人工智慧真的安全嗎?浙大團隊外灘大會分享AI對抗樣本技術
基於機器學習的惡意程式碼檢測技術詳解
隨著人工智慧日益發展,自動駕駛、臉部辨識、語音識別等技術被廣泛應用,同時帶來的是嚴峻的AI安全問題。常見的安全問題包括:
當今的AI安全非常重視四種效能,包括:
針對這四種效能的AI攻擊層出不窮,比如推斷攻擊、對抗樣本、投毒攻擊、模型竊取等。
因此,任奎院長帶來了《AI安全白皮書》的分享。
浙江大學和螞蟻集團合作,他們調研了近年來發表在安全、人工智慧等領域國際會議與期刊上的300餘篇攻防技術研究成果,聚焦模型、資料、承載三個維度的安全威脅與挑戰,梳理了AI安全的攻擊與防禦技術。根據真實場景中AI技術面臨的安全問題,總結提出AI應用系統的一站式安全解決方案(AISDL),並共同推出了《AI安全白皮書》。整個框架如下圖所示:
他們經過梳理,將AI技術面臨的威脅歸為三大類,分別是:
在介紹三種安全問題之前,作者首先給大家普及下什麼是對抗樣本?
對抗樣本指的是一個經過微小調整就可以讓機器學習演演算法輸出錯誤結果的輸入樣本。在影象識別中,可以理解為原來被一個折積神經網路(CNN)分類為一個類(比如「熊貓」)的圖片,經過非常細微甚至人眼無法察覺的改動後,突然被誤分成另一個類(比如「長臂猿」)。再比如無人駕駛的模型如果被攻擊,Stop標誌可能被汽車識別為直行、轉彎。
對抗樣本的經典流程如下圖所示——GU等人提出的BadNets。
它通過惡意(poisoning)訓練資料集來注入後門,具體如下:
由於攻擊者可以完全存取訓練過程,所以攻擊者可以改變訓練的結構,例如,學習速率、修改影象的比率等,從而使被後門攻擊的DNN在乾淨和對抗性的輸入上都有良好的表現。BadNets顯示了超過99%的攻擊成功率(對抗性輸入被錯誤分類的百分比),而且不影響MNIST中的模型效能。下圖右下角的觸發器(後門)導致了神經網路訓練學習錯誤地類別,將Label5和Label7預測為Label4。
PS:在下一篇文章中我們會詳細講解AI資料安全和AI語音安全論文,這篇文章主要針對NLP文字的對抗樣本分享,望您喜歡!
(1) 模型完整性威脅=>資料投毒攻擊
攻擊者在正常訓練集中加入少量的毒化資料,破壞模型完整性,操縱AI判斷結果。模型偏移會使模型對好壞輸入的分類發生偏移,降低模型的準確率。同時,後門攻擊不影響模型的正常使用,只在攻擊者設定的特殊場景使模型出現錯誤。
(2) 模型魯棒性威脅=>對抗性樣本攻擊
攻擊者在模型測試階段,向輸入樣本加入對抗擾動,破壞模型魯棒性,操縱AI判斷結果。
深度學習模型通常都存在模型魯棒性缺乏的問題,一方面由於環境因素多變,包括AI模型在真實使用過程中表現不夠穩定,受光照強度、視角角度距離、影象仿射變換、影象解析度等影響,從而導致訓練資料難以覆蓋現實場景的全部情況。另一方面模型的可解釋性不足,深度學習模型是一個黑箱,模型引數數量巨大、結構複雜,沒有惡意攻擊的情況下,可能出現預期之外的安全隱患,阻礙AI技術在醫療、交通等安全敏感性高的場景下使用。
任老師他們團隊的相關工作包括分散式對抗攻擊和麵向三維點雲的對抗攻擊等。
AI資料安全簡單來說就是通過構造特定資料集,結合模型預測的結果來獲取深度學習模型的引數或資料。如下圖所示,通過模型逆向攻擊重建影象,深度學習模型洩露了訓練資料中的敏感資訊。
AI資料安全包括模型引數洩露和訓練資料洩露,具體如下圖所示。模型引數洩露攻擊方法包括方程求解攻擊、基於Meta-model的模型竊取、模型替代攻擊;訓練資料洩露包括輸出向量洩露和梯度更新洩露,方法包括成員推斷攻擊、模型逆向攻擊、分散式模型梯度攻擊。
任老師他們做的相關工作包括:
(1) 硬體裝置安全問題
(2) 系統與軟體安全問題
(1) 模型安全性增強
面向模型完整性威脅的防禦
面向模型魯棒性威脅的防禦
(2) 模型安全性增強
(3) 系統安全性防禦
硬體安全保護
軟體安全保護
最後他們和螞蟻集團提出一種AI模型安全開發聲生命週期——AI SDL,分階段引入安全和隱私保護原則,實現有安全保證的AI開發過程。
最後總結:
在影象領域和語音領域都存在很多對抗樣本攻擊(Adversarial Attack),比如一段「How are you」的語音增加噪聲被識別成「Open the door」,再如智慧音響中增加噪聲發起語音攻擊等等。
那麼,在文字領域也存在對抗樣本攻擊嗎?自然語言處理(Natural Language Processing,NLP)的機器學習服務(MLaaS)是否也容易受到對抗樣本攻擊呢?
首先,給大家普及下自然語言處理。常見的應用包括:
本篇部落格主要介紹針對情感分類的對抗文字,所以介紹下情感分類的基礎。深度學習在處理文字時,NLP通常要將文字進行分詞、資料淨化、詞頻計算,然後轉換成對應的詞向量或TF-IDF矩陣,再進行相似度計算或文字分類,當某種情感(積極\消極)的特徵詞出現較多,則預測為該類情感。那麼,能否讓深度學習模型總是預測錯誤呢?
NLP的對抗樣本攻擊和影象或語音的對抗樣本存在很大的差異性,具體區別如下:
由於圖片和文字資料內在的不同,用於影象的對抗攻擊方法無法直接應用與文字資料上。首先,影象資料(例如畫素值)是連續的,但文字資料是離散的。其次,僅僅對畫素值進行微小的改變就可以造成影象資料的擾動,而且這種擾動是很難被人眼察覺的。但是對於文字的對抗攻擊中,小的擾動很容易被察覺,但人類同樣能「猜出」本來表達的意義。因此 NLP 模型需要對可辨識的特徵魯棒,而不像視覺只需要對「不太重要」的特徵魯棒。
DeepWordBug
下圖是DeepWordBug的深度網路攻擊範例(選自 arXiv:1902.07285),展示了文字對抗樣本的基本流程。正常深度學習預測的情感為positive,但修改某些關鍵詞後(place
heart),它的情感分類結果為negative。
與影象領域一樣,有進攻就會有防禦,目前也有很多研究嘗試構建更魯棒的自然語言處理模型。推薦大家閱讀CMU的一篇對抗性拼寫錯誤論文(arXiv:1905.11268)中,研究者通過移除、新增或調序單詞內部的字元,以構建更穩健的文字分類模型。這些增減或調序都是一種擾動,就像人類也很可能出現這些筆誤一樣。通過這些擾動,模型能學會如何處理錯別字,從而不至於對分類結果產生影響。
下面開始介紹紀老師他們開展的工作。
TextBugger: Generating Adversarial Text Against Real-world Applications
這篇論文發表在NDSS 2019,主要提出了生成文字對抗樣本的模型TextBugger,用於生成文字對抗樣本。其優勢如下:
原文地址:
文字對抗在應用中越來越重要,而影象對抗中的方法不能直接用於文字。之前的對抗樣本生成模型有著下述的缺點:
本文提出了一個新框架TextBugger,可生成黑箱和白箱場景下的保持樣本原意的對抗樣本。在白箱場景下,可以通過計算雅各比矩陣來找到句子中的關鍵詞;在黑箱場景下,可以先找到最重要的句子,再使用一個評分函數來尋找句子中的關鍵詞。在真實世界的分類器中使用了對抗樣本,取得了不錯的效果。具體貢獻包括:
具體實驗環境如下圖所示,資料集為IMDB和Rotten Tomatoes Movie Reviews資料集,都是對影評資料進行情感分析的資料集。目標模型為:
基線演演算法為:
PS:該部分參考「人帥也要多讀書」老師的理解。
對抗攻擊分類
對抗攻擊的分類有很多種,從攻擊環境來說,可以分為黑盒攻擊、白盒攻擊或灰盒攻擊.
- 黑盒攻擊:攻擊者對攻擊模型的內部結構、訓練引數、防禦方法等一無所知,只能通過輸出與模型進行互動。
- 白盒攻擊:與黑盒模型相反,攻擊者對模型一切都可以掌握。目前大多數攻擊演演算法都是白盒攻擊。
- 灰盒攻擊:介於黑盒攻擊和白盒攻擊之間,僅僅瞭解模型的一部分。例如僅僅拿到模型的輸出概率,或者只知道模型結構,但不知道引數。
從攻擊的目的來說,可以分為有目標攻擊和無目標攻擊。
- 無目標攻擊:以圖片分類為例,攻擊者只需要讓目標模型對樣本分類錯誤即可,但並不指定分類錯成哪一類。
- 有目標攻擊:攻擊者指定某一類,使得目標模型不僅對樣本分類錯誤並且需要錯成指定的類別。從難度上來說,有目標攻擊的實現要難於無目標攻擊。
白盒攻擊:通過雅各比矩陣找到最重要的單詞,再生成五種型別的bug,根據置信度找到最佳的那一個。TextBugger整個框架如下圖所示。
白盒攻擊通過雅可比矩陣找到最重要的單詞,演演算法流程如下:
作者發現在一些詞嵌入模型中(如word2vec),「worst」和「better」等語意相反的詞在文字中具有高度的句法相似性,因此「better」被認為是「worst」的最近鄰。以上顯然是不合理的,很容易被人察覺。因此使用了語意保留技術,即將該單詞替換為上下文感知的單詞向量空間中的top-k近鄰。使用斯坦福提供的預先訓練好的 GloVe模型 進行單詞嵌入,並設定topk為5,從而保證鄰居在語意上與原來的鄰居相似。
TextBugger提出了五種對抗樣本生成方法,如下圖所示:
將使用候選詞生成的對抗樣本輸入模型,得到對應類別的置信度,選取讓置信度下降最大的詞。如果替換掉單詞後的對抗樣本與原樣本的語意相似度大於閾值,對抗樣本生成成功。如果未大於閾值,則選取下一個單詞進行修改。
在黑盒場景下,沒有梯度的指示,所以首先找最重要的句子,然後通過打分函數找到最重要的單詞。具體攻擊分為三個步驟:
主要使用編輯距離、傑卡德相似係數、歐氏距離和語意相似度進行評估。下表展示了論文中方法在白箱環境和黑箱環境下的表現,可以看出與之前的方法相比有很大的優勢。
下圖展示了對抗文字中的重要單詞。根據演演算法攻擊單詞的頻率,就可以知道對於某一類別影響最大的單詞,比如「bad」, 「awful」, 「stupid」, 「worst」, 「terrible」這些詞就是消極類別中的關鍵詞。
下圖是論文演演算法產生的對抗樣本範例,通過簡單的單詞級別的攻擊對分類關鍵詞進行了處理,進而達到了攻擊的效果,可以看到目標類別和攻擊後的類別差別很大。具體修改比如:
實驗資料表明,檔案的長度對於攻擊成功率影響不大,但更長的文字對於錯誤分類的置信度會下降。檔案長度越長,攻擊所需時長也就更長,這在直觀上較好理解。
總結
本論文演演算法的特點總結如下:首先,演演算法同時使用了字母級別和單詞級別的擾動;其次,論文評估了演演算法的效率;最後,論文使用演演算法在眾多線上平臺上進行了實驗,證明了演演算法的普適性和魯棒性。同時,現存的防禦方法只集中在的影象領域,而在文字領域比較少,對抗訓練的方法也只應用於提高分類器的準確性而非防禦對抗樣本。
目前看到的很多論文都是介紹英文的對抗文字攻擊,但是中文同樣存在,並且由於中文語意和分詞,其攻擊和防禦難度更大,接下來紀老師他們分享了正在開展的一個工作。但由於這部分介紹很快,這裡僅放出當時拍攝的相關PPT,請大家下來進行研究,我感覺word2vec語意知識能做一些事情。
隨著對抗樣本發展,火星文字越來越多,它們一定程度上能夠繞過我們新聞平臺、社群網路、情感模型,比如「微信」修改為「薇心」、「玥發叄仟」等詞語。中文的對抗文字某種程度上難度更高,那麼怎麼解決呢?
紀老師他們團隊提出了CTbugger(Adversarial Chinese Text),其框架如下圖所示,通過對深度學習模型進行惡意文字攻擊從而生成對應的中文對抗文字。
另一塊工作是TextShield,其框架如下圖所示:
最後給出總結的相關文獻,大家可以去了解學習。真的非常感謝所有老師的分享,學到很多知識,也意識到自己的不足。我自己也需要思考一些問題:
學術或許是需要天賦的,這些大佬真值得我們學習,頂會論文要堅持看,科研實驗不能間斷。同時自己會繼續努力,爭取靠後天努力來彌補這些鴻溝,更重要的是享受這種奮鬥的過程,加油!最後感謝老師給予的機會,雖然自己的技術和科研都很菜,安全也非常難,但還是得苦心智,勞筋骨,餓體膚。感恩親人的支援,也享受這個奮鬥的過程。月是故鄉圓,佳節倍思親。
最後給出「山竹小果」老師歸納的對抗樣本相關論文:
(1) 文字攻擊與防禦的論文概述
(2) 黑盒攻擊
(3) 白盒攻擊
(4) 同時探討黑盒和白盒攻擊
(5) 對抗防禦
(6) 對文字攻擊和防禦研究提出新的評價方法
參考文獻:
感謝這些大佬和老師們的分享和總結,秀璋受益匪淺,再次感激。
[1] AI安全 - 智慧時代的攻守道
[2] https://arxiv.org/abs/1812.05271
[3] (強烈推薦)NLP中的對抗樣本 - 山竹小果
[4] TextBugger:針對真實應用生成對抗文字 - 人帥也要多讀書
[5] 論文閱讀 | TextBugger: Generating Adversarial Text Against Real-world Applications
[6] 對抗攻擊概念介紹 - 機器學習安全小白
[7] Li J, Ji S, Du T, et al. TextBugger: Generating Adversarial Text Against Real-world Applications[J]. arXiv: Cryptography and Security, 2018.
(By:Eastmount 2020-10-18 晚上10點 http://blog.csdn.net/eastmount/ )