CCS2018 最佳論文。 主題是安全領域中機器學習模型的解釋性,使用的是黑盒攻擊的方法。
0x0000 摘要
0x0001 引言
稍微介紹一下引言部分
引言部分首先介紹了目前深度學習解釋領域的基本現狀,很多都是圍繞着CNN去工作的的,所以對安全領域的深度學習解釋模型意義不大,1.數據類型不一樣2.需要解釋的粒度不一樣(圖像像素可以允許一定的誤差,但是安全領域會失之毫厘,差之千里)
然后介紹了本文提出的一個模型與先前的研究不同,是要捕捉決策邊界的非線性特性和特征的依賴性。簡要介紹了融合lasso方法可以捕捉特征的依賴性
介紹了在評估中使用的方法和LEMNA架構得到的解釋可以幫助分析人員獲得更多的有價值信息。
0x0002 可解釋的機器學習
這一部分主要討論可解釋機器學習的背景及現有的相關技術。基於此,將在第三部分討論應用深度學習模型的重要安全應用,並且討論現有的解釋技術為什么對這些安全應用不適用。
問題定義
可解釋的機器學習尋求為分類結果提供可以理解的解釋。更具體地,給定一個輸入x和分類器C,分類器在做測試時將會為輸入x分配一個標簽y。解釋技術就是旨在描繪實例x為什么被分類為y。這經常是指識別出一組對分類結果起關鍵作用的重要特征。如果這些選擇的特征對人類分析師來說是可解釋的,那么這些特征能夠提升“解釋性”。下圖顯示了圖片分類與情感分析的例子。分類器決策可以被這些選擇的特征所解釋(例如,高亮的像素和關鍵詞)
本文主要管組深度神經網絡的安全應用可解釋性。到目前為止,大多數的現存解釋方法是針對圖片分析和NLP設計的。我們將這些方法分為白盒和黑盒,下面將描述他們如何起作用。
白盒解釋方法
大多數的現存解釋技術工作是基於白盒設定的,在這里,模型的結構,參數,訓練數據是已知的。這些技術一般被稱作深度解釋方法,主要為CNN設計。這類方法使用兩個策略來得到特征的重要性(1)基於輸入或者結構閉塞的前向輸入(2)基於梯度的后向傳播。我們將會在下面討論這些技術。
基於前向傳播的方法 給定一個輸入,目的是給輸入加入一些擾動然后觀察對應的改變。這里面的原理是如果對重要的特征進行擾動,那么改變的結果就會很大。現存的方法一般會使一個子集的特征失效或者移除掉網絡的中間部分[17,32,74,76]。一個最近的工作文獻[19]擴展了這種方法以檢測對抗樣本。
基於后向傳播的方法 基於后向傳播的方法利用深度神經網絡的梯度特性獲取特征的重要性。這個梯度可以是分類器輸出相對輸入的或者隱含層的部分。通過傳遞輸出返回至輸入,這些方法直接計算輸入特征的權重,對於圖像分類器,基礎的方法是使用輸出對於輸入圖片像素或視頻幀的梯度計算顯著映射。隨后的工作通過將顯著映射應用在層與層之間來改進這個想法
基於后向傳播的方法面臨零梯度的挑戰。在一個神經網絡中,激活函數經常具有飽和部分,並且對應的梯度將會變為0,零梯度會使得顯著映射反向跟蹤重要梯度變得困難。最近的工作試圖通過近似解決這個問題,然而這會犧牲解釋的保真度。
黑盒解釋方法
黑盒解釋方法不需要分類器內部的信息,例如網絡結構和參數。取而代之的,這類方法將分類器作為一個黑盒子,通過傳入輸入並且觀察輸出來分析分類器(模型歸納法)。
在這個類別中,最具有代表性的系統是LIME,給定一個輸入x(例如一個圖片),LIME系統性的擾動x獲得一系列的人造圖片,這些圖片在特征空間上與輸入x相鄰(如圖2,x一撇,x二撇)。然后LIME將這些人造圖片送入到目標分類器獲得標簽,並且使用被標記數據來擬合線性回歸模型g(x)。這個g(x)目的是擬合f(x)在輸入x附近的一小部分區域。LIME假設分類器的決策邊界在輸入實例的附近是線性的,因此使用線性回歸模型表示f(x)的決策邊界是合理的。線性回歸是自解釋的,因此LIME能夠基於回歸參數精確捕捉重要特征。一個最近的工作文獻[34]試圖通過向人造數據添加權重來擴展LIME,其他的工作提出使用其他線性模型(決策數據,決策集合)來進一步近似目標檢測邊界。
作為附注,我們想要澄清一點,機器學習解釋是完全不同於特征選擇算法的,例如主成分分析,稀疏編碼,卡方檢驗。解釋方法旨在識別特定輸入x的關鍵特征,解釋x是如何被分類的。在另一方面,特征選擇方法例如PCA是在分類模型訓練之前將全部的訓練數據做降維處理,以減少特征維度(為了加速訓練和減少過擬合),這不能解釋一個特定的分類決策時如何產生的。
解釋安全應用
深度學習已經在安全領域展現了巨大的潛力,相應的解釋方法卻非常的落后。透明度的缺失會減少信任。首先安全從業者如果不了解深度學習模型如何制定決策,那么他們不能信任這些深度學習模型,第二如果安全從業人員不能解決分類錯誤(由訓練數據偏置造成的錯誤),令人關切的是這些錯誤可能在實踐中被放大。接下來,我們將會介紹兩種重要的安全應用,深度學習在這兩種應用中取得了成功。然后我們會討論為什么現存的解釋方法對安全應用是不適用的。
安全應用中的深度學習
在本文中,我們關注兩個安全領域的重要應用:二進制文件逆向與惡意軟件分類
二進制文件逆向 在二進制分析中深度學習的應用主要有識別函數邊界,確定函數類型簽名,追蹤相似二進制代碼。更具體地,使用雙向RNN模型,Shin等提升了函數邊界識別的效果,並達到了幾乎完美的性能。Chua等也使用RNN正確的追蹤到二進制代碼中函數的參數和類型。更近一些時間,Xu等使用MLP模型模型編碼控制流圖成功定位到了漏洞代碼片段。
惡意代碼分類 現存的工作主要使用MLP模型進行大規模的惡意軟件分類。例如,有學者已經訓練了MLP在二進制代碼級別檢測惡意代碼和分類安卓惡意軟件,最近Wang等提出了一種對抗神經網絡基於審計日志來檢測惡意軟件
一個重要的觀察是,RNN和MLP相對於CNN更廣泛的應用在這些安全應用中,原因是RNN被設計用來處理序列數據,RNN在處理長序列的二進制代碼中取得了異乎尋常好的效果。特別地,雙向RNN能夠在每一個十六進制代碼間捕捉到雙向的依賴性。對於惡意軟件分類,MLP因為高效性而被廣泛使用。在另外一方面,CNN在圖片表現優異,因為它能夠利用二維圖片上特征的群組效果。這些安全應用沒有類矩陣的數據機構可以從CNN模型中獲益。
現存的解釋方法為什么效果不佳
直接將現有的解釋方法應用在安全應用中還存在幾個關鍵的太哦站。在table1 我們總結了期望的特性,和為什么吸納有的方法不能實現他們
支持RNN和MLP 在上述的安全應用選擇的模型和現有的解釋模型之間具有明顯的不匹配。大多數現有的解釋方法針對CNN處理圖片分類器來設計。然而如3.1節所述,我們感興趣的安全應用首要選擇的是RNN或者MLP。由於模型的不匹配,現有的解釋方法基本不適用。例如,后向傳播方法,包括顯著映射和激活差分傳播需要在卷積層和池化層使用特定的操作,這些在RNN或MLP中是不存在的。
黑盒方法例如LIME並沒有很好的支持RNN(稍后對在試驗中驗證)類似LIME的方法假定特征是獨立的,但是這個假設在RNN的設定中是不成立的,RNN顯然需要對序列數據的依賴性建模。
支持本地非線性決策邊界 大多數現有的方法(例如LIME)假設決策邊界的本地線性。然而,對於大多數復雜的模型,本地決策邊界非線性才是對的,那些決策解釋方法將會產生嚴重的錯誤。圖3a 展示了一個例子,在x鄰域內的決策邊界是高度非線性化的。換句話說,線性部分被限制在一個非常小的區域中。典型的采樣方法會簡單的將人工數據點落在線性區域之外,使得線性模型在x的鄰域內擬合一個決策邊界非常困難。稍后,在我們的試驗中,我們將會驗證,一個簡單的線性近似將會嚴重降低解釋的保真度。
支持黑盒設定 盡管白盒和黑盒方法有他們各自的應用場景,黑盒方法在安全場景中仍然是更加令人滿意的。注意,人們使用預訓練是經常性的(例如雙向神經網絡,預定義樹)在這些場景下網絡的詳細結構,參數和訓練數據是不可獲取的。雖然少量的前向傳播方法能夠在黑盒設定之下強制實現(通過放棄中間層的觀測),這將會不可避免的使性能退化。
總結 在本文中,我們旨在為安全應用開發一種專用的解釋方法,以加深理解。我們的方法旨在黑盒設定下工作,並且有效的支持流行的深度學習模型,例如RNN,MLP和CNN。更加重要的是,方法需要達到更高的解釋保真度來支持安全應用。
我們的解釋方法
為了達到上述的目標,我們設計並開發了LEMNA。在高層級上,我們將目標深度學習分類器看作是黑盒,並且通過模型近似來到處解釋方法。為了提供高保真度的解釋,LEMNA需要采用一種與現有方法不同的設計途徑。首先我們引入融合lasso來處理特征依賴性問題,這是一個在安全應用和RNN中經常被考慮的東西。(例如時間序列分析,二進制代碼序列分析)。然后,我們將融合lasso集成到混合回歸模型中[28]以近似本地非線性決策邊界來支持復雜的安全應用。在接下來的部分,我們首先討論使用融合lasso與混合回歸模型設計的背后的觀察。然后,我們描述組合他們成為一個簡單模型的技術細節,這個簡單模型可以同時處理特征的依賴性和本地的非線性特點。最后,我們介紹一些附加的步驟來利用LEMNA到處高保真的解釋。
4.1 在設計背后的
融合lasso(Fused lasso). 融合lasso是一種經常用於捕捉特征依賴性的懲罰項,在處理深度學習模型中的依賴性特征上是有用的例如RNN。在更高的視角上,融合lasso使LEMNA可以組合相關的或者是鄰接的特征來產生有意義的解釋。在下面,我們介紹這個直覺的技術細節。
為了從一組例子中學習一個模型,機器學習算法需要最小化損失函數L(f(x),y),這個公式定義了真實標簽與預測標簽之間的差異。例如,為了從一組包含N個樣本的數據中學習一個線性回歸模型$f(x) = beta*x+sigm$ 一個學習算法需要在具有參數beta下使用最大似然估計來最小化下述的等式
在這里,xi是訓練樣本,由M維的特征向量表示。xi的標簽表示為yi。向量beta=(beta1,beta2..)包含了線性模型的系數。||·||是L2正則化,來測量模型預測與真實標簽之間的不相似度
融合lasso是一個懲罰項,他可以被引入任意的線性算法使用的損失函數。融合lasso表現為施加在系數上的約束。即:
當學習算法最小化損失函數時,融合lasso限制了指派給鄰接特征系數的不相似性,使用了一個閾值S(一個超參數)。結果,懲罰項強制學習算法為相鄰矩陣分派相等的權重。直觀上,這能夠被理解為強制學習算法將特征作為一個組,並學習到基於特征組的目標模型。
安全應用,例如時間序列分析和代碼序列分析,經常需要使用RNN對特征依賴性進行顯著的建模。最終的分類器基於特征的共現做出分類決策。如果我們使用標准的線性回歸模型(例如LIME)導出一個解釋,我們不能 正確的近似一個本地的決策邊界。這是因為一個線性的回歸模型不能捕捉特征的依賴性並且將他們獨立對待。
通過在近似的本地決策邊界引入融合lasso,我們希望最終的線性模型具有如下的形式:
在這里,特征被組合在一起,因此重要的特征像是被選擇為一個組或多個組。在LEMNA中明顯的對這個處理建模有助於導出一個更准確的解釋,尤其是RNN模型做出的決策。我們使用一個圖1b的情感分析的例子來進一步解釋這個想法。在融合lasso的支持下,一個回歸模型將會共同考慮鄰接特征。當導出解釋時,我們的模型不會簡單的產生一個單詞not,而是能夠准確的捕捉到詞組“not worth the price”作為情感分析結果的解釋。
混合回歸模型。混合回歸模型允許我們更准確的近似本地的非線性決策邊界。如圖3b所示,一個混合回歸模型是多個線性回歸模型的聯合,這使得它針對下面的近似更具有表現力:
在這里K是一個超參數規定了組成混合模型的線性組建的個數;pik表示分派給對應組件的權重。
給定充足的數據樣本,分類其具有線性或非線性的決策邊界,混合回歸模型能夠接近完美的近似巨冊邊界(使用有限的線性模型集)。因此,在深度學習解釋性的背景下,混合模型能夠有助於避免上述提及的非線性問題並導出更多的准確解釋。
為了描繪這個想法,我們使用圖3中的例子。如圖3a所示,一個標准的線性近似不能保證輸入x鄰域內的數據樣本仍然能夠在本地的線性區域內保持不變。這將會輕易的造成不准確的近似和低保真度的解釋。在圖3b我們的方法使用一個多邊形邊界近似本地決策邊界,在圖中每一個藍色的線表示一個獨立的線性回歸模型。能夠產生解釋的最好的線性模型是紅色的能夠經過數據點x。在這個角度,近似處理能夠產生最優的線性回歸模型來定位重要的特征作為解釋。
4.2 模型開發
接下來,我們轉換這些設計思路成為一個功能型的系統。我們引入技術措施將融合lasso整合進混合回歸模型的學習步驟,所以我們能夠同時處理特征依賴與決策邊界的非線性。技術上講,我們需要通過最小化下面的公式導出一個混合的決策模型,
在這個公式里,f(·)表示公式4混合回歸模型,betakj表示在第k歌線性分類回歸模型有關的j個特征
與標准的線性模型不同,我們的優化目標是困難的,我們不能簡單的使用MLE來處理最小化。為了有效地估計混合回歸模型的參數,我們使用一種替代的方法。
第一,我們將混合回歸模型表示為概率分布的形式
然后,我們將pi beta和sigma作為參數,通過估計這些參數,我們初始化他們的值並通過期望最大化來計算參數的估計值,期望最大化是一種通過重復執行e和m估算參數的算法,更多細節將會在附錄A中給出。
在公式(6)中,yi服從數個高斯分布,並且每一個這樣的分布都具有平均值BETAkXi,方差sigma2k。在E步驟中,我們將每一個數據樣本的值通過學習普通混合回歸模型的標准步驟賦給一個高斯分布,基於先前的E步驟中賦給的數據樣本值,我們重新計算出pi,beta和sigma。對於參數beta和sigma,重復計算仍然使用普通混合模型的標准步驟。但是,對於beta中的每一個參數,重復計算服從一個定制的策略。通過關於beta最小化下面的公式來計算beta
在這里Nk是賦予第k個部件的樣本數量,在這里,重計算定制的原因是為了賦予混合回歸模型處理特征依賴性的能力融合lasso不得不被用於參數beta。如我們能夠觀察到的,上述的等式與等式(2)具有相同的形式。因此,我們能夠通過MLE方法最小化這個等式,因此能夠計算beta的值
使用標准的EM算法,我們重復計算E和M步驟。知道達到一定能夠的穩定度(即,高斯分布在EM步驟中差距變小),我們輸出混合回歸模型。注意我們通過使用普通混合模型學習的方法轉換sigma2為模型參數ϵ1:K
4.3 應用解釋模型
使用加強的混合回歸模型,我們現在討論如何針對深度學習分類器推導出高保真度的解釋。
近似本地決策邊界. 給定一個輸入實例x,產生解釋的關鍵是為目標分類器近似一個本地決策邊界。最終的產出是一個可解釋的線性模型,這個允許我們選擇一小部分最好的特征作為解釋。為了做到這些,我們首先按照文獻[45]的方法合成一組臨近x的數據樣本。思路是隨機的去除x的特征子集。
使用合成的數據樣本集合,我們然后近似本地的決策邊界。有兩個可能的策略,一個是訓練單混合回歸模型執行多分類的任務;另一個策略是訓練多混合回歸模型,每一個選擇的模型執行二分類的任務。出於有效性考慮,我們選擇第二種策略並在附錄B中貼出嚴格的分析。
導出解釋 給定輸入x和他的結果y,我們現在能夠產生解釋作為x分類的一組重要的特征。更加具體地,我們獲得一個經過融合lasso強化的混合回歸模型。從這個混合模型中,我們將會識別與本地決策邊界近似最好的線性組件。線性模型中的權重(或系數)能夠被用來對特征排序。一小部分最好的特征將會作為解釋結果。
需要注意的是LEMNA被設計同時處理非線性與特征依賴性,但是這並不意味着LEMNA不能處理那些特征獨立的深度學習模型,例如MLP和CNN。實際上,LEMNA為了適應目標模型的解釋方法提供了設計靈活性。例如通過增加超參數S(融合lasso的閾值),我們能夠放松對beta參數的約束,來允許LEMNA更好的處理弱依賴特征。在第五部分,我們將會在基於RNN,MLP的安全應用中展現應用LEMNA的普遍性特點。