虚拟对抗训练(VAT):一种用于监督学习和半监督学习的正则化方法

虚拟对抗损失:一种对给定输入的条件标签分布的局部平滑度的新度量方法。模型对于输入的微小改变,它的输出不应该有很大的变动,对于小扰动有大的输出波动的模型会导致这个损失函数变大。通常过拟合的时候,会出现这种现象,所以可以把VAT看做是一种正则化的方法。

虚拟对抗训练就是要找一个使输出偏差最大的扰动方向,在这个方向上对输入产生扰动,再用于训练模型,使模型的局部平滑度增强。

以上公式展示了虚拟对抗训练的原理,$x^{(n)}$表示某一个输入(或样本点),θ表示模型训练出来的参数,$r$表示对于这个输入的一个扰动。△△as第一个式子使用$x^{(n)}$与$x^{(n)} + r$的输出分布的KL散度表示这两个分布之间的差异;第二个式子就是在$r$的L2范数小于一定值的情况下,找到使第一个式子最大的$r$,即找到使这两个分布差异最大的扰动方向,也就是找到训练模型在输入为$x^{(n)}$时的局部分布最不平滑的方向;第三个式子就是,定义$x^{(n)}$的局部分布平滑度(LDS)为:$x^{(n)}$的最大扰动方向扰动后的$x^{(n)}$输入的输出分布与$x^{(n)}$输入的输出分布之间的KL散度的相反数。所以,LDS越大越好,这与我们事实上要让$x^{(n)}$的局部分布越平滑越好是相对应的。

 

对抗训练和对抗方向

论文引用的[14]中指出,局部各同向性的输出分布不能通过局部各同向性的扰动对抗训练来实现。

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

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

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

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

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

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

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

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

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

[14]使用one hot vector $h(y;y_l)$来拟合真实分布

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

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

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

可以用在无监督学习上。

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

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

 

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

对抗方向和虚拟对抗方向的区别在于:

对抗训练的方向,是能使当前模型对某个输入加上这个方向的扰动后的分布,和这个输入的真实分布的KL散度最大的方向。(也就是基于这么一个理念:扰动后的输入的输出分布应该还是和真实分布一样的)

虚拟对抗训练的方向,是能使当前模型对某个输入加上这个方向的扰动后的分布,和当前模型对这个输入的分布的KL散度最大的方向。(也就是基于这么一个理念:扰动后的输入的输出分布应该还是和没扰动的输入的输出分布一样的)

暂时没懂

http://www.360doc.com/content/19/0611/21/32196507_841844424.shtml

论文中提到

第三页:

Dropout(屏蔽一些层进行正则化)

Pseudo Ensemble Agreem ent (伪合作协议)

Ladder network(梯形网络)

Jacobian regularization(雅可比正则化),理解:

  对于多维输入和多维输出的模型,经验上,我们认为模型不仅仅应该正确判断某个输入。而且,对于这个输入周围的样本,它的输出也应该和这个输入的输出相似。

  所以,这个输入的周围的梯度应该要足够小(梯度刚好是0最好,因为不论这个输入怎么进行较小的扰动,都不会对输出产生影响)。因此,计算模型输出对于输入的雅可比矩阵,让这个矩阵的某些范数(如Frobenius范数)小于一定值。就可以看做一个正则项。

  Jacobian正则化是根据:“模型对相似输入的输出应该相似”,这一观点而产生的。和普通的正则化项不同,普通正则化项仅仅是基于“参数的值不应该过于复杂”(奥卡姆剃刀)而产生的,比较依靠直觉。而Jacobian正则化则更加有针对性。

Generative model(生成模型)

Generative adversarial network(生成对抗网络)

One hot vector:机器学习:数据预处理之独热编码(One-Hot)https://blog.csdn.net/wxystyle/article/details/80729741

你可能感兴趣的:(虚拟对抗训练(VAT):一种用于监督学习和半监督学习的正则化方法)