积极学习成为更好的模特
世界目前正在经历一场机器学习热潮,这在很大程度上要归功于深度学习模型的有效性。深度学习的成功可以追溯到互联网。
的互联网这就是为什么我们有这么多数据,用来训练这些模型。没有互联网,就无法获取我们需要学习和提取模式的数字信息。互联网是大数据。
如果本·帕克是数据科学家,他可能会告诉彼得:
大数据带来了大问题
互联网让收集数据变得太容易了。然而,仅仅收集数据是没有用的。我们需要给它贴上标签。

标记这么多的数据是很困难的昂贵的.事实上,给所有的数据贴标签通常是没有意义的。并非所有的数据都是平等的。好的、高质量的数据可以显著改善模型,而低质量的数据甚至可能阻碍模型的学习能力。
那么,我们如何从成堆的数据中筛选出模型所需的好样本呢?
一个有效的答案是主动学习.
什么是主动学习?
主动学习是人在循环中的半监督学习。与标准监督学习的主要区别在于,它不是让人类标记所有的训练数据,而是由算法或模型选择应该标记哪些数据。


这使得主动学习成为一种以数据为中心的机器学习的方法,我们保持代码静态,在数据上迭代。主动学习模型的目标是从尽可能少的数据点中获得最大化的信息。在这样做的过程中,它通常选择更难和更麻烦的数据进行学习。
我们可以把它想象成一个准备考试的学生。如果学生选择只练习最简单的例题,这可能会在考试中出现,他们就会错过理解关键概念的机会。然而,如果学生特别关注对他们来说很难的例题,他们就更有可能学到更多,在考试中取得更好的成绩。
然而,自然而然的问题是,算法如何选择它应该关注哪些数据?
数据采集
当开始主动学习时,如何对数据进行抽样的问题可能令人畏惧或困惑。然而,这里并不缺少可供选择的选项。值得庆幸的是,每一个都易于直观理解。

聚类选择多样性
如果我们可以使用一种无监督算法来聚类数据,比如k-means聚类,那么我们就可以从每个聚类中抽样训练数据。虽然这并不一定会选择困难的训练数据,但它确实有助于确保我们的数据集是多样化的。它将不太可能错过重要类别的数据。
这种方法也是一种可以让初始数据集训练我们的模型的方法,因为其余的数据采样技术要求我们已经有一个模型来确定应该采样哪些数据。
这听起来像是《盗梦空间》续集的基础

在意
可能最容易实现的数据抽样技术是基于置信度的技术。由于我们经常创建机器学习模型来自动化某些东西,使我们的工作更容易,这是一个受欢迎的路线。

三种主要的基于信心的抽样技术是:
1.最低的信心
对于这种技术,我们希望找到模型对其答案最不自信的样本。这与模型难以分类的例子相对应。甚至连识别底层数据都有困难。

2.最小化信心δ
另一种方法是寻找样本,其中最上面的两个标签有非常相似的置信度。我们通过计算它们之间的增量,并选择差异最小的样本,如下表中突出显示的行所示。
这表明模型很难决定样本属于哪一类。因此,这些样本很可能是复杂的例子。

3.熵
熵是对所有类别的信心的衡量。熵越大,模型对数据的整体把握就越小。这通常被写成下面的等式:
\ [H (X) = - \ sum_ {i = 1} ^ n p (x_i) \ log p (x_i) \]
这个公式的一个版本出现在许多领域,包括物理学、统计学和工程学。如果你还记得交叉熵损失函数是如何工作的细节的话,它可能看起来很熟悉。
在这里:
- \ (\ boldsymbol {n} \)标签类别的数量是多少
- \ (\ boldsymbol {x_i} \)是\ (\ boldsymbol{我^ {th}} \)标签的类别
- \ (\ boldsymbol {p (x_i)} \)数据属于的概率是\ (\ boldsymbol {x_i} \)类别
通过最大化熵,我们为应该被标记的模型选择最令人困惑的数据。

多种模型之间的分歧
另一种对数据进行抽样的奇妙方法是使用民主.我们可以简单地拥有多个模型,并让它们投票决定哪些数据应该被标记!这也被称为Query-by-Committee.

有几种不同的方法,我们可以这样做:
- 不同的模型-在同一个初始数据集上训练两个或两个以上不同的模型,并找到它们最不一致的新数据。这些不同的模型也可能差别很大——不同的神经网络架构、决策树、支持向量机。重要的是,每个模型对目标标签的了解略有不同。如果没有意见分歧,投票是毫无意义的!
- 不同的随机种子-训练相同模型的多个副本,但每一个都使用不同的随机种子。
- 循环输出的差异-使用同一模型的连续迭代来确定哪些数据分歧最大。每次迭代都是一个完整的主动学习周期。对于这个方法,我们在单个模型上迭代。

