Guiding Deep Learning System Testing using Surprise Adequacy
簡介
文章目錄
- Guiding Deep Learning System Testing using Surprise Adequacy
-
- 簡介
- 核心内容
-
- 預備定義
- SA: 意外充分性
-
- 算法一般步驟
- LSA: 基于可能性的SA
-
- 核心思想
- 注意
- 公式定義
-
- 密度函數 f x fx fx
- LSA定義
- DSA: 基于距離的SA
-
- 核心思想
- 注意
- 公式定義
-
- 計算 d i s t a dist_a dista
- 計算 d i s t b dist_b distb
- DSA定義
- SC: 意外覆寫率
-
- 定義
- 注意
- 其他
-
-
- 研究問題 RQ
- 實驗
- 結果
-
論文标題:
- Guiding Deep Learning System Testing using Surprise Adequacy
- 使用驚訝名額SA來建構深度學習測試系統
- 2018.8.25
現狀
目前有兩個假設
- 蛻變測試(metamorphic testing): dl系統的兩個輸入在某些人類感覺上是相似的,那麼輸出也應該是相似的
- 一組輸入越多樣化,可以對dl系統執行的測試就越有效。(違反第一個假設的輸入也會增加神經元覆寫率。)
作者觀點
- 傳統的白盒測試技術旨在增加結構覆寫對dl系統不是很有用,因為它們的行為沒有在控制流結構中顯式地編碼
- ad hoc testing 随機測試,現在的方式是使用統計,聚合的方式評價測試集的有效性,但是對于單個輸入而言,這是不夠的.例如:
- 現在還不清楚什麼時候一個高NC的輸入應該被認為比另一個低NC的輸入更好,以及為什麼
- 某些輸入可能比其他輸入自然激活更多門檻值以上的神經元。
該論文提出了一個叫SA的名額,該名額用于衡量新用例相對于訓練集中用例的多樣性程度.名額越大分類器越容易分錯
基于SC的方法是黑盒方法,它對每個測試用例打分(LSA/DSA),進而來評價用例,其覆寫率不同于以往的白盒方式得到的覆寫率,不是基于神經元而是基于用例的SA分布,選取不同的門檻值會得到不同的覆寫結果
LSA DSA 都依賴于原始訓練集
核心内容
- SA: 意外充分性(Surprise Adequacy )
- SC: 意外覆寫率 (Surprise Coverage)
預備定義
符号定義
設 N = { n 1 , n 2 … } \mathbf{N}=\left\{n_{1}, n_{2}\ldots\right\} N={n1,n2…}是組成一個dl系統 d d d的一組神經元
設 X = { x 1 , x 2 , … } X=\left\{x_{1}, x_{2}, \ldots\right\} X={x1,x2,…}是一組輸入
設 α n ( x ) \alpha_{n}(x) αn(x)是單個神經元 n n n相對于輸入 x x x的激活值
另 N ⊆ N N \subseteq \mathbf{N} N⊆N,其中 n n n是神經元N的子集
α N ( x ) \alpha_{N}(x) αN(x) 代表激活向量,其中每個元素對應于 N N N中的單個神經元.(激活值的向量組合)
∣ N ∣ |N| ∣N∣是 α N ( x ) \alpha_{N}(x) αN(x)的模
激活迹(Activation Trace) AT
對于一組輸入 X : A N ( X ) = { α N ( x ) ∣ x ∈ X } X : A_{N}(X)=\left\{\alpha_{N}(x) | x \in X\right\} X:AN(X)={αN(x)∣x∈X} A N ( X ) A_{N}(X) AN(X) 是一組激活迹.
就是所有測試用例激活向量的集合
SA: 意外充分性
SA旨在衡量給定新輸入相對于用于訓練的輸入的相對新穎性,是DL系統如何對未知輸入做出反應的名額
注意: SA值依賴于原始訓練集
算法一般步驟
-
擷取激活迹 A N ( X ) A_{N}(X) AN(X)
對于一個訓練集 T T T,使用 T T T中所有的訓練用例,計算出所有神經元的激活值後拼接到一起,進而得到 A N ( T ) A_{\mathbf{N}}(\mathbf{T}) AN(T),使用激活 迹公式 X : A N ( X ) = { α N ( x ) ∣ x ∈ X } X : A_{N}(X)=\left\{\alpha_{N}(x) | x \in X\right\} X:AN(X)={αN(x)∣x∈X}擷取激活迹.
-
計算 A N ( x ) A_{N}(x) AN(x)
對于新的輸入 x x x,我們通過比較 A N ( x A_{N}(x AN(x)與 A N ( T ) A_{\mathbf{N}}(\mathbf{T}) AN(T)來計算出Surprise Adequacy (SA).具體計算方法有LSA和DSA兩種
注意
對于用SA衡量分類任務時,我們隻關注分為該類的訓練集裡的例子,即: T c ∈ T T_{c}∈T Tc∈T,我們隻關心 A N ( T c ) A_{\mathbf{N}}\left(T_{c}\right) AN(Tc),這樣更有意義.
SA的計算方法
- LSA: 基于可能性的SA (Likelihood-based Surprise Adequacy)
- DSA: 基于距離的SA (Distance-based Surprise Adequacy)
LSA: 基于可能性的SA
核心思想
LSA: 采用核密度估計(KDE)來獲得輸入資料的分布密度函數,這裡使用高斯核函數
注意
在這種方法的時候,為了減少計算量,有如下兩種規則
-
隻標明特定的某層
對于所有的測試用例,我們隻考慮一個標明層 N L ⊆ N N_{L} \subseteq \mathbf{N} NL⊆N中的神經元和他們的激活軌迹 A N L ( X ) A_{N_{L}}(\mathbf{X}) ANL(X),每個軌迹的基數為 ∣ N L ∣ \left|N_{L}\right| ∣NL∣
-
方差過濾
過濾掉那些激活值的方差小于預先定義的門檻值 t t t的神經元
公式定義
密度函數 f x fx fx
KDE産生密度函數f如下:
f ^ ( x ) = 1 ∣ A N L ( T ) ∣ ∑ x i ∈ T K H ( α N L ( x ) − α N L ( x i ) ) \hat{f}(x)=\frac{1}{\left|A_{N_{L}}(\mathbf{T})\right|} \sum_{x_{i} \in \mathbf{T}} K_{H}\left(\alpha_{N_{L}}(x)-\alpha_{N_{L}}\left(x_{i}\right)\right) f^(x)=∣ANL(T)∣1xi∈T∑KH(αNL(x)−αNL(xi))
其中 :
A N L ( x A_{N_{L}}(x ANL(x): 給定輸入在 N L N_{L} NL層中的激活迹
A N L ( x i ) , x i ∈ T A_{N_{L}}\left(x_{i}\right){, x_{i} \in \mathbf{T}} ANL(xi),xi∈T: 訓練集中的某個樣本在 N L N_{L} NL層中的激活迹
∣ A N L ( T ) ∣ \left|A_{N_{L}}(\mathbf{T})\right| ∣ANL(T)∣:激活迹的個數
公式的直覺了解:在標明Nl層後,對于所有的訓練集中的用例,每個用例使用高斯核函數計算該用例與新輸入x的激活迹的內插補點
機率密度降低了,證明輸入更加稀有,機率密度增高了,證明輸入更加相似
LSA定義
L S A ( x ) = − log ( f ^ ( x ) ) L S A(x)=-\log (\hat{f}(x)) LSA(x)=−log(f^(x))
LSA因為隻選擇了某層的神經元,再加上kde隻在原始訓練集上執行一次,是以運作速度很快
DSA: 基于距離的SA
核心思想
尋找某個用例最近的相同類别和不同類别的用例,并計算距離比,這個值反映了決策邊界的相對距離
注意
DSA 隻适用于分類任務
公式定義
計算 d i s t a dist_a dista
x a = arg min D ( x i ) = c x ∥ α N ( x ) − α N ( x i ) ∥ dist a = ∥ α N ( x ) − α N ( x a ) ∥ \begin{array}{l}{x_{a}=\arg \min _{\mathbf{D}\left(x_{i}\right)=c_{x}}\left\|\alpha_{\mathbf{N}}(x)-\alpha_{\mathbf{N}}\left(x_{i}\right)\right\|} \\ {\text {dist}_{a}=\left\|\alpha_{\mathbf{N}}(x)-\alpha_{\mathbf{N}}\left(x_{a}\right)\right\|}\end{array} xa=argminD(xi)=cx∥αN(x)−αN(xi)∥dista=∥αN(x)−αN(xa)∥
了解:
- x i x_{i} xi: 是訓練集中的某個用例, α N ( x i ) \alpha_{\mathrm{N}}\left(x_{i}\right) αN(xi)則是它的激活迹
- α N ( x ) \alpha_{\mathrm{N}}(x) αN(x): 是新輸入的用例的激活迹,這裡求他們的距離,使用的是歐式距離
- arg min D ( x i ) = c x \arg \min _{\mathbf{D}\left(x_{i}\right)=c_{x}} argminD(xi)=cx:明确指出隻從同類的用例中尋找一個距離最小的
- x a x_{a} xa: 就是那個點,稱作參考點.
- dist a \text {dist}_{a} dista: 找到該點後,計算新用例和該參考點之間的歐式距離
計算 d i s t b dist_b distb
x b = argmin D ( x i ) ∈ C \ { c x } ∥ α N ( x a ) − α N ( x i ) ∥ dist b = ∥ α N ( x a ) − α N ( x b ) ∥ \begin{array}{l}{x_{b}=\operatorname{argmin}_{\mathbf{D}\left(x_{i}\right) \in C \backslash\left\{c_{x}\right\}}\left\|\alpha_{\mathbf{N}}\left(x_{a}\right)-\alpha_{\mathbf{N}}\left(x_{i}\right)\right\|} \\ {\text {dist}_{b}=\left\|\alpha_{\mathbf{N}}\left(x_{a}\right)-\alpha_{\mathbf{N}}\left(x_{b}\right)\right\|}\end{array} xb=argminD(xi)∈C\{cx}∥αN(xa)−αN(xi)∥distb=∥αN(xa)−αN(xb)∥
了解:
同樣的方法去找點,隻不過這次是在類不相同的用例之間尋找到一個距離最小的
DSA定義
D S A ( x ) = d i s t a d i s t b DS A(x)=\frac{d i s t_{a}}{d i s t_{b}} DSA(x)=distbdista
形象解釋

圖中黑線則是DSA的兩個距離
DSA因為每個樣本都需要去尋找兩次距離,複雜度很高,在訓練集較大的情況下,運作速度就會變得非常慢
SC: 意外覆寫率
定義
給定 U U U的上界, 将 ( 0 , U ] (0, U] (0,U] 分成 n n n個 S A SA SA段的 b u c k e t : B = { b 1 , b 2 , … , b n } bucket: B=\left\{b_{1}, b_{2}, \ldots, b_{n}\right\} bucket:B={b1,b2,…,bn},一組輸入 x x x的 S C SC SC定義如下
S C ( X ) = ∣ { b i ∣ ∃ x ∈ X : S A ( x ) ∈ ( U ⋅ i − 1 n , U ⋅ i n ] } ∣ n S C(X)=\frac{\left|\left\{b_{i} | \exists x \in X : S A(x) \in\left(U \cdot \frac{i-1}{n}, U \cdot \frac{i}{n}\right]\right\}\right|}{n} SC(X)=n∣∣{bi∣∃x∈X:SA(x)∈(U⋅ni−1,U⋅ni]}∣∣
最後的覆寫率是指被覆寫的段數除以總段數
注意
- 一組具有較高SC的輸入是一組多樣化的輸入
- 然而,具有任意高sa值的輸入可能與問題域無關(如交通标志的圖像将與動物圖檔分類器的測試無關)。
- 是以,SC隻能相對于預定義的上界來測量
其他
研究問題 RQ
- sadl是否能夠捕捉到dl系統輸入的相對驚喜?
- 更令人驚訝的輸入更難正确分類
- 基于sa值來檢測對抗性示例,因為我們期望對抗性示例更令人驚訝
- 我們期望基于sa的分類器能夠成功地檢測出對抗性的例子
- 層敏感性:用于SA計算的神經元層的選擇是否對SA反映DL系統行為的準确性有任何影響?
- 相關性:SC是否與DL系統的現有覆寫标準相關?
- 再訓練:SA可以指導DL系統的再訓練嗎?
實驗
參數選擇
- lsa的預設激活方差門檻值設定為 1 0 − 5 10^{-5} 10−5
- kde的帶寬使用scott規則設定
結果
- 結論1: 基于三個不同的分析,RQ1的答案是SADL可以捕獲輸入的相對意外。 具有較高SA的輸入難以正确分類; 對抗性示例顯示較高的SA值,是以可以根據SA進行分類。
- 先選SA大的可以明顯發現dl開始的準确率不高,先選SA小的可以明顯發現dl開始的準确率高
- 對抗用例的SA值和非對抗用例的SA值差距較明顯
- 結論2:基于這些結果,我們回答rq2,dsa對計算層的選擇是敏感的,并且從選擇更深的層中受益。然而,對于lsa,沒有明确的證據支援更深層的假設。在不同的對抗性範例生成政策中,層次敏感度是不同的。
- 結論3:總體而言,除了NC,我們回答RQ3,即SC與到目前為止引入的其他覆寫标準相關。
就是SC增加了别的類似于KMNC的也增加了
- 結論4: SA可以提供指導更有效的再訓練adversarial examples的例子。