为了对深度学习在语音中的应用有个大体了解,可以查看博主写的李宏毅老师DLHLP 2020课程笔记
DLHLP 课程笔记
攻击目的
- 二分类器:我们假定一个二分类 f ( x ) { > 0 : c a t < 0 : d o g f(x) \left\{\begin{matrix}>0: cat\\ <0: dog \end{matrix}\right. f(x){>0:cat<0:dog,则我们想要需找扰动 δ \delta δ,使得 f ( x + δ ) 和 f ( x ) f(x+\delta)和f(x) f(x+δ)和f(x)恰好异号即可。
- 多分类器:假定x的正确分类为 k ^ \hat{k} k^,我们要让分类器判定为k的的置信度大于分类为 k ^ \hat{k} k^的置信度。定义 f k ( x ) f_{k}(x) fk(x)为分类器对于“x属于k类的置信度”。则目标为 f k ( x + δ ) − f k ^ ( x + δ ) > 0 k ≠ k ^ f_{k}(x+\delta)-f_{\hat{k}}(x+\delta)>0\ k\neq \hat{k} fk(x+δ)−fk^(x+δ)>0 k=k^。
- 我们还期望符合要求的 δ \delta δ尽可能的小。
分类
攻击目标:
- 无目标攻击:以图片分类为例,攻击者只需要让目标模型对样本分类错误即可,但并不指定分类错成哪一类。
- 有目标攻击:攻击者指定某一类,使得目标模型不仅对样本分类错误并且需要错成指定的类别。从难度上来说,有目标攻击的实现要难于无目标攻击。
扰动范围:
v
=
∣
∣
x
−
x
′
∣
∣
∣
∣
v
∣
∣
p
=
(
∑
i
=
1
n
∣
v
i
∣
p
)
1
p
v = ||x-x^{'}||\\||v||_{p} = (\sum_{i=1}^{n}|v_{i}|^{p})^{\frac{1}{p}}
v=∣∣x−x′∣∣∣∣v∣∣p=(∑i=1n∣vi∣p)p1
- p=1时,限制原向量被改变的维度数
- p=2时,限制x和x’的欧式距离
- p=3时,限制单一维度上的最大改变量
基于梯度
Fast Gradient Sign Method
- 基于梯度求解
- x ′ = x + η ⋅ s i g n ( ▽ x J ( x , y ) ) x'=x+\eta\cdot sign(\triangledown_{x}J(x,y)) x′=x+η⋅sign(▽xJ(x,y))
- 该模型沿着loss的梯度,移动一次,距离为 η \eta η。
- 对于Relu这种类线性的激活函数的模型是ok的,对于非线性模型作用不是很大。(梯度处处改变)
Project Gradient Descent
- FGSM是仅仅走一大步,PGD是每次都走一小步
- x 0 ∗ = x x t + 1 ∗ = c l i p ( x t ∗ + α ⋅ s i g n ( ▽ x J ( x t ∗ , y ) ) ) x_{0}^{*}=x\\x_{t+1}^{*}=clip(x_{t}^{*}+\alpha\cdot sign( \triangledown_{x}J(x_{t}^{*},y))) x0∗=xxt+1∗=clip(xt∗+α⋅sign(▽xJ(xt∗,y)))
- 以上两个算法都很容易陷入局部最大值和对模型“过拟合”
Momentum Iterative Method
- 新一轮扰动=当前梯度方向+之前梯度
-
g
t
+
1
=
μ
g
t
+
▽
x
J
(
x
t
∗
,
y
)
∥
▽
x
J
(
x
t
∗
,
y
)
∥
1
x
t
+
1
∗
=
x
t
∗
+
α
⋅
s
i
g
n
(
g
t
+
1
)
g_{t+1}=\mu g_{t}+\frac{\triangledown_{x}J(x_{t}^{*},y)}{\left \| \triangledown_{x}J(x_{t}^{*},y)\right \|}_{1}\\x_{t+1}^{*}=x_{t}^{*}+\alpha \cdot sign(g_{t+1})
gt+1=μgt+∥▽xJ(xt∗,y)∥▽xJ(xt∗,y)1xt+1∗=xt∗+α⋅sign(gt+1)
基于优化
C&W
- m i n i m i z e ∣ ∣ δ ∣ ∣ p + c ⋅ f ( x + δ , t ) s u c h t h a t x + δ ∈ [ 0 , 1 ] n minimize\ ||\delta||_{p}+c\cdot f(x+\delta,t)\\ such\ that \ x+\delta \in [0,1]^{n} minimize ∣∣δ∣∣p+c⋅f(x+δ,t)such that x+δ∈[0,1]n
- 为保证 x + δ ∈ [ 0 , 1 ] n \ x+\delta \in [0,1]^{n} x+δ∈[0,1]n,使用 δ = 1 2 ( t a n h ( w i ) + 1 ) − x i \delta = \frac{1}{2}(tanh(w_{i})+1)-x_{i} δ=21(tanh(wi)+1)−xi限制,其中 t a n h ( x ) = e x − e − x e x + e − x ∈ ( − 1 , 1 ) tanh(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}\in (-1,1) tanh(x)=ex+e−xex−e−x∈(−1,1)
- 常选 p = 2 , c = 6 , f ( x ′ ) = m a x ( m a x i ≠ t ( Z ( x ) i ) − Z ( x ′ ) t , − k ) p=2,\ c=6,\ f(x')=max(\underset{i\neq t}{max}(Z(x)_{i})-Z(x')_{t},-k) p=2, c=6, f(x′)=max(i=tmax(Z(x)i)−Z(x′)t,−k),其中 k 为置信度 , Z 为 l o g i s t i c 输出 ( 未经过 s o f t m a x ) k为置信度,Z为logistic输出(未经过softmax) k为置信度,Z为logistic输出(未经过softmax)
- 超参数:k越大,那么模型分错,且错成的那一类的概率越大。常数c协调了对抗性和保持接近原始样本的相对重要性。
-
f
(
x
′
)
f(x')
f(x′)是衡量
F
(
X
′
)
F(X')
F(X′)和目标label t之间距离的损失函数,越小则越有可能分类成t,常见的如下图。
实际上损失函数的选择会使得对抗性样本的失真率差三倍以上
Audio Adversarial Examples:Targeted Attacks on Speech-to-Text
- C&W算法应用于DeepSpeech模型(端到端语音识别)
- 量化扰动后失真,使用分贝之差, d B ( δ ) dB(\delta) dB(δ)越小代表越安静。 d B ( x ) = m a x i 20 ⋅ l o g 10 ( x i ) d B ( δ ) = d B ( δ ) − d B ( x ) dB(x)=\underset{i}{max} 20\cdot log_{10}(x_{i})\\ dB(\delta)=dB(\delta)-dB(x) dB(x)=imax20⋅log10(xi)dB(δ)=dB(δ)−dB(x)
- 之前工作已经做到
m
i
n
i
m
i
z
e
d
B
x
(
δ
)
+
c
⋅
l
(
x
+
δ
,
t
)
,
其中
l
(
x
′
,
t
)
≤
0
⇔
f
(
x
′
)
=
t
minimize\ dB_{x}(\delta)+c\cdot l(x+\delta,t),其中l(x',t)\leq 0 \Leftrightarrow f(x')=t
minimize dBx(δ)+c⋅l(x+δ,t),其中l(x′,t)≤0⇔f(x′)=t 了,对于语音有两个问题:
- 如果使用 l ( x ′ , t ) = C T C L o s s ( x ′ , t ) l(x',t) = CTCLoss(x',t) l(x′,t)=CTCLoss(x′,t),可以保证 l ( x ′ , t ) ≤ 0 ⇒ C ( x ′ ) = t l(x',t)\leq 0\Rightarrow C(x')=t l(x′,t)≤0⇒C(x′)=t,但反过来却不行。
- 当使用 l ∞ l_{\infty } l∞作为尺度时,优化过程会在结果附近不断摆动而不集中,因此采用 l 2 l_{2} l2,即优化 ∣ δ ∣ 2 2 + c ⋅ l ( x + δ , t ) |\delta|_{2}^{2}+c\cdot l(x+\delta,t) ∣δ∣22+c⋅l(x+δ,t)。
- 在使用贪心解码(greedy decoding) 方案时,完整的攻击方案如下:
- 使用的损失函数 l ( y , t ) = m a x ( y t − m a x t ′ ≠ t y t ′ , 0 ) l(y,t)=max(y_{t}-\underset{t'\neq t}{max}\ \ y_{t'},0) l(y,t)=max(yt−t′=tmax yt′,0),对于目标序列 π , L ( x , π ) = ∑ i l ( f ( x ) i , π i ) \pi , L(x,\pi)=\sum_{i}l(f(x)^{i},\pi_{i}) π,L(x,π)=∑il(f(x)i,πi)。
- 这里我存疑,我觉得应该是 l ( y , t ) = m a x ( m a x t ′ ≠ t y t ′ − y t , 0 ) l(y,t)=max(\underset{t'\neq t}{max}\ y_{t'}-y_{t}\ ,0) l(y,t)=max(t′=tmax yt′−yt ,0)
- m i n i m i z e ∣ ∣ δ ∣ ∣ 2 2 + ∑ i c i ⋅ L i ( x + δ , π i ) s u c h t h a t d B x ( δ ) < τ minimize\ ||\delta||_{2}^{2}+\sum_{i} c_{i}\cdot L_{i}(x+\delta,\pi_{i})\\ such\ that \ dB_{x}(\delta)<\tau minimize ∣∣δ∣∣22+∑ici⋅Li(x+δ,πi)such that dBx(δ)<τ
- 我们先通过使用CTCLoss找到对抗样本 x 0 , 计算 π = a r g m a x i f ( x 0 ) i x_{0},计算\pi = arg\ max_{i}\ f(x_{0})^{i} x0,计算π=arg maxi f(x0)i为使用的目标序列。