《半监督文本分类的对抗训练方法》 理解笔记
paper: https://arxiv.org/pdf/1605.07725v3.pdf
code: https://github.com/tensorflow/models/tree/master/research/adversarial_text
Time: 2016.05
0.摘要
对抗训练提供了一种正规化监督学习算法的方法,而虚拟对抗训练能够将监督学习算法扩展到半监督环境。 但是,这两种方法都需要对输入向量的众多条目进行较小的扰动,这对于稀疏的高维输入(例如one-hot单词表示法)是不合适的。 通过对循环神经网络中的单词嵌入(而不是原始输入本身)应用扰动,我们将对抗性和虚拟对抗性训练扩展到文本域。 我们提供的可视化和分析结果表明,学习的单词嵌入的质量有所提高,并且在训练过程中,该模型不太容易过拟合。
重点:扰动embedding过程,增强word embedding矩阵鲁棒性,所以说本文的虚拟对抗训练是针对embedding矩阵的虚拟对抗,可以作为通用手段应用于自己的任务。
1.INTRODUCTION
对抗性示例是通过对输入进行细微扰动而创建的示例,这些输入旨在显着增加机器学习模型的损失(Szegedy等,2014; Goodfellow等,2015)。包括最先进的卷积神经网络在内的几种模型都缺乏正确分类对抗性示例的能力,有时甚至在对抗性扰动被限制得如此之小以至于人类观察者无法感知时也是如此。对抗训练是训练模型以正确分类未修改示例和对抗示例的过程。它不仅提高了对抗示例的鲁棒性,而且还提高了原始示例的泛化性能。在训练使用监督成本的模型时,对抗训练需要使用标签,因为标签出现在成本函数中,旨在使对抗扰动最大化。虚拟对抗训练(Miyato et al。,2016)将对抗训练的思想扩展到半监督体制和未标记的示例中。这是通过对模型进行正则化来完成的,因此在给定示例的情况下,该模型将产生与该示例的对抗性扰动所产生的输出分布相同的输出分布。虚拟对抗训练可在监督学习和半监督学习任务中实现良好的泛化性能。
先前的工作主要是将对抗性和虚拟对抗性训练应用于图像分类任务。在这项工作中,我们将这些技术扩展到文本分类任务和序列模型。对抗性扰动通常包括对许多实值输入进行少量修改。对于文本分类,输入是离散的,通常表示为一系列高维单热向量。因为高维单热点向量集不允许无限微扰,所以我们在连续词嵌入而不是离散词输入中定义了微扰。传统的对抗训练和虚拟对抗训练既可以解释为正则化策略,也可以解释为对可以提供恶意输入的对手的防御(Szegedy等,2014; Goodfellow等,2015)。由于被干扰的嵌入不会映射到任何单词,并且对手可能无法访问单词嵌入层,因此,我们提出的训练策略不再旨在防御对手。因此,我们提出此方法专门作为通过稳定分类功能来规范化文本分类器的一种方法。
我们证明,Dai&Le(2015)提出的采用神经语言模型无监督预训练的方法可实现多项半监督文本分类任务(包括情感分类和主题分类)的最新性能。我们强调,仅优化一个额外的超参数Q,即限制对抗性扰动大小的范数约束,就可以实现这种先进的性能。这些结果强烈鼓励我们将本文提出的方法用于其他文本分类任务。我们认为,文本分类是半监督学习的理想设置,因为存在大量可供半监督学习算法利用的未标记语料库。这项工作是我们使用对抗和虚拟对抗训练来改进文本或RNN模型的第一项工作。
我们还分析了训练后的模型,以定性地描述对抗性和虚拟对抗性训练的效果。我们发现,对抗性和虚拟对抗性训练比基线方法改善了单词嵌入。
这一段主要是介绍了虚拟对抗训练的本质:对模型进行正则化,提升模型泛化性能。然后大致说明了本文将其用于文本分类的方法:对embedding层进行扰动,但是loss不进行反向传播,这就迫使模型只能通过修改embedding矩阵才能降低loss,从而达到优化embedding矩阵的目的。
2.MODEL
我们将T个单词的序列表示为,对应的目标为y。要将输入的离散词转换为连续向量,我们定义词嵌入矩阵
,其中K是词汇表中词的数目,第(K +1)个单词嵌入用作“序列结束(eos)”标记的嵌入。作为文本分类模型,我们使用了一个基于LSTM的简单神经网络模型,如图1a所示。在时间步t,输入是离散词w(t),相应的词嵌入是v(t)。我们还尝试了双向LSTM体系结构,为了构建用于文本分类的双向LSTM模型,我们在图1所示的单向LSTM模型的反向序列上添加了一个附加LSTM。然后,模型会在序列两端的串联LSTM输出上预测标签。
在对抗和虚拟对抗训练中,我们训练分类器对嵌入的扰动具有鲁棒性,如图1b所示。 这些扰动将在第3节中详细介绍。目前,足以理解该扰动是有界限的范数(bounded norm)。 通过学习具有很大范数的嵌入(embeddings with large norm),该模型可以轻松地使微扰微不足道。 为了避免这种病态的解决方案,当我们对上面定义的模型进行对抗和虚拟对抗训练时,我们用标准化嵌入Vk替换嵌入Vk,定义为:
重点:模型结构,embedding的标准化。
3.对抗和虚拟对抗训练
这一段主要是将对抗训练和虚拟对抗训练的公式声明都说清楚,为了便于理解,注意看它们的区别部分。
对抗训练(Goodfellow et al,2015)是一种用于分类器的新颖正则化方法,旨在提高鲁棒性以应对较小的,近似最坏情况的扰动。 让我们将x表示为输入,将θ表示为分类器的参数。 当应用于分类器时,对抗训练会将以下元素添加到成本函数中:
其中r是输入的扰动,θˆ是设置给分类器当前参数的常数。 使用常数副本θˆ而非θ表示反向传播算法不应用于通过对抗性示例构建过程传播梯度。 在训练的每个步骤中,我们针对Eq(2)中的当前模型p(y | x; θˆ)确定最坏情况摄动radv,并通过相对于θ最小化Eq(2)来训练模型对此类摄动具有鲁棒性。
但是,我们通常不能精确地计算该值,借助线性近似和Eq(2)中的L2范数约束,产生的近似化对抗性扰动为:
使用神经网络中的反向传播可以很容易地计算出这种扰动。
虚拟对抗训练(Miyato et al,2016)是一种与对抗训练密切相关的正则化方法。 虚拟对抗训练带来的loss如下:
其中KL [p || q]表示分布p和q之间的KL散度。 通过最小化Eq(3),可以训练分类器平滑。 这可以认为是使分类器对当前模型p(y | x; θˆ)最敏感的方向具有抗扰性。 虚拟对抗损失Eq(3)仅需要输入x,而无需实际标签y,而Eq(2)中定义的对抗损失则需要标签y。 这使得将虚拟对抗训练应用于半监督学习成为可能。
这个损失通常也无法直接计算,但Miyato等人(2016)提出通过反向传播有效地计算近似方程(3)。
如第2节所述,在我们的工作中,我们将对抗性扰动应用于单词嵌入,而不是直接应用于输入。 为了定义单词嵌入的对抗性扰动,让我们表示一系列(规范化的)单词嵌入向量[v(1),v(2),... ,v(T)]为s,给定s的y的模型条件概率为p(y | s;θ),其中θ为模型参数。 然后,将s上的对抗性扰动Radv定义为:
其中N是标记示例的数量。 在我们的实验中,对抗性训练是指使用随机梯度下降使负对数可能性+Ladv最小化。
虚拟对抗扰动Rv-adv和其loss定义为:
4.实验设置
dataset:
model:
使用预训练单层单向LSTM(trained on both labeled and unlabeled examples ),1024 hidden units. 单词嵌入维D在IMDB上为256,在其他数据集中为512。
我们使用了1024个候选样本的softmax损失样本进行训练。
为了进行优化,我们使用了Adam优化器,其批量大小为256,初始学习速率为0.001,每个训练步骤的学习速率指数衰减因子为0.9999。
我们训练了100,000步。 我们对除单词嵌入以外的所有参数应用了范数设置为1.0的梯度裁剪。 为了减少GPU上的运行时间,我们使用了从序列的每个末端开始最多400个单词的截断的反向传播。 为了规范化递归语言模型,我们以0.5的dropout rate在单词嵌入层应用了dropout。
对于双向LSTM模型,我们对标准顺序和反向顺序序列都使用512个隐藏单元LSTM,并且对两个LSTM都使用256维词嵌入。我们发现双向LSTM收敛较慢,因此在训练双向LSTM分类模型时我们迭代了15,000个训练步。 其他超参数与单向LSTM相同。 我们在IMDB,Elec和RCV上测试了双向LSTM模型,因为数据集中的句子相对较长。
在我们测试的所有数据集上,使用递归语言模型进行的预训练在分类性能上都非常有效,因此我们在第5节中的结果就是这种预训练。
没啥好说的,常规模型。
5.结果
可以看到,对抗训练和虚拟对抗训练都能有效降低loss。此外,可以利用未标记数据的虚拟对抗训练保持了较低的负对数可能性,而其他方法后来在训练中开始过拟合。
可以看到,同时使用带标签和未带标签的数据训练效果好于只使用带标签数据,虚拟对抗训练效果好于随机噪声证明了理论的可靠性。
6.结论
在我们的实验中,我们发现在文本分类任务的序列模型中,对抗性和虚拟对抗性训练具有良好的正则化性能。 在所有数据集上,我们提出的方法均超过或与最新技术水平保持一致。 我们还发现,对抗性和虚拟对抗性训练不仅改善了分类性能,而且还改善了词嵌入的质量。 这些结果表明,我们提出的方法对于其他文本领域任务很有希望,例如机器翻译(Sutskever等,2014),学习单词或段落的分布式表示(Mikolov等,2013; Le&Mikolov,2014)和 问答任务。 我们的方法也可以用于其他常规的顺序任务,例如视频或语音。