了解半监督学习如何结合已标记和未标记数据来增强人工智能模型、降低标记成本并提高准确性。
半监督学习(SSL)是机器学习(ML)中一个强大的中间环节,它在训练过程中将少量标记数据与大量非标记数据相结合。在获取标记数据昂贵、耗时或不切实际,而未标记数据却非常丰富的情况下,这种方法尤其有价值。SSL 的目的是利用未标记数据中的潜在结构来提高模型性能,使其超越仅使用有限的标记数据所能达到的效果,从而使其成为许多现实世界人工智能(AI)问题的实用技术。
SSL 算法的工作原理是对已标记数据和未标记数据之间的关系做出某些假设。常见的假设包括 "平滑假设"(相互接近的点很可能共享一个标签)或 "聚类假设"(数据倾向于形成不同的聚类,同一聚类中的点很可能共享一个标签)。这种技术通常是在已标注数据上训练初始模型,然后根据高置信度预测结果为未标注数据生成伪标签。然后在原始标签数据和新的伪标签数据上重新训练模型。另一种方法是一致性正则化,即即使模型的输入受到轻微扰动,也会鼓励模型对未标记的示例产生相同的输出,这通常是通过数据增强来实现的。这些方法允许模型从大量未标注样本中固有的模式和分布中学习。Google 人工智能博客关于 SSL 的文章等资源中探讨了更先进的技术。
半监督学习(Semi-Supervised Learning)在其他主要学习类型之间占据了一个独特的空间:
SSL 在标签成为瓶颈的领域非常有效:
SSL 的主要优点是能够减少对大型标注数据集的依赖,节省与数据标注相关的时间和资源。与在有限数据上训练的纯监督模型相比,通过利用未标记样本中的信息,SSL 通常能带来更好的模型泛化效果。然而,SSL 的成功在很大程度上取决于对数据的基本假设是否正确。如果这些假设不成立(例如,未标注数据的分布与标注数据有很大差异),SSL 方法甚至会降低性能。谨慎选择和实施 SSL 技术至关重要,通常需要MLOps 实践方面的专业知识。
许多现代深度学习(DL)框架,包括 PyTorch(PyTorch 官方网站)和 TensorFlow(TensorFlow 官方网站)都提供了实现 SSL 算法的功能或可对其进行调整。Scikit-learn 等库提供了一些 SSL 方法。Ultralytics HUB等平台通过促进数据集的管理Ultralytics HUB Datasets 文档)简化了这一过程,这些数据集可能包含标记和非标记数据的混合物,并简化了旨在利用此类数据结构的模型的训练Ultralytics HUB 云训练)和部署(模型部署选项指南)。SSL 的研究在不断发展,其成果经常在NeurIPS和ICML 等大型人工智能会议上发表。