对抗子空间维度探讨
Posted 鬼道2022
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对抗子空间维度探讨相关的知识,希望对你有一定的参考价值。
引言
对抗样本是深度学习模型的主要威胁之一,对抗样本会使得目标分类器模型分类出错并且它存在于稠密的对抗子空间中,对抗子空间又包含于特定的样本空间中。本文主要是对对抗子空间维数进行探讨,即针对于单个模型的特定样本对抗子空间的维度是多少,针对多个模型的特定样本对抗子空间的维度是多少。
对抗子空间
给定干净样本
x
∈
R
d
x\\in \\mathbbR^d
x∈Rd,以及其对应的标签
y
y
y,带有参数
θ
\\theta
θ的神经网络分类器为
f
θ
(
⋅
)
f_\\theta(\\cdot)
fθ(⋅),损失函数为
J
(
x
,
y
;
θ
)
J(x,y;\\theta)
J(x,y;θ),对抗样本为
x
′
x^\\prime
x′,则根据多元泰勒展开式可得
J
(
x
′
,
y
;
θ
)
=
J
(
x
,
y
;
θ
)
+
(
x
′
−
x
)
⊤
∇
x
J
(
x
,
y
;
θ
)
+
O
(
∥
x
′
−
x
∥
2
)
J(x^\\prime,y;\\theta)=J(x,y;\\theta)+(x^\\prime-x)^\\top\\nabla_x J(x,y;\\theta)+O(\\|x^\\prime-x\\|^2)
J(x′,y;θ)=J(x,y;θ)+(x′−x)⊤∇xJ(x,y;θ)+O(∥x′−x∥2)进一步可得优化目标为
m
a
x
i
m
i
z
e
J
(
x
,
y
;
θ
)
+
(
x
′
−
x
)
⊤
∇
x
J
(
x
,
y
;
θ
)
s
u
b
j
e
c
t
t
o
∥
x
′
−
x
∥
∞
≤
ε
\\beginarrayrl\\mathrmmaximize& J(x,y;\\theta)+(x^\\prime-x)^\\top\\nabla_x J(x,y;\\theta)\\\\\\mathrmsubject \\text to& \\|x^\\prime-x\\|_\\infty \\le \\varepsilon\\endarray
maximizesubject toJ(x,y;θ)+(x′−x)⊤∇xJ(x,y;θ)∥x′−x∥∞≤ε进而可得对抗样本的计算公式为
x
′
=
x
+
ε
⋅
∇
x
J
(
x
,
y
;
θ
)
x^\\prime=x+\\varepsilon \\cdot\\nabla_x J(x,y;\\theta)
x′=x+ε⋅∇xJ(x,y;θ)其中
ε
\\varepsilon
ε表示的是对抗扰动的大小。由上公式可知,干净样本
x
x
x沿着梯度方向
∇
x
J
(
x
,
y
;
θ
)
\\nabla_x J(x,y;\\theta)
∇xJ(x,y;θ)可以进入到对抗子空间中。进一步详细的阐述如下图所示,其中图(a),(b)和(c)表示的是给定一个干净样本沿着不同的方向生成的样本输入到分类器分类的结果示意图,每个方格表示每一个样本的分类结果,方格中白色表示分类器分类正确,彩色表示分类器分类成其它不同的类别。图(d) ,(e)和(f)表示样本移动的方向分解示意图。
由上图(d)可知,如果选择两个正交方向,一个是对抗扰动的梯度方向,另一个是随机扰动方向,从图(a)可知,沿着对抗扰动方向的干净样本可以进入到对抗子空间中,沿着随机扰动的方向则没有生成对抗样本。由上图(e)可知,如果这两个正交方向与梯度方向成一个角度,则从图(b)可知这两个正交方向都可以进入到对抗子空间中,但是却不是最速方向。由上图(f)可知,如果这两个正交方向是都是随机扰动,从图(c)可知,干净样本都很难进入到对抗子空间中去,该图出现误分类的情况与对抗样本无关,跟模型自身的训练情况有关。
单模型对抗子空间维数
由上一节对对抗样本损失函数的多元泰勒展开可以近似有 J ( x ′ , y ; θ ) ≈ J ( x , y ′ ; θ ) + ( x ′ − x ) ⊤ ∇ x J ( x , y ; θ ) J(x^\\prime,y;\\theta)\\approx J(x,y';\\theta)+(x^\\prime-x)^\\top \\nabla_x J(x,y;\\theta) J(x′,y;θ)≈J(x,y′;θ)+(x′−x)⊤∇xJ(x,y;θ)其中令 g = ∇ x J ( x , y ; θ ) ∈ R d g = \\nabla_x J(x,y;\\theta)\\in \\mathbbR^d g=∇xJ(x,y;θ)∈Rd, r = ( x ′ − x ) ∈ R d r = (x^\\prime-x)\\in \\mathbbR^d r=(x′−x)∈Rd。目的是要探究给定一个模型,求解对抗扰动 r r r使得模型损失函数至少增长 α \\alpha α得对抗子空间维度的问题,数学表述为 J ( x ′ , y ; θ ) − J ( x , y ; θ ) = r ⊤ g ≥ α \\beginalignedJ(x^\\prime,y;\\theta)-J(x,y;\\theta)&=r^\\top g\\ge \\alpha\\\\\\endaligned J(x′,y;θ)−J(x,y;θ)=r⊤g≥α其中 r ∈ S p a n r 1 , r 2 ⋯ , r k r \\in \\mathrmSpan\\r_1,r_2\\cdots,r_k\\ r∈Spanr1,r2⋯,rk,即扰动 r r r属于 r 1 , r 2 , ⋯ , r k r_1,r_2,\\cdots,r_k r1,r2,⋯,rk这 k k k个正交向量组成的对抗子空间中, k k k就是对抗子空间的维度。此时有如下定理成立,详细证明过程如下所示:
定理: 给定 g ∈ R d g \\in \\mathbbR^d g∈Rd 和 α ∈ [ 0 , 1 ] \\alpha \\in[0,1] α∈[0,1],最大对抗子空间维数 k k k的正交向量 r 1 , r 2 , … , r k r_1,r_2,\\ldots,r_k r1,r2,…,rk 满足 ∥ r i ∥ 2 ≤ 1 \\left\\|r_i\\right\\|_2 \\leq 1 ∥ri∥2
以上是关于对抗子空间维度探讨的主要内容,如果未能解决你的问题,请参考以下文章