【精选】对抗训练 |
您所在的位置:网站首页 › 对抗怎么练 › 【精选】对抗训练 |
文章目录
1、定义2、对抗训练:从CV到NLP2.1 CV中的数据格式2.2 NLP中数据格式
3、对抗样本与数据增强样本4 如何确定微小扰动4.1 Fast Gradient Sign Method(FGSM)4.2 Fast Gradient Method(FGM)4.3 Projected Gradient Descent(PGD)
5 实验结果6 实现6.1 pytorch实现[2]6.2 keras实现[3]
1、定义
对抗样本:对输入增加微小扰动得到的样本。旨在增加模型损失。 对抗训练:训练模型去区分样例是真实样例还是对抗样本的过程。对抗训练不仅可以提升模型对对抗样本的防御能力,还能提升对原始样本的泛化能力。 对抗训练最初在cv中使用,nlp中很少使用。因为图像和文本的数据格式导致,在文本中无法增加微小扰动。同数据增强一样,cv中很适用,但nlp中的很少使用。 2.1 CV中的数据格式图像是由矩阵表示的,如RGB图像是0~255的数字矩阵表示。 图像+微小扰动=图像文本会首先设置词表,然后将词映射为对应的索引: 文本+微小扰动≠文本
提高模型的泛化性能是机器学习致力追求的目标之一。常见的提高泛化性的方法主要有两种: 添加噪声,比如往输入添加高斯噪声、中间层增加Dropout以及近来比较热门的对抗训练等,对图像进行随机平移缩放等数据扩增手段某种意义上也属于此列;是往loss里边添加正则项,比如L1,L2惩罚、梯度惩罚等数据增强与对抗样本都属于在原始输入引入噪声的方法。区别在于数据增强的噪声通常是随机的,而对抗样本的噪声是有目的性的。
随机噪声的实现方式简单,对泛化性的提升也确实有效。但他的一个明显缺点是“特异性”。随机噪声可能不会对模型造成明显干扰,所以对泛化性能提升帮助有限。 4 如何确定微小扰动 对抗训练流程,在原始输入上增加一个微小的扰动 r a d v r_{adv} radv,得到对抗样本,用对抗样本就行训练。可以抽象为下面的模型: l o s s = − l o g p ( y ∣ x + r a d v ; θ ) w h e r e r a d v = − a r g m a x r , ∣ ∣ r ∣ ∣ < ε l o g p ( y ∣ x + r ; θ ^ ) = a r g m i n r , ∣ ∣ r ∣ ∣ < ε l o g p ( y ∣ x + r ; θ ^ ) (1) loss=-\mathop{log}p(y|x+r_{adv};\theta)\tag1\\ \mathop{where}r_{adv}=-\mathop{argmax}\limits_{r,||r|| |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |