弱监督学习--半监督学习(2):VAT:Virtual Adversarial Training

前言

在 Temporal ensembling Model 被提出的同年,日本的研究人员从对抗训练的角度出发,提出了 VAT 算法。这一算法的出发点与 Temporal ensembling Model 基本一致,即模型所描述的系统应该是光滑的,因此当输入数据发生微小变化时,模型的输出也应是微小变化,进而其预测的标签也近似不变。

VAT 与 Temporal ensembling Model 的不同之处在于,后者采用数据增强、dropout 来对无标签数据施加噪声,而前者施加的则是模型变化最陡峭方向上的噪声,即所谓的对抗噪声。在作者看来,如果模型在对抗噪声下,依然能够保持光滑,那么整个网络就能够表现出很好的一致性。

局部分布平滑(LDS)

局部分布平滑度(LDS)可以定义为模型输出分布相对于输入的平滑度。我们不希望模型对输入中的小扰动敏感。我们可以说,对于模型输入的微小变化,模型输出不应该有大的变化。

在LDS正则化中,模型分布的平滑性得到奖励。它也是网络上参数的不变量,仅取决于模型输出。具有平滑的模型分布应该有助于模型更好地推广,因为模型将为看不见的数据点提供类似的输出,这些数据点接近训练集中的数据点。一些研究表明,使模型对小的随机扰动具有鲁棒性对于正则化是有效的。

LDS正则化的一种简单方法是通过在实际数据点上应用小的随机扰动来生成人工数据点。之后,鼓励模型为真实和扰动的数据点提供类似的输出。领域知识也可用于产生更好的扰动。例如,如果输入是图像,则可以使用各种图像增强技术,例如翻转,旋转,变换颜色。

虚拟对抗损失(VAT)

虚拟对抗损失:一种对给定输入的条件标签分布的局部平滑度的新度量方法。模型对于输入的微小改变,它的输出不应该有很大的变动,对于小扰动有大的输出波动的模型会导致这个损失函数变大。通常过拟合的时候,会出现这种现象,所以可以把VAT看做是一种正则化的方法。
虚拟对抗训练就是要找一个使输出偏差最大的扰动方向,在这个方向上对输入产生扰动,再用于训练模型,使模型的局部平滑度增强。
弱监督学习--半监督学习(2):VAT:Virtual Adversarial Training
以上公式展示了虚拟对抗训练的原理:
x(n)x^{(n)}:表示某一个输入(或样本点)
θ:表示模型训练出来的参数
rr:表示对于这个输入的一个扰动
第一个式子使用x(n)x^{(n)}x(n)+rx^{(n)} + r的输出分布的KL散度表示这两个分布之间的差异;
第二个式子就是在rr的L2范数小于一定值的情况下,找到使第一个式子最大的rr,即找到使这两个分布差异最大的扰动方向,也就是找到训练模型在输入为x(n)x^{(n)}时的局部分布最不平滑的方向;
第三个式子就是,定义x(n)x^{(n)}的局部分布平滑度(LDS)为:x(n)x^{(n)}的最大扰动方向扰动后的x(n)x^{(n)}输入的输出分布与x(n)x^{(n)}输入的输出分布之间的KL散度的相反数。
所以,LDS越大越好,这与我们事实上要让x(n)x^{(n)}的局部分布越平滑越好是相对应的。

目标函数

在此思路下,VAT 的目标函数与 Temporal ensembling Model 类似,包含有标签数据部分的交叉熵,以及无标签数据部分的一致性正则项。此处一致}性正则项的数学形式如下
弱监督学习--半监督学习(2):VAT:Virtual Adversarial Training
其中,radvr_{adv} 代表对输入数据所施加的对抗噪声,而 D 则是 模型对于施加噪声前后两个输入对应输出的非负度量。在 Temporal ensembling Model 中,此项为 MSE,而此处的 VAT 则采用了 KL 散度,即:弱监督学习--半监督学习(2):VAT:Virtual Adversarial Training
接下来,研究人员在目标函数中加入了第三项 entropy minimization 项,即要求模型无论对于有标签数据还是无标签数据,都要求其熵尽可能小。这个正则项正是 Pseudo-Label 模型中的第二项:
弱监督学习--半监督学习(2):VAT:Virtual Adversarial Training
为了表述方便,目标函数中加了第三项的模型,被称为 VAT + EntMin 模型。

简单总结一下,VAT + EntMin 模型的目标函数共包含三项,分别是 有标签数据的交叉熵,施加噪声前后的无标签数据经模型输出后的KL散度,以及 entropy minimization 项。

对抗训练和对抗方向

局部各同向性的输出分布不能通过局部各同向性的扰动对抗训练来实现。

意思是,要使模型在样本的各个扰动方向都能保持鲁棒性(输入样本的小扰动不会导致模型输出产生较大的变化),不应该无差别地进行各个方向的对抗训练,而应该对某些方向进行更多的训练,而这些方向就是对抗方向。

