0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

介绍NMT模型鲁棒性对抗训练的三部曲

深度学习自然语言处理 来源:天宏NLP 2023-02-20 10:35 次阅读

本文主要介绍NMT模型鲁棒性的相关改进工作,介绍一下对抗训练的三部曲,一作皆是ChengYong,分别中了2018,2019和2020的ACL。

第一项工作为 Towards Robust Neural Machine Translation (ACL 2018)

本文的问题引入为一个小实验,即将机器翻译的源句进行微小扰动(同义词替换),69.74%的翻译句子也随之改变,并且原始输入和扰动输入对应的翻译句间BLEU仅为79.01,因此,作者希望通过对抗训练来加强Encoder和Decoder的抗干扰能力。

5c4f9db4-afe5-11ed-bfe3-dac502259ad0.png

具体做法如上图,首先是噪声的引入,作者提出两种方式:

1)词汇级别,计算余弦相似度进行同义词替换;

2)特征级别,在词向量上加入高斯噪声。

然后是噪声数据的使用,对应上图中三个损失函数:

1)Ltrue(x, y)是正常训练NMT的损失函数;

2)Lnoisy(x', y)是加强Decoder的去噪能力,即对应有噪声的Hx',Decoder也能得到正确的输出;

3)Linv(x, x'),旨在加强Encoder的去噪能力,即针对噪声数据x',Encoder得到的Hx'也应与原表征Hx相近,训练过程采用了min-max two-player策略,引入Discriminator进行交互对抗训练,Encoder得到Hx和Hx'应该尽可能相似骗过Discriminator,而Discriminator则要分开有、无噪声的数据,两者迭代训练以加强Encoder对噪声数据x'的建模能力。

文章优势在于不改变模型结构,可拓展到任意噪声干扰或是针对特定任务进行设计,如作者对输入数据进行删除、替换等token级噪声时,发现使用词汇级别噪声的引入训练的模型更鲁棒。

第二项工作为 Robust Neural Machine Translation with Doubly Adversarial Inputs (ACL 2019)

这项工作不同于上文的模型无关,而是将NMT看成“白盒”,从而基于梯度生成对抗输入,文章的核心思想就是下面这条式子,其中x',x分别代表有无噪声的数据,R(·)为相似性度量,后面的是负对数Loss,通俗来讲就是找到噪声不是太大的x'(保证x'与x语义相近),使得模型的Loss最大,这样才能最有效地加强模型鲁棒性。

5c7ebaea-afe5-11ed-bfe3-dac502259ad0.png

具体做法分为两部分,分别是Encoder攻击和Decoder防御。在Encoder端,x为Encoder的输入,模型会算出某个词表征xi的梯度gxi,然后在词表中找出使Loss最大的x替换原有的词xi,做法是在词典中计算表征“e(x)-e(xi)”与gxi的相似度,使相似度最大的xi'为所得。同时,噪声xi'不应与原始xi差太远,作者使用了Masked LM提取候选词,在原句中,会将需要替换的词先mask,然后选择预测的topk作为候选项,至于哪些词会被mask或替换则为随机均匀采样。

5c9792a4-afe5-11ed-bfe3-dac502259ad0.png

在Decoder端,z为Decoder的输入,与Encoder中的噪声xi'类似,以同样的方法得到zi',但针对zi的采样与xi有关,即xi随机采样,zi需要大概率在xi替换的同样位置进行替换。因此,回望整个训练方式,Encoder的作用是找到使梯度最大的xi'扰乱模型,Decoder的作用是即使输入为zi',仍能输入正确的结果,具有一定鲁棒性。

我觉得本文有两点值得思考,首先是基于梯度最大来找噪声词,能够更有力的对模型鲁棒能力发起攻击,其实这个可以更进一步,Encoder输入中需要被替换的词并非随机采样,而是找使Loss最大的词,相关文章改进CE Loss为Focal Loss也就是这个思想,我们可以直觉判断,模型建模较好的是高频词,建模不好的是低频词,低频词的Loss比较大,我们在大Loss的基础上再找大梯度,这样攻击效果更强力,同时可以提高模型对低频词的鲁棒性。第二点是作者对xi的替换处理,还要回词典中寻找进行词替换,这样未免更加麻烦了,为什么不在一定范围内,直接找梯度最大的向量进行替换了呢?如果怕语义信息不相似,缩小相似度量范围就好了,这样更方便。

第三项工作为 AdvAug: Robust Adversarial Augmentation for Neural Machine Translation (ACL 2020)

这项工作是在第二项的基础上进行了数据增强的改进,采用的方法为线性插值,首先针对原始数据(x, y),作者用第二项工作的方法造出一堆噪声数据,然后对噪声数据进行线性插值生成更多的伪数据,令人比较奇怪的是,作者对不同的parallel data pair同样进行了线性插值,可能两句话虽不同含义,但是插值后在向量空间,源句和目标句也能表达类似语义?

5cb5247c-afe5-11ed-bfe3-dac502259ad0.png


5cd27d56-afe5-11ed-bfe3-dac502259ad0.png







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ACL
    ACL
    +关注

    关注

    0

    文章

    59

    浏览量

    11875

原文标题:NMT对抗训练的三部曲

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    130 Windows提升进程权限三部曲

    WINDOWSWINDOWS开发
    小凡
    发布于 :2022年08月29日 05:57:31

    [5.3.1]--5.3可视化设计三部曲

    可视化大数据
    jf_75936199
    发布于 :2023年03月11日 17:55:48

    油烟机选购三部曲

    油烟机选购三部曲厨房油烟含有20多万种有害物质,不仅会致癌,对肠道、大脑神经等也有很大的危害。厨房油烟已成为人体健康的隐形杀手。而肩负清洁厨房油烟的重任,一款好的吸油烟机将为你的生活增色不少
    发表于 12-22 14:45

    三部曲(全书)

    天嵌的三部曲
    发表于 07-01 16:41

    Pytorch模型训练实用PDF教程【中文】

    本教程以实际应用、工程开发为目的,着重介绍模型训练过程中遇到的实际问题和方法。在机器学习模型开发中,主要涉及大部分,分别是数据、
    发表于 12-21 09:18

    基于联锁栅极驱动器提高相逆变器的

    停工和生产损失。因此,VFD的可靠是机器制造商和工厂业主的关键要求。图1所示的相逆变器结构是VFD的核心,能够将整流后的电源电压
    发表于 07-12 07:11

    相逆变器的怎么提高?

    变频驱动器(VFD)是工业自动化机械的重要组成部分。它们能够高效地驱动泵、风扇、传送带、计算机数控机床和机器人自动化解决方案,有助于降低工厂的总能耗。若VFD发生故障会直接导致机器停机,进而造成工厂停工和生产损失。因此,VFD的可靠
    发表于 08-09 08:13

    冒泡排序法三部曲の一、冒泡排序原理版

    的类型就多进行3x4次排序,为了解决这个问题,对冒泡排序法进行进一步优化,将在冒泡排序法三部曲の二、冒泡排序优化中解决这个问题。
    发表于 09-12 10:30

    冒泡排序法三部曲の冒泡排序原理版(一)

    ;, array[n]);printf("\t");//空格一次}return 0;}运行结果上述代码没有问题,但是如果数组是类似{1,2,3,5,4}这样的类型就多进行3x4次排序,为了解决这个问题,对冒泡排序法进行进一步优化,将在冒泡排序法三部曲の二、冒泡排序优化中解决这个问题。
    发表于 09-12 10:42

    冒泡排序法三部曲の二冒泡排序法的优化

    本帖最后由 卢小二 于 2019-9-14 11:23 编辑 环境:VS2017C language在冒泡排序法三部曲の一冒泡排序法的原理之后,其实存在一些可优化的问题,首先就是假如是
    发表于 09-13 12:17

    简述电子对抗综合模拟训练平台

    电子对抗综合模拟训练平台以电子战部队指挥机构为主要训练对象,开展集电子对抗、指挥干预、战术使用、仿真推演、训练监控与评估等功能的综合电子
    发表于 09-01 10:50

    模型预测控制(RMPC)是什么

    模型预测控制(RMPC)是一种设计不确定系统控制器的有效方法,在这种不确定系统中,每个可能的扰动实现都必须满足状态和输入约束。然而,在某些情况下,由于需要防止低概率异常值,这一要求可能会显著降低
    发表于 09-10 08:37

    Python和Keras在训练期间如何将高斯噪声添加到输入数据中呢?

    的均值和标准差,以受控方式添加到输入或权重。 目标是提高模型的性能和,同时又不会让模型很难从数据中学习。下面我们
    发表于 02-16 14:04

    关于语言模型对抗训练的工作

    本文把对抗训练用到了预训练和微调两个阶段,对抗训练的方法是针对embedding space,通过最大化
    的头像 发表于 11-02 15:26 1855次阅读
    关于语言<b class='flag-5'>模型</b>和<b class='flag-5'>对抗</b><b class='flag-5'>训练</b>的工作

    基于对抗自注意力机制的预训练语言模型

    表示输入的特征,在传统的对抗训练中, 通常是 token 序列或者是 token 的 embedding, 表示 ground truth. 对于由 参数化的模型模型的预测结果可以表
    的头像 发表于 07-08 16:57 1093次阅读