更多互联网新鲜资讯、工作奇淫技巧关注原创【飞鱼在浪屿】(日更新)

数据标记通常是机器学习的最大瓶颈。查找,管理和标记大量数据以建立性能良好的模型可能需要数周或数月的时间。主动学习可以使用少得多的标签数据来训练机器学习模型。最好的人工智能驱动公司,例如特斯拉,已经在使用主动学习。
传统方法与主动学习-创建垃圾邮件过滤器
举个例子,为电子邮件构建一个垃圾邮件过滤器。传统的方法(至少从2002年开始)是收集大量电子邮件,将它们标记为“垃圾邮件”或“非垃圾邮件”,然后训练机器学习分类器来区分这两个类别。传统方法假定所有数据都是同等有价值的,但是在大多数数据集中,存在类不平衡,噪声数据和大量的冗余。
传统方法浪费了时间标签数据,并不能提高模型的性能。在标记完所有数据之前,甚至都不知道模型是否有用。
人类不需要数千个随机标记的示例来了解垃圾邮件和合法电子邮件之间的区别。如果要教一个人解决此任务,希望能够给他们一些你想要的例子,让他们快速学习并在不确定时提出问题。
主动学习使用相同的直觉进行操作,使用正在训练的模型来查找和标记最有价值的数据。
在主动学习中,首先提供少量带标签的示例。在此“种子”数据集上训练模型。然后,模型通过选择不确定的未标记数据点来“提问”,因此可以通过为这些点提供标签来“回答”问题。模型将再次更新,并重复该过程,直到性能足够好为止。通过人工迭代地讲授模型,可以在更少的时间内用更少的标记数据来创建更好的模型。
那么模型如何找到需要标记的下一个数据点?一些常用的方法是:
- 选择模型的预测分布具有最大熵的数据点
- 选择模型偏好的预测最不可靠的数据点
- 训练一组模型并集中于他们不同意的数据点
在Humanloop,实际上使用自定义方法来利用贝叶斯深度学习来获得更好的不确定性估计。
主动学习的三个好处
1.在标签数据上花费的时间和金钱更少
主动学习已被证明可以节省从计算机视觉到NLP的各种任务和数据集的数据标签。由于数据标记是训练现代机器学习模型中最昂贵的部分之一,因此这个理由就足够了!

使用主动学习可以减少标签数据,从而提高模型的准确性
2.可以获得关于模型性能的更快反馈
通常,在训练任何模型或获得任何反馈之前都先标记其数据。通常,要花几天或几周的时间来重复注释准则并重新标记,才能发现模型性能远远低于所需的性能,或者需要不同的标记数据。由于主动学习在数据标记过程中经常训练模型,因此有可能获得反馈并纠正可能会在以后发现的问题。
3.模型将具有更高的最终精度
经过主动学习训练的模型不仅学习速度更快,而且实际上可以收敛到更好的最终模型(数据更少)。经常有人会说,更多的数据会更好,但是很容易忘记数据的质量与数量一样重要。如果数据集包含难以准确标注的含糊不清的示例,这实际上可能会降低最终模型的性能。
模型看到示例的顺序也很重要。有一个完整的机器学习子领域,称为课程学习,它研究如何通过首先讲解简单概念然后讲授复杂概念来提高模型性能。在高级演算之*考前**虑一下算术。主动学习自然会在您的模型上实施课程,并帮助他们获得更好的整体性能。
如果主动学习是如此出色,那么为什么每个人都不会使用它呢?
用于构建机器学习模型的大多数工具和流程并非在设计时就考虑了主动学习。经常有不同的团队负责数据标记和模型训练,但是主动学习需要将这些过程结合在一起。如果确实让这些团队一起工作,那么仍然需要大量的基础架构来将模型训练连接到注释界面。使用的大多数软件库都假设您在训练模型之前已对所有数据进行了标记,因此要进行主动学习,必须编写一吨样板。还需要弄清楚如何最好地托管模型,使模型与注释者团队进行通信并在其从不同注释者异步获取数据时进行自我更新。
最重要的是,现代深度学习模型的更新速度非常慢,因此经常从头开始对其进行重新培训是很痛苦的。没有人希望标注数百个示例,然后等待24小时等待模型完全重新训练,然后再标注下100个示例。深度学习模型也往往具有数百万或数十亿个参数,并且从这些模型中获得良好的不确定性估计是一项开放研究问题。
如果你阅读有关主动学习的学术论文,可能会认为主动学习将节省一些标签,但需要大量工作。但是,这些论文具有误导性,因为它们在倾向于平衡/干净的学术数据集上运行。他们几乎总是一次标记一个示例,而他们忘记了并不是每个数据点都同样容易标记。在出现更大的阶级失衡,噪声数据和可变的标签成本等更为现实的问题时,其收益可能会比文献所暗示的要大得多。在某些情况下,标签成本可以降低10倍。
今天如何使用主动学习

使用主动学习的许多最大障碍只是拥有正确基础设施的问题。就像Keras和PyTorch之类的工具极大地减轻了渐变派生的痛苦一样,新工具的出现也使主动学习变得更加容易。
有一些开放源代码的python库(例如modAL)会占用很多样板。ModAL建立在scikit-learn的基础上,可让将不同的模型与所需的任何主动学习策略结合起来。它是开源和模块化的,因此需要花费大量工作来实施不同的不确定性措施。ModAL的优点是它提供了开箱即用的方法范围以及它是开源的事实。像modAL这样的库的缺点是它们不包含任何注释接口,而仍然由你负责托管模型并将其连接到注释接口的工作。
对于个人数据科学家来说,最受欢迎的工具可能是Prodigy。Prodigy是Spacy的制造商构建的注释界面,因此可以自然地与他们出色的NLP库结合使用基本主动学习。它不是开源的,但可以将其*载下**为pip wheel并在本地安装。虽然Prodigy对于个人来说是一个很好的工具,但仅实现了最基本形式的主动学习。
Labelbox提供了用于各种图像注释的界面,并且最近还增加了对文本的支持。与Prodigy不同,Labelbox具有更多工具来确保标签正确。他们没有对主动学习或模型训练的任何本机支持,但允许你通过API将模型中的预测上传到注释界面。这意味着,如果你已实现主动学习获取功能并正在训练模型,则可以设置主动学习循环。
综上所述
主动学习:
- 减少了需要标记的数据量,从而极大地降低了您的最大成本之一。
- 为您提供有关模型性能的更快反馈。
- 生产者绩效较高的模型。