在对抗方向上,输入样本的小扰动就会使模型的输出出现大的变化,所以这些方向要”特别照顾”。

实际上也不是说各个扰动方向都训练不好,如果全部方向都能对抗训练到位,那自然是最好的,然而,那么多方向全都扰动一下来训练,那要花多长时间呢?

所以又快又好的方法就是找到对抗方向,也就是最容易进行对抗训练的方向。

方向是指:把输入样本看做向量,对样本的扰动就是在输入向量上加上另一个向量,所加的向量的方向就是前面说的方向。

局部是指:而局部的意思是这个输入的样本点的附近,就是要增强这个样本点附近的鲁棒性。

我们很容易想到,函数输出最容易变化的方向,不就是函数关于输入的位置的梯度方向吗?

所以模型在这个样本点处,关于输入求出的梯度,就是这个模型在这个样本点上的对抗方向。

但是样本那么多,只增强有限样本的鲁棒性,有意义吗?如果再给一个和之前完全不同的样本,通过这样的对抗训练,这个样本被模型判断错误的概率会变低吗?因此引出了虚拟对抗训练

虚拟对抗训练和虚拟对抗方向

与对抗方向不同,虚拟对抗方向可以定义在没有标记的数据点上,它是最能使当前推断的输出分布偏离现状的方向。

即使在没有标签信息的情况下,也可以在未标记的数据点上定义虚拟对抗方向,就好像存在“虚拟”标签一样;“虚拟”对抗方向因此得名

可以用在无监督学习上

定义局部分布平滑度(LDS),为虚拟对抗方向上基于KL散度的分布鲁棒性。

即对于输出是分布的模型来说(输入样本,输出是样本可能性的分布),原来输入的输出分布和扰动后的输入的输出分布的KL散度最大的方向,就是虚拟对抗方向,然后再训练模型使这个KL散度变小。

如上面对抗方向中所说,模型在样本点处关于输入的梯度是对抗方向,虚拟对抗方向也需要用到这个梯度。但是并不是直接求梯度,而是使用一种近似。这个近似使得虚拟对抗训练(VAT)变得高效

虚拟对抗训练过程

虚拟对抗训练是一种有效的局部分配平滑性技术。采用成对的数据点,这些数据点在输入空间中非常接近,但在模型输出空间中非常接近。然后训练模型以使它们的输出彼此接近。为此,采用给定的输入并且发现扰动,模型给出非常不同的输出。然后,模型因扰动而对灵敏度进行处罚。

弱监督学习--半监督学习(2):VAT:Virtual Adversarial Training
虚拟对抗训练的关键步骤是:

  1. 从输入数据点x开始
  2. 通过添加小的扰动r来变换x,因此变换的数据点将是T(x)= x + r
  3. 扰动r应该在对侧方向 - 扰动输入T(x)的模型输出应该与非扰动输入的输出不同。特别是,两个输出分布之间的KL差异应该是最大的,同时确保r的L2范数很小。从所有的扰动r,让r v-adv成为对抗方向的扰动。在找到对抗扰动和变换输入之后,更新模型的权重,使得KL散度最小化。这将使模型对不同的扰动具有鲁棒性。通过梯度下降最小化以下损失:
    弱监督学习--半监督学习(2):VAT:Virtual Adversarial Training
    弱监督学习--半监督学习(2):VAT:Virtual Adversarial Training
    模型效果如图所示,最初只标记8个点,其中绿色为1,紫色为0.在经过模型不同次数的迭代之后,未标记的1000个灰色节点逐渐被打上标签。第二组图展示的是泛化微小改变的输入特征引起的变化,使模型不会因为微小的变化造成输出结果大幅度的改变

比较

在虚拟对抗训练期间,模型对于不同的输入扰动变得更加鲁棒。随着模型变得更加稳健,产生扰动变得更加困难并且观察到损失的下降。

可以将此方法视为与生成性对抗网络类似。但是有几个不同之处:

  1. 不是让发生器欺骗鉴别器,而是在输入中添加一个小扰动,以欺骗模型,认为它们是两个截然不同的输入。
  2. 不是区分伪造和真实,而是使用模型输出之间的KL分歧。在训练模型时(类似于训练鉴别器),我们最小化KL分歧。

虚拟对抗训练可以被认为是一种有效的数据增强技术,我们不需要先前的领域知识。这可以应用于所有类型的输入分布,因此对于真正的“无监督学习”是有用的。

虚拟对抗训练与对抗训练有何不同?

  1. 在对抗训练中,标签也用于产生对抗性扰动。产生扰动使得分类器的预测标签y’变得与实际标签y不同。

  2. 在虚拟对抗训练中,不使用标签信息,仅使用模型输出生成扰动。产生扰动使得扰动输入的输出不同于原始输入的模型输出(与地面实况标签相反)。

参考

https://zhuanlan.zhihu.com/p/138085660
https://blog.csdn.net/qq_37189298/article/details/104164715
https://blog.csdn.net/hahabeibei123456789/article/details/98722174