【CV炼丹炉系列】弱监督学习在图像分类中的应用
摘要:计算机视觉在很多任务中都取得了成功,比如人脸识别、图像标签、文字OCR等。随着移动互联网的兴起带来了海量的数据,计算机视觉迅猛发展。算法可以自动从海量数据中学习得到物体的视觉特征,然后进行识别。在这些视觉任务中,真正要把算法落地,碰到的最大的问题就是互联网的图片包含大量噪声的图片,直接用来训练得不到一个可用的模型。标注这些海量图片需要耗费大量的人力物力。这时候,就需要弱监督学习指导我们如何从一个脏的数据集中训练出一个可用的模型。
什么是图像识别?什么是弱监督学习?
看下面这张图片,直观告诉了我们神经网络是如何识别物体的。
来源:http://fortune.com
识别问题本质是分类,告诉你图片里的东西是what。计算机视觉的科学家当然不满足于只解决what的问题,能不能更进一步解决where的问题呢?计算机视觉里的三大任务:分类、检测、分割。
搞清楚了什么是分类,什么是检测,什么是分割,那下面我们就要探讨下弱监督在图像分类中的应用。【CV炼丹炉系列】后续会接着讨论弱监督学习如何在检测和分割中应用。
2. 什么是弱监督学习?我们为什么需要弱监督?
先看南大周志华老师的一篇文章[1],机器学习任务可以分为监督学习,一种是非监督学习。假设我们有视觉特征x + 对应的标签y,那么监督学习就是拟合 f(x)=y中的f。当前监督学习取得了巨大的成功,但是现实情况是,在有些任务中,数据标注成本太高,要消耗大量的资金。而非监督学习就是没有监督信息y,从而导致学习难度很大,发展缓慢。
这个时候就需要再标注成本和模型效果之间做一个权衡,用弱监督学习解决问题。那么,什么是弱监督学习?
a 不完全监督:训练数据只有部分数据被标注,有些数据缺少标签
b 不确切监督: 训练数据只给了粗粒度标签,比如上面图只标记了猫,但我想识别是英短。
c 不精确监督:各地标签不总是正确的,部分图片标记错误。
弱监督的情况是普遍存在的。比如,我们从搜索引擎搜索关键词“苹果”,就会发现,搜出来的图片既包含了水果苹果,也包含了苹果手机。
3. 教你三招弱监督方法,如何从脏数据中训练得到一个好的模型
研究弱监督算法的大牛和好文章数不胜数,这里,我们介绍相对简单,能快速理解但有效的几个好方法。
第一招:你需要一个好的baseline模型。想了解模型有哪些提升指标的技巧,请参考李沐大神的paper[2],把那些模型训练中的tricks都用上吧。
第二招:聚类
我们用pretrained模型对某类别下的所有图片提特征,聚类后计算图片之间的距离。会发现,视觉特征相似的图片,往往在特征空间中聚的更紧密。而噪声图片之间距离更大,聚的更松散,因此聚类密度可以作为一个评价指标,密度大的簇可以认为数据更干净,是我们想要的类别,密度小的簇认为是噪声。[3]
第三招:模型蒸馏[4]
Images是互联网爬取的图片,包含了大量的nosie。我们先这个脏数据训练得到一个teacher network,teacher预测的类别标记为s。而图片对应关键词的类别,标记为y。当我们训练student network的时候,图片对应的监督信息标记为λy+(1-λ)s,从而训练得到我们想要的student network。
4. 实验结果
下图是我们在CVPR2019 webvision比赛上的结果,可以看到好的baseline模型准确率在73.6%,通过聚类-蒸馏,准确率提高到77.3%,提升还是比较明显的。
5. 总结
以上是弱监督学习在图像识别中的一些应用,我们总结了一些take-home message。这些技术也已经在图像标签、内容审核等服务中应用,去体验下吧~
https://www.huaweicloud.com/ei/experiencespace.html
6. Ref:
[1] A Brief Introduction to Weakly Supervised Learning
[2] Bag of Tricks for Image Classification with Convolutional Neural Networks
[3] Guo et al. CurriculumNet: Weakly Supervised Learning from Large-Scale Web Images. 2018
[4] Li et al. Learning from Noisy Labels with Distillation. ICCV. 2017.
- 点赞
- 收藏
- 关注作者
评论(0)