在本文中,我们提出了一种在半监督环境下训练深度神经网络的简单而高效的方法,在这种环境下,只有一小部分训练数据是有标签的。我们引入了self-ensembling技术,即利用网络在不同历时,最重要的是在不同正则化和输入增强条件下的训练输出,形成对未知标签的共识预测。与网络在最近训练历时的输出相比,这种集合预测可以更好地预测未知标签,因此可以作为训练的目标。使用我们的方法,我们在两个标准半监督学习基准测试中创造了新纪录,在有 500 个标签的 SVHN 中,分类错误率(未增强)从 18.44% 降至 7.05%;在有 4000 个标签的 CIFAR-10 中,分类错误率从 18.63% 降至 16.55%;启用标准增强后,分类错误率进一步降至 5.12% 和 12.16%。此外,通过在训练过程中使用来自 Tiny Images 数据集的随机图像作为未标记的额外输入,我们还明显提高了 CIFAR-100 的分类准确率。最后,我们还展示了对错误标签的良好耐受性。
介绍:
众所周知,多个神经网络的集合通常会比集合中的单个网络产生更好的预测效果。在通过 dropout(Srivastava 等人,2014 年)、dropconnect(Wan 等人,2013 年)或随机深度(Huang 等人,2016 年)正则化方法训练单个网络时,以及在 swapout 网络(Singh 等人,2016 年)中,这种效应也被间接利用,在 swapout 网络中,训练总是集中在网络的特定子集上,因此完整的网络可以被视为这些训练好的子网络的隐式集合。我们扩展了这一想法,在训练过程中,利用单个网络在不同训练历时、不同正则化和输入增强条件下的输出,形成集合预测。我们的训练仍然是在单个网络上进行的,但由于采用了滤除正则化,在不同历元上进行的预测相当于大量单个子网络的集合预测。
这种集合预测可用于半监督学习,在这种情况下,只有一小部分训练数据是有标签的。如果我们将集合预测与正在训练的网络的当前输出进行比较,集合预测很可能更接近于未标记输入的正确未知标签。因此,通过这种方法推断出的标签可以作为未标记输入的训练目标。我们的方法在很大程度上依赖于剔除正则化和多功能输入增强。事实上,如果没有这两个因素,我们就没有理由相信为未标注训练数据推断出的任何标签。
我们介绍了两种实现自组装的方法:Π 模型和时间组装。这两种方法在半监督学习方面都大大超越了之前最先进的结果。此外,我们还发现,自组装(self-ensembling)还能提高完全标签情况下的分类准确率,并提供对错误标签的容忍度。
Sajjadi 等人(2016b)最近提出的转换/稳定性损失与我们的工作基于相同的原理,Π 模型可视为其特例。Π模型也可以看作是 Rasmus 等人(2015 年)对梯形网络Γ模型的简化,这是之前提出的一种用于半监督学习的网络架构。我们的时序集合方法与 Reed 等人(2014)针对有噪声标签的训练所采用的引导方法有关。
在训练过程中自我组装:
我们介绍了两种在训练过程中实现自组网的方法。第一种是Π-模型,鼓励在两种不同的辍学条件下,同一输入刺激的两次实现之间的网络输出保持一致。第二种方法是时间集合,它将网络对之前多个训练历时的预测考虑在内,从而简化并扩展了这种方法。
我们将结合传统的图像分类网络来描述我们的方法。假设训练数据总共由 N 个输入组成,其中 M 个是有标签的。所有训练数据的输入刺激均以 xi 表示,其中 i ∈ {1 .N }.让集合 L 包含标注输入的索引,|L| = M。对于每个 i ∈ L,我们都有一个已知的正确标签 yi ∈ {1 .C},其中 C 是不同类别的数量。
Π-MODEL
Π模型的结构如图 1(上图)所示,伪代码如算法 1 所示。在训练过程中,我们对每个训练输入 xi 进行两次网络评估,得出预测向量 zi 和 ̃ zi。我们的损失函数由两部分组成。第一个部分是标准的交叉熵损失,仅针对标记输入进行评估。第二个部分针对所有输入进行评估,通过均方差对同一训练输入 xi 的不同预测进行惩罚。为了将有监督和无监督的损失项结合起来,我们通过与时间相关的加权函数 w(t) 对后者进行缩放。通过比较整个输出向量 zi 和 ̃ zi,我们有效地要求两个评估之间的 "暗知识"(Hinton 等人,2015 年)接近,这比传统训练中只要求最终分类保持不变要强得多。
需要注意的是,由于采用了 dropout 正则化,训练过程中的网络输出是一个随机变量。因此,在相同的网络权重 θ 下对相同的输入 xi 进行两次评估会产生不同的结果。此外,高斯噪声和随机平移等增强因素也会被评估两次,从而产生额外的变化。这些影响的组合解释了预测向量 zi 和 ̃ zi 之间的差异。鉴于原始输入 xi 是相同的,这种差异可视为分类中的误差,因此将其最小化是一个合理的目标。
在我们的实施过程中,无监督损失加权函数 w(t) 从零开始,在前 80 个训练历元中沿着高斯曲线逐渐上升。有关该函数和其他训练参数的更多详情,请参阅附录 A。因此,一开始的总损失和学习梯度都是由监督损失部分(即仅标签数据)主导的。我们发现,无监督损失分量的上升速度必须足够慢,否则网络很容易陷入退化解,无法对数据进行有意义的分类。
我们的方法与 Rasmus 等人(2015 年)的梯形网络Γ模型有些类似,但概念上更简单。在Π模型中,比较直接在网络输出上进行,即在软最大激活之后,两个分支之间没有辅助映射,例如梯形网络架构中学习到的去噪函数。此外,我们对两个分支的输入应用了相同的增强和噪声,而不是像Γ模型那样有一个 "干净 "分支和一个 "损坏 "分支。
TEMPORAL ENSEMBLING
分析 Π 模型的工作原理,我们同样可以将两个分支的评估分成两个独立的阶段:首先对训练集进行一次分类,而不更新权重 θ;然后在不同的增强和剔除条件下对相同的输入进行网络训练,并将刚刚获得的预测结果作为无监督损失部分的目标。由于这种方法获得的训练目标是基于对网络的单次评估,因此可能会产生噪声。时间集合法将之前多个网络评估的预测结果汇总到一个集合预测中,从而缓解了这一问题。它还能让我们在训练过程中只对网络进行一次评估,与 Π 模型相比,速度提高了约 2 倍。
图 1(下)显示了我们的时空集合方法的结构,算法 2 则显示了其伪码。与 Π 模型的主要区别在于,每个输入每个历元只对网络和增强进行一次评估,无监督损失分量的目标向量 ̃ z 基于之前的网络评估,而不是对网络进行第二次评估。
每次训练历时结束后,网络输出 zi 通过更新 Zi ← αZi + (1 - α)zi 被累积为集合输出 Zi,其中 α 是一个动量项,用于控制集合在训练历史中的累积程度。因此,由于去掉正则化和随机增强,Z 包含了网络集合 f 在之前训练历时的输出的加权平均值,最近的历时比较远的历时具有更大的权重。为了生成训练目标 ̃ z,我们需要通过除以系数 (1 - αt)来修正 Z 中的启动偏差。亚当(Kingma & Ba,2014 年)和纯均值批次归一化(Salimans & Kingma,2016 年)等研究也采用了类似的偏差校正方法。在第一个训练期,Z 和 ̃ z 为零,因为没有之前训练期的数据。因此,我们指定无监督权重提升函数 w(t) 在第一个训练历时也为零。
与 Π 模型相比,时态集合有两方面的优势。首先,训练速度更快,因为网络在每个历元上对每个输入只评估一次。其次,与 Π 模型相比,训练目标 ̃ z 的噪声更小。正如第 3 节所示,在相同训练历元数的情况下,时空集合的结果确实比 Π 模型要好一些。虽然当数据集包含大量项目和类别时,矩阵 Z 可能相当大,但其元素的访问频率相对较低。因此,可以将其存储在内存映射文件中。
时空集合的另一个有趣的可能性是从网络预测 zi 中收集除均值之外的其他统计数据。例如,通过跟踪网络输出的第二原始矩,我们可以估计每个输出成分 zi,j 的方差。这样就能以一种原则性的方式推理出网络输出的不确定性(Gal & Ghahramani,2016 年)。基于这一信息,我们可以在无监督损失项中,将更多权重放在更确定的预测上,而不是不确定的预测上。不过,我们会在今后的工作中继续探索这些途径。
[论文笔记]Temporal Ensembling for Semi-supervised Learning - 知乎 (zhihu.com)