在机器学习中,数据越多,结果越好。但标记数据可能既昂贵又耗时。如果我们可以使用通常很容易获得的大量未标记数据,会怎么样?这就是伪标记派上用场的地方。
我对 MNIST 数据集进行了案例研究,并通过应用基于置信度的迭代伪标记将我的模型的准确率从 90% 提高到了 95%。本文详细介绍了伪标记是什么,以及实验中的实用技巧和见解。
一、它是如何工作的?
伪标记是一种半监督学习。它弥补了监督学习(所有数据都带有标记)和非监督学习(没有数据带有标记)之间的差距。
遵循的具体程序如下:
- 我们从少量标记数据开始,并在其上训练我们的模型。
- 该模型对未标记的数据进行预测。
- 我们选择模型最有信心的预测(例如,置信度高于 95%),并将它们视为实际标签,希望它们足够可靠。
- 我们将这些“伪标记”数据添加到我们的训练集中并重新训练模型。
- 我们可以重复这个过程几次,让模型从不断增长的伪标记数据池中学习。
虽然这种方法可能会引入一些错误的标签,但好处来自于训练数据量的显著增加。
二、伪标签真能起作用吗?
模型从自身预测中学习的想法可能会引起一些人的怀疑。这种担忧是有道理的。如果一个模型仅仅依赖于它自己可能有缺陷的预测,它就有可能陷入自我强化的循环,就像被困在回音室里的人只能听到自己信念的反馈一样。
那么,伪标签真的能有效而不落入这个陷阱吗?
答案是肯定的。你可以想象一个铁匠在各个时代不断进步。他从基本的石器(最初的标记数据)开始。他利用这些材料从原矿石(未标记数据)中锻造出粗糙的铜工具(伪标签)。这些铜工具虽然还很初级,但可以让他完成以前无法完成的任务,最终创造出由青铜、铁等材料制成的工具。这个迭代过程至关重要:你不能用石锤锻造钢剑。
就像铁匠一样,在机器学习中,我们可以通过以下方式实现类似的进步:
-
严格的阈值:模型的样本外准确度受正确训练标签份额的限制。如果 10% 的标签是错误的,模型的准确度不会显著超过 90%。因此,尽可能少地允许错误标签非常重要。
-
可衡量的反馈:不断评估模型在单独测试集上的性能,作为现实检查,确保我们取得实际进展,而不仅仅是强化现有的错误。
-
人机互动:以人工审核伪标签或人工标记低置信度数据的形式纳入人工反馈,可以提供有价值的路线修正。
伪标记如果做得正确,可以成为充分利用小型标记数据集的强大工具,正如我们将在以下案例研究中看到的那样。
三、案例研究:MNIST 数据集
我在 MNIST 数据集上进行了实验,这是一个经典的 28 x 28 像素手写数字图像集,广泛用于对机器学习模型进行基准测试。它由 60,000 张训练图像和 10,000 张测试图像组成。目标是根据 28 x 28 像素预测所写的数字。
我在一组初始的 1000 张带标签的图像上训练了一个简单的 CNN,留下 59000 张未标记的图像。然后,我使用训练后的模型来预测未标记图像的标签。置信度高于某个阈值(例如 95%)的预测连同它们的预测标签一起添加到训练集中。然后,在这个扩展的数据集上重新训练模型。这个过程反复重复,最多十次,或者直到没有未标记的数据。
使用不同数量的初始标记图像和置信度阈值重复此实验。
四、结果
下表总结了我的实验结果,比较了伪标记与完整标记数据集上的训练的性能。
即使初始标记数据集很小,伪标记也可能产生显著的效果,将 1000 个初始标记样本的准确率提高 4.87%。当仅使用 100 个初始样本时,这种效果甚至更强。但是,手动标记超过 100 个样本是明智的。
有趣的是,使用 100 个初始训练样本的实验的最终测试准确率超过了正确训练标签的份额。
与第一次迭代相比,每次迭代的准确度改进(y 轴)与阈值(x 轴)的差异(颜色)。阈值越高、迭代次数越多,改进效果越好,趋势明显。
按阈值计算的正确训练标签份额和每次迭代的总训练数据点数。阈值越高,标记越可靠,但标记速度越慢。
按阈值进行每次迭代的高置信度和低置信度预测的准确率。阈值越高,准确率越高,但每次选择阈值时,准确率都会随着时间的推移而降低。
与第一次迭代相比,每次迭代的准确率提升幅度与阈值相比分别为 100 和 10000 个初始标记的训练样本(左和右)。请注意不同的尺度。
从上图可以看出,一般来说,只要至少有一些预测超过阈值,阈值越高,结果就越好。在未来的实验中,人们可能会尝试在每次迭代中改变阈值。
此外,即使在后续迭代中,准确率也会提高,这表明迭代性质确实带来了好处。
五、主要发现和经验教训
- 当未标记数据很多但标记成本高昂时,伪标记最适合使用。
- 监控测试准确率:在整个迭代过程中,密切关注模型在单独测试数据集上的表现非常重要。
- 手动标记仍然有用:如果您有资源,请专注于手动标记低置信度数据。但是,人类也不是完美的,出于良心,高置信度数据的标记可以委托给模型。
- 跟踪哪些标签是 AI 生成的。如果以后有更多手动标记的数据可用,您可能希望丢弃伪标签并重复此过程,以提高伪标签准确率。
- 解释结果时要小心:几年前我第一次做这个实验时,我专注于剩余未标记训练数据的准确率。随着迭代次数的增加,准确率会下降!但是,这可能是因为剩余数据更难预测——模型在之前的迭代中从未对其有信心。我应该专注于测试准确率,这实际上会随着迭代次数的增加而提高。
包含实验代码的 GitHub 仓库地址:https://github.com/NiklasvonM/Self-Training
如何学习大模型?
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
4. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
5. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方CSDN官方认证二维码,免费领取【
保证100%免费
】