文章目录
1 概述
题目:基于硬标签的小查询黑盒对抗攻击 (Hard-label based small query black-box adversarial attack)
代码 (可参考):https://github.com/satyanshukla/bayes_attack
背景:
- 基于硬标签的黑盒攻击设置下,攻击者仅能获取目标模型的预测类别;
- 已有的大多数方法,为了获取足够的成功率,需要设置相当大的查询次数;
- 已有策略通常利用白盒替换模型与黑盒目标模型之间的迁移性;
- 已有策略大都基于软标签设置,以充分利用零阶优化;
方法:
- 提出了一个通过预训练替换模型引导的、基于硬标签的方法:
- 基于预训练白盒模型 (替换模型) 计算关于真实标签 (可以是被攻击模型的预测结果,假设其完美预测)、输入样本+扰动向量的梯度。文章提供了两种计算策略;
- 微调对抗样本,使其更接近决策边界;
- 使用二分搜索更新对抗样本;
- 实验验证了所提出方法的查询效率;
引用:
@inproceedings{
park2024hard,
author = {
Park, Jeonghwan and Miller, Paul and McLaughlin, Niall},
title = {
Hard-label based small query black-box adversarial attack},
booktitle = {
{
WACV}},
pages = {
3986--3995},
year = {
2024}
}
2 问题定义
令 F ( x ) F(x) F(x)是一个用于 k k k分类的模型,其输出每个样本 x ∈ R m x\in\mathbb{R}^m x∈Rm的类别概率 f ( x ) → R k f(x)\to\mathbb{R}^k f(x)→Rk。一次成功的分类表示为 f c † ( x ) = max k [ f k ( x ) ] f_{c^\dag}(x)=\max_k[f_k(x)] fc†(x)=maxk[fk(x)],其中 c † c^\dag c†是真实类别。
对抗攻击的目标是找到一个对抗样本 x ~ \tilde{x} x~,其满足 f c ~ ( x ~ ) > f c † ( x ~ ) f_{\tilde{c}}(\tilde{x})>f_{c^\dag}(\tilde{x}) fc~(x~)>fc†(x~)且 D ( x , x ~ ) \mathcal{D}(x,\tilde{x}) D(x,x~)足够小,其中 c ~ \tilde{c} c~是对抗类别、 D \mathcal{D} D是不相似度量。在硬标签下的黑盒攻击中,攻击者的目标是在仅使用预测类别的情况下修改样本 x t ′ x'_t xt′。具体地,目标模型的参数 θ \theta θ和分类概率 { f 0 ( x t ′ ) , f 1 ( x t ′ ) , … , f k ( x t ′ ) } \{f_0(x'_t),f_1(x'_t),\dots,f_k(x'_t)\} {
f0(xt′),f1(xt′),…,fk(xt′)}不可使用。
3 优化框架
模型 F ( x ) F(x) F(x)的输出向量是一个覆盖类别 k = { 1 , … , k } \mathbf{k}=\{1,\dots,k\} k={
1,…,k}的概率分布。 F ( x ) F(x) F(x)的分类函数被定义为 C : R m → k C:\mathbb{R}^m\to\mathbf{k} C:Rm→k,其将输入样本映射到最高概率所对应的类别上:
C ( x ) : = arg max c ∈ k [ f c ( x ) ] (1) \tag{1} C(x):=\argmax_{c\in k}[f_c(x)] C(x):=c∈kargmax[fc(x)](1)假设函数 H ( x ) \mathcal{H}(x) H(x)用于将真实类别 c † = C ( x ) c^\dag=C(x) c†=C(x)转换为未知类别,即对抗类别 c ~ ∈ k , c ~ ≠ c † \tilde{c}\in\mathbf{k},\tilde{c}\neq c^\dag c~∈k,c~=c†:
H ( x + α μ ) : = lim α → ϵ ( f c ~ ( x + α μ ) − max c ~ ≠ c [ f c ( x + α μ ) ] ) (2) \tag{2} \mathcal{H}(x+\alpha\mu):=\lim_{\alpha\to\epsilon}\left( f_{\tilde{c}}(x+\alpha\mu) -\max_{\tilde{c}\neq c}[f_c(x+\alpha\mu)]\right) H(x+αμ):=α→ϵlim(fc~(x+αμ)−c~=cmax[fc(x+αμ)])(2)其中 μ \mu μ是扰动向量、 α \alpha α是缩放因子,以及 ϵ ≤ 1 \epsilon\leq1 ϵ≤1是一个小的正值。当 H ( x ′ ) \mathcal{H}(x') H(x′)大于0时,表示 x ′ x' x′被成功攻击,小于0则说明其落在真实类别空间。当取0值时,说明其处于两个类别的决策边界,这样的样本也被称为边界样本。
在硬标签设置下, H ( x ′ ) \mathcal{H}(x') H(x′)不再是一个线性函数。由于 f c ( x ) f_c(x) fc(x)不再可用,其被观测为一个重阶跃函数:
H ( x ′ ) : = { 1 , i f f c ~ ( x ′ ) > max c ~ ≠ c [ f c ( x ′ ) ] − 1 , o t h e r w i s e . (3) \tag{3} \mathcal{H}(x'):= \left\{ \begin{array}{ll} 1,&if f_{\tilde{c}}(x')>\max_{\tilde{c}\neq c}[f_c(x')]\\ -1,&otherwise. \end{array} \right. H(x′):={
1,−1,iffc~(x′)>maxc~=c[fc(x′)]otherwise.(3)其中 x ′ = x + α μ x'=x+\alpha\mu x′=x+αμ。当 α \alpha α足够小时,当且仅当 x ′ x' x′是边界样本的直接邻居时,才能观测到 H ( x ′ ) \mathcal{H}(x') H(x′)的状态变化。因此在硬标签设置下,有必要降低 x t ′ x'_t xt′与决策边界的距离。
如公式3所示, H ( x ′ ) \mathcal{H}(x') H(x′)是一个布尔函数,因此其可以用于指示是否成功生成对抗样本。基于此的对抗攻击目标可以记作:
min x ′ D ( x ′ , x ) , s u b j e c t t o H ( x ′ ) = 1 (4) \tag{4} \min_{x'}\mathcal{D}(x',x),subject\ to\ \mathcal{H}(x')=1 x′minD(x′,x),subject to H(x′)=1(4)这里 D = ∥ x ′ − x ∥ 2 \mathcal{D}=\|x'-x\|_2 D=∥x′−x∥2。
公式4的优化,有两种梯度策略:
- 第一种 H w ( x ′ ) \mathcal{H}_w(x') Hw(x′):
∇ H ( x ′ ) : = μ t i s u b j e c t t o min μ t i D ( x , x t ′ + δ t μ t i ) (5) \tag{5} \nabla\mathcal{H}(x'):=\mu_t^i\quad subject\ to\quad\min_{\mu_t^i}\mathcal{D}(x,x'_t+\delta_t\mu_t^i) ∇H(x′):=μtisubject toμtiminD(x,xt′+δtμti)(5)其中 μ t i = ∇ J S ( x + v t i , c † ) \mu_t^i=\nabla\mathcal{J_S}(x+v_t^i,c^\dag) μti=∇JS(x+vti,c†)是通过预训练替换模型 S ( x ) S(x) S(x)生成的梯度,其能够很好地复制目标模型 F ( x ) F(x) F(x)的分类行为、 v t i v_t^i vti是用于区分输入样本 x x x的向量、 δ t \delta_t δt是缩放因子。具体地,通过输入 ( x + v t i ) (x+v_t^i) (x+vti)和真实类别 c † c^\dag c†到白盒攻击模型 S ( x ) S(x) S(x),输出梯度 μ t i \mu_t^i μti。在每次迭代中,将生成 n n n个梯度 { μ t 0 , μ t 1 , … , μ t n } \{ \mu_t^0,\mu_t^1,\dots,\mu_t^n \} {
μt0,μt1,…,μtn},而其中能够使得 x t ′ x'_t xt′更接近 x x x的梯度被选择。
布尔函数 H ( x ′ ) \mathcal{H}(x') H(x′)提供了梯度方向的近似,其也被广泛应用于黑盒攻击方法中。然而, H ( x ′ ) \mathcal{H}(x') H(x′)的评估包含了其可能方向。因此,所提出的方法不只使用策略。 - 第二种 H t ( x ′ ) \mathcal{H}_t(x') Ht(x′):
- 基于HSJA攻击的基本思想,首先在均匀分布下生成 p t p_t pt个随机样本 μ t i \mu_t^i μti,其中 μ t i ∈ R m , i = { 0 , 1 , … , p t } \mu_t^i\in\mathbb{R}^m,i=\{0,1,\dots,p_t\} μti∈Rm,i={
0,1,…,pt}; - 在每次迭代中,随机样本的数量都将被重新计算,即 p t = 10 t + 1 p_t=10\sqrt{t+1} pt=10t+1;
- 利用蒙特卡洛法计算梯度:
∇ H b ( x t ′ ) : = 1 p t ∑ i = 1 p t H ( x t ′ + δ t μ t i ) μ t i (6) \tag{6} \nabla\mathcal{H}_b(x'_t):=\frac{1}{p_t}\sum_{i=1}^{p_t}\mathcal{H}(x'_t+\delta_t\mu_t^i)\mu_t^i ∇Hb(xt′):=pt1i=1∑ptH(xt′+δtμti)μti(6)其中 μ t i ∼ N ( O , I ) \mu_t^i\sim\mathcal{N}(O,I) μti∼N(O,I)。 δ t = 1 0 − 2 D ( x , x t ′ ) \delta_t=10^{-2}\mathcal{D}(x,x_t') δt=10−2D(x,xt′)是缩放因子。
- 基于HSJA攻击的基本思想,首先在均匀分布下生成 p t p_t pt个随机样本 μ t i \mu_t^i μti,其中 μ t i ∈ R m , i = { 0 , 1 , … , p t } \mu_t^i\in\mathbb{R}^m,i=\{0,1,\dots,p_t\} μti∈Rm,i={
基于两种梯度策略,迭代梯度 g t g_t gt被近似为:
g t ≈ β t ∇ H w ( x t ′ ) ∥ ∇ H w ( x t ′ ) ∥ 2 + ( 1 − β t ) ∇ H b ( x t ′ ) ∥ ∇ H b ( x t ′ ) ∥ 2 (7) \tag{7} g_t\approx\beta_t\frac{\nabla\mathcal{H}_w(x'_t)}{\|\nabla\mathcal{H}_w(x'_t)\|_2}+(1-\beta_t)\frac{\nabla\mathcal{H}_b(x'_t)}{\|\nabla\mathcal{H}_b(x'_t)\|_2} gt≈βt∥∇Hw(xt′)∥2∇Hw(xt′)+(1−βt)∥∇Hb(xt′)∥2∇Hb(xt′)(7) β \beta β是一个布尔函数,其输出从 { 0 , 1 } \{0,1\} {
0,1}中选择。在算法开始阶段,设置 β = 1 \beta=1 β=1;当算法陷入局部最小值时,设置 β = 0 \beta=0 β=0。考虑到每次迭代时,基于对抗样本 x t ′ x_t' xt′来近似梯度 g t g_t gt。因此,将该过程更新为 x ˙ t = x t ′ + α g t \dot{x}_t=x_t'+\alpha g_t x˙t=xt′+αgt。当 x ˙ t \dot{x}_t x˙t接近边界样本时,公式4的优化将更有意义。因此,将 x ˙ t \dot{x}_t x˙t移动到边界的微调过程表示为:
x ˙ t = min α ( x t ′ + α g t ) , s u c h t h a t H ( x ˙ t ) = 1 (8) \tag{8} \dot{x}_t=\min_\alpha(x_t'+\alpha g_t),\quad such\ that\ \mathcal{H}(\dot{x}_t)=1 x˙t=αmin(xt′+αgt),such that H(x˙t)=1(8)其中 α \alpha α是一个线性搜索参数。微调过程的目的是保证 H ( x ˙ t ) = 1 \mathcal{H}(\dot{x}_t)=1 H(x˙t)=1且 min D ( x t ′ , x ˙ t ) \min\mathcal{D}(x'_t,\dot{x}_t) minD(xt′,x˙t),从而使得下一次迭代落在边界上。注意,这里设置 α ≤ 1.0 \alpha\leq1.0 α≤1.0。
迭代优化的最后一步是增加输入样本 x x x和得到的中间对抗样本 x ˙ t \dot{x}_t x˙t之间的关联性。对此,二分搜索方法被采用:
x t + 1 ′ = lim ζ → 0 ( ζ x + ( 1 − ζ ) x ˙ t ) , s u c h t h a t H ( x t + 1 ′ ) = 1 (9) \tag{9} x_{t+1}'=\lim_{\zeta\to0}(\zeta x+(1-\zeta)\dot{x}_t),\quad such\ that \mathcal{H}(x'_{t+1})=1 xt+1′=ζ→0lim(ζx+(1−ζ)x˙t),such thatH(xt+1′)=1(9)该式所使用的方法是一种简单的贪心搜索算法,对于硬标签算法是足够的。
3.1 替换模型的梯度
替换模型的决策边界不匹配目标模型时,其所生成的梯度的迁移性将被损害。对此,所提出的SQBA方法将使用多梯度策略。
令 x ~ \tilde{x} x~表示由 S ( x ) S(x) S(x)生成的对抗样本, v ~ = ∇ S J ( x , c † ) \tilde{v}=\nabla_\mathcal{S}\mathcal{J}(x,c^\dag) v~=∇SJ(x,c†)表示将 x x x转变为 x ~ \tilde{x} x~的扰动向量。基于此计算的对抗样本计算为 x i ′ = x + η i v ~ x_i'=x+\eta_i\tilde{v} xi′=x+ηiv~,其中 η i ≤ 1 \eta_i\leq1 ηi≤1是一个用于调控到输入样本距离的正缩放因子。如图1所示,梯度的集合可以被计算为:
μ i = ∇ S J ( x i ′ , c † ) , w h e r e i = 0 , 1 , … , n (10) \tag{10} \mu_i=\nabla_\mathcal{S}\mathcal{J}(x_i',c^\dag),\quad where\ i=0,1,\dots,n μi=∇SJ(xi′,c†),where i=0,1,…,n(10)
图1:迭代实例搜索方向的过程示意
已有的很多工作表明,在硬标签设置下,最佳的搜索方法是与 v ~ \tilde{v} v~垂直的方向。令 A ( a ‾ 1 , a ‾ 2 ) : = cos ∠ ( a ‾ 1 , a ‾ 2 ) = ( a ‾ 1 ⋅ a ‾ 2 ) / ∥ a ‾ 1 ∥ 2 ∥ a ‾ 2 ∥ 2 \mathcal{A}(\overline{a}_1,\overline{a}_2):=\cos\angle(\overline{a}_1,\overline{a}_2)=(\overline{a}_1\cdot\overline{a}_2)/\|\overline{a}_1\|_2\|\overline{a}_2\|_2 A(a1,a2):=cos∠(a1,a2)=(a1⋅a2)/∥a1∥2∥a2∥2表示两个向量之间的角度,则 v ~ \tilde{v} v~和梯度向量 μ i \mu_i μi之间的角度被计算为 A ( v ~ , μ i ) \mathcal{A}(\tilde{v},\mu_i) A(v~,μi)。
为了验证样本集合 x i ′ , i = 0 , 1 , … , n x_i',i=0,1,\dots,n xi′,i=0,1,…,n的梯度方法,我们分别绘制了在CIFAR-10和Image-Net100上、多个DNN模型下生成的500个实例的距离和角度关系,如图2所示:
- 当 η i \eta_i ηi很小时, x i ′ x_i' xi′接近 x x x,此时 A ( v ~ , μ i ) ≈ 1 \mathcal{A}(\tilde{v},\mu_i)\approx1 A(v~,μi)≈1;
- 随着 η \eta η的增加, A ( v ~ , μ i ) \mathcal{A}(\tilde{v},\mu_i) A(v~,μi)快速下降直至0;
- 通过观察不同的DNN或者dataset的结果,当 η i ≈ 0 \eta_i\approx0 ηi≈0时, A ( v ~ , μ i ) ≈ 0 \mathcal{A}(\tilde{v},\mu_i)\approx0 A(v~,μi)≈0;
- 迭代近似梯度可以被选择为满足 η i ≥ 0.2 , H ( x ~ + 2 δ μ i ) = 1 \eta_i\geq0.2,\mathcal{H}(\tilde{x}+2\delta\mu_i)=1 ηi≥0.2,H(x~+2δμi)=1的梯度向量:
∇ H w ( x ~ ) = μ i w h e r e i = arg min D [ D ( x , x ~ + 2 δ t μ i ) ] (11) \tag{11} \nabla\mathcal{H}_w(\tilde{x})=\mu_i\quad where\ i=\argmin_{\mathcal{D}}[\mathcal{D}(x,\tilde{x}+2\delta_t\mu_i)] ∇Hw(x~)=μiwhere i=Dargmin[D(x,x~+2δtμi)](11)
文章评论