热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《论文阅读:对抗训练(adversarialtraining)》

 论文阅读:对抗训练(adversarialtraining)陈见耸自然语言处理、人工智能、机器学习 引言对抗训练(adversarialtraining)是增强神经网络鲁棒性的重

 


论文阅读:对抗训练(adversarial training)
陈见耸

自然语言处理、人工智能、机器学习

 



  1. 引言

对抗训练(adversarial training)是增强神经网络鲁棒性的重要方式。在对抗训练的过程中,样本会被混合一些微小的扰动(改变很小,但是很可能造成误分类),然后使神经网络适应这种改变,从而对对抗样本具有鲁棒性。

在图像领域,采用对抗训练通常能提高鲁棒性,但是通常都会造成泛化性降低,也就是说,虽然对对抗样本的抵抗力提升了,但是有可能影响普通样本的分类能力。神奇的是,在语言模型领域却观察到不一致的结果——对抗训练既提高了鲁棒性也提高了泛化性。所以对抗训练还值得研究一下,毕竟对效果也是有提升的。

我们首先来看一下对抗训练的一般性原理,对抗训练可以概括为如下的最大最小化公式:


内层(中括号内)是一个最大化,其中 [公式] 表示样本的输入表示, [公式] 表示叠加在输入上的扰动, [公式] 是神经网络函数, [公式]是样本的标签,[公式] 则表示在样本[公式]上叠加一个扰动[公式],再经过神经网络函数,与标签[公式]比较得到的损失。 [公式] 是优化目标,即寻找使损失函数最大的扰动,简单来讲就是添加的扰动要尽量让神经网络迷惑。

外层就是对神经网络进行优化的最小化公式,即当扰动固定的情况下,我们训练神经网络模型使得在训练数据上的损失最小,也就是说,使模型具有一定的鲁棒性能够适应这种扰动。

这个公式是一个一般性的公式,并没有讲如何设计扰动。理想情况下,最好是能直接求出[公式],但在神经网络模型中这是不太可行的。所以大家就提出各种各样的扰动的近似求解的方法。事实上,对抗训练的研究基本上就是在寻找合适的扰动,使得模型具有更强的鲁棒性。

2. FGSM/FGM方法

FGSM和FGM方法是Goodfellow等人分别在[1]和[2]中提出的。思想很简单,就是让扰动[公式]的方向是沿着梯度提升的方向的,沿着梯度提升也就意味着让损失增大的最大。FGSM(Fast Gradient Sign Method)和FGM(Fast Gradient Method)的区别在于采用的归一化的方法不同,FGSM是通过Sign函数对梯度采取max归一化,FGM则采用的是 [公式] 归一化。max归一化是是说如果梯度某个维度上的值为正,则设为1;如果为负,则设为-1;如果为0,则设为0。[公式]归一化则将梯度的每个维度的值除以梯度的[公式]范数。 理论上[公式]归一化更严格的保留了梯度的方向,但是max归一化则不一定和原始梯度的方向相同。

FGSM: [公式]

FGM: [公式]

其中, [公式] ,也就是损失函数L关于输入X的梯度,这个梯度在我们做神经网络优化的时候是很容易求出来的。

当然两种方法都有个假设,就是损失函数是线性的或者至少是局部线性的。如果不是(局部)线性的,那梯度提升的方向就不一定是最优方向了。

3. PGD方法

为了解决FGSM和FGM中的线性假设问题,论文[3]提出了使用PGD(Projected Gradient descent)方法来求解内部的最大值问题。 PGD是一种迭代攻击,相比于普通的FGSM和FGM 仅做一次迭代,PGD是做多次迭代,每次走一小步,每次迭代都会将扰动投射到规定范围内。

[公式] ,

[公式] 表示t时刻的损失关于t时刻输入的梯度。

[公式] ,

t+1时刻输入根据t时刻的输入及t时刻的梯度求出。注意这里 [公式] 的意思是,如果扰动超过一定的范围,就要映射回规定的范围S内。

由于每次只走很小的一步,所以局部线性假设基本成立的。经过多步之后就可以达到最优解了,也就是达到最强的攻击效果。论文还证明用PGD算法得到的攻击样本,是一阶对抗样本中最强的了。这里所说的一阶对抗样本是指依据一阶梯度的对抗样本。如果模型对PGD产生的样本鲁棒,那基本上就对所有的一阶对抗样本都鲁棒。实验也证明,利用PGD算法进行对抗训练的模型确实具有很好的鲁棒性。

PGD虽然简单,也很有效,但是存在一个问题是计算效率不高。不采用提对抗训练的方法m次迭代只会有m次梯度的计算,但是对于PGD而言,每做一次梯度下降(获取模型参数的梯度,训练模型),都要对应有K步的梯度提升(获取输出的梯度,寻找扰动)。所以相比不采用对抗训练的方法,PGD需要做m(K+1)次梯度计算。

4. FreeAT(Free Adversarial Training)

在PGD的计算过程中,每次做前向后向计算时,不管是参数的梯度还是输出的梯度,都会计算出来,只不过在梯度下降的过程中只利用参数的梯度,在梯度提升的过程中只利用输入的梯度,这实际上有很大的浪费。 我们能不能在一次前向后向计算过程中,把计算出来的参数的梯度和输入的梯度同时利用上?这就是FreeAT[4]这篇文章的核心思想。

如何做呢?这里存在一个小小的麻烦,就是普通训练的方式和PGD对抗训练的方式稍微有些不同。普通训练时相邻的batch是不同的batch,而PGD对抗训练在梯度提升的计算样本时,需要对同一个mini-batch的样本,反复求梯度。 FreeAT仍然采用了PGD这种训练方式,即对于每个min-batch的样本会求K次梯度,每次求得得梯度,我们既用来更新扰动,也用来更新参数。原始的PGD训练方法,每次内层计算只用梯度来更新扰动,等K步走完之后,才重新再计算一次梯度,更新参数。这个不同可以用下图形象的表示。


需要注意的是,如果内层做K次迭代的化,对于外层计算,FreeAT会把总体的迭代epoch除以K,这样保证总体的梯度计算的次数跟普通训练一样。从外层训练的视角来看,每个min-batch被训练的次数和普通训练是相同的,只不过其被训练的顺序有些变化,K个相同的min-batch会被顺序的训练。 这样带来的问题是连续相同的mini-batch对参数更新,不如随机mini-batch带来的扰动大,这有可能影响到最终模型收敛的效果。但是论文用实验证明,这种担心不太必要。详细的算法代码如下


5. YOPO(You can Only Propagate Once)

