深度学习发展初期,训练深度的网络比较困难。对神经网络来说,一个好的初始化可以让结果更稳定,迭代次数更少,因此利用无标签数据让网络有一个好的初始化成为一个研究热点。
无监督预训练使用所有数据逐层重构预训练,对网络的每一层,都做重构自编码,然后把自编码网络的参数,作为初始参数。最后有标签数据进行微调。这种无监督预训练+有监督微调的确用到了无标签数据,但对于神经网络来说,还是一种有监督的方式。
Lee D H. Pseudo-label: The simple and efficient semi-supervised learning method for deep neural networks[C]//Workshop on Challenges in Representation Learning, ICML. 2013, 3: 2.
这篇论文将伪标签(Pseudo-Label)用于深度神经网络实现半监督学习,同时训练有标签数据和无标签数据。简单来说,是让网络对无标签数据的预测,作为无标签数据的标签(伪标签)。具体步骤如图所示。
首先使用有标签的数据训练模型,之后用此模型预测无标签数据。对每个无标签数据,选择预测概率最大的类别,当作伪标签。然后使用伪标签数据和有标签数据重新训练模型。
模型的损失函数=监督损失+平衡系数*无监督损失。这里平衡系数是关于训练时间t的函数。最初设为0,因为一开始网络的预测并不准确,生成的伪标签准确率也不高。之后系数开始缓慢增加。这种无监督损失函数达到一种正则化的效果,因为仅训练少量的有标签数据模型很容易过拟合。
Rasmus A, Berglund M, Honkala M, et al. Semi-supervised learning with ladder networks[C]//Advances in neural information processing systems. 2015: 3546-3554.
本篇论文中,作者提出了一个问题,即无监督学习和监督学习的目的不一致。无监督学习的目标其实是为了学习原始数据X的另外一种表征,同时要保证这个新的表征,尽可能的能够保留原始数据信息。监督学习希望只保留与任务相关的特征,去除不必要的特征。
论文提出的阶梯网络(Ladder Network)有两个分支,把与监督任务相关的信息和无关的信息尽可能的分开,解决上文无监督学习和监督学习不能很好的兼容的问题。阶梯网络基于深度自编码网络,深度自编码网络的网络结构图如下:
其中x(t)表示输入数据、h(t)表示隐藏层神经元。编码器前向传导,解码器后向传导。顶层特征hL(t)要尽量的保留原始x(t)所包含的全部信息。如果要用hL(t)做有监督分类,那么高层特征hL(t)就应该尽量只包含与分类任务相关的信息,因此阶梯网络提出了横向连接,缓解最高层特征需要表达X的全部信息压力。
阶梯网络由2个编码器(加噪编码器和原始编码器)和1个解码器构成。与深度自编码网络相比,编码部分每一层都有一条横向连接线,连接到解码层。可以看出,ladderNet的降噪解码器的每一层接收了两个信息,一个来自上层解码器的隐变量重构,另一个来自横向连接传过来的加噪隐变量,有了这个加噪隐变量,降噪函数就能很好地恢复编码器(或者说分类器)丢失的信息,而不需要强迫编码器保留所有的信息。
阶梯网络无监督部分的损失函数是每一层的构建误差损失的和(C0、C1……CL)。对于监督部分,阶梯网络在编码最高层接入有监督损失函数。总损失函数是有监督和无监督的损失函数的和。在训练阶段,有监督部分输出采用是噪声通道y’构建损失误差;而在测试阶段,采用的是无噪声通道计算y。
Laine S, Aila T. Temporal ensembling for semi-supervised learning[J]. arXiv preprint arXiv:1610.02242, 2016.
多个独立训练的网络的集成可取得更好的预测,基于此想法,作者提出一种自集成(self-ensembling)的方法应用于半监督学习,有Π-model和Temporal ensembling两种实现方法。Π-model集成单个网络在不同的正则化和输入增强条件下产生的输出。Temporal ensembling集成训练网络在不同epoch的输出。此方法用于得到更好的target,这里的target和伪标签(Pseudo-Label)的概念类似。
Π-model(双模型)认为对于同一个输入数据,在不同的Dropout和输入增强条件下,网络对其预测结果应该是一致的,鼓励网络学习数据内在的不变性。由于这两者的随机性,网络的输出会有一定的差异。这种差异可以被视为分类中的误差,所以无监督损失旨在减少这种误差。无监督损失面向全部数据(有标签+无标签),有监督损失仅面向有标签数据。
Temporal ensembling(时序组合模型)中,网络输出z的来源与Π-model不同。在Π-model,两个z都是来自同一迭代时间内产生的两次结果。但在Temporal ensembling中,需要比较的一个z来自过去epoch产生的z的指数移动平均值,即 ,另一个z来自当前epoch产生的结果。这样做的好处是能够保留历史信息,衰减长远历史信息和稳定当前值。
相较于Π-model,Temporal ensembling有两个好处,一是训练速度快,不需要评估两次网络,二是对标签噪声具有鲁棒性,即使有标签数据的标签有误的,无监督 loss 也可以平滑这种错误标签的影响。
Tarvainen A, Valpola H. Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results[C]//Advances in neural information processing systems. 2017: 1195-1204.
Temporal ensembling对模型输出做移动平均,但只在每个epoch更新一次,所以在面临大数据集时模型的效率会大大降低。为了克服这个问题,论文提出Mean Teacher,一种平均模型权重而不是标签预测的方法。
类似LadderNet的模型构建使用噪声和不使用噪声的样例的一致性损失。在这种情况下,模型充当教师和学生的双重角色。作为学生学习数据;作为教师,产生target,然后将其用于学习。由于target是模型本身生成的,因此可能存在分类错误。如果对生成的target给予过多的权重,那么不一致的代价会超过错误分类的代价,从而妨碍了对新信息的学习。这种危险可以通过提高target质量来缓解。
提高target的质量有两种方式,一种是精心选择样本噪声,另一种是选一个更好的教师模型,而不是仅复制学生模型。论文采用第二种方法,目标是在没有额外训练的情况下,从学生模型中形成更好的教师模型。由于教师模型是连续的学生模型的平均值,所以称之为Mean Teacher方法。
在训练时,使用平均模型权重倾向于产生比直接使用最终权重更准确的模型,这里作者未直接说明原因,而是引用了一篇平均随机梯度下降的论文。这和动量梯度下降法的思想类似,动量梯度下降法的核心即对一系列梯度进行指数加权平均,通过减小梯度振荡对算法进行优化。在用梯度下降法更新学生模型的权重之后,将教师模型权重更新为学生权重的指数移动平均值。教师模型可以在每个batch step后而不是每个epoch后更新信息。此外,由于权重平均值改善了所有层输出,而不仅仅是顶部输出,因此目标模型具有更好的中间表示。