转 :  http://zongweiz.leanote.com/post/Active-Learning-%E4%B8%80%E4%B8%AA

作者 :周纵苇

下面要介绍的工作发表于CVPR2017,题为“Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally”。它主要解决了一个深度学习中的重要问题:如何使用尽可能少的标签数据来训练一个效果promising的分类器。根据我的判断,当遇到两种情况的时候,这篇论文的可以非常强大的指导意义:

  • 一共手头有100个未标记样本,和仅仅够标记10个样本的钱,老板说,通过训练这十个标记的样本,能接近甚至达到训练100个样本的performance;
  • 手头有了一个已经在100个样本中训练完的分类器,现在又来了100个新标记的样本,老板说,只给提供够训练10个样本的计算机;或者只给你提供够训练10个样本的时间,让分类器尽快学习到新来样本的特征;

这两个情况发生的条件是完全不同的,Situation A发生在屌丝公司,没有钱拿到精标记的数据集,却也想做深度学习;Situation B一般发生在高富帅公司,有海量的精标记数据,但是由于目前即使是最牛逼的计算机也不能用深度学习在短时间内一次性地去处理完这些数据(e.g.,内存溢出,或者算上个几年都算不完)。

1. 为什么会想到去解决这个问题?

现在深度学习很火,做的人也越来越多,那么它的门槛可以说是很低的,Caffe,Keras,Torch等等框架的出现,让该领域的programming的门槛直接拆了。所以深度学习真正的门槛变成了很简单概念——钱。这个钱有两个很重要的流向,一是计算机的运算能力(GPU Power),二是标记数据的数量。这儿就引出一个很重要的问题:是不是训练数据集越多,深度学习的效果会越好呢?这个答案凭空想是想不出来的,能回答的人一定是已经拥有了海量的数据,如ImageNet,Place等等,他们可以做一系列的实验来回答这个问题。需要呈现的结果很简单,横坐标是训练集的样本数,纵坐标是分类的performance,如下图所示:

2. 如何让临界值变小?

解决方案就是主动学习(Active Learning),去主动学习那些比较“难的”,“信息量大的”样本(hard mining)。关键点是每次都挑当前分类器分类效果不理想的那些样本(hard sample)给它训练,假设是训练这部分hard sample对于提升分类器效果最有效而快速。问题是在不知道真正标签的情况下怎么去定义HARD sample?或者说怎么去描述当前分类器对于不同样本的分类结果的好坏?

定义:由于深度学习的输出是属于某一类的概率(0~1),一个很直观的方法就是用“熵(entropy)”来刻画信息量,把那些预测值模棱两可的样本挑出来,对于二分类问题,就是预测值越靠近0.5,它们的信息量越大。还有一个比较直观的方法是用“多样性(diversity)”来刻画预测的一致性,当我们在做数据扩充(data augmentation)的时候,往往是知道哪些标签应该是属于一类的,尽管不知道具体是哪一类。举例来讲:对于一幅图我们进行平移变换,我们知道它们其实是来自同一幅图的,那么最后的预测应该是一致的,如果当前网络对于这写patch的预测值偏差很大,那么我们认为这个样本是比较难分类的,需要被挑出来作为训练集。这两个方法都是在“Active batch selection via convex relaxations with guaranteedsolution bounds“中被提出。是十分重要的两个Active Learning的选择指标。

有了这两个指标来选hard sample,是比较靠谱了——实验结果表明,这比随机去选已经能更快地达到临界拐点了

举例来讲,假设你是一个养狗的大户,你现在想做一个非常偏的(专业化的)分类问题,如卷毛比雄犬和哈瓦那犬的分类问题,你手头有这两种狗各50条,你自己可以很轻松地区分这100条狗,现在需要做的是训练一个分类器,给那些不懂狗的人,他们拍了狗的照片然后把照片输入到这个分类器就可以很好地判断这是卷毛比雄犬还是哈瓦那犬。首先你可以给这100条狗拍照片,每条狗都有不同形态的10张照片,一共拍了1000张没有标记的照片。对于这1000张照片,你所知道的是哪10张对应的是一条狗,其他什么都不知道。

在这个实际分类问题中,你拥有绝对的数据优势,即便是Google Image也不能企及,当然一种选择是你把1000张图片从头到尾看一遍,标注好,但是你更希望是把大多数简单的分类工作交给分类器,自己尽可能少的做标记工作,并且主要是去标记那些分类器模棱两可的那几张照片来提高分类器的性能。

我们初步提供的解决方案是:

  1. 把1000张图放到在大量自然图像中预训练的网络(LeNet,AlexNet,GoogLeNet,VGG,ResNet等等)中测试一遍,得到预测值,然后挑出来那些“最难的”,“信息量最大的”样本,你看一下,给出他们的标签(卷毛比雄犬还是哈瓦那犬);
  2. 用这些刚刚给了标签的样本训练深度网络N;
  3. 把剩下那些没有标签的图像用N测试,得到预测值,还是挑出来那些“最难的”,“信息量最大的”样本,你再给出他们的标签(卷毛比雄犬还是哈瓦那犬);
  4. 刚刚给了标签的样本和原来有标签的样本组成新的训练集,继续用它们来训练深度网络N;
  5. 重复步骤3,4,直到 [?]

