训练模型正确分类未修改示例和对抗性示例的过程,使分类器对扰动具有鲁棒性
目的:
将对抗性训练扩展到半监督/无标记情况
使模型在某实例和其对抗性扰动上产生相同的输出分布
基本思想:扩展对抗性训练/虚拟对抗性训练至文本分类任务和序列模型
基本思路:
将离散单词输入转化为连续向量,定义单词嵌入矩阵:
R(K+1)×DR(K+1)×D
其中 KK 指代单词数量,第 K+1K+1 个单词嵌入作为序列 结束(eoseos)令牌
设置对应时间步长的离散单词为 w(t)w(t) ,单词嵌入为 v(t)v(t)
针对文本分类问题使用 LSTM 模型或双向 LSTM 模型 由于扰动为有界范数,模型在对抗性训练过程中可能 通过 “学习具有较大范数的嵌入使扰动变得不重要” 的病态解决方案,因此需将嵌入进行规范化:
v¯¯¯k=vk−E(v)Var(v)√ where E(v)=∑Kj=1fjvj,Var(v)=∑Kj=1fj(vj−E(v))2v¯k=vk−E(v)Var(v) where E(v)=∑j=1Kfjvj,Var(v)=∑j=1Kfj(vj−E(v))2
其中 fifi 表示第 ii 个单词的频率,在所有训练示例中进行计算。
对抗性训练尝试提高分类器对小的、近似最坏情况扰动的鲁棒性——使分类器预测误差最大
代价函数:
−logp(y∣x+rzdv;θ) where rudv−argminr,∣r∥≤ϵlogp(y∣x+r;θ^)−logp(y∣x+rzdv;θ) where rudv−argminr,∣r‖≤ϵlogp(y∣x+r;θ^)
其中 rr 为扰动, θˆθ^ 为分类器当前参数的常数集,即表明构造对抗性实例的过程中不应该进行反向传播修改参数
对抗性扰动 rr 的生成:通过线性逼近得到
radv=−ϵg/∥g∥2 where g=∇xlogp(y∣x;θ^)radv=−ϵg/‖g‖2 where g=∇xlogp(y∣x;θ^)
将对抗性训练应用于半监督学习——使分类器预测的输出分布差距最大
额外代价:
KL[p(⋅∣x;θ^)∣p(⋅∣x+rv-adv ;θ)] where rv-adv =argmaxr,∥r∥≤ℓKL[p(⋅∣x;θ^)∥p(⋅∣x+r;θ^)]KL[p(⋅∣x;θ^)∣p(⋅∣x+rv-adv ;θ)] where rv-adv =argmaxr,‖r‖≤ℓKL[p(⋅∣x;θ^)‖p(⋅∣x+r;θ^)]
对抗性扰动设置:
radv=−ϵg/∥g∥2 where g=∇slogp(y∣s;θ^)radv=−ϵg/‖g‖2 where g=∇slogp(y∣s;θ^)
对抗性损失:
Ladv(θ)=−1N∑Nn=1logp(yn∣sn+radv,n;θ)Ladv(θ)=−1N∑n=1Nlogp(yn∣sn+radv,n;θ)
其中 NN 为标记样本的数量
虚拟对抗性扰动设置:
rv-adv =ϵg/∥g∥2 where g=∇s+dKL[p(⋅∣s;θ^)∣p(⋅∣s+d;θ^)]rv-adv =ϵg/‖g‖2 where g=∇s+dKL[p(⋅∣s;θ^)∣p(⋅∣s+d;θ^)]
其中 dd 为小随机向量,实际通过有限差分法和幂迭代计算虚拟对抗性扰动
虚拟对抗性训练损失:
LV-adv (θ)=1N′∑N′n′=1KL[p(⋅∣sn′;θ^)∣p(⋅∣sn′+rv−ndv,n′;θ)]LV-adv (θ)=1N′∑n′=1N′KL[p(⋅∣sn′;θ^)∣p(⋅∣sn′+rv−ndv,n′;θ)]
其中 NN 为标记/未标记样本的数量之和
略