包装方法是半监督学习中最古老和最广为人知的算法之一(Zhu,2008)。他们利用一个或多个有监督的基础学习器,用原始标记数据和先前未标记的数据迭代训练这些数据,这些数据是用来自学习器早期迭代的预测增强的。后者通常被称为伪标签数据。该程序通常包括训练和伪标记两个交替的步骤。在训练步骤中,一个或多个有监督的分类器在标记的数据上训练,也可能是以前迭代的伪标记数据。在伪标签步骤中,生成的分类器用于为先前未标记的对象推断标签;学习器对其预测最有信心的数据点进行伪标记,以便在下一次迭代中使用。
包装方法的一个显著优点是,它们可以用于几乎任何有监督的基础学习器。有监督的基础学习器可能完全不知道包装方法,包装方法简单地讲伪标签样本传递给基础学习器,就像它们是常规标签样本一样。尽管一些包装方法需要基础学习器提供概率预测,但许多依赖于多个基础学习器的包装方法不需要。对于任何特定的包装方法,其基础的半监督学习假设取决于所使用的基础学习器。从这个意义上说,包装方法本身不能认为是一种学习方法:只有当它与一组特定的基础学习器组合在一起时,它才成为一种完整的学习方法。
Triguero等人(2015)最近发表了对包装方法的全面调查。除了提供一个概述的方法,他们也提出了一个包装方法的分类方法,基于(1)有多少分类器使用,(2)是否使用不同类型的分类器,(3)是否使用单一视图或多视点数据(即数据是否分成多个功能子集)。这种分类法为了解包装方法提供了有价值的见解。
我们提出了一个不太复杂的分类法,重点介绍了文献中研究过的三种相对独立的包装方法类型。首先,我们考虑自训练(self-training),它使用一个监督分类器,迭代地对自己最自信地预测进行再训练。其次,我们考虑了协同训练(co-training),这是自训练的一种扩展,将多个分类器迭代地根据彼此最自信的预测进行再训练。分类器应该具有足够的多样性,这通常通过对给定对象或特征的不同子集进行操作来实现。最后,我们考虑伪标签增强方法(pseudo-labelled boosting methods)。与传统的增强方法一样,它们通过顺序构建单个分类器来构建分类器集成,其中每个分类器在有标记的数据上训练,在未标记的数据上训练之前分类器最自信的预测。
自训练方法(有时也成为自学习方法)时最基本的伪标签方法(Triguero等人,2015)。它们由一个单独的监督分类器组成,该分类器在有标记的数据和在算法之前迭代中已被伪标记的数据上进行迭代训练。
在自训练过程的开始,只对标记的数据训练一个有监督的分类器。生成的分类器用于获得未标记数据点的预测。然后,将最自信的预测添加到标记数据集,并对原始标记数据和新获得的伪标记数据进行监督分类器训练。这个过程通常时迭代的,直到没有更多的未标记的数据。
自训练最早由Yarowsky(1995)提出,是一种在文本文档中进行词义消歧的方法,即根据上下文预测词义。从那时起,自训练的一些应用和变化被提出。例如,Rosenberg等人(2005)将自训练应用于目标检测问题,并显示出当时最先进的目标检测模型更好的性能。Dopido等人(2013)开发了一种用于高光谱图像分类的自训练方法。他们使用领域知识来选择一组候选的未标记样本,并用训练有素的分类器做出的预测对这些样本中信息量最大的进行伪标记。
自训练范式允许大量的设计决策,包括选择伪标签数据,在算法的后续迭代中重用伪标签数据,以及停止标准。选择伪标签数据的过程特别重要,因为它决定了哪些数据最终进入分类器的训练集。在典型的自训练设置中,这种选择是基于预测置信度,置信度估计的质量显著影响算法性能。其中,未标记的样本的预测概率排序反映真实置信度排序。
如果由校准良好的概率预测,则可以直接使用各自的概率。在这种情况下,自训练方法是迭代的,而不是增量的,因为未标记数据点的标签概率在每一步都要重新估计。在这种情况下,方法变得类似于期望最大化(EM;Dempster等人,1977)。它已经在朴素贝叶斯的背景下得到了很好的研究,这是固有的概率(Nigam和Ghani,2000;Nigam等人,2000,2006)。Wu等人(2021b)最近将带有朴素贝叶斯分类器的半监督EM应用于电子商务网站的假货评论检测问题。
不支持鲁棒概率预测的算法可能需要自适应,以从自训练中获益。决策树就是一个典型的例子:如果不进行任何修改和修剪,预测概率估计(通常根据带有特定标签的叶子中的样本比例计算)通常质量很低。这主要归因于大多数决策树学习算法都明确地试图最小化树节点中的杂质,从而鼓励小叶子和高度偏差的概率估计(Provose和Domingos,2003)。Tanha等人(2017)试图用两种不同的方法来客服这个问题。首先,他们采用现有的几种方法,如嫁接(grafting?)和拉普拉斯校正,直接改进预测概率估计。其次,他们使用一种基于局部距离的度量来确定实例之间的置信度排名:一个未标记数据点的预测置信度是基于该点与每个类别的标记数据之间的马氏距离的绝对差。使用这种方法,他们在决策树和随机森林(决策树的集合)的性能上都得到了改善(Tanha等人,2017)。
Leistner等人(2009)也利用自训练来改进随机森林。对于未标记数据,他们不是根据估计的后验分布对每棵树的每一个未标记数据点进行独立的伪标记,而是用预测的最有可能的标签进行标记。此外,他们提出了一个基于包外误差的停止准则:当包外误差(这是泛化误差的无偏估计)增加时,训练停止。
根据定义,自训练中的基础学习器不知道包装方法的存在。因此,他们必须在每次自训练迭代中完全重新训练。然而,当分类器可以增量训练时(即在给定数据的单个数据点或子集上优化目标函数),完全可以采用类似于自训练的迭代伪标记方法。不必在每次迭代中重新训练整个算法,数据点可以在整个训练过程中进行伪标记。Lee(2013)将这种方法应用于神经网络,并提出了伪标签方法。由于在早期训练阶段预测的伪标签通常不太可靠,伪标签数据的权重会随着时间的推移而增加。伪标签方法与自训练明显相似,但不同之处在于分类器不会在每个伪标签步骤之后重新训练:相反,它使用新的伪标签数据进行优化,因此在技术上偏离了板状方法范式。
关于自训练算法的理论性质的演技还很有限。Haffari和Sarkar(2007)对自训练的几种变体进行了理论分析,并显示了与基于图的方法的联系。Culp和Michailidis(2008)分析了一种带有多个基础学习器的自训练变体的收敛性,并考虑了与基于图的方法的联系。
协同训练是自训练对多监督分类器的扩展。在协同训练中,两个或多个监督分类器对标记数据进行迭代训练,在每次迭代中,将它们最自信的预测添加到其他监督分类器的标记数据集。为了使协同训练成功,重要的是基础学习器在它们的预测中不存在太强的相关性。如果是的话(指相关性很强),它们相互提供有用信息的潜力的有限的。在文献中,这种情况通常被称为多样性(diversity)标准(Wang和Zhou,2010)。Zhou和Li(2010)对基于多个学习器的半监督学习方法进行了调查。他们将这些方法统称为基于分歧的方法。这是因为他们观察到,协同训练方法利用了多个学习器之间的分歧:它们通过未标记的数据交换信息,不同的学习器预测不同的标记。
为了促进分类器的多样性,早期的协同训练主要是依赖于数据的多个不同视图的存在,这些视图通常对应于特征集的不同子集。例如,在处理视频数据时,数据可以自然地分解为可视和音频数据。这种协同训练方法属于更广泛的多视图学习方法,其中也包括广泛的监督学习算法。Xu等人(2013)对多视角学习进行了全面的研究。我们在第4.2.1节中涵盖了多视角协同训练方法。在许多现实世界的问题场景中,没有已知的数据的独特试图。单视图协同训练方法通过自动将数据分割成不同的视图或促进学习算法本身的多样性来解决这个问题;我们将在第4.2.2节中介绍这些方法。在第4.2.3节中,我们还简要讨论了多个分类器组合成单一目标函数的共正则化方法。
协同训练的基本形式时Blum和Mitchell(1998)提出的。在他们的开创性论文中,他们构建出两个分类器,分别训练给定数据的两个不同视图,即特征子集。在每个训练步骤之后,每个视图的最有信心的预测被添加到另一个视图的标记数据集中。Blum和Mitchell将协同训练算法应用到大学网页的分类中,使用网页文本和从外部来源链接到网页锚文本作为两个不同的视图。该算法及变体已成功应用到多个领域,最显著的是自然语言处理。
Blum和Mitchell(1998)的原始协同训练算法依靠两个主要假设获得成功:(1)每个单独的特征子集应该满足以在给定的数据集上获得良好的预测,(2)给定类标签,特征子集应该是条件独立的。可以简单地理解第一个假设:如果两个特征子集中的一个不足以形成良好的预测,使用该集合的分类器永远不会对组合方法的整体性能做出积极贡献。第二个假设与多样性标准有关:如果特征子集在给定类别标签的情况下是条件独立的,那么个体分类器的预测不太可能是强相关的。正式来说,对于任何数据点,分别分解为和,条件独立假设等于。Dasgupta等人(2002)表明,在上述假设下,通过促进学习器个体之间的一致性可以减少泛化误差。
在实践中,第二个假设通常是不满意的:即使存在自然分裂的特性,如在Blum和Mitchell(1998)所建立的实验中,一个视图中包含的信息不太可能没有提供其他的信息视图当条件类标签(Du等人,2011)。以大学网页分类为例,网页链接的锚文本确实可以包含有关网页内容的线索,即使已知网页被分类为教师的主页。例如,如果链接的锚文本是“工程学院院长”,那么在页面的文本中,人们更有可能找到工程学院院长的消息,而不是其他任何人的消息。因此,已经考虑了几种替代这一假设的方法。
Abeny(2002)表明,弱独立假设对于成功的协同训练是充分的。Balcan等人(2005)进一步放宽了条件独立假设,认为一个弱得多的假设——他们称之为膨胀假设——是充分的,在某种程度上是必要的。扩展假设表明,这两种视图不是高度相关的,而且个人分类器从来不会自信地做出错误的预测。
Du等人(2011)研究了 实证方法,以确定充分性和独立性假设的持有程度。他们提出了几种自动将特征集分割成两个视图的方法,并表明所得到的经验独立性和充分性于协同训练算法的性能呈正相关,表明特征分割充分性和独立性能够产生良好的分类器。
如Du等人(2011)所示,即使在已知先验的给定特征集中没有自然分裂(natural split?),协同训练也可以成功。这一观察结果在关于协同训练的文献中得到了呼应,在这种所谓的单一视图的环境中,由许多不同的方法来应用协同训练。
Chen等人(2011)试图通过在每次协同训练迭代中自动分割特征集来减轻对预定义不相交特征集的需求。他们提出了一个与协同训练相关的单一优化问题,结合了特征集应该是不相关的要求和Balcna等人(2005)提出的膨胀假设。他们在一个部分合成的数据集上展示了这种方法很有前景的结果,其中每个数据点的多视图是自动生成的。Wang和Zhou(2010)从基于图的角度探讨了协同训练成功的充分必要条件,其中标签传播对每个学习器交替应用。这种方法的缺点是,尽管受到协同训练的启发,但它不能应用于任意的监督学习算法而不进行修改:类似于协同训练的操作嵌入到目标函数中,而目标函数是直接优化的。
已经提出了几种将单视图数据集分割成多个视图的技术。例如Wang等人(2008b)建议生成k个数据的随机投影,并将这些投影作为k个不同分类器的视图。Zhang和Zheng(2009)提出利用主成分分析将数据投影到一个低维子空间上,并通过贪婪地选择方差最大的变换特征来构造伪视图。Yaslan和Cataltepe(2010)没有将数据转换为不同的基础(basis?),而是迭代地为每个视图选择特征,优先考虑相对于给定标签具有高互信息的特征。
将类似于协同训练的算法应用到没有明确视图的数据集的进一步方法关注于在分类器中引入多样性的其他方法。例如,可以对监督算法使用不同的超参数(Wang和Zhou,2007;Zhou和Li,2005a),或者使用不同的算法(Goldman和Zhou,2000;Xu等人,2012;Zhou和Goldman,2004)。Wang和Zhou(2007)对为什么协同训练在单视图下有效进行了理论和实证分析。研究表明,学习器之间的多样性与他们的共同表现正相关。Zhou和Li(2005b)提出了三训练(tri-training),即三个分类器交替训练。当三个分类器中的两个对给定数据点的预测达成一致时,该数据点连同各自的标签被传递到另一个分类器。至关重要的是,三训练不依赖于个体分类器的概率预测,因此可以应用于更广泛的监督学习算法。
三训练方法的作者建议将其扩展到三个以上的学习器——特别是随机森林(Li和Zhou,2007)。这种方法被称为协同森林(co-forest),首先在所有标记的数据上独立训练决策树。然后,在每个迭代中,每个分类器接收伪标记数据,在所有其他分类器对未标记的数据进行联合预测的基础上:如果预测数据点的类的得分超过了一个确定的阈值,这个伪标记数据点就会被传递给分类器。然后,所有的决策树都在它们的标记和伪标记数据上重新训练。在下一次迭代中,所有先前的伪标记数据都被再次视为未标记数据。我们注意到,当树的数量接近无穷时,这种方法就变成了一种自训练的形式。
协同森林包括一种机制,通过基于预测置信度对新标记数据进行加权,来减少伪标记步骤中可能错误标记的数据点的影响。Deng和Zu Guo(2011)试图通过去除“可疑的”伪标记来进一步防止可能标记错误的数据点的影响。在每一个伪标记步骤之后,将每个伪标记数据点的预测与k个最近邻(既有标记的也有伪标记的)的(伪)标记进行比较:在不匹配的情况下,将从中删除伪标记。
我们注意到,在现有的关于协同森林的文献中,森林的大小一直是被限制在6棵树。经验表明,在有监督的随机森林中,随着树的数量的增加,性能可以显著提高(Oshiro等人,2012)。因此,与随机森林相比,协同森林中树的数量可能会极大地影响相对性能。
协同训练方法通过以伪标记的形式在分类器之间传递信息来减少分类器之间的分歧。此外,协同训练的隐含目标是最小化分类器集成的错误率。Sindhwani等人提出了在单一目标函数中明确这些性质。他们提出了协同正则化,在正则化框架中,集成质量和基础学习器之间的分歧同时得到优化。关键思想是使用一个由两项组成的目标函数:一个用于惩罚由集成做出的错误判断,另一个用于直接惩罚基础分类器的不同预测。为了在这个框架中处理逐视图噪声,Yu等人(2011)引入了贝叶斯协同训练,该训练使用图形模型来组合多个视图的数据,并使用基于核的方法进行协同正则化。Christoudias等人(2009)对该模型进行了扩展,以处理每个数据点的不同的噪声水平。
协同训练可以看作是一个针对协同正则化目标的贪婪优化策略。目标函数的两个组成部分以交替的形式最小化:集成的预测误差通过独立训练基础学习器最小化,分类器之间的分歧通过将一个分类器的预测转播到其他分类器,就好像它们是ground truth(?)一样。然而,我们注意到,一般的协同正则化目标不必使用包装方法进行优化,而且许多协同正则化算法使用不同的方法。
集成分类器由多个基础分类器组成,这些分类器经过训练后用于形成组合预测(Zhou,2012)。集成学习最简单的形式是独立训练k个基础分类器并聚合它们的预测。除了这种简单的方法,监督集成学习还有两个主要的分支:bagging和boosting。在bagging方法中,每个基础学习器提供一组数据点,这些数据点从原始数据集(bootstrapping)均匀随机采样,并进行替换。当训练完成时,将它们的输出进行聚合,形成集成的预测。另一方面,在boosting方法中,每个基础学习器都依赖于之前的基础学习器:它提供了完整的数据集,但对数据点施加了权重。数据点的权重是基于之前的基础学习器对的性能,因此较大的权重被分配给错误分类的数据点。最终的预测是作为基础分类器的预测的线性组合得到的。
从技术上讲,boosting以一种贪婪的方式构造了分类器的加权集成。令表示T-1时刻权值为的分类器的集成。此外,令表示预测标签对标签为的数据点的损失函数。在算法的每次迭代中,一个带有确定权重的额外分类器加入到继承中来,于是有了损失函数
需要最小化。请注意,在时刻T时,集成是固定的。对于损失函数的特定选择,例如,优化问题产生看一个确定的加权分类问题,并允许我们使用训练数据上的的损失来表示最优。
根据定义,bagging方法的基础学习器是独立训练的。因此,唯一真正的半监督bagging方法是将自训练应用于个体基础学习器。然而,协同训练与bagging方法密切相关:分类器相互作用的唯一方式是交换伪标记数据;除此之外,分类器可以同时独立地训练。然而,大多数协同训练方法并不使用bootstrapping方法,这是bagging方法的典型特征。另一方面,在boosting中,基础学习器之间有一种内在的依赖性。因此,通过在每个学习步骤后引入伪标记数据,boosting方法可以很容易地扩展到半监督设置;这种思想产生了半监督boosting方法。
半监督boosting方法在过去的二十年中得到广泛的研究。AdaBoost(Freund和Schapire,1997),梯度boosting和XGBoosting(Chen和Guestrin,2016)等监督boosting方法的成功,为将boosting引入半监督设置提供了充足的动力。此外,自训练和协同训练的伪标记方法可以很容易地扩展到boosting方法。
Grandvalet等人首次尝试半监督boosting方法,他们将AdaBoost扩展到半监督设置。他们提出了一种半监督boosting方法(Grandvalet等人,2001),后来他们从梯度boosting的角度扩展和激发了这种算法。基于当前集成的预测和正在构建的基础学习器的预测,定义了一个未标记数据的损失函数。采用多种损失函数进行实验;作者报告了使用新组合分类器的预期损失的最强结果。因此,基础分类器的加权误差适用于包含为标记数据点,导致权重项也依赖于未标记数据。
至关重要的是,SSMBoosting不会给未标记的数据点分配伪标签。因此,它需要半监督基础学习器来使用未标记的数据,因此本质上是半监督的,这与大多数其他半监督boosting算法(包装方法)不同。然而,这里包含了SSMBoost,因为它构成了所有其它形式的半监督boosting算法的基础,这些算法不需要半监督基础学习器。
ASSEMBLE算法(Adaptive Supervised Ensemble的简称)在每次迭代后对未标记的数据点进行伪标记,并将这些伪标记数据点用于构建下一个分类器,从而减少了对半监督基础学习器的要求(Bennett等人,2002)。如其作者所示,ASSEMBLE有效地最大化了函数空间中的分类间隔(classification margin)。
由于ASSEMBLE中使用伪标记,所以决定将哪些未标记的数据点传递给下一个基础学习器并非易事。Benntt等人(2002)提出使用bootstrapping——即抽样法,均匀随机,用标记数据点和未标记数据点替换个数据点。
半监督boosting算法SemiBoost依靠流形假设,利用基于图的方法(Mallapragada等人,2009)的原则,解决了基础学习器使用的数据点选择问题。每个未标记的数据点被分配一个伪标签,并基于一个预定义的领域图计算相应的预测置信度,该领域图编码数据点之间的相似性。然后,将这些未标记数据点的子集添加到标记数据点集合中,用于下一个基础学习器。样本被这个子集选中的概率与它的预测置信度成正比。Grabner等人(2008)成功地将SemiBoost应用于视频中的目标跟踪。
SemiBoost使用标准boosting分类模型,将最终标签预测表示为单个学习器预测的线性组合。然而,它的代价函数与前面描述的半监督boosting方法有很大的不同。Mallapragada等人(2009)认为,一个成功的测试数据标记应该符合以下三个要求。首先,对于距离较近的未标记数据点,未标记数据的预测标记应该是一致的。其次,未标记数据的预测标记应与附近标记数据点的标记保持一致。第三,被标记数据点的预测标记应与器真实标记相对应。这些需求以约束优化问题的形式表示,其中前两个目标函数捕获,最后一个作为约束。换句话说,SemiBoost算法用boosting来解决优化问题
其中和分别是表示未标记数据与合并的标记数据和未标记数据之间不一致的代价函数,是控制成本项相对权重的常数;A是一个n*n的对称矩阵,表示数据点之间的成对相似性。最后表示分类器集成在T时刻的联合预测函数。我们注意到,式(1)中的优化目标与基于图的方法中遇到的成本函数非常相似(见第6.3节和第7章),因为它倾向于一致性地标记相同流形上的数据点的分类器。然而,在基于图的方法中,通常没有标记-无标记和未标记-未标记之间的区别。
上述三种方法构成了半监督boosting研究的核心。该领域的进一步工作包括RegBoost,它与SemiBoost一样,在其目标函数中包括本地标签一致性(Chen和Wang,2011)。在RegBoost中,这一项也依赖于边际分布p(x)估计的局部密度。已经经过了几次尝试,将标签一致性正则化扩展到多类环境(Tanha等人,2012;Valizadegan等人,2008)。