SMART: 通用对抗式训练

SMART是一种对抗式训练方法,通过Smoothness-inducing Adversarial Regularization和Bregman Proximal Point Optimization改进目标函数,提高了预训练自然语言模型的泛化能力和对扰动的抵抗力。相较于FGM、PGD等算法,SMART添加了正则项以保持模型在扰动范围内的输出一致性及参数稳定。实验证明SMART在多个任务中取得了最先进的结果。
摘要由CSDN通过智能技术生成

背景

纯粹的微调下,由于目标函数设置过于简单,神经网络很容易急不可耐地收敛到最近的局部最优点。这些最优点不仅并非全局最优点,同时不抗攻击。只要在模型输入上稍加扰动,输出的概率分布便会产生大幅度的偏移。为此,一些研究潜心于此,希望能让神经网络学习到的映射能力更为 平滑,从而进一步地提高 泛化能力。如果你对深度学习有一定深入的了解,对于这一点一定不陌生。

这些研究里最为经典的当属 VAE (变分自编码器),通过 reparameterization,将噪声结合到模型前馈的中间流程,基于不变的输入和输出,提高中间语义向量的平滑度。VAE 至今已演化出数百个版本,是 GAN 之外最为成功的生成模型。来到自然语言处理领域,添加噪声的方式则主要集中在 embedding 层,对 embedding 层的输出添加符合正态/均匀分布的扰动。如同 VAE 简单地设置噪声的方差,在每次输入时添加噪声,能获得一定的成效。但这样统一的标准,容易造成训练后期噪声范围过大而导致的参数收敛不平稳,达不到最优点。因此后来的研究则专注于根据梯度的分布,动态调整噪声的方向和范围,统称为对抗式训练。

min ⁡ θ E ( Z , y ) ∼ D [ max ⁡ ∣ ∣ δ ∣ ∣ p < ϵ L ( f θ ( X + δ ) , y ) ] \min_\theta \mathbb{E}_{(\mathcal{Z},y)\sim\mathcal{D}}\Big[\max_{||\delta||_p<\epsilon}L(f_\theta(X+\delta),y)\Big] θminE(Z,y)D[δp<ϵmaxL(fθ(X+δ),y)]

FGSMFGM 是非常优秀的代表,每批样本进来,沿着梯度的正方向添加扰动,将添加扰动前的梯度和添加扰动后的梯度取平均值更新参数。随后 PGD 被提出,在 FGM 上多次迭代,找到最优的扰动。在 PGD 之后,还出现了 FreeATYOPOFreeLB 等优秀的对抗式训练算法。PGD 被引用了近 2,000 次,而 FreeLB 至今在 GLUE 上依然榜上有名。SMART 正是在这样的背景下诞生,超越了其他一众对抗式训练算法。

尽管 SMART 自推出至今,并未受到太多的关注。但实战说话,在我个人的试验下,它在不同任务上都达到了最优异的成绩。至于为何关于 SMART 的讨论热度不高,我认为是因为作者始终没有开放源码,同时论文存在信息跳跃,对没有接触过对抗式训练的新人不太友好。是金子总会发光,相信 SMART 在未来几个月会逐渐产生热度,成为如同分层学习率一样的通用训练技巧。

关于其他对抗式训练算法的讨论,网上公开的资料很多,我这里就不复述了。

SMART

SMART: Robust and Efficient Fine-Tuning for Pre-trained Natural Language Models through Principled Regularized Optimization
https://arxiv.org/abs/1911.03437

进入正题,SMART 的算法思路与此前基于 FGM、PGD 的一派对抗式算法有些许差异。此前的对抗式训练算法基本没有对目标函数进行修改,仅仅只是对添加扰动后传回的梯度进行处理,而 SMART 则是大刀阔斧地添加了两个正则项。两个正则项涉及到的思想,分别叫做 Smoothness-inducing Adversarial RegularizationBregman Proximal Point Optimization。前者要求模型在一定的扰动范围内,输出完全一致的概率分布;后者要求参数与 epoch 初始时的分布相近。
R s ( θ ) = 1 n ∑ i = 1 n max ⁡ ∣ ∣ x ~ i − x i ∣ ∣ p ≤ ϵ l s ( f ( x ~ i ; θ ) , f ( x i ; θ ) ) \mathcal{R}_s(\theta)=\frac{1}{n}\sum_{i=1}^n\max_{||\tilde{x}_i-x_i||_p\le\epsilon}\mathcal{l}_s(f(\tilde{x}_i;\theta), f(x_i;\theta)) Rs(θ)=

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值