超好用的自信学习:1行代码查找标签错误,3行代码学习噪声标签

作者: 十三 2019-11-12 13:06:20

本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。

你知道吗?就连ImageNet中也可能至少存在10万个标签问题。

在大量的数据集中去描述或查找标签错误本身就是挑战性超高的任务,多少英雄豪杰为之头痛不已。

最近,MIT和谷歌的研究人员便提出了一种广义的自信学习(Confident Learning,CL)方法,可以直接估计给定标签和未知标签之间的联合分布。

这种广义的CL,也是一个开源的Clean Lab Python包,在ImageNet和CIFAR上的性能比其他前沿技术高出30%。

这种方法有多厉害?举个栗子。

超好用的自信学习:1行代码查找标签错误,3行代码学习噪声标签

上图是2012年ILSVRC ImageNet训练集中使用自信学习发现的标签错误示例。研究人员将CL发现的问题分为三类:

1、蓝色:图像中有多个标签;
2、绿色:数据集中应该包含一个类;
3、红色:标签错误。

通过自信学习,就可以在任何数据集中使用合适的模型来发现标签错误。下图是其他三个常见数据集中的例子。

超好用的自信学习:1行代码查找标签错误,3行代码学习噪声标签

目前存在于Amazon Reviews、MNIST和Quickdraw数据集中的标签错误的例子,这些数据集使用自信学习来识别不同的数据模式和模型。

这么好的方法,还不速来尝鲜?

什么是自信学习?

自信学习已然成为监督学习的一个子领域。

超好用的自信学习:1行代码查找标签错误,3行代码学习噪声标签

从上图不难看出,CL需要2个输入:

1、样本外预测概率;
2、噪声标签;

对于弱监督而言,CL包括三个步骤:

1、估计给定的、有噪声的标签和潜在的(未知的)未损坏标签的联合分布,这样就可以充分描述类条件标签噪声;
2、查找并删除带有标签问题的噪声(noisy)示例;
3、进行消除错误的训练,然后根据估计的潜在先验重新加权示例。

那么CL的工作原理又是什么呢?

我们假设有一个数据集包含狗、狐狸和奶牛的图像。CL的工作原理就是估计噪声标签和真实标签的联合分布(下图中右侧的Q矩阵)。

超好用的自信学习:1行代码查找标签错误,3行代码学习噪声标签

左:自信计数的示例;右:三类数据集的噪声标签和真实标签的联合分布示例。

接下来,CL计数了100张被标记为“狗”的图像,这些图像就很可能是“狗”类(class dog),如上图左侧的C矩阵所示。

CL还计数了56张标记为狗,但高概率属于狐狸的图像,以及32张标记为狗,但高概率属于奶牛的图像。

而后的中心思想就是,当一个样本的预测概率大于每个类的阈值时,我们就可以自信地认为这个样本是属于这个阈值的类。

此外,每个类的阈值是该类中样本的平均预测概率。

轻松上手Clean Lab

刚才也提到,本文所说的广义CL,其实是一个Clean Lab Python包。而它之所以叫Clean Lab,是因为它能“clean”标签。

Clean Lab具有以下优势:

速度快:单次、非迭代、并行算法(例如,不到1秒的时间就可以查找ImageNet中的标签错误);
鲁棒性:风险最小化保证,包括不完全概率估计;
通用性:适用于任何概率分类器,包括 PyTorch、Tensorflow、MxNet、Caffe2、scikit-learn等;
独特性:唯一用于带有噪声标签或查找任何数据集/分类器标签错误的多类学习的软件包。

1行代码就查找标签错误!

3行代码学习噪声标签!

接下来,是Clean Lab在MNIST上表现。可以在这个数据集上自动识别50个标签错误。

超好用的自信学习:1行代码查找标签错误,3行代码学习噪声标签

原始MNIST训练数据集的标签错误使用rankpruning算法进行识别。描述24个最不自信的标签,从左到右依次排列,自顶向下增加自信(属于给定标签的概率),在teal中表示为conf。预测概率最大的标签是绿色的。明显的错误用红色表示。

传送门

项目地址:
https://github.com/cgnorthcutt/cleanlab/

自信学习博客:
https://l7.curtisnorthcutt.com/confident-learning

代码 开发 工具
上一篇:斯坦福大学对话特朗普政府CTO:关于AI、移民、技术基础设施及更多 下一篇:抵御另一个人工智能冬天的最后一道防线
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

机器学习所需的工程量未来会大大减少 精选

未来,构建 ML 产品将更加有趣,并且这些系统会工作得更好。随着 ML 自动化工具的不断改进,数据科学家和 ML 工程师将把更多的时间花在构建优秀的模型上,而花在与生产级 ML 系统相关的繁琐但必要的任务上的时间会更少。

David LiCause ·  3天前
Excel狂魔?单元格做计算机视觉:人脸检测、OCR都不在话下

计算机视觉是什么?过于专业,一步劝退?在普通人看来,计算机视觉是软件开发者才能涉足的领域,需要用到很多专业的框架,普通人只能围观。但 GitHub 上的一个项目似乎颠覆了我们的认知。

佚名 ·  2020-02-19 14:55:20
独家下载!阿里如何用 AI 写代码?

作为今年阿里经济体前端委员会的四大技术方向之一,前端智能化方向一被提及,就不免有人好奇:前端结合 AI 能做些什么,怎么做,未来会不会对前端产生很大的冲击等等。本篇文章将围绕这些问题,以「设计稿自动生成代码」场景为例,从背景分析、竞品分析、问题拆解、技术方案等几个角度切入,细述相关思考及过程实践。

妙净、波本 ·  2020-02-19 13:11:52
2020年,比较适合AI的5种编程语言

AI系统的开发必须有计算机代码,而计算机程序的开发有不同类型的编程语言可以选择。本文分析哪些编程语言最适合你的人工智能或机器学习用例开发。

CSDN App ·  2020-02-13 16:18:50
代码开源!超好用的《机器学习实用指南》第二版终于来了

早在去年的这个时候,红色石头就发文给大家推荐过一本非常棒的机器学习实用指南书籍《Hands-On Machine Learning with Scikit-Learn & TensorFlow》

Author 红色石头 ·  2020-02-11 10:30:32
从工具选择到团队沟通,看ML工程师一步步打造生产级机器学习

为了让机器学习为用户带来真正的价值,我们需要将其部署到生产系统中。人工智能销售软件开发公司 Toucan AI 的 ML 工程师 Marifel 介绍了他们在打造生成级机器学习时所考虑的一些问题,希望这些经验能为你的工作带来帮助。

机器之心 ·  2020-02-06 16:55:02
需要关注的2020年8个人工智能趋势

O'Reilly公司副总裁Roger Magoulas介绍了自动化、硬件、工具、模型开发等方面的新发展,这些趋势将在2020年塑造(或加速)人工智能的发展。

Harris ·  2020-01-23 20:35:05
我花了两年,从不懂Python变成了AI工程师

有一位小哥,从不知道Python到找到AI工程的工作,用时两年。他的文章在网上获得了5000多条点赞。

赖可 ·  2020-01-23 15:26:40
Copyright©2005-2020 51CTO.COM 版权所有 未经许可 请勿转载