[论文解读]Feature-Guided Black-Box Safety Testing of Deep Neural Networks

Feature-Guided Black-Box Safety Testing of Deep Neural Networks

深度神经网络的功能导向黑盒安全测试

总结: 一种使用蒙特卡洛树搜索的方式来获取反例的方法,使用SIFT提取关键点,并采用两个玩家回合制的方式对关键点进行操作.

初步

预备定义

N,CαcCN(α,c)αcN(α)=argmaxcCN(α,c)αc()D:,IR[0,255]w×h×ch,whchP0=w×h×chw×hP0[01]:Lk=α1α2kLαLkdη(α,k,d)={α ααkd}使Lk,αd \begin{array}{l} N为一个神经网络,C为其类别数量\\ 给定输入α和c∈C类\\ N(α, c)表示相信α在c类中的置信度\\ N(α) = arg max_{c∈C }N(α, c)表示将α分入c的类别\\ (就是哪个置信度高分到哪个)\\ \\\\ D:输入域,可以表示为IR^{w×h×ch}_{[0,255]},w,h,ch是一个图片的宽度,高度和通道数\\ P_0 = w × h × ch 是输入尺寸的集合\\ w×h中的元素称为像素,将P0中的元素称为尺寸\\ 我们注意到尺寸被归一化在[0,1]\\ \\ 距离衡量指标: Lk = ||α1 − α2||_k 两幅图像的距离 L范数\\ \\ 给定图像α,距离度量Lk和距离d\\ η(α, k, d) =\{α' | \ ||α' − α||_k ≤ d\} 代表使用Lk范数做为距离衡量指标后,到α的距离不大于d的点的集合 \end{array}\\

定义1: 反例的定义与安全性的定义
αDk0LkdcN(α)α:αη(α,k,d),N(α)N(α),N(α)=c(,aa(,a),aaLk,)advN,k,d(α,c):cadvN,k,d(α)=UcC,cN(α)advN,k,d(α,c):advN,k,d(α,c)=:c,advN,k,d(α)=:(:CC,) \begin{array}{l} 给定一个输入α∈D,一个k≥0的距离度量Lk和一个距离d\\ 一个c \neq N(α) 的对抗性用例α'定义为:\\ α' ∈ η(α, k, d),N(α) \neq N(α'), N(α') = c\\ (这里意思是,a'和a是两个测试用例(两个图片,a'是反例),a'在a的L_k距离范围内,但他们两个属于不同的类别)\\ adv_{N,k,d}(α, c):c类别的一系列反例\\ adv_{N,k,d}(α) = U_{c∈C,c \neq N(α)}adv_{N,k,d}(α, c):所有类别的反例\\ adv_{N,k,d}(α, c) = ∅:c类的目标安全性安全, \\ advN,k,d(α) = ∅:非目标安全性\\ (理解: 当C类没有反例C类就安全,所有类没有就全部都安全) \end{array}\\

特征提取

Scale Invariant Feature Transform (SIFT)

特点: 无需使用神经网络就可以进行对象定位和跟踪

步骤:标度空间极值检测(检测图像中相对较暗或较亮的区域),关键点定位(确定这些区域的确切位置)和关键点描述符分配(了解目标对象的上下文图片及其本地区域)
ΛαλΛαλxλyλsλrλxλy,λs,λr \begin{array}{l} 设Λ(α)是图像的一组特征\\ 其中每个特征λ∈Λ(α)是一个元组(λx,λy,λs,λr)\\ (λx,λy)是坐标,λs是特征的大小,λr是特征的响应强度 \end{array}\\

高斯混合模型

