混著混著一年了,终于从一个渣硕混成了一个,呃,老渣硕了(泪)。半年前给大家分享了一些半监督深度学习的心得,看到有人觉得有用真的很开心。遂今天再写篇文章感谢同学们(发不出论文,也只能在知乎上发文章爽一波了...orz)

Consistency Regularization

今天这篇文章将会以 Consistency regularization 为主题进行阐述,希望读者们在看论文的时候能够更本质地理解论文的工作(呃,我不保证consistency regularization是本质...orz)

说到一致(consistency),其实很多代价都有这个内涵,如MSE代价,最小化预测与标签的差值,也就是希望预测与标签能够一致,其他的代价,如KL散度、交叉熵代价也类似。所以一致性,是一种非常内在而本质的目标,可以让深度网路进行有效学习。

但是在半监督中,无标签数据并没有标签,因而勤劳而美丽的科研工作者们就想出了各种无需标签信息的 consistency regularization,随著 consistency regularizaton 的不断发展,一度成为半监督深度学习发展史上耀眼的SOTA。

Consistency Regularization 的主要思想是:对于一个输入,即使受到微小干扰,其预测都应该是一致的。

例如,某人的裸照(干净的输入)和其有穿衣服的照片(受到干扰的照片),你也应该能知道这是同一个人(一致性)。

当然,这个干扰不能太大(例如衣服把整个人都遮住了)

Consistency Regularization 虽然做法简单,但是却具有很多良好的作用,将会在下面的文章中阐述。

Learning with Pseudo-Ensembles

这是NIPS 2014年发表的工作,其提出了一个概念:pseudo-ensemble,一个 pseudo-ensemble 是一系列子模型(child model),这些子模型通过某种杂讯过程(noise process)扰动父模型(parent model)得到。

Pseudo-ensemble 与其他的有关扰动的方法的区别在于:其他的方法只考虑在输入空间的扰动,而 pseudo-ensemble 还考虑在模型空间(model space)上的扰动。

一个典型的 pseudo-ensemble 就是 Dropout。

但是,除了dropout 以外,我没怎么想到其他的模型空间上的扰动,看论文的公式貌似是在网路的中间表示添加杂讯?论文有代码,但我没怎么看,有不同意见的同学可以评论里提出。

其有监督代价函数如下:

min_{	heta} E_{(x,y)sim p_{xy}} E_{xi sim p_{xi}}  L(f_{	heta}(x;xi), y)

其中 	heta 是网路参数, xi 表示某种杂讯过程,该有监督代价函数就是让扰动得到的子模型与标签 y 一致。

论文中还提出其半监督形式:The Pseudo-Ensemble Agreement regularizer(PEA),其形式如下:

PEA(f_	heta, p_x, p_xi)=E_{x sim p_x} E_{xi sim p_xi} left[  sum_{i=2}^{d} {lambda_i V_i(f^i_	heta(x), f^i_	heta(x;xi))}  
ight]

其中 d 是网路的层数,其含义应该是把父模型的每一层中间表示,与子模型的进行一致正则, V 是某种惩罚函数,如MSE代价。(注:最后一层的中间表示即网路的预测)

现在回顾一下Consistency regularization的思想:对于一个输入,受扰微小扰动后,其预测应该是一致的。

PEA的含义我认为就是,对于一个输入,受到扰动后,其所有的中间表示,都应该一致。(其实根据后面更多的论文,这个约束可能强力些)