如FIG.2所示,每次循环都用不断增加的标记数据集去提升分类器的性能,每次都挑对当前分类器比较难的样本来人为标记。

3. 这个过程什么时候可以停?

  1. 钱用光了;
  2. 当前分类器对选出来的hard samples分类正确;
  3. 选出来的hard samples人类也无法标记;

以上三种情况都可以让这个循环训练过程中断,第一种就很无奈了,没钱找人标记了...第二种情况和第三种情况的前提共识是如果难的样本都分类正确了,那么我们认为简单的样本肯定也基本上分类正确了,即便不知道标签。第三种情况,举例来说就是黑白图像分类,结果分类器模棱两可的图像是灰的...也就是说事实上的确分不了,并且当前的分类器居然能把分不了的样本也找出来,这时我们认为这个分类器的性能已经不错的了,所以循环训练结束。

Active learning-Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively a相关推荐

  1. Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally

    转from:http://www.sohu.com/a/206903963_651893 「Fine-tuning Convolutional Neural Networks for Biomedi ...

  2. 《Discriminative Unsupervised Feature Learning with Exemplar Convolutional Neural Networks》阅读笔记

    <Context Encoders: Feature Learning by Inpainting>阅读笔记 摘要 我们提出了一种基于上下文的像素预测驱动的无监督视觉特征学习算法.类似于自 ...

  3. 深度学习(Deep Learning)——卷积神经网络 (Convolutional Neural Networks / CNN)

    一.卷积神经网络的概述 1.卷积神经网络与普通神经网络非常相似,它们都由具有可学习的权重w和偏置常量(biases)的神经元组成.每个神经元都接收一些输入,并做一些点积计算,输出是每个分类的分数,普通 ...

  4. AlexNet论文翻译(中英文对照版)-ImageNet Classification with Deep Convolutional Neural Networks

    图像分类经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为中英文对照版,纯中文版请稳步:[AlexNet纯中文版] ImageNet Classification with De ...

  5. ImageNet Classification with Deep Convolutional Neural Networks论文翻译——中文版

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 翻译论文汇总:https://github.com/SnailTyan/deep-learning-papers- ...

  6. 《ImageNet Classification with Deep Convolutional Neural Networks》翻译

    1 引言 2 数据集 3 架构 3.1 ReLU 非线性 3.2 训练多个GPU 3.3 局部响应归一化 3.4 重叠池化 3.5 整体架构 4 减少过拟合 4.1 数据增强 4.2 Dropout ...

  7. 论文研读 —— 6. ImageNet Classification with Deep Convolutional Neural Networks (3/3)

    文章目录 6. Results 6.1. Qualitative Evaluations 7. Discussion References 6. Results Our results on ILSV ...

  8. ImageNet Classification with Deep Convolutional Neural Networks论文翻译——中英文对照

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 翻译论文汇总:https://github.com/SnailTyan/deep-learning-papers- ...

  9. 《ImageNet Classification with Deep Convolutional Neural Networks》 Alex Krizhevsky(AlexNet译文)

    原论文地址    caffe的实现    TensorFlow的实现 参考:AlexNet论文翻译与解读    alexnet 论文翻译 AlexNet论文 正文################### ...

最新文章

  1. SpringOSGINoDM项目的插件说明
  2. 【原创】HP 安装 depot (以mysql为例)
  3. 在GridView中针对鼠标单击的某一独立单元格进行编辑
  4. 不展现报表实现对报表的打印导出
  5. ios--成员变量与属性的区别
  6. 在服务器上打包部署springboot+vue的项目(二)让服务器上有sql数据,且可以进行用户交互
  7. raid1 raid2 raid5 raid6 raid10的优缺点和做各自raid需要几块硬盘
  8. C语言实现随机生成0~100的数
  9. [NOTE] Web For Pentester靶场练习笔记
  10. Web开发-Django模型层
  11. 算法初步——two pointers
  12. feign踩坑_spring cloud fegin踩坑记录
  13. npm 使用报错合集
  14. SSRS 动态设置分组依据及行组个数
  15. VBA中数组(Array)与随机数(Rnd)的使用
  16. java滚动条调整数值_急..JAVA 在画布上画拖动滚动条可扩大缩小的长方形
  17. 文华财经期货买卖点指标源码,期货超短线指标公式源码
  18. ApacheCN 翻译/校对/笔记整理活动进度公告 2019.9.6
  19. 请更换备份电池 pos机_河南付临门pos机刷卡手续费
  20. 国赛数学建模——北理工校赛1

热门文章

  1. mysql数据库安装:windows下安装MSI版
  2. Fabric架构原理总结
  3. vue中将base64的pdf文件流转换成pdf并预览(二)——base64转PDF工具的使用
  4. 使用 satis 搭建一个私有的 Composer 包仓库 在我们的日常php开发中可能需要使用大量的composer包,大部份都可以直接使用,但在公司内部总有一小部份包是不能公开的,这时候我们就需
  5. 读心术python_有哪些厉害的观人术读心术?
  6. Puppy Linux作服务器,我为什么要用Puppy Linux
  7. java毕业设计大学生二手物品交易网站演示记录2021Mybatis+系统+数据库+调试部署
  8. Excel的Python开发插件-- 完全替代陈旧的VBA
  9. 张三学前端-Promise篇
  10. PS肤色调整19大秘诀