αΛα,λiΛαGi,pxpy):Gi,x=12πλi,s2exp((pxλi,x)22λi,s2)Gi,y=12πλi,s2exp((pyλi,y)22λi,s2)λi,s:,(λi,x,λi,y)Φ={φi}i1,2,...k,:k=Λ(α):k,ϕi=λi,r/j=0kλj,r(k):Gx=i=1kϕi×Gi,x and Gy=i=1kϕi×Gi,y(,使/)G(Λ(α)) \begin{array}{l} 给定图像α及其关键点集合Λ(α),我们为λi∈Λ(α)定义二维高斯分布G_i,对于像素(px,py)有:\\ \mathcal{G}_{i, x}=\frac{1}{\sqrt{2 \pi \lambda_{i, s}^{2}}} \exp \left(\frac{-\left(p_{x}-\lambda_{i, x}\right)^{2}}{2 \lambda_{i, s}^{2}}\right) \quad \mathcal{G}_{i, y}=\frac{1}{\sqrt{2 \pi \lambda_{i, s}^{2}}} \exp \left(\frac{-\left(p_{y}-\lambda_{i, y}\right)^{2}}{2 \lambda_{i, s}^{2}}\right)\\ λ_{i,s}:方差,(λ_{i,x}, λ_{i,y})分别作为均值\\ Φ = \{φ_i\}_{i∈{1,2,...k},}:混合模型的权重\\ k = |Λ(α)|:k是关键点集合的个数,\phi_{i}=\lambda_{i, r} / \sum_{j=0}^{k} \lambda_{j, r}是权重(k就起到一个表示总个数的作用)\\ 最后的混合高斯模型就是加权:\\ \mathcal{G}_{x}=\prod_{i=1}^{k} \phi_{i} \times \mathcal{G}_{i, x} \text { and } \mathcal{G}_{y}=\prod_{i=1}^{k} \phi_{i} \times \mathcal{G}_{i, y}\\ (就是把数据对应放在高斯混合模型的定义中,权重使用相应强度/所有强度求和)\\ G(Λ(α))为最后的混合高斯模型 \end{array}\\

有模型之后就可以将一张图片变成高斯混合模型处理后的图片

像素操纵(pixel manipulatio)

α(x,y,z):αxyzRGB,RGB3,1I={+,},τ(x,y)z{1,2,3},XδX,i:DDδX,i(α)(x,y,z)={α(x,y,z)+τ, if (x,y)X and i=+α(x,y,z)τ, if (x,y)X and i=α(x,y,z) otherwise [01]δX,i(α)(xyz(,) \begin{array}{l} α(x, y, z):图像α上位于(x,y)的像素的z通道值(通常为RGB或灰度值,RGB3个,灰度1个)\\ I = \{+, −\}是一组操作指令,τ是表示操作幅度的正实数\\ 对于所有的像素(x,y)和所有的通道z∈\{1,2,3\},在其输入子集X上的像素操纵δ_{X,i} : D →D定义为\\ \delta_{X, i}(\alpha)(x, y, z)=\left\{\begin{array}{l}{\alpha(x, y, z)+\tau, \text { if }(x, y) \in X \text { and } i=+} \\ {\alpha(x, y, z)-\tau, \text { if }(x, y) \in X \text { and } i=-} \\ {\alpha(x, y, z) \quad \text { otherwise }}\end{array}\right.\\ 请注意,如果值是有界的,例如[0,1],则需要将δ_{X,i}(α)(x,y,z)限制在界限之内。\\ (理解就是对一组像素的某个通道统统加上一些值或者减少值,并且要控制最后的值不要超出范围)\\ \end{array}\\

操作安全

提出了一种功能导向的方法,而不是使用梯度方向作为优化的指南

基于游戏的方法

玩家I选择特征,而玩家II然后选择选定特征中的像素和操作指令

尽管玩家I的目标是最大程度地减少与对抗示例的距离,

但玩家II可以根据高斯混合模型对像素进行采样,可以是合作者,对抗者或天生的,

我们根据Lk距离定义目标函数,并将与一个对抗示例的距离视为衡量其严重性的指标。 注意,对抗性示例的集合$ advN,k,d(α,c)advN,k,d(α)$可以是无限的。

定义2:
advN,k,d(α,c)(advN,k,d(α))ααargminα{sevα(α)αadvN,k,d(α,c)(or advN,k,d(α))}sevα(α)=ααk,αα:Lk \begin{array}{l} 在集合adv_{N,k,d}(α, c)(或者 adv_{N,k,d}(α))中找到距原始图像α最小距离的α'\\ \arg \min _{\alpha^{\prime}}\left\{\operatorname{sev}_{\alpha}\left(\alpha^{\prime}\right) | \alpha^{\prime} \in \operatorname{ad} v_{N, k, d}(\alpha, c)\left(\text {or adv}_{N, k, d}(\alpha)\right)\right\}\\ {sev}_{\alpha}\left(\alpha^{\prime}\right) = ||α −α'||_k,是对抗例α'对原始图像α的严重程度\\ 注意:Lk的选择将影响感知相似性 \end{array}\\
理解:就是从反例中选一个严重性程度最大的(距离最小的)反例

两层回合制游戏

将对抗性示例的制作过程转化为假设有两个玩家I和II的两层回合制游戏。
M(α,k,d)=(S(S×Λ(α))),s0,{Ta}a{I,II},L)SI,ηαkdS×ΛαII,Λααs:sS,s0S,αs0α:TIS×ΛαS×Λα,TIsλ=sλTII(S×Λ(α))×P(P0)×ISTIIsλXi=δXi(α(s))sSIλ,IIXi():S(S×Λ(α))C×Gs()sλ)N(α(s))GΛ(α(s))) \begin{array}{l} M(α, k, d) = (S ∪ (S × Λ(α))), s_0, \{T_a\}_{a∈\{I,II\}}, L) \\ S为是属于玩家I的一组游戏状态,每个状态代表η(α,k,d)中的图像\\ S×Λ(α)是属于玩家II的一组游戏状态,其中Λ(α)是一组特征(关键点)的图像\\ α(s):与状态s∈S相关的图像,s_0∈S是初始游戏状态,α(s0)是原始图像α\\ 过度关系:T_I:S×Λ(α)→S×Λ(α),T_I(s,λ)=(s,λ)\\ T_{II}:(S×Λ(α))×P(P_0)×I→S定义为T_{II}((s,λ),X,i)=δ_{X,i}(α(s))\\ 在每个游戏的状态s∈S的情况下,玩家I将选择一个关键点λ,玩家II将选择一个对(X,i)(选择一组像素点和操作)\\ 标记函数: S∪(S×Λ(α)) → C ×G为状态s或()s,λ)分配一个类别N(α(s))和一个二维高斯混合模型G(Λ (α(s)))。 \end{array}\\
理解:T1转移不会改变状态与特征,T2转移会改变图像a上的像素值