PEA的目的是,使得模型对扰动具有鲁棒性,因为鲁棒的模型泛化性能更好,同时还能学习数据的内在不变性。(作用1

PS:[论文][代码]

Regularization With Stochastic Transformations and Perturbations for Deep Semi-Supervised Learning

这是NIPS 2016年发表的工作。

随机性在大部分的学习系统中起到重要的作用,深度学习系统也如此。一些随机技术,如随机数据增强、Dropout、随机最大池化等,可以使得使用SGD训练的分类器具有更好的泛化性和鲁棒性。

而且这种不确定性的存在,使得模型对同一个样本的多次预测结果可能不同。因此论文提出一个无监督代价(即我说的半监督正则),其通过最小化对同一个样本的多次预测,利用这种随机性来达到更好的泛化性能。该无监督代价形式如下:

l^{TS}_U= sum_{j=1}^{n-1} {sum_{k=j+1}^{n}{ ||f^j(T^j(x_i))-f^k(T^k(x_i))||^2_2}}

其中 f^j 代表对输入 x_i 的第 j 次预测, T 表示某种数据变换。除了对样本做变换,在网路内也使用类似 Dropout或随机池化等技术产生随机性。

似泥?Pseudo-Ensemble!对不起,你俩有点像。

虽然感觉很类似,但是这两篇论文很值得一读啊,论文里提出许多的观点和想法,一直延续至今,信息量挺大。

Temporal Ensembling for Semi-supervised Learning

看过我上一篇文章半监督深度学习小结的同学应该不陌生了,这篇在ICLR 2017年的工作提出了一个我称之为 peer-consistency 的正则项,即 Pi 模型,也是我最开始对 consistency regularization 的认知的由来。

Pi 模型认为,同一个输入,在不同的正则和数据增强条件下,网路对其预测应该是一致的。其无监督代价部分如下:

w(t)frac{1}{C|B|} sum_{i in B} ||z_i - hat{z_i}||^2

其中 z_i 是网路的一个预测,而 hat{z_i} 是网路对同一个样本在不同的正则和数据增强条件下的一个预测,然后让著两个预测一致。(看起来很像前面两篇文章的简化版,但是效果好啊,这也是我说前面的约束太强的原因)

w(t) 是权重函数,是迭代次数的函数。由于在网路的初始阶段,网路的预测十分不准(尤其是半监督中有标签数据有限的情况),这时的网路预测的靠不住的,因此这无监督代价在初始时的权重应该设置得比较小,到后期再慢慢增大。

w(t) 非常关键,论文中使用了一个高斯爬升函数,具体可以看论文。

我的理解是,这种 peer-consistency 鼓励一个样本点的扰动不变性,其实鼓励了预测函数(即网路)对样本的邻域具有光滑性。(作用2

而且把 peer-consistency 看做是一种标签正则,可以从最大熵模型来理解 peer-consistency,具体可参考 Regularizing neural networks by penalizing confident output distributions,ICLR17。

论文中还提出了另一种更强大的方法,但由于不在该主题下,不讲,可能会另开一篇文章讲吧,同学可以自己看论文。

PS:[论文][代码]

Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results

没错,这也是上一篇文章半监督深度学习小结介绍的方法,方法好多介绍几遍。这篇NIPS 2017的工作提出了一个 peer-consistency 的升级版,Teacher-student consistency。

其除了 consistency 这个思想外,还有「模型成功的关键在于 target 的质量」这个动机,

其想法就是,我从当前的模型(Student model),构造出一个比 Student model 更好一些的 Teather model,然后用这个 Teacher model 的预测来训练 Student model(即 consistency regularization)。

其无监督代价部分如下:

J(	heta)=E_{x,eta,eta} left[ ||f(x,	heta,eta)-f(x,	heta,eta)||^2 
ight]

其中 f(x,	heta, eta) 是 Teacher model 的预测, f(x, 	heta, eta) 是 Student model 的预测

但问题是,怎么去构造这个更好一些的 Teacher model?

论文提出的方法是,对 Student model 每次更新的模型做移动平均,移动平均后的模型就是 Teacher model,Teacher model 也不用反向传播更新,就参数的移动平均足以。其移动平均公式如下:

	heta_t=alpha 	heta_{t-1}+(1-alpha)	heta_t

有没有一种好神奇的感觉,效果还非常地好。论文还用实验说明,其能形成一个良好的循环,得到一个 Student model,构造一个更好的 Teacher model,然后这个 Teacher model 又能用来升级 Student model,然后又....

当然,由于 Student model 刚开始只用有限的有标签数据训练,其性能并不好,因此该无监督代价同样需要乘一个权重(函数),这个权重函数和 Temporal Ensembling for Semi-supervised Learning 一样。

PS:[论文][代码]

Smooth Neighbors on Teacher Graphs for Semi-supervised Learning

这是CVPR 2018的工作,该工作指出,前面的 consistency 都是只作用在单个数据点上,即都是对同一个数据点的增强。因此,论文提出一种 features consistency,其认为属于同一个类别的数据特征(分类层前面的中间表示)应该具有一致性。

但是,无监督数据并没有标签,我怎么知道是不是属于同一类,论文使用前面的半监督方法的预测作为样本的标签,即 pseudo label,来构造这种属于同一类别的特征一致性。

虽然感觉这是取了巧,但是实验效果还不错,而且想法也很对,还是分享一下。其特征一致性的正则如下:

l_G=W_{ij}||h(x_i)-h(x_j)||^2 +  (1-W_{ij})cdotmax(0, m-||h(x_i)-h(x_j)||)^2

其中,若预测的为属于同一类,则 W_{ij}=1 ,不属于同一类则为 0。 h(x_i) 表示样本的(深度)特征。

当然,这个代价函数本身是1994年NIPS一个工作提出来的,被这篇论文重新活用了,还是那句话,想法对,效果也好。

PS:[论文][代码]

还有一篇 consistency regularization 的算是 Virtual Adversarial Training: a Regularization Method for Supervised and Semi-supervised Learning,虽然论文讲的是如何计算对抗杂讯,但我看了代码觉得其实和 consistency 很像,只不过是普通扰动变成了对抗扰动

还有一篇类似 CVPR 2018 SNTG 的论文是 ECCV 2018 的 Transductive Semi-Supervised Deep Learning using Min-Max Features,不过大部分概念我说过了,论文自己去看就行,思想差不多。

本章完...

点赞多的话,本渣硕麻利地去写完剩下的 Semi-supervised autoencoder、semi-supervisd GAN和半监督其他方法。不过现在,先休息一下。

好像又插旗了...orz


推荐阅读:
查看原文 >>
相关文章