Virtual Adversarial Training(VAT)
Posted Facico
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Virtual Adversarial Training(VAT)相关的知识,希望对你有一定的参考价值。
Virtual Adversarial Training:A Regularization Method for Supervised and Semi-Supervised Learnimg
对抗训练
Goodfellow对对抗训练损失函数定义如下
L
a
d
v
(
x
l
,
θ
)
=
D
[
q
(
y
∣
x
l
)
,
p
(
y
∣
x
l
+
r
a
d
v
,
θ
)
]
w
h
e
r
e
r
a
d
v
=
a
r
g
m
a
x
D
[
q
(
y
∣
x
l
)
,
p
(
y
∣
x
l
+
r
a
d
v
,
θ
)
]
L_adv(x_l,\\theta)=D[q(y|x_l),p(y|x_l+r_adv,\\theta)]\\\\ where \\quad r_adv=argmax\\quad D[q(y|x_l),p(y|x_l+r_adv,\\theta)]\\\\
Ladv(xl,θ)=D[q(y∣xl),p(y∣xl+radv,θ)]whereradv=argmaxD[q(y∣xl),p(y∣xl+radv,θ)]
- D是衡量两个分布相似度的函数, q ( y ∣ x l ) q(y|x_l) q(y∣xl)是样本即真实分布, p ( y ∣ x l , θ ) p(y|x_l,\\theta) p(y∣xl,θ)是由参数和 x l x_l xl生成的预测分布
- 通过加入扰动 r a d v r_adv radv来使得两个分部尽量相似
这样对抗的可行性
- 因为很多网络被设计得十分“线性”,像LSTM这样的,对x的每个维度都做微小扰动,当x的维度变大的时候,会对网络造成较大的影响。
- 网络的线性,使得高阶导近似0,taylor展开后占主导的是线性的部分,所以用来干扰的主要就是对抗样本中线性的部分
线性估计
- 优化这个loss很难,我们使用线性估计的方法,找到最近似的扰动,当是L2正则的时候
r
a
d
v
≈
ϵ
g
∣
∣
g
∣
∣
2
w
h
e
r
e
g
=
∇
x
l
D
[
h
(
y
;
y
l
)
,
p
(
y
∣
x
l
,
θ
)
]
r_adv\\approx \\epsilon \\fracg||g||^2\\\\ where\\quad g=\\nabla_x_lD[h(y;y_l),p(y|x_l,\\theta)]
radv≈ϵ∣∣g∣∣2gwhereg=∇xlD[h(y;yl),p(y∣xl,θ)]
当是
L
∞
L_∞
L∞时,
r
a
d
v
≈
ϵ
s
i
g
n
(
g
)
r_adv\\approx \\epsilon sign(g)
radv≈ϵsign(g)
- 这个扰动现在相当于是,模型最容易犯错误的方向,用梯度来估计‘
大问题
- AT(adversarial training)是在supervise的,就是没有样本不行。
- 所以论文寻求semi-supervised的方法
VAT
- 我们要找的这个方向就是最大程度影响模型决策的方向,在VAT中,我们不需要label,只需要virtual label
我们假设:当label训练足够多之后,会接近真实label分布
- 所以我们将 q ( y ∣ x ∗ ) q(y|x_*) q(y∣x∗)用预测结果 p ( y ∣ x ∗ , θ ^ ) p(y|x_*,\\hat \\theta) p(y∣x∗,θ^)代替(此处 x ∗ x_* x∗表示可以是有label的,也可以是没label的)
L D S ( x ∗ , θ ) = D [ p ( y ∣ x ∗ , θ ^ ) , p ( y ∣ x ∗ + r v a d v , θ ) ] r v a d v = a r g max r ; ∣ ∣ r ∣ ∣ 2 ≥ ϵ D [ p ( y ∣ x ∗ , θ ^ ) , p ( y ∣ x ∗ + r ) ] LDS(x_*,\\theta)=D[p(y|x_*,\\hat \\theta),p(y|x_* + r_vadv, \\theta)]\\\\ r_vadv=arg\\max_r;||r||_2\\geq \\epsilon\\quad D[p(y|x_*,\\hat \\theta),p(y|x_*+r)] LDS(x∗,θ)=D[p(y∣x∗,θ^),p(y∣x∗+rvadv,θ)]rvadv=argr;∣∣r∣∣2≥ϵmaxD[p(y∣x∗,θ^),p(y∣x∗+r)]
- LDS(local distributional smoothness):LDS定义为衡量当前基于每个输入数据的模型的平滑度的负函数,当LDS减少,模型在每个数据点会变得更平滑。
我们将损失函数正则化如下(有标签的和没标签label的求均值unlabel)
R
v
a
d
v
(
D
l
,
D
u
l
,
θ
)
=
1
N
l
+
N
u
l
∑
x
∗
∈
D
l
,
D
u
l
L
D
S
(
x
∗
,
θ
)
R_vadv(D_l,D_ul,\\theta)=\\frac1N_l+N_ul\\sum_x_* \\in D_l,D_ul LDS(x_*,\\theta)
Rvadv(Dl,Dul,θ)=Nl+Nul1x∗∈Dl,Dul∑LDS(x∗,θ)
最终的目标函数为
l
(
D
l
,
θ
)
+
α
R
v
a
d
v
(
D
l
,
D
u
l
,
θ
)
l(D_l,\\theta)+\\alpha R_vadv(D_l,D_ul,\\theta)
l(Dl,θ)+αRvadv(DAdversarial Faces
cs231n spring 2017 lecture16 Adversarial Examples and Adversarial Training 听课笔记
Generative Adversarial Nets 论文翻译