特约作者 | 曹凯
本文介绍一种名叫Virtual Adversarial Training (VAT) [1]的方法,是一种对于给定条件标签分布
的数据度量该分布局部光滑性的一种方法。其实就是对于每一个数据点,它的条件标签分布对于局部的扰动鲁棒性怎么样,是否数据的一点小变化,就会导致预测的其标签的大变化。这种情况在研究对抗样本的时候很常见,比如本来一张猫的图片,稍微加了一点扰动,神经网络就将其判为梨这种完全不一样的类别,这显然不是我们想要的。
一、动机
为什么会想到用光滑性smooth来做正则化呢?正则化从贝叶斯的角度来看,是加了先验信息到模型里面。而自然界的很多物理系统,都是可以用基于微分方程光滑模型描述。所以作者就想到了把条件标签概率约束成光滑的,在输入
变化很小的情况下,输出
也变化很小。满足光滑的情况下,如果对抗样本相比于原样本变化(某种度量下)很小,那么标签应该也不会有太大变化。
优点:VAT在对抗训练的时候,不需要标签信息,所以可以应用于无监督学习。此外,VAT的计算代价也是很低的。
与Goodfellow提出的监督学习对抗方法adversarial training[2]不同的是,VAT找的方向是能使预测的输出分布偏离现状的方向,而adversarial training找的是使模型预测最大地偏离正确label的方向。我们可以称目前模型预测的label是虚拟label(virtual)。
二、方法
- 一些符号定义
表示输入向量,维度是
;
表示输出标签,
是标签空间;输出分布
,
是模型参数;用
表示某一步训练之后的模型参数;
表示有标签的数据集;
表示无标签的数据集。我们使用
和
训练模型
。
- 对抗训练
要讲VAT,首先要从Goodfellow的adversarial training开始,其损失函数为:
其中,
是一个非负度量函数,度量分布
之间的距离,比如交叉熵,我们可以称
是对抗的扰动,也就是对抗的一方想找出来用于攻击的量,对抗的另一方想尽量减小这个量对模型的影响。对于adversarial training来说,
是真实label 的one-hot编码向量
。对于这个优化问题,我们没法得到闭式解,但是对抗的方法本来也就是迭代求解的,我们可以得到近似的解,比如:
或者:
对于神经网络来说,
是可以用反向传播计算的。很明显,对抗方法找到的扰动方向,比随机找一个扰动是要来的好的。
- 虚拟对抗训练:VAT
那么如果训练样本没有标签,或者有一部分数据没有标签怎么办呢?VAT就是要解决这样一个问题。
我们把
统一记为
,VAT目标函数为:
之前的
是用的label的one-hot编码,这边没有了label,VAT用
近似代表。作者认为如果有标签的样本比较多,那么
是离
比较近的,这也是文章用virtual 这个词的原因。所以在迭代过程中,
用上一步的
代替,损失函数变为:
于是,给整个目标函数加上LDS:
其中,
是有标签数据的负对数似然函数。
整个正则化过程,只有两个超参数
和
。作者实验过程中,将
固定为1,这样就只有一个超参数了。
- 具体计算
注意到之前算
,如果
换成
,那么
永远是0,就没法算了,所以得用到二阶信息。
如果一阶导数为0,则
二阶泰勒展开:
其中,
是海森矩阵,记为H。再把
记为
。
那么计算
其中
,
是
最大特征值对应的特征单位向量。
为了计算特征向量,作者使用一种能量迭代方法[3],令
是一个随机采样的单位向量,假设
与
不垂直,那么随着迭代
就可以让
收敛到
。为了避免算
,这边将
也近似替代:
那么就可以计算:
原文算法描述如下:
作者对算例描述:
实验部分:
参考文献: [1].Takeru Miyato, Shin-ichi Maeda, Masanori Koyama, and Shin Ishii. Virtual adversarial training: a regularization method for supervised and semi-supervised learning. arXiv preprint. arXiv:1704.03976, 2017. [2]. Ian Goodfellow, Jonathon Shlens, and Christian Szegedy. Explaining and harnessing adversarial examples. In ICLR, 2015. [3]. Gene H Golub and Henk A van der Vorst. Eigenvalue computation in the 20th century. Journal of Computational and Applied Mathematics, 123(1):35–65, 2000.