资讯

半监督学习是什么?少量有标签数据加大量无标签数据一起学

2026-11-053 分钟阅读百科
TL;DR半监督学习(Semi-Supervised Learning)同时利用少量有标签数据和大量无标签数据进行训练,以降低标注成本,依赖平滑、聚类和流形等假设,代表方法有自训练与伪标签、协同训练、半监督支持向量机、图上的标签传播,以及一致性正则化方法如 FixMatch。

半监督学习(Semi-Supervised Learning)是介于监督学习和无监督学习之间的一种机器学习方式:它同时利用少量带有标签的数据和大量没有标签的数据来训练模型,目的是在标注数据有限的情况下,借助大量的无标签数据来提升模型的效果。

为什么需要半监督学习

在很多实际问题中,获取数据很容易,但给数据打标签却很昂贵。比如互联网上有海量的图片和文本,但要请人为它们逐一标注类别,需要耗费大量的人力和时间;医学影像需要专业的医生来标注;语音转写需要人逐字地听写。往往我们手中只有少量标注好的数据,以及大量没有标注的数据。如果只用那少量的标注数据训练模型,效果可能不理想;而那些大量的无标签数据虽然没有标签,却包含着关于数据分布的有用信息。半监督学习就是要充分地利用这些信息。

无标签数据为什么有用

无标签数据之所以能帮助学习,是因为我们对数据的分布做了一些合理的假设。平滑假设:如果两个样本在输入空间中很接近,它们的标签很可能相同。聚类假设:数据往往会形成若干个簇,同一个簇中的样本很可能属于同一个类别,因此分类的边界应该穿过数据稀疏的区域,而不是从数据密集的区域中间穿过。流形假设:高维的数据实际上分布在一个低维的流形上,在流形上相近的样本标签相似。无标签数据能够帮助我们看清数据的分布和结构,比如簇在哪里、流形长什么样,从而更好地确定分类的边界。

主要的方法

自训练和伪标签:先用有标签的数据训练一个模型,用它对无标签的数据进行预测,把那些模型很有把握的预测结果当作“伪标签”,加入训练集中,再重新训练模型,如此反复。这种方法简单易行,但如果模型早期的预测有错,错误可能会被不断地强化。协同训练:由 Avrim Blum 和 Tom Mitchell 在 1998 年提出,适用于数据可以从两个不同的“视角”来描述的情况,比如网页既可以用页面上的文字来描述,也可以用指向它的链接文字来描述。分别在两个视角上训练两个分类器,让它们互相为对方提供高置信度的伪标签。半监督支持向量机:在寻找分类边界时,不仅要求把有标签的样本分开,还要求边界穿过无标签样本稀疏的区域。基于图的方法:把所有的样本,包括有标签和无标签的,构建成一张图,相似的样本之间连接一条边,然后让标签沿着图从有标签的样本传播到无标签的样本,比如标签传播算法。一致性正则化:要求模型对同一个无标签样本在经过不同的扰动或数据增强之后,给出一致的预测。2020 年谷歌提出的 FixMatch 方法结合了伪标签和一致性正则化,在只有很少标签的图像分类任务上取得了出色的效果。

与自监督学习的关系

近年来,自监督学习成为利用无标签数据的主要方式:先在海量的无标签数据上,通过预测被遮住的部分、对比不同的数据增强版本等方式进行预训练,学到通用的表示,再用少量的有标签数据进行微调。大语言模型正是在海量的无标签文本上进行自监督的预训练,再用相对少量的标注数据进行指令微调。从广义上说,这种“预训练加微调”的范式也可以看作半监督学习思想的一种延伸。