游戏模型路径
s1u1s2u2使k1λkuk=TI(sk,λk)(Xk,ik),sk+1=TII((sk,λk),Xk,ik)lastρρ,PathaF,使lastρa{III}I:PathIFD(Λ(α))2:PathTIFD(P(P0)×I)σ=σIσII(strategy profile) \begin{array}{l} 游戏模型的路径是游戏状态的序列s1u1s2u2\\ 使得对于所有k≥1,对于某些特征λk,u_k = T_I(s_k, λ_k) \\ 对于( X_k, i_k) , s_{k+1} =T_{II}((s_k, λ_k), X_k, i_k) \\ 令last(ρ)为有限路径ρ的最后状态,Path^F_a是有限路径的集合,以使last(ρ)属于玩家a∈\{I,II\}\\ 参与者I的随机策略:\operatorname{Path}_{\mathrm{I}}^{F} \rightarrow \mathcal{D}(\Lambda(\alpha))\\ 参与者2的随机策略:P a t h_{\mathrm{TI}}^{F} \rightarrow \mathcal{D}\left(\mathcal{P}\left(P_{0}\right) \times I\right)\\ σ=(σI,σII)为策略配置文件( strategy\ profile) \end{array}\\
奖励函数的定义

σ=σIσII)ρa{1,II}PathaFR(σ,ρ)σ(fully probabilistic system)αρ=αlastρρtρ:N(αρ)=cαραk>d,cη(α,k,d)tρρ1:Rσρ={1/sevα(α0) if t(ρ) and ρPath1FλΛ(α)(ρ)(λ)R(σ,ρTT(last(ρ),λ)) if ¬t(ρ) and ρPathIF(X,i)P(P0)×IσII(ρ)(X,i)R(σ,ρTII(last(ρ),X,i)) if ρPathIIFσI(ρ)(λ)Iρλ,σII(ρ)(X,i)IIρXiI,σIsevα(αρ), \begin{array}{l} 为σ=(σI,σII)和有限路径\rho \in \bigcup_{a \in\{1, \mathrm{II}\}} P a t h_{a}^{F}定义奖励R(σ, ρ)\\ 的想法是累积在路径上发现的对抗性示例的严重性度量\\ 注意,给定σ,该游戏成为完全概率系统(fully\ probabilistic \ system)。\\ α'_ρ=α(last(ρ))是与路径ρ的最后状态关联的图像\\ t(ρ): N\left(\alpha_{\rho}^{\prime}\right)=c \vee\left\|\alpha_{\rho}^{\prime}-\alpha\right\|_{k}>d,表示路径已达到其关联图像处于目标类别c或 η(α, k, d)之外的状态\\ 只要满足t(ρ),就可以终止路径ρ\\ 不难发现,由于定义1中的约束,每个无限路径都有一个可以终止的有限前缀\\ 奖励函数定义如下:\\ R(σ,ρ)=\left\{\begin{array}{ll}{1 / \operatorname{sev}_{\alpha}\left(\alpha_{0}^{\prime}\right)} & {\text { if } t(\rho) \text { and } \rho \in P a t h_{1}^{F}} \\ {\sum_{\lambda \in \Lambda(\alpha)}(\rho)(\lambda) \cdot R\left(\sigma, \rho T_{\mathrm{T}}(\operatorname{last}(\rho), \lambda)\right)} & {\text { if } \neg t(\rho) \text { and } \rho \in P a t h_{\mathrm{I}}^{F}} \\ {\sum_{(X, i) \in \mathcal{P}\left(P_{0}\right) \times I} \sigma_{\mathrm{II}}(\rho)(X, i) \cdot R\left(\sigma, \rho T_{\mathrm{II}}(l a s t(\rho), X, i)\right) \text { if } \rho \in \operatorname{Path}_{\mathrm{II}}^{F}}\end{array}\right.\\ σI(ρ)(λ) 是玩家I在ρ上选择λ的概率,σII(ρ)(X, i)是玩家II基于ρ的选择(X,i)的概率\\ 路径仅终止于玩家I的状态\\ 如果找到一个反例,则分配奖励是严重程度(最小距离)的倒数,否则,如果是其子项,则是奖励的加权总和\\ 因此,最大化回报的策略σI将需要最小化严重性sev_α(α'_ρ), \end{array}\\