损失的预测
另一个查询选择选项是尝试预测给定样本的损失。为此,我们可以创建一个双分支网络。

主分支是我们想要的模型,第二个分支是一个回归模型,它根据输入预测损失。使用损失预测分支,我们可以选择损失值最大的样本进行标记。

训练损失预测网络
你可能会想,我如何训练这个双分支网络,如果它在试图预测损失的同时改善损失呢?这是一个优秀的的问题!
的作者基于损失的双分支深度网络主动学习讨论他们的训练方法。他们使用了该网络主要分支的两个副本。一个称为目标模型另一个培训模式.目标模型对每个历元保持恒定,并用于确定输入样本的地面真值损失值。训练模型对原始目标(分类、目标检测、分割等)进行持续训练。
在每一个纪元结束时,从培训模式是否完全复制到目标模型.通过这种方法,地面真理损失值在跨时代是一致的,但模型仍然可以被训练。
主动学习的好处
主动学习并不是我们想要用来解决所有问题的锤子。

然而,有很多理由使用它,在很多情况下它可以非常有益。
主动学习的主要好处是它允许我们标记更少的数据。我们的数据比标准的监督机器学习要深入得多。
想象一下这样的情况:我们正在训练一个模型,以帮助领域专家更有效地工作。专家可以是观察x射线的医生,确定农作物健康状况的农学家,试图寻找系外行星的天体物理学家等等。
不过,这里有一个两难的问题。我们需要这些领域专家来标记数据,但是这些专家的时间太宝贵(也太昂贵)了,不能花在标记数据上.
训练非专业人士给数据贴标签是一种选择,但这既耗时又昂贵,而且更容易出错。相反,通过使用主动学习,我们可以最小化时域专家花在标记数据上的时间。
此外,主动学习可以导致更高的精度模型。这就是短语的出处垃圾进来,垃圾出去很有道理。

如果我们的很多数据没有帮助,或者更糟糕的是,错误的标记,这可能会降低模型的整体准确性。最近的一次麻省理工学院研究在ImageNet的验证数据集中发现错误率约为5.8% !此外,还有一群人一种检测重复、异常和错误标签的工具在数据集,发现ImageNet-21k包含120万个重复!这大约是数据集的8.5%
这些错误使得用它们训练的模型明显变差。主动学习还允许我们有效地覆盖更多的边缘情况,这提高了准确性。
最后,数据越少,质量越高,就会产生连锁效应。当我们需要训练的数据较少时,我们可以节省计算时间。通过使用主动学习,我们的数据是高质量的,这有助于模型更快地收敛。这使得模型更便宜,以后再培训也更快。
主动学习的缺点
天下没有免费的午餐。主动学习确实有缺点,需要克服。

主动学习为我们的机器学习工作流增加了复杂性。项目的设置和工程更加复杂,因为很少有交钥匙解决方案。这意味着,代码中有更多的漏洞和错误空间。这种复杂性也意味着主动学习可能会较慢地获得初步效果。
当使用主动学习时,模型也有可能专注于异常值。任何查询策略都可能选择离群值,因此我们的专家需要认识到这一点,并将任何离群值数据标记为离群值。在模型选择要标记的例子之后包含一个数据验证步骤,将帮助我们防止异常值潜入标记的数据集。
此外,由于主动学习是从整个收集的数据集中采样数据,因此采样数据的分布不一定与整个数据集的分布相匹配。在许多方面,这是可取的。然而,我们需要明白,这有引入抽样偏差的风险。这可能很难检测和调试。
结论
唷!如果你是主动学习的新手,这可能是很多需要吸收的信息。

在阅读这篇文章时,你学到:
- 什么是主动学习
- 与主动学习一起使用的各种数据采样(查询)策略
- 的好处,和……
- ...主动学习的缺点
由于本文本质上是理论性的,我们建议您找一个可以将这些新知识付诸实践的宠物项目。通过自己实现主动学习,您将巩固对本文中概念的理解。
在未来的文章中,我们将介绍这样一个项目,以防你需要更多的灵感
感谢你的阅读!如果你有任何问题,请随时联系我。
引用:
- 贝uch, T. Genewein, A. Nürnberger, J. M. Köhler。集成在图像分类中主动学习的能力.CVPR 2018。
- 黄思玉,王天阳,熊浩义,桓俊,窦德敬。带时间输出差异的半监督主动学习.ICCV 2021。arXiv: 2107.14153 (cs。简历)
- 俞东根,在素权。主动学习的学习损失.CVPR 20219。arXiv: 1905.03677 (cs。简历)
- 方强,唐登清。基于损失的双分支深度网络主动学习.国际先进机器人系统学报,18(5)。
- 柯蒂斯·g·诺卡特,阿尼什·阿塔耶,乔纳斯·穆勒。测试集中普遍存在的标签错误使机器学习基准不稳定.arXiv: 2103.14749 (stat.ML)