Press "Enter" to skip to content

半监督深度学习又小结之Consistency Regularization

混着混着一年了,终于从一个渣硕混成了一个,呃,老渣硕了(泪)。半年前给大家分享了一些半监督深度学习的心得,看到有人觉得有用真的很开心。遂今天再写篇文章感谢同学们(发不出论文,也只能在知乎上发文章爽一波了…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_{\theta} E_{(x,y)\sim p_{xy}} E_{\xi \sim p_{\xi}} L(f_{\theta}(x;\xi), y)
其中 \theta 是网络参数, \xi 表示某种噪声过程,该有监督代价函数就是让扰动得到的子模型与标签 y一致。
论文中还提出其半监督形式:The Pseudo-Ensemble Agreement regularizer(PEA),其形式如下:
PEA(f_\theta, 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_\theta(x), f^i_\theta(x;\xi))} \right]
其中 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(\theta)=E_{x,\eta',\eta} \left[ ||f(x,\theta',\eta')-f(x,\theta,\eta)||^2 \right]
其中 f(x,\theta', \eta') 是 Teacher model 的预测, f(x, \theta, \eta) 是 Student model 的预测
但问题是,怎么去构造这个更好一些的 Teacher model?
论文提出的方法是,对 Student model 每次更新的模型做移动平均,移动平均后的模型就是 Teacher model,Teacher model 也不用反向传播更新,就参数的移动平均足以。其移动平均公式如下:
\theta'_t=\alpha \theta'_{t-1}+(1-\alpha)\theta_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})\cdot\max(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,不过大部分概念我说过了,论文自己去看就行,思想差不多。

本章完…

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注