论文解读( FGSM)《Adversarial training methods for semi-supervised text classification》
论文信息
论文标题:Adversarial training methods for semi-supervised text classification
论文作者:Taekyung Kim
论文来源:ICLR 2017
论文地址:download
论文代码:download
视屏讲解:click
1 背景
1.1 对抗性实例(Adversarial examples)
- 通过对输入进行小扰动创建的实例,可显著增加机器学习模型所引起的损失
- 对抗性实例的存在暴露了机器学习模型的脆弱性和局限性,也对安全敏感的应用场景带来了潜在的威胁;

1.2 对抗性训练
训练模型正确分类未修改示例和对抗性示例的过程,使分类器对扰动具有鲁棒性
目的:
- 正则化手段,提升模型的性能(分类准确率),防止过拟合
- 产生对抗样本,攻击深度学习模型,产生错误结果(错误分类)
- 让上述的对抗样本参与的训练过程中,提升对对抗样本的防御能力,具有更好的泛化能力
- 利用 GAN 来进行自然语言生成 有监督问题中通过标签将对抗性扰动设置为最大化
1.3 虚拟对抗性训练
将对抗性训练扩展到半监督/无标记情况
使模型在某实例和其对抗性扰动上产生相同的输出分布
2 方法
2.1 整体框架