理解,就是按照给定方法搜索,直到满足距离条件,或者不在距离条件内就停止搜索

定义3.
IIIσIIσIs0RσIσIIs0argmaxσtoptσIIR((σI,σII),s0)optσIImaxσIIminσIInatσIIII, 游戏的目标是让玩家I根据玩家II的策略σII选择策略σI最大化初始状态s0的奖励R((σI,σII),s0),即\\ \arg \max _{\sigma_{\mathrm{t}}} \operatorname{opt}_{\sigma_{\mathrm{II}}} R\left(\left(\sigma_{\mathrm{I}}, \sigma_{\mathrm{II}}\right), s_{0}\right)\\ 其中选项optσII可以是maxσII,minσII或natσII\\ 玩家II可以根据高斯混合模型对像素进行采样,可以是合作者,对抗者或天生的,
定理1
optσII{maxσII,minσII,natσII}.,I 当optσII∈\{maxσII , minσII , natσII \}.时,确定性和无记忆策略足以满足玩家I的需要。

问题的复杂性

Mαkd,ptimeadvNkdαc=h,O(P0h) 对于博弈模型M(α, k,d),在p-time时间内能确定advN,k,d(α,c)=∅\\ 对于系统最长的有限路径的长度h,状态数(因此也就是系统的大小)O(|P_0|^h)

蒙特卡罗树搜索渐近最优策略

optσII=maxσIIMCTSMαkdMCTSUCB:tc1tc2,tc1tc2,rnr访nSimulationα01/sevαα0vr+vn+1bestChildrootr/nroot:optσII=natσIIGΛαoptσII=minσIIoptσIInatσIImaxσII \begin{array}{l} 首先考虑optσII=maxσII的情况\\ MCTS算法通过对模型M(α,k,d)的策略空间进行采样来逐步扩展部分博弈树\\ MCTS以上限置信度上限(UCB)作为探索方案,在理论上即充分探索游戏树时,它会收敛至最优解\\ 终止条件:tc1和tc2,tc1控制整个过程是否应终止,tc2控制何时进行移动,终止条件可以是例如迭代次数的界限等\\ 在部分树上,每个节点都维护有一对(r,n),分别代表累积的奖励r和访问次数n\\ 扩展叶节点以将其子级添加到部分树后,我们调用Simulation在每个子节点上运行模拟。\\ 在新节点上进行的模拟是从节点开始的游戏直到终止为止\\ 玩家在模拟过程中随机行动。每个模拟在到达终止节点α0时终止,在该节点上可以计算奖励1/sevα(α0)。\\ 然后,该奖励将从新子节点通过其祖先反向传播,直到到达根节点为止。\\ 每次通过节点反向传播新的奖励v时,我们都会将其关联对更新为(r + v,n + 1)\\ bestChild(root)返回具有最高r / n值的root的子代\\ 其他情况:optσII=natσII的情况,通过选择G(Λ(α))来选择一个孩子,而不是选择最好的孩子,\\ 对于optσII=minσII的情况,选择最差的孩子\\ 我们注意到当optσII∈{natσII,maxσII}时,博弈不是零和。\\ \end{array}\\

MCTS算法

[论文解读]Feature-Guided Black-Box Safety Testing of Deep Neural Networks

游戏中的严重性间隔

tc1tc2c,IIoptσII,MCTSαsev(M(α,k,d),optσII)sevα(α)αMαkdtc1tc2coptσII1IISIαkd[sev(M(α,k,d),maxσ12),sev(M(α,k,d),minσ12)],sev(M(α,k,d),natσII)SI(α,k,d) 假设我们有固定的终止条件tc1和tc2以及目标类别c,给定玩家II的选项optσII,\\ 我们有一个MCTS算法来计算对抗性示例α'\\ 设sev(M(α, k, d), optσII)为sev_α(α')\\ 其中α'是通过在输入M(α,k,d),tc1,tc2,c上的optσII运行算法1而返回的对抗示例\\ 于玩家II的角色,存在一个严重度区间SI(α,k,d)\\ \left[\operatorname{sev}\left(M(\alpha, k, d), \max _{\sigma_{12}}\right), \operatorname{sev}\left(M(\alpha, k, d), \min _{\sigma_{12}}\right)\right]\\ 此外, sev(M(α, k, d), natσII ) ∈ SI(α, k, d)\\

通过最佳策略保证安全

τ,使pP0,α(p)α(p)=nτ,(n0)αηαkdτGαkdηαkdτII   \begin{array}{l} τ是一个正实数,是像素操作中使用的操作幅度\\ 如果对于所有维度p∈P_0,我们都有|α'(p) − α(p)| = n ∗ τ ,(n ≥ 0)\\ 则图像α'∈η(α,k,d)是τ-网格图像\\ 令G(α,k,d)是η(α,k,d)中的τ网格图像的集合\\ 对于参与者II\ 合作\ 的情况,我们有以下结论。\\ \end{array}

定理2
αηαkdτ,使αadvN,k,d(α,c),(c),sevα(α)sev(M(α,k,d),maxσII) 令α'∈η(α,k,d)是任何τ网格图像,使得α' ∈ adv_{N,k,d}(α, c),(其中c是目标类别),\\ 那么我们有sevα(α') ≥ sev(M(α, k, d), max_{σII} )
从直觉上讲,该定理说该算法可以从τ网格图像集中找到最佳对抗示例

如果网络是Lipschitz连续网络,则仅当τ足够小时,才需要考虑τ网格图像。

定理3
ττ/2,sev(M(α,k,d),maxσII)>d,advN,k,d(α,c)=(sevMαkdmaxσII>dηαkdτ)τsevMαkdmaxσIId 如果所有τ网格图像都是关于τ/ 2的错误分类聚合器,并且sev(M(α, k, d), maxσII ) > d,\\ 那么advN,k,d(α, c) = ∅\\ (注意,sev(M(α,k,d),maxσII)> d表示η(α,k,d)中的所有τ图像都不是对抗性示例。)\\ 该定理表明,要实现完整的安全性验证,可以逐渐减小τ直到sev(M(α,k,d),maxσII)≤d\\
定义4
α,αD,N(α,N(α))N(α,N(α))<hααk.NLkLipschitz,h>0, 若α, α' ∈ D, 我们有 |N(α', N(α)) − N(α, N(α))| <h · ||α' − α||_k. \\那么网络N是关于距离L_k的Lipschitz网络,且h >0,。
理解:将a'分到a所在类的置信度减掉将a分到a所在类的置信度小于一个值,那么就是L网络

我们的常用网络都是L网络.
=min{N(α,N(α))N(α,N(α))α,αD,N(α)N(α)} \ell=\min \left\{\left|N\left(\alpha^{\prime}, N(\alpha)\right)-N(\alpha, N(\alpha))\right| | \alpha, \alpha^{\prime} \in \mathrm{D}, N\left(\alpha^{\prime}\right) \neq N(\alpha)\right\}
将l设为类别更改的最小置信度差,l的值在[0,1]之间

定理4可以看作定理3的实例化

定理4
NL1Lipschitzhτ2sevMαkdmaxσII>dadvNkdαc= 令N为关于L1的Lipschitz网络和常数h。\\ 当\tau \leq \frac{2 \ell}{\hbar}且sev(M(α,k,d),maxσII)> d时,adv_{N,k,d}(α,c)=∅。
理解: 保证安全一共有两个条件,一是t值的范围,二是严重性超过某个值

1/e-收敛,因为我们使用的是有限游戏,所以当游戏树完全扩展时,可以保证MCTS收敛

定理3和定理4证明略

如何评价用例的好坏?

sevα(α)=ααk,ααN,,(,) {sev}_{\alpha}\left(\alpha^{\prime}\right) = ||α −α'||_k,是对抗例α'对原始图像α的严重程度\\ 对于N张图片,直接求平均值就是该用例最终的严重性值,这个值越小越好 \\(越小代表距离越小,代表这个反例就越好)

git地址

原项目地址,原项目有很多错误,无法运行程序

fork后项目地址,已经可以正确生成反例,代码在mnist实验中可以使用