CVPR 空间 一个降低深度学习时间 经济成本的解决方案 Active 2017 Learning (cvpr空间特征增强)
雷锋网 AI 科技评论按:本文为 CVPR 2017 的论文解读,作者周纵苇(Zongwei Zhou),邮箱:zongweiz@asu.edu,微博:@MrGiovanni。本文首发于 简书 ,经作者授权,雷锋网转载。
下面要介绍的工作发表于,题为「Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally」。它主要解决了一个深度学习中的重要问题:如何使用尽可能少的标签数据来训练一个效果 promising 的分类器。根据我的判断,当遇到两种情况的时候,这篇论文的可以非常强大的指导意义:
这两个情况发生的条件是完全不同的,Situation A 发生在屌丝公司,没有钱拿到精标记的数据集,却也想做深度学习;Situation B 一般发生在高富帅公司,有海量的精标记数据,但是由于目前即使是最牛逼的计算机也不能用深度学习在短时间内一次性地去处理完这些数据(e.g.,内存溢出,或者算上个几年都算不完)。Anyway,我想我已经说清楚应用背景了,读者可以根据实际情况判断是否往后读下去。
感谢你选择继续往下阅读,那么如果觉得下文所传递的思想和方法对你有帮助,请记得一定引用这篇 CVPR 2017 的文章。 Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally.
1.为什么会想到去解决这个问题?
现在深度学习很火,做的人也越来越多,那么它的门槛可以说是很低的,Caffe,Keras,Torch 等等框架的出现,让该领域的 programming 的门槛直接拆了。所以深度学习真正的门槛变成了很简单概念——钱。这个钱有两个很重要的流向,一是计算机的运算能力(GPU Power),二是标记数据的数量。这儿就引出一个很重要的问题: 是不是训练数据集越多,深度学习的效果会越好呢? 这个答案凭空想是想不出来的,能回答的人一定是已经拥有了海量的数据,如 Imagenet,Place 等等,他们可以做一系列的实验来回答这个问题。需要呈现的结果很简单,横坐标是训练集的样本数,纵坐标是分类的 performance,如下图所示:
Fig.1 如果答案是左图,那么就没什么可以说的了,去想办法弄到尽可能多的训练数据集就 ok,但是现实结果是右图的红实线,一开始,训练集的样本数增加,分类器的性能快速地在上升,当训练集的样本数达到某一个临界值的时候,就基本不变了,也就是说,当达到了这个临界的数目时,再去标注数据的 ground truth 就是在浪费时间和金钱。有了这个认知,接下来就是想办法让这个临界值变小,也就是用更小的训练集来更快地达到最理想的性能,如右图的红虚线所示。红实线我们认为是在随机地增加训练集,那么红虚线就是用主动学习(Active Learning)的手段来增加训练集,从而找到一个更小的子集来达到最理想的性能。
这里需要说明的一点是,训练样本数的临界点大小和这个分类问题的难度有关,如果这个分类问题非常简单,如黑白图像分类(白色的是 1,黑色的是 0),那么这个临界值就特别小,往往几幅图就可以训练一个精度很高的分类器;如果分类问题很复杂,如判断一个肿瘤的良恶性(良性是 0,恶性是 1),那么这个临界值会很大,因为肿瘤的形状,大小,位置各异,分类器需要学习很多很多的样本,才能达到一个比较稳定的性能。
对于很多从事深度学习的无论是研究员还是企业家都是一个十分有启发性的认知改变。一般来讲,人的惯性思维会引领一个默认的思路,就是训练样本越多越好,如左图所示,这将直接导致许多工作的停滞不前,理由永远是「我们没有足够的数据,怎么训练网络!」进一步的思路是图二的红实线认知:要多少是多啊,先训着再说,慢慢的就会发现即便用自己有的一小部分数据集好像也能达到一个不错的分类性能,这个时候就遇到一个问题: 自己的数据集样本数到底有没有到达临界值呢? 这个问题也很关键,它决定了要不要继续花钱去找人标注数据了。这个问题我会在第三部分去回答它,这里先假设我们知道了它的答案, 接下来的问题就是如何让这个临界值变小?
2. 如何让临界值变小?
解决方案就是主动学习(Active Learning),去主动学习那些比较 「难的」,「信息量大的」 样本(hard mining)。关键点是每次都挑当前分类器分类效果不理想的那些样本(hard sample)给它训练,假设是训练这部分 hard sample 对于提升分类器效果最有效而快速。 问题是在不知道真正标签的情况下怎么去定义 HARD sample?或者说怎么去描述当前分类器对于不同样本的分类结果的好坏?
定义: 由于深度学习的输出是属于某一类的概率(0~1),一个很直观的方法就是用「 熵(entropy) 」来刻画信息量,把那些预测值模棱两可的样本挑出来,对于二分类问题,就是预测值越靠近 0.5,它们的信息量越大。还有一个比较直观的方法是用「 多样性(diversity) 」来刻画 labeled target="_blank">「Active batch selection via convex rELAxations with guaranteed solution bounds」中被提出。是十分重要的两个 Active Learning 的选择指标。
有了这两个指标来选 hard sample,是比较靠谱了——实验结果表明,这比随机去选已经能更快地达到临界拐点了。
Active Learning 的结构示意图。利用深度学习所带来的优势在于,一开始你可以不需要有标记的数据集。
举例来讲,假设你是一个养狗的大户,你现在想做一个非常偏的(专业化的)分类问题,如 卷毛比雄犬 和 哈瓦那犬 的分类问题,你手头有这两种狗各 50 条,你自己可以很轻松地区分这 100 条狗,现在需要做的是训练一个分类器,给那些不懂狗的人,他们拍了狗的照片然后把照片输入到这个分类器就可以很好地判断这是卷毛比雄犬还是哈瓦那犬。首先你可以给这 100 条狗拍照片,每条狗都有不同形态的 10 张照片,一共拍了 1000 张没有标记的照片。对于这 1000 张照片,你所知道的是哪 10 张对应的是一条狗,其他什么都不知道。
在这个实际分类问题中,你拥有绝对的数据优势,即便是 Google Image 也不能企及,当然一种选择是你把 1000 张图片从头到尾看一遍,标注好,但是你更希望是把大多数简单的分类工作交给分类器,自己尽可能少的做标记工作,并且主要是去标记那些分类器模棱两可的那几张照片来提高分类器的性能。
我们初步提供的解决方案是 (参考或者):
如所示,每次循环都用不断增加的标记数据集去提升分类器的性能,每次都挑对当前分类器比较难的样本来人为标记。
3. 这个过程什么时候可以停?
以上三种情况都可以让这个循环训练过程中断,第一种就很无奈了,没钱找人标记了... 第二种情况和第三种情况的前提共识是如果难的样本都分类正确了,那么我们认为简单的样本肯定也基本上分类正确了,即便不知道标签。第三种情况,举例来说就是黑白图像分类,结果分类器模棱两可的图像是灰的... 也就是说事实上的确分不了,并且当前的分类器居然能把分不了的样本也找出来,这时我们认为这个分类器的性能已经不错的了,所以循环训练结束。
至此,主要讲了传统的 Active Learning 的思想,接下来会讲讲这篇 CVPR2017 论文的几个工作点。
上面我讲到了 Active Learning 的大概思路,如所示,是一个很有意思的概念,说实话很实用,我在 Mayo Clinic 实习的时候,每次遇到新的数据集,都会想着用一用这个方法,来让给数据标注的专家轻松一点...
Fig.3 暗的表示 unlabeled 的数据,高亮的表示 labeled 的数据,CNN 的结构可以随便挑 SOTA 的无所谓,CNN0 是拍 retrained from ImageNet,得到的第二列表示每个 image 对应的 importance 指标,越红的说明 entropy 越大,或者 diversity 越大,每次挑这些 important 的 sample 给专家标注,这样 labeled 的数据就变多了,用 labeled 的数据训练 CNN,得到新的更强的分类器了,再在 unlabeled target="_blank">Active batch selection via convex relaxations with guaranteed solution bounds」的描述,Diversity 是计算 labeled>
这样的 diversity 就完美了吗?并没有... 读者可以先猜猜哪儿又出问题啦,我在第五部分会指出来。
5. 这次是 target="_blank">Augmentation Lecture讲到的平移 crop,如果我们将它应用到猫的分类问题中,很有可能得到这样的训练样本:
Fig.4 左图是原始的图像,中间的 9 个 patches 是根据平移变化的扩充得到的,restrictions: region must contain objects or part of the object 详见这里,右图是网络得到的对应 patch 的预测值。
可以看出,在这个实例中,对于一个 candidate,网络预测的一致性很低,套用 Diversity 的公式,Diversity 的值很大,也就是说,应该被认为是 hard sample 挑出来。但是仔细观察一下这九个 patches 就不难看出,即便是很好的分类器,对于中间图中的 1,2,3,也是很难分出这个是猫... could be rat, rabbit, etc. 我们把像这三个 patch 的例子叫做从>
至此,主要讲了这篇论文是怎样成功的将 Diversity 这个重要的指标引入到 Active Learning 中来,所有的 Active Selection 部分结束。
6. 如何训练?
既然用了迁移学习,那么一开始的 CNN 测试的效果肯定是一团糟,因为这个 CNN 是从自然图像中学过来的,没有学习过 CT 这种医学影像,所以这个 loop 的启动阶段,Active Learning 的效果会没有 random selecting 好。不过很快,随着 CNN 慢慢地在 labeled 的 CT 上训练,Active Learning 的效果会一下子超过 random selecting。
接下来讨论 Continuous fine-tuning 的细节,随着 labeled target="_blank">here.
Find poster.
Find author.
祝好,
版权文章,未经授权禁止转载。详情见 转载须知 。
工业除尘设备,工业除尘,唐纳森除尘设备,唐纳森滤筒销售,唐纳森青岛总代理,唐纳森备品备件销售,唐纳森产品售后服务,唐纳森产品的安装服务、唐纳森产品改造服务,唐纳森产品的优化项目服务。公司专注通风/空调、工业除尘设备安装工程的设计、设备供应、安装施工、调试、售后服务,拥有自己专业的工程设计、项目管理、施工安装、售后技术团队,工程现已遍布山东、河北、安徽、贵州、苏州省份近百家企事业单位,涉及重工、铸造、运输、汽车零部件等其他工业产品生产、纺织、食品生产、政府及商业办公写字楼、医院、学校、酒店餐饮等四十余个行业工程施工。青岛海英利环境设备工程有限公司代理产品唐纳森除尘设备、唐纳森产品维护售后,青岛唐纳森产品维护,青岛唐纳森总代理,除尘,除尘器,工业除尘,滤筒除尘,废气处理,进口滤材,达标