基本思想:扩展对抗性训练/虚拟对抗性训练至文本分类任务和序列模型
基本思路:
- 对于文本分类任务,由于输入是离散的,且常表示为高维one-hot向量,不允许无穷小的扰动,因此将扰动施加于词嵌入中;由于受干扰的嵌入不能映射至某个单词,本文中训练策略仅作为通过稳定分类函数来正则化文本分类器的方法,不能防御恶意扰动;
- 施加扰动于规范化的词嵌入中,设置对抗性损失/虚拟对抗性损失,增强模型分类的鲁棒性;
2.2 方法介绍
将离散单词输入转化为连续向量,定义单词嵌入矩阵:
$\mathbb{R}^{(K+1) \times D}$
其中 $K$ 指代单词数量,第 $K+1$ 个单词嵌入作为序列 结束($eos$)令牌
设置对应时间步长的离散单词为 $w^{(t)}$ ,单词嵌入为 $v^{(t)}$
针对文本分类问题使用 LSTM 模型或双向 LSTM 模型 由于扰动为有界范数,模型在对抗性训练过程中可能 通过 “学习具有较大范数的嵌入使扰动变得不重要” 的病态解决方案,因此需将嵌入进行规范化:
$\overline{\boldsymbol{v}}_{k}=\frac{\boldsymbol{v}_{k}-\mathrm{E}(\boldsymbol{v})}{\sqrt{\operatorname{Var}(\boldsymbol{v})}} \text { where } \mathrm{E}(\boldsymbol{v})=\sum_{j=1}^{K} f_{j} \boldsymbol{v}_{j}, \operatorname{Var}(\boldsymbol{v})=\sum_{j=1}^{K} f_{j}\left(\boldsymbol{v}_{j}-\mathrm{E}(\boldsymbol{v})\right)^{2}$
其中 $f_{i}$ 表示第 $i$ 个单词的频率,在所有训练示例中进行计算。
2.2.1 对抗性训练
对抗性训练尝试提高分类器对小的、近似最坏情况扰动的鲁棒性——使分类器预测误差最大
代价函数:
$-\log p\left(y \mid \boldsymbol{x}+\boldsymbol{r}_{\mathrm{zd} v} ; \boldsymbol{\theta}\right) \text { where } \boldsymbol{r}_{\mathrm{ud} v}-\underset{\boldsymbol{r}, \mid \boldsymbol{r} \| \leq \epsilon}{\arg \min } \log p(y \mid \boldsymbol{x}+\boldsymbol{r} ; \hat{\boldsymbol{\theta}})$
其中 $r$ 为扰动, $\widehat{\theta}$ 为分类器当前参数的常数集,即表明构造对抗性实例的过程中不应该进行反向传播修改参数
对抗性扰动 $r$ 的生成:通过线性逼近得到
$\boldsymbol{r}_{\mathrm{adv}}=-\epsilon \boldsymbol{g} /\|\boldsymbol{g}\|_{2} \text { where } \boldsymbol{g}=\nabla_{\boldsymbol{x}} \log p(y \mid \boldsymbol{x} ; \hat{\boldsymbol{\theta}})$
2.2.2 虚拟对抗性训练
将对抗性训练应用于半监督学习——使分类器预测的输出分布差距最大
额外代价:
$\begin{array}{l}\operatorname{KL}\left[p(\cdot \mid \boldsymbol{x} ; \hat{\boldsymbol{\theta}}) \mid p\left(\cdot \mid \boldsymbol{x}+\boldsymbol{r}_{\mathrm{v} \text {-adv }} ; \boldsymbol{\theta}\right)\right] \\\text { where } \boldsymbol{r}_{\mathrm{v} \text {-adv }}=\underset{\boldsymbol{r},\|\boldsymbol{r}\| \leq \ell}{\arg \max } \mathrm{KL}[p(\cdot \mid \boldsymbol{x} ; \hat{\boldsymbol{\theta}}) \| p(\cdot \mid \boldsymbol{x}+\boldsymbol{r} ; \hat{\boldsymbol{\theta}})]\end{array}$
对抗性扰动设置:
$\boldsymbol{r}_{\mathrm{adv}}=-\epsilon \boldsymbol{g} /\|\boldsymbol{g}\|_{2} \text { where } \boldsymbol{g}=\nabla_{\boldsymbol{s}} \log p(y \mid \boldsymbol{s} ; \hat{\boldsymbol{\theta}})$
对抗性损失:
$L_{\mathrm{adv}}(\boldsymbol{\theta})=-\frac{1}{N} \sum_{n=1}^{N} \log p\left(y_{n} \mid \boldsymbol{s}_{n}+\boldsymbol{r}_{\mathrm{adv}, n} ; \boldsymbol{\theta}\right)$
其中 $N$ 为标记样本的数量
虚拟对抗性扰动设置:
$\boldsymbol{r}_{\mathrm{v} \text {-adv }}=\epsilon \boldsymbol{g} /\|\boldsymbol{g}\|_{2} \text { where } \boldsymbol{g}=\nabla_{\boldsymbol{s}+\boldsymbol{d}} \mathrm{KL}[p(\cdot \mid \boldsymbol{s} ; \hat{\boldsymbol{\theta}}) \mid p(\cdot \mid \boldsymbol{s}+\boldsymbol{d} ; \hat{\boldsymbol{\theta}})]$
其中 $d$ 为小随机向量,实际通过有限差分法和幂迭代计算虚拟对抗性扰动
虚拟对抗性训练损失:
$L_{\mathrm{V} \text {-adv }}(\boldsymbol{\theta})=\frac{1}{N^{\prime}} \sum_{n^{\prime}=1}^{N^{\prime}} \mathrm{KL}\left[p\left(\cdot \mid \boldsymbol{s}_{n^{\prime}} ; \hat{\boldsymbol{\theta}}\right) \mid p\left(\cdot \mid \boldsymbol{s}_{n^{\prime}}+\boldsymbol{r}_{\mathrm{v}-\mathrm{ndv}, n^{\prime}} ; \boldsymbol{\theta}\right)\right]$
其中 $N$ 为标记/未标记样本的数量之和
3 总结
略
4 其他
- 基于梯度的攻击: FGSM(Fast Gradient Sign Method) PGD(Project Gradient Descent) MIM(Momentum Iterative Method)
- 基于优化的攻击: CW(Carlini-Wagner Attack)
- 基于决策面的攻击: DEEPFOOL
论文解读( FGSM)《Adversarial training methods for semi-supervised text classification》的更多相关文章
- 论文解读(ARVGA)《Learning Graph Embedding with Adversarial Training Methods》
论文信息 论文标题:Learning Graph Embedding with Adversarial Training Methods论文作者:Shirui Pan, Ruiqi Hu, Sai-f ...
- 论文阅读:《Bag of Tricks for Efficient Text Classification》
论文阅读:<Bag of Tricks for Efficient Text Classification> 2018-04-25 11:22:29 卓寿杰_SoulJoy 阅读数 954 ...
- 论文解读(ClusterSCL)《ClusterSCL: Cluster-Aware Supervised Contrastive Learning on Graphs》
论文信息 论文标题:ClusterSCL: Cluster-Aware Supervised Contrastive Learning on Graphs论文作者:Yanling Wang, Jing ...
- 论文笔记 - Noisy Channel Language Model Prompting for Few-Shot Text Classification
Direct && Noise Channel 进一步把语言模型推理的模式分为了: 直推模式(Direct): 噪声通道模式(Noise channel). 直观来看: Direct ...
- 论文解读(SR-GNN)《Shift-Robust GNNs: Overcoming the Limitations of Localized Graph Training Data》
论文信息 论文标题:Shift-Robust GNNs: Overcoming the Limitations of Localized Graph Training Data论文作者:Qi Zhu, ...
- 《C-RNN-GAN: Continuous recurrent neural networks with adversarial training》论文笔记
出处:arXiv: Artificial Intelligence, 2016(一年了还没中吗?) Motivation 使用GAN+RNN来处理continuous sequential data, ...
- CVPR2020论文解读:CNN合成的图片鉴别
CVPR2020论文解读:CNN合成的图片鉴别 <CNN-generated images are surprisingly easy to spot... for now> 论文链接:h ...
- 论文解读(BYOL)《Bootstrap Your Own Latent A New Approach to Self-Supervised Learning》
论文标题:Bootstrap Your Own Latent A New Approach to Self-Supervised Learning 论文方向:图像领域 论文来源:NIPS2020 论文 ...
- 论文解读第三代GCN《 Deep Embedding for CUnsupervisedlustering Analysis》
Paper Information Titlel:<Semi-Supervised Classification with Graph Convolutional Networks>Aut ...
- itemKNN发展史----推荐系统的三篇重要的论文解读
itemKNN发展史----推荐系统的三篇重要的论文解读 本文用到的符号标识 1.Item-based CF 基本过程: 计算相似度矩阵 Cosine相似度 皮尔逊相似系数 参数聚合进行推荐 根据用户 ...
随机推荐
- 【基础知识】C++算法基础(头文件配置、获取输入、输出)
基础的头文件配置.输入输出 <iostream> 和<iostream.h>的区别:加.h是C中的做法,C++里一般不加.h,但相应的,要加using namspace std ...
- 剑指Offer2---------替换空格
题目描述 请实现一个函数,将一个字符串中的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 重点: ...
- 在VMWare里安装Win11虚机
1. 安装win11有最低硬件要求 64位CPU双核,内存4G,硬盘64G,受信任的平台模块(TPM)2.0,支持UEFI安全启动 2. VMware新建虚机的设置 1)创建64位虚拟机,CPU设置为 ...
- Docker部署【项目管理和问题跟踪工具-Redmine】
创建网络 docker network create redmine-network 启动Mysql数据库 docker run -d --name mysql --network redmine-n ...
- 使用虚拟 dom 渲染页面 《vue.js 设计与实现》
使用 js 对象描述 ui 更加灵活.假如我们要根据级别不同采用不同的标签.js 对象描述的话,只需要一个变量代表 h 标签即可. // 当变量改变时,标签也会变化. let level = 3 c ...
- Oracle查询优化经验
1.ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. (低效,执行时间156 ...
- Python使用Eel和HTML开发桌面应用GUI直接用web前端的VUE+VANT来做
python的gui太难用了,唯一能配置独立前端的程序只有web.所以用web做前端,到python,完美! 环境准备 Python 3.9 Chrome浏览器(由于Eel是直接调用的Ch ...
- autossh 使用
Table of Contents 1. centos7下配置为服务 2. 命令式使用 2.1. 映射远程主机防火墙之后的端口到本机 2.2. 映射本机端口到远程主机 centos7下配置为服务 编辑 ...
- RPA的概念及未来发展趋势
RPA是Robotic Process Automation(机器人自动化)的简称.我们可以把它理解为"虚拟机器人"替代人工的一种方式.RPA不仅可以模拟人类,而且可以利用和融 ...
- 对于如何在IDEA中给Terminal添加git的详解
具体步骤 1.配置本机环境变量 进入到环境变量的设置界面,然后找到下面的Path变量,双击点开: 然后新建一个变量,路径定义到git的目录下面的bin目录下: 2.WIN+R,然后输入cmd,进入终端 ...