YOPO[5]的出发点是利用神经网络的结构来降低梯度计算的计算量。从PMP(Pontryagin's maximum principle)的角度看,对抗扰动只和神经网络的第一层有关。所以,论文提出固定住前面的基层,只对第一层求梯度,并据此来更新扰动。

基于这个想法,作者想复用后几层的梯度,假设p为定值:


则对扰动的更新就可以变为:


详细的算法代码如下:


虽然YOPO-m-n只完成了m次完整的正反向传播,但是却实现了m*n次扰动的更新。而PGD-r算法完成r次完整的正反向传播却只能实现r次扰动的更新。这样看来,YOPO-m-n算法的效率明显更高,而实验也表明,只要使得m*n略大于r,YOPO-m-n的效果就能够与PGD-r相媲美。

6. FreeLB(Free Large Batch Adversarial Training)


和FreeAT一样,FreeLB也想更高效的利用两种梯度。但是和FreeAT不一样的是,FreeLB并不是在每次梯度提升的过程中,都会对参数进行跟新,而是将参数的梯度累积起来,即算法第8行 [公式] 更新的过程。这样走过K步之后,FreeLB利用K步之后积累的参数梯度 [公式] ,对参数 [公式] 进行更新,即算法第13行, [公式] 的更新过程。 FreeLB需要进行 [公式] 次梯度计算,相比于PGD需要进行 [公式]次梯度计算,是节省了 [公式] 次梯度计算,但是相比于FreeAT只需要 [公式] 次梯度计算而言,FreeLB效率的提升并不明显。 所以FreeLB的优势并不在效率,而是在效果。由于FreeLB利用了多步K积累的梯度再做更新,对梯度的估计更加精准,而且不存在FreeAT那样连续利用多个相同的min-batch进行梯度更新的问题。

相比于YOPO-m-n,FreeLB也是将K步(这里指m)中的梯度综合后再更新参数,不同的是其没有更进一步的n层,即使有,也是n个完全相同的值。

为什么论文成这种算法为Large Batch呢?在梯度下降时,我们使用的梯度是基于 [公式] ,..., [公式] 进行计算的,这可以理解为近似的对K个不同batch的样本进行平均,所以相当于虚拟的增大了样本的数量。

论文中还指出了很重要的一点,就是对抗训练和dropout不能同时使用,加上dropout相当于改变了网络结构,会影响r的计算。如果要用的话需要在K步中都使用同一个mask。

7. 参考文献

[1] EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES

[2] ADVERSARIAL TRAINING METHODS FOR SEMI-SUPERVISED TEXT CLASSIFICATION

[3] Towards Deep Learning Models Resistant to Adversarial Attacks

[4] Adversarial Training for Free!

[5] You Only Propagate Once: Accelerating Adversarial Training via Maximal Principle

[6] FREELB: ENHANCED ADVERSARIAL TRAINING FOR NATURAL LANGUAGE UNDERSTANDING


编辑于 2020-02-01

 




推荐阅读
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战
    OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 理工科男女不容错过的神奇资源网站
    十一长假即将结束,你的假期学习计划进展如何?无论你是在家中、思念家乡,还是身处异国他乡,理工科学生都不容错过一些神奇的资源网站。这些网站提供了丰富的学术资料、实验数据和技术文档,能够帮助你在假期中高效学习和提升专业技能。 ... [详细]
  • 微软等企业捐赠首批AI有声读物,助力视障人士
    12月2日,微软联合鹿音苑文化传播公司及150多名志愿者,共同捐赠了首批由人工智能生成的有声内容,旨在为视障人士提供更多文化资源。 ... [详细]
  • 英特尔推出第三代至强可扩展处理器及傲腾持久内存,AI性能显著提升
    英特尔在数据创新峰会上发布了第三代至强可扩展处理器和第二代傲腾持久内存,全面增强AI能力和系统性能。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 超分辨率技术的全球研究进展与应用现状综述
    本文综述了图像超分辨率(Super-Resolution, SR)技术在全球范围内的最新研究进展及其应用现状。超分辨率技术旨在从单幅或多幅低分辨率(Low-Resolution, LR)图像中恢复出高质量的高分辨率(High-Resolution, HR)图像。该技术在遥感、医疗成像、视频处理等多个领域展现出广泛的应用前景。文章详细分析了当前主流的超分辨率算法,包括基于传统方法和深度学习的方法,并探讨了其在实际应用中的优缺点及未来发展方向。 ... [详细]
  • 视觉图像的生成机制与英文术语解析
    近期,Google Brain、牛津大学和清华大学等多家研究机构相继发布了关于多层感知机(MLP)在视觉图像分类中的应用成果。这些研究深入探讨了MLP在视觉任务中的工作机制,并解析了相关技术术语,为理解视觉图像生成提供了新的视角和方法。 ... [详细]
  • 图像分割技术在人工智能领域中扮演着关键角色,其中语义分割、实例分割和全景分割是三种主要的方法。本文对这三种分割技术进行了详细的对比分析,探讨了它们在不同应用场景中的优缺点和适用范围,为研究人员和从业者提供了有价值的参考。 ... [详细]
  • AI TIME联合2021世界人工智能大会,共探图神经网络与认知智能前沿话题
    AI TIME携手2021世界人工智能大会,共同探讨图神经网络与认知智能的最新进展。自2018年在上海首次举办以来,WAIC已成为全球AI领域的年度盛会,吸引了众多专家学者和行业领袖参与。本次大会将聚焦图神经网络在复杂系统建模、知识图谱构建及认知智能应用等方面的技术突破和未来趋势。 ... [详细]
author-avatar
dmcm0010
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有