【Active Learning - 02】Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis...

主动学习系列博文:


刚开始尝试去解读一些论文,可能存在很多不足的地方。本人也会根据之后的理解和实践,不断完善。

建议读者在不要以本文为主去理论这篇论文,主要看原文,顺带地可以参考本篇博文。

 

本文的修改日志:

=================

2017.12.28:第一版,结合刘凯博士解读的 PPT 进行整理,重点在边翻译边解释。

2017.12.28:第二版,修改公式(由 latex 编辑)显示问题。

2017.12.29:第三版,修改博文摘要&&加入刘凯博士对论文作者的介绍。

2017.12.30:第四版,增加一些对本文相关的解读,值得参考;添加论文的 poster。

=================

 

前言:

“Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally”是 CVPR-2017 收录的一篇论文。这篇文章提出的方法主要想解决深度学习应用中的一个重要问题:如何使用尽可能少的标注数据集训练一个模型,这个模型的性能可以达到一个由大量的标注数据集训练得到的模型的性能。特别是在生物医疗领域,标注数据是一个很棘手的问题:1)需要具有相关专业知识的医生;2)成本很高;3)周期较长。那么,如果能用少量的标注数据去训练一个效果好的分类器,将是一个很有意义的工作。这篇文章提出的方法也是想解决这个问题,并在三种不同的生物医疗数据上做测试,证明了该方法的至少能够减少一半的标注代价。

尚未读这篇论文之前,我有一个想法,这个想法也是关于解决小样本问题,更准确的说应该是想“缓解目前很多领域耗费大量的人力物力去标注数据集”的问题。这个想法主要有以下几个核心思想:

1)active learning:设计一个人机交互的 model。首先,使用相关领域的数据集 source domain(没有相关领域的数据集的话,使用其他领域的数据集也行,如 ImageNet)预训练 model;然后,基于 batch 的思想针对 target domain 的数据集进行 predict,这时候的效果可能不会很好,甚至比猜测的概率还低;最后针对模型预测的结果,挑选最差的 a% * batch_size 的samples 让该领域的专家对预测结果进行纠正并给出比较合理的预测结果,并让模型重新训练这些纠正后的 samples(这篇论文使用的是 continuous fine-tuning)。

2)关于 fine-tuning 部分:我想的是,每次 epoch 对应一次 fine-tuning。而 CVPR 这篇论文提到有论文(如下)证明了持续的微调(continuous fine-tuning)比一次性微调的效果会更好。

N. Tajbakhsh, J. Y. Shin, S. R. Gurudu, R. T. Hurst, C. B. Kendall, M. B. Gotway, and J. Liang. Convolutional neural networks for medical image analysis: Full training or fine tuning? IEEE transactions on medical imaging, 35(5):1299–1312, 2016. 2, 7

3)实验场景:由于需要相关领域专家进行标注数据,如果是生物医疗领域,不是专门做这个领域的实验室就很难进行下去(因为这类专家都是很忙的医生)。所以,当时想到可以选择【object detection】领域。比如,在零售领域的应用,一台带有摄像头的自动售卖冰箱,当有人打开冰箱并用手去拿所需的商品(如,饮料),摄像头会抓拍用户拿这个商品这个时刻的照片 target_image(当然,最好是这个时刻前后几秒的小视频,就像 iphone 手机自带的 live 功能)。我们的任务就是,设计模型找出这张 target_image 的物品种类,比如可口可乐或者七喜等。这个场景的好处就是,我们就可以充当这个领域的专家标注所需的样本,而且这个场景也具有一定的应用价值。

 

于是,想找找关于 active learning 相关的论文,结果找到了 “Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally” 这篇。才发现原来已经有人做过,不过还是有挺大的差别。作者的方法有很多值得学习的点,而且实验过程也有很多细节需要处理,比如这篇论文中一个核心是“通过 majority selection 思想,针对每个 candidate,选择部分 patches 进行计算 entropy 和 diversity”,消除了一些带有噪声的 patches。还有很多细节,详见下文。

值得一提的是,微信公众号“AI研习社”有整理了刘凯博士在2017年8月1日对该论文的解读,感兴趣的同学可以使用“reference”部分提供的链接查看刘凯博士的分享。

 

reference:

论文地址(百度网盘):https://pan.baidu.com/s/1hrT1V5E

CVPR 2017精彩论文解读:http://mp.weixin.qq.com/s/AxIK7UOKLxxbIqHGZZaKbw

【2017.12.30 一些对本文相关的解读】

解读1,很详细(推荐):https://www.jianshu.com/p/42801f031cfa

 

 

《Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally》

用于生物医学图像分析的精细调节卷积神经网络:主动的,增量的

 

论文笔记:

该论文的主要目的是尝试去解决一个问题:“How to dramatically reduce the cost of annotation when applying CNNs in biomedical imaging”(将卷积神经网络运用到生物医疗领域时,如何显著性的减少标注数据带来的代价)。

关于论文的实验部分,作者提到使用的是 Caffe 框架、实验部分使用的网络模型(AlexNet)以及实验结果对应的参数,但尚未提供相关的代码。

论文的一些亮点:

 

  • 对于训练数据,刚开始是一个完全未标注的数据集,经过主动选择让专家标注并将这些标注数据进行 continuous fine-tuning,增量式的提升 CNN 的性能;
  • 使用 sequntial fine-tune 的方式精细的调整模型参数,而不是重新训练;
  • 主动地选择样本,通过候选样本(candidate)的一致性,选择哪些样本更值得优先标注;
  • 自动处理噪声,如下文关于猫的例子,数据增强的时带来的噪声,通过少数服从多数的方式把那些噪声去掉了;
  • 对每个 candidate 只选少量的 patches 计算熵和 KL 距离,KL距离就是描述 diversity 的指标,减少了计算量。传统的深度学习需要在训练之前就做数据增强,所以每个样本都是同等的;这篇文章里面有一些数据增强不仅没有起到好的作用,反而带来了噪音,就需要做一些处理;而且还有一些数据根本不需要增强,这样就减少了噪音,而且节省了计算。

 

提前解释一些名词的含义:

 

  • continuous fine-tuning:在原来的模型上再继续做 fine-tuning。
  • 信息熵,entropy:预测结果在0.5左右就认为它是比较难分的。
  • 多样性,diversity:这个值不是很好刻画,就通过 data augmentation数据增强的方式来设计指标,就是说从一个图像设计出一系列它的变形。这些变形就可以是靠翻转、旋转、平移操作等等,一个变成了好几个甚至十几个,增加了它的多样性。然后对这些所有的变形去预测它们的分类结果,如果结果不统一的话,就说明这副图像的diversity比较强,那么这张图像就是比较难分的,是hard sample;反之就是比较好分的,那么就不去做它的增强了。然后对所有增强以后的数据的预测值应当是一致的,因为它们代表的是同一个东西。

(2017.12.29 刘凯博士对论文作者的介绍)

作者之前是在 ASU 的PhD学生,现在在梅奥,美国一个非常著名的私立医院梅奥医院做实习,就跟需要做标注的医生打交道比较多。这相当于就是一个从现实需求得出来的一个研究课题。

说明:下文不仅是单纯的对原论文进行翻译,会加入一些个人的看法以及一些参考资料的相关内容,尽量用花括号 { } 标注出来。

 

Abstract:

将 CNN 运用到生物医疗图像分析备受关注,但目前仍受限于缺少大量带标注的数据集。标注生物医疗图像不仅枯燥无味、耗时,而且价格昂贵、需要具有专业知识背景的专家。为了显著地减少标注数据的代价,作者提出了一个新颖的方法叫做 AIFT(主动的,增量的精细调节),AIFT 自然地将 active learning 和 transfer learning 整合到一个结构中。首先,AIFT 使用一个预训练(数据集是 ImageNet)的 CNN 去寻找对提升当前 CNN 性能最有帮助的样本,然后专家对这些筛选出来的样本进行标注并将这些由专家标注的新数据加入到 fine-tuning 的训练集,此时经过 fine-tuned 后的 CNN 会渐进性的提升性能。作者选择了三种不同的生物医疗图像对该方法进行评估,证明了 AIFT 能够至少减少一半由标注数据带来的代价。之所有能够有这种效果,主要来源于 AIFT 方法中先进的”主动性“和”增量性“带来的贡献。

 

Introduction:

卷积神经网络(CNNs)在计算机视觉领域带来了巨大的变革,离不开大规模标注数据集的产生(如,ImageNet 和 Places)。根据 IEEE TMI 特刊以及两本即将出版书籍的证实,卷积神经网络的成功同样引起了生物医疗图像领域的强烈兴趣,而且这种趋势正在广泛的传播。但是,生物医疗图像领域并没有像ImageNet这样大规模且带有标注的数据集,也正是因为缺少大规模带有标注的数据集以至于这种趋势扔处于受阻的状态,目前的研究阶段还不能达到理想的效果。

标注生物医疗图像的样本不仅枯燥无味、耗时,而且需要花费大量的人力物力,更重要的是标注这个领域的数据集不是普通人能够胜任的,需要具有一定专业知识和技能的专家。比如,医学图像常见的两种方式就是X光和CT。对于X光,一个人一般拍出来一张,标注成本大概在20到30块钱人民币一张;CT是横断面,拍完一个人大概有几百张图片,标注完的成本就会高一点,标注的时间也会比较长。正是基于这个痛点,作者提出了一种新颖的方法叫做 AIFT,将 active learning 和 transfer learning 整合到一个结构中。正如 Abstract 部分中提到的,AIFT 会筛选出一些对提升当前 CNN 模型最有帮助的样本,专家优先对这些样本进行标注,这些新的且已被标注的样本会不断扩大训练数据集(一开始训练数据集是 NULL)。值得注意的是,AIFT 在每次迭代的时候都会进行 fine-tuning,这也是本文的创新点 { 每次都在当前的 CNN 上进行fine-tuning,而不是从最原始的 pre-trained CNN 的基础上。这就对上一次迭代的模型带有一点记忆性,属于连续的学习。但同时,fine-tuning 的参数不好控制,这也是该论文的 further work }。

作者选择了三种不同的生物医疗图像领域的数据对 AIFT 进行评估,包括 colonoscopy frame classification(结肠镜的视频帧分类), polyp detection(息肉检测), and pulmonary embolism (PE) detection(肺栓塞检测)等,证明了 AIFT 能够至少减少一半由标注数据带来的代价。

这些显著的效果主要归功于一些简单但 powerful 的观察,如下所示:

1)为了提升 CNN 在生物医疗图像处理的性能,通常会想到数据增强(data augmentation)。将每个候选样本(candidate)切分为多个 patches。{ 论文中说这些 patches are generated automatically }。

2)来自同一个 candidate 的 patches 应该拥有相同的标签。自然而然地,这些 patches(加入训练数据集之前)经过当前 CNN 的预测,应该得到相同的结果。

3)来自同一个 candidate 的每个 patch 的信息熵(entropy)以及每两个 patch 之间的差异性(diversity)等作为两个有意义的指标,衡量这个 candidate 对提升当前 CNN 性能的有益程度。{ 除了 entropy 和 diversity 之外,还有很多可用的指标,但这不是该论文的重点。感兴趣的读者可以关注下文提到的其他指标 }

4)然而,数据增强在生成一些“hard”样本 { 也就是对提升当前 CNN 更有帮助的样本 } 的同时,不可避免地会带来一些噪声标签(noisy labels)。因此,为了加强 AIFT 的鲁棒性,针对每个 candidate 所产生的 patches 中,作者根据当前 CNN 的预测结果选择只部分 patches 参与计算 entropy 和 diversity。

{ 举个简单的例子,该例子来源于刘凯博士对该论文解读的 PPT,如下:

在这张 PPT 的中间,有三张图像。左图这只小猫经过平移、旋转、缩放等一些操作后,得到9张图(PPT 中间那张),每张图都是它的变形。然后用当前的 CNN 对这9张图求是一只猫的概率得到最右边那张 prediction 的图。可以看到上面三个图的概率比较低,就是判断不出来是一只猫,我们直观的去看,像老鼠、狗、兔子都有可能。本来这是一个简单的例子,很容易识别出来这是一只猫,但是增强了以后反而让模型不确定了。这种情况是需要避免的。

所以这种时候做一个 majority selection,就是一个少数服从多数的方式,因为多数都识别出来它是一只猫了。这就是看它的倾向性,用里面的6个预测值为0.9的数据,上面三个预测值为0.1的就不作为增强后的结果了。这样网络预测的大方向就是统一的了。这部分内容下文会提到。}

一些研究者已经证明过 fine-tuning CNNs 在生物医疗图像分析领域的实用性,但他们只做一次 fine-tuning,也就是简单的对一个 pre-trained CNN 进行 fine-tuning,并没有引入主动选择过程。相关的参考文献如下所示:

H. Chen, Q. Dou, D. Ni, J.-Z. Cheng, J. Qin, S. Li, and P.-A. Heng. Automatic fetal ultrasound standard plane detection using knowledge transferred recurrent neural networks. In International Conference on Medical Image Computing and Computer-Assisted Intervention, pages 507–514. Springer

G. Carneiro, J. Nascimento, and A. Bradley. Unregistered multiview mammogram analysis with pre-trained deep learning models. In N. Navab, J. Hornegger, W. M. Wells, and A. F. Frangi, editors, Medical Image Computing and Computer-Assisted Intervention – MICCAI 2015, volume 351 of Lecture Notes in Computer Science, pages 652–660. pringer International Publishing, 2015.

M. Gao, U. Bagci, L. Lu, A. Wu, M. Buty, H.-C. Shin, H. Roth, G. Z. Papadakis, A. Depeursinge, R. M. Summers, et al.Holistic classification of ct attenuation patterns for interstitial lung diseases via deep convolutional neural networks. In the 1st Workshop on Deep Learning in Medical Image Analysis, International Conference on Medical Image Computing and Computer Assisted Intervention, at MICCAIDLMIA’15, 2015

J. Margeta, A. Criminisi, R. Cabrera Lozoya, D. C. Lee, and N. Ayache. Fine-tuned convolutional neural nets for cardiac mri acquisition plane recognition. Computer Methods in Biomechanics and Biomedical Engineering: Imaging & Visualization, pages 1–11, 2015.

T. Schlegl, J. Ofner, and G. Langs. Unsupervised pre-training across image domains improves lung tissue classification. In Medical Computer Vision: Algorithms for Big Data, pages 82–93. Springer, 2014.

H.-C. Shin, L. Lu, L. Kim, A. Seff, J. Yao, and R. M. Summers. Interleaved text/image deep mining on a very largescale radiology database. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 1090–1099, 2015.

N. Tajbakhsh, J. Y. Shin, S. R. Gurudu, R. T. Hurst, C. B. Kendall, M. B. Gotway, and J. Liang. Convolutional neural networks for medical image analysis: Full training or fine tuning? IEEE transactions on medical imaging, 35(5):1299–1312, 2016.

作者提出的 AIFT 首次将 actice learning 整合到 fine-tuning CNNs 网络结构中,通过 continuous fashion { 不知道怎么翻译 } 的方式使得 CNNs 在生物医疗图像领域的应用更加可观,目标就是想要显著性地减少标注数据的代价。与传统的 active learning 相比,作者提出的 AIFT 方法具有如下五个优势:

1)AIFT 一开始的数据集是完全不带标签的样本集。

2)通过 continuous fine-tuning 增量式的提升 learner,而不是一直重复的训练。

3)每个 candidate 对应多个 patches,利用这些 patches 预期的一致性来选择更值得优先标注的样本。

4)自动的处理掉带有噪声的标签:因为对于每个 candidate,只有一部分的 patches 参与选择过程。

5)对于每个 candidate,只计算一小部分 patches 的 entropy and diversity,节省了一大部分的计算时间。

更重要的是,作者提出的 AIFT 在生物医疗图像领域具有很大的潜能,对运用到计算机辅助诊断系统具有重要的影响。因为目前的规定是要求计算机辅助诊断系统部署到一个封闭的(cloesed)环境中,in which all CAD results be reviewed and errors if any be corrected by radiologists。As a result,所有 false positives(本来没病,被诊断为有病的)应该被摒弃,所有 false negatives(本来有病,被诊断为没病的)应该 supplied。即时在线反馈能够使计算机辅助诊断系统进行自我学习,并且引入作者提出的 continuous fine-tuning 后,提高了这种可能性。(关于“true positive”,“false positive”,“true negative” 和 “false negative” 更多的解释,请参考这里

 

Related work

基于迁移学习(transfer learning)的医学图像处理

Gustavo 等人将一个 pre-trained CNN 的全连接层替换成一个新的 logistic 层,在训练(使用标注数据)的时候只训练 appended 层,保持剩余的其他层不变,这种方式在 “unregistered multiview mammograms” { 个人觉得就是在多视图乳房x光图像的分类问题取得不错的效果,unregistered 表示乳房x光图像是未注册的,也就是训练数据集中 } 的分类问题得到一个 promising 的结果。在 Chen 等人将经过 “fine-tuned pre-trained CNN” 运用到定位超声波图像的标准平面。Gao 等人为了自动的对“间质性肺疾病”进行分类,将一个经过 pre-trained CNN 的所有层进行 fine-tuning。Shin 等人使用 fine-tuned pre-trained CNN 将医疗图像处理映射到 document-level 级别的 topics 和 sub-topics,以及 sentence-level 级别的 topics。Margeta 等人使用 fine-tuned pre-trained CNNs 自动地检索从 MRI 图像采集心脏平面信息过程中丢失或者带有噪声的信息,并预测出最 common 的前五个心脏视图(cardiac views){ 不知道怎么翻译比较准确,需要看原文才能明白 }。Schlegl 等人开发了一个无监督的 pre-training CNNs,该模型从 sites 或者图像类别注入信息,使得解决不带标注数据的领域变得可行;他们也展示了与“对模型参数进行随机初始化”的对比实验。Tajbakhsh 等人系统的研究了迁移学习在一些医学图像领域的性能(capabilities)。

上述介绍了一些将迁移学习运用到医学图像处理领域的研究。但是,他们都仅仅使用了一次 fine-tuning,简单的使用一些可用的训练样本对一个 pre-trained CNN 进行 fine-tuning,既没有引入 active selection,也没有引入持续的(continuous)fine-tuning。{ 这两点正是作者的创新点 }

将 active learning 整合到 deep leanring

关于一般的 active learning 和 deep learning 的相关文献非常博大精深 { 本段末尾将附上相关文献 }。然而,将 active learning 整合到 deep learning 的相关研究工作却非常少。Wang and Shang 是第一个 incorporate active learning with deep learning 的研究者,他们使用的 deep leanring 模型是 stacked RBM(限制玻尔兹曼机) 和 stacked autoencoders(自编码器)。Li 等人使用相似的想法解决高光谱的图像分类问题。Stark 等人使用 active learning 提升 CNNs 的性能并运用于验证码识别(CAPTCHA recognition)问题,然而 Al Rahhal 等人利用 deep learning for active electrocardiogram(心电图)分类问题。

上述提到的相关研究工作跟作者提出的 AIFT 有着本质上的区别,在每次迭代(iteration)中,他们都是不断重复的训练模型 { 原文中有提到 from scratch,个人理解:他们都是以 pre-trained model 为基础,每次重新训练都是在 pre-trained model 的基础上进行训练 }。而 AIFT 是持续的对当前的 CNNs 进行 fine-tune,每次进行 fine-tuned 的对象是当前的 CNN(不断更新的)。

 

Proposed method

作者在医疗图像领域的计算机辅助诊断(简称为 CAD)的背景下提出 AIFT 方法。一个典型的计算机赋值诊断系统有一个 candidate(候补者)生成器,能够快速产生一组 candidates,这些 candidates 中包括一部分 true positives 和一部分 false positive。candidates 生成后,接下来的任务就是要训练一个分类器,这个分类器的作用是尽可能多的消除 false positive,尽可能多的保留 true positive。众所周知,训练一个这样的分类器,需要对这些 candidate 进行标注。作者假设每个 candidate 带有一个可能性为 |Y| 的标签。为了提升 CNNs(CAD 系统的 CNNs)的性能,通常会想到数据增强(data augmentation),作者对每个 candidate 都自动地切分成多个 patches,来自同一个 candidate 的 patches 继承了这个 candidate 的 label。也就是说,所有的标签都在是 candidate 级别上获得的,同一个 candidate 对应的所有 patches 拥有相同的标签。{ 下文也会提到关于在 candidate level 级别上取标签的原因 }

用数学的方式来解释:给定一组 candidates,,其中 n 表示 candidates 的个数,每个 candidate 由 m 个 patches 组成 。作者提出的 AITF 算法在每次迭代都选择一组 candidates 给专家标注,算法如下所示:

{ 上述算法的解释可以参考刘凯博士对该论文解读的 PPT:

 

  • 1)首先,把所有的未标注图片数据在大量自然图像中训练的网络,大家知道现在有很多常用的网络,从最初的LeNet、AlexNet、GoogLeNet、VGG、ResNet这样的网络中去测试一遍,得到预测值。 然后挑出来那些最难的、信息量大的样本去标注;
  • 2)用这些刚刚标注了的样本去训练深度学习网络,得到一个网络N;
  • 3)把剩下没有标签的图像用N过一遍,得到预测值,挑一遍那些最难的,用人工去给它标注;
  • 4)把刚刚标注了的样本和原来已经标好的样本一起,也就是整个标注集拿来继续训练这个网络;
  • 5)重复3到4这个步骤,直到当前的分类器可以对选出来的比较难的图像很好的分类了。

 

}

Continuous fine-tuning

算法一开始给定的标注数据集是空集。作者使用一个 pre-trained CNN(如,AlexNet)并基于这个 CNN 在 candidates 集合中进行 predicts,选择其中最难且信息量最大的 b 个 candidates 让专家标注。由专家标注好的数据将被加入到 fine-tuning 的训练数据集中,对当前的 CNN 进行 continuously fine-tune,直到满足性能的需求。一些研究者证明了 fine-tuning 能够提供较好的性能,而且比 traininig from scratch 更加鲁棒。作者根据实验结果也得到了一些发现:

1)不断扩大数据集进行 continuously fine-tuning CNN(这个 CNN 是上一次迭代中被 fine-tuned 的 CNN)比“不断重复 fine-tuning 最原始的 pre-trained CNN”收敛得更快。

2)仅仅使用最新的标注数据进行 continuously fine-tuning CNN 需要更细心地对超参数进行调整。

Active candidate selection

关于 active learning,关键就是要制定一个标准,这个标准能够决定当前 candidate 应该被优先标注的价值,价值越高就越优先被专家标注。作者在本文中使用的标准是基于如下一个观察(observation):来自同一个 candidate 的 patches 共享同一个 label,这些 patches 经过当前 CNN 的预测后应该得到相似的结果。这些 patches 的 entropy 和 diversity 两个指标为衡量“这个 candidate 对提升当前 CNN 性能的有益程度”提供了一个有意义的标准。1)entropy 主要提取分类的确定性信息,越不确定的值贡献越多的信息;2)diversity 能够表明来自同一个 candidate 的 patches 两两之间的多样性。因此,candidates 的 entropy 和 diversity 的值越高就越有可能提升当前 CNN 的性能。

假设 patch  和  来自于同一个 candidate  经过当前 CNN 的预测结果为 ,此时,patch  对应的 entropy 定义如下:

patch  和  之间的 diversity 如下所示:

信息熵 entroy  表示来自 candidate (都是未标注的样本)的 patch  的信息。多样性 diversity  是使用对称的 Kullback Leibler diverence(相对熵,KL距离,KL散度)评估 patch  和  之间的重叠信息量。所有的  和  显然都是非负的,对于任意 j,都有 。为了方便表示,作者将  和  组合到一个矩阵 (每个 candidate  都有对应的 ),如下所示:

 

其中, 和  表示 entropy 和 diversity 之间的权衡。在实验过程中,这两个参数可以更方便的对 entropy 和 diversity 进行开关。

 

Handling noisy labels via majority selection

虽然数据增强(data augmentation)具有提升 CNN 性能的潜力,但也不可避免会带来一些噪声。如下图1和图2的(c)所示,部分 candidate 通过数据增强会产生一些 hard samples。因此,作者为了增加 AIFT 的鲁棒性,在计算 entropy 和 diversity 的时候,对于每个 candidate 根据当前 CNN 的预测结果,只选择一部分的 patches 参与计算。{ 以少数服从多数的规则,如上文提到的那个猫的例子 }

对于每个 candidate  产生的 patches,首先计算这些 patches 的平均预测概率,公式如下所示:

其中,m 表示  所产生的 patches 的个数, 表示  在当前 CNN 下的预测概率。如果 ,那就在所有 patches 中选择预测值最高的  个 patches;否则就选择预测值最低的  个 patches。基于这些经过筛选后的 patches,接下来就是对每个 candidate,根据上文提到的相关公式计算分数矩阵 ,矩阵大小为 αm × αm。

作者提出的少数服从多数选择策略自动地将那些带有噪声的 patches 排除掉了,因为这些带有噪声的 patches 对应的置信度(confidence)很低 { 这里突然出现了个 confidence,其实就是指经过当前 CNN 预测得到的值,还是看上文那个“猫”的例子,就一目了然了 }。这里需要提醒的是,将 entropy 和 diversity 组合起来的想法源于 Chakraborty 等人的论文,但有一个本质上的不同是因为他们是对所有 unlabeled dataset 计算 ,时间复杂度为 ,这是相当耗时的。而作者使用的方法只对部分的 patches 进行计算,大大节省了计算时间,时间复杂度降为 ,在作者的实验过程中 

 S. Chakraborty, V. Balasubramanian, Q. Sun, S. Panchanathan, and J. Ye. Active batch selection via convex relaxations with guaranteed solution bounds. IEEE transactions on pattern analysis and machine intelligence, 37(10):1945–1958, 2015

 

An illustration of prediction patterns

给定未标注的 candidates 集合 ,每个 candidate 由 m 个 patches 组成,表示为 。假设  经过当前 CNN 的预测结果为 ;对于 ,将  组成的直方图称之为  的预测模式(prediction pattern)。如下表1的第一列所示,总共有7种 prediction patterns:

 

模式 A:

该模式下,所有 patch 的预测结果基本上集中在 0.5 附近,这个预测结果属于非常不确定的情况 { 也就是这个模型不知道将该 candidate 属于哪一类 } 。大多数 active learning 算法都比较倾向于这种模式的 candidate,因为如果这类 candidate 给专家标注了,那么将很有利于减少不确定性。

{ 比如你在考试,正在做一道完全不知道怎么下手的判断题,有50%的机会可以猜中。此时,有人告诉你这题的正确答案,你将对这场考试更有把握。要是这个人把所有你不知道怎么做的题目的答案都告诉你了,你将非常有把握的通过这场考试。这个人不需要把整份考卷的答案都告诉你,只要告知那些你不知道怎么做的题目就行,其他题目你自己能搞定。}

模式 B:

该模式下,patches 的预测结果分布在 [0, 1] 之间,这样的情况属于高度不一致。理论上,来自同一个 candidate 的 patches 经过当前 CNN 的预测结果应该基本上(至少大部分)都相似,但却出现每个 patches 都各自分布在不同的预测结果上。所以,属于模式B的 candidate 很有潜力提升当前 CNN 的性能。

模式 C:

该模式下,patches 的预测结果集中在直方图的两侧,导致具有很高的多样性 { 当前CNN对这个 candidate 的判断结果比较模棱两可 }。这类 candidate 很有可能是带有噪声的,如图1所示的情况。{ 有一半的预测结果偏向与类别0,又有一半的预测结果偏向于类别1 }。由于这类 candidate 可能干扰 fine-tuning CNN,所以 active selection 是最不会选择模式C的。

模式 D 和 模式 E

这两种模式下,patches 分别聚集在 0 端和 1 端,表示模型对这类 candidate 的判断结果很确定。这类 candidate 正常不需要专家进行标注,因为当前 CNN 就已经能够很准确的对其进行判断,它们对提升当前 CNN 效果的贡献度很小。然而,CNN 经过更多次的 fine-tuning 后,这类 candidate 也有可能发展成急需标注(worthy of annotation)的模式。

模式 F 和 模式 G

这两种模式下,其中大部分 patches 的预测结果具有较高的确定性,还有一小部分离群值。这类 candidates 属于具有价值的,因为它们能够平稳的提升 CNN 的性能。虽然它们可能不具有很大的贡献度,但是它们也不会对 CNN 的性能有害。

{ 这种情况跟上文中提到猫的例子很相似,大部分 patches 的预测结果比较一致,而小部分 patch 的预测结果不一致,属于离群点 }

Applications

这部分内容,主要介绍作者将 AIFT 方法应用到三种不同的医学图像处理的应用中,包括结肠镜视频帧分类,息肉检测和肺栓塞检测等。作者是基于 caffe 框架实现 AIFT 算法,使用 pre-trained AlexNet 网络模型作为 AIFT 的 CNN。作者在实验部分,选择了6种 AIFT 的变形进行评估,如下所示:

1)  (using diversity on 1/4 of the patches of each candidate)

2) (using diversity on all the patches of each candidate)

3)

4)

5)

6)

作为对比实验,作者选择两种方法,如下:

1)IFT Random (incremental fine-tuning with random candidate selection):与 AIFT 的区别就是 candidate 的选择是随机的。
2)Learning from Scratch in terms of AUC (area under ROC curve):

 

Colonoscopy Frame Classification:结肠镜视频帧分类

结肠镜检测程序的客观质量评估对确保高质量的结肠镜检测至关重要。一个结肠镜视频通常含有大量信息不够充分(non-informative)的图像,在这种不好的结肠可视化下对检查结肠或者执行治疗操作并不理想。一个视频中包含越多 non-informative images,结肠可视化的质量就越低,结肠镜检查的效果就越差。因此,一种衡量结肠镜检查过程的方法就是监视提取的图像质量。从技术的角度上,结肠镜图像质量的评估可以转化为图像的分类任务,通过判断一张输入图像被标注为 informative 或者 non-informative。

在作者的实验中,从6个完整的结肠镜视频中筛选出4000帧结肠镜图像。一个训练有素的专家手动地将这4000帧结肠镜图像标注为 informative 或者 non-informative。紧接着,一个肠胃病专家(gastroenterologist)对这些已标注的图像进行修正。这4000张经过标注并修正的结肠镜图像被划分到训练数据集和测试数据集中,分别为2000帧。对于图像增强(data augmentation),作者从没帧图像提取出21个 patches。

作者在论文中展示的3个应用案例中,AIFT 算法的初试状态都是一个空的训练数据集加上一个使用 ImageNet 进行预训练的 AlexNet 网络模型。如下图3所示,当横坐标的 labels queried = 2 的时候,IFT Random 方法在8种方法中是最好的。主要原因有2个:1)随机选择过程中,正负样本比例与测试数据比较兼容;2)通过 ImageNet 数据集预训练得到的 AlexNet 在结肠镜数据集的预测效果不好,因为 AlexNet 是由一些自然界中的图像进行预训练,而不是由相关的医疗图像进行预训练。这种情况下的预测结果大多数都是模棱两可甚至是错误的。{ 迁移学习所跨越的领域太大,从一个识别猫,狗,鱼,鸟等自然界中常见的图像的模型迁移到一个识别医疗图像的任务,在没有进行 fine-tuning 之前的效果肯定不会很好 }

然而, 经过第一次 fine-tuning 后,这三种方法比“随机从剩下的训练数据中选择样本的方法”的训练效果更有效率,因为这三种方法选择的样本是对提升模型性能最有帮助的样本。 在 labels queried = 4 的时候就已经达到了 IFT Random 在 labels queried = 18 的效果,达到了 Learning from Scratch 在  labels queried = 22 的效果。这个效果也就意味着:1)相对于 IFT Random 方法能节省大于 75% 的标注代价;2)相对于 Learning from Scratch 方法能节省 80% 的标注代价。

 方法比 IFT Random 方法的效果还差,是因为在数据增强时产生了噪声标签导致的。从上文 table 1中可以看出, 方法更倾向于主动选择 类似于 Pattern C 的图像 { 这种方法的主动选择只依赖于 diversity 指标,也就是 diversity 越高的 candidate,越主动选择 }。显然,这种方法最想选择那种模棱两个的图像(candidate),如上文的图1和图2(c)所示,因为这类图像所产生的 patches 计算得到的 diversity 很高。上文也提到,来自于同一个 candidate 的 patches 继承了相同的 label,因此 Pattern C 反应了 patches 带有比较严重的噪声。

 等三种方法能够自动排除带有噪声的标签,自然而然能够得到很好的效果。既然这三种方法的效果这么好,那么为何不尝试这对它们进行组合呢?但很不幸,如图3的两条绿色线所示,组合并不能带来更好的效果,反而效果很差。因为怎样合理分配  的权重是很难的,也是未来可以继续探索的研究。上文 table 1 中,也有对这些组合的分析;文末的附加材料也有做一些相关的分析。

Polyp Detection:息肉检测

对于结肠患者的检查和预防,结肠镜检查是一项很好的技术。结肠镜检查的目标是找到并移除结肠的息肉(结肠患者的前体细胞),如下图4所示。对于息肉检测,作者实验的是数据集是从38个不同的患者获取得到的38个较短的结肠镜检查视频,其中21个视频(11个带有息肉,10个不带息肉)作为训练的数据集,17个视频(8个带有息肉,9个不带息肉)作为测试数据集。训练数据集和测试数据集没有使用重复的病人,也就是说1个病人的数据不会同时出现在训练数据集和测试数据集中。训练数据集和测试数据集将分别产生16300个 candidates 和11950个 candidates。

{ 文中还提到一句话:“Each colonoscopy frame in the data set comes with a binary ground truth image. ”

个人理解应该是说,结肠镜检查数据集中的每一帧都带有一个二进制的 groud truth,也就是图4中红色的圈。(不是很懂怎么翻译...)

}

每个带有息肉的 candidate 都坐落于一个给定的 bounding-box,作者在数据增强的过程中,定义了一个 factor 变量 ,包括3种尺寸。在每种尺寸中,首先将 candidate 以“resized bounding box 的 10%”在水平和垂直方向进行翻译(translated ,不知道什么意思...);然后再提出 patches;最后通过镜面反射和翻转表换对每个 patch 进行8次旋转。所有通过数据增强产生的patch都属于同一个 candidate。

如图5所示, 在 labels queried = 610 的时候就已经达到了最好的性能(peak performance),而 IFT Random 需要 5711 才能达到相同的效果,表明了相比于 IFT Random,AIFT 能够较少将近 90% 的标注代价。之所以能够这么快速的收敛,主要归功于 majority selection 方法,这种方法能够有效的选择具有 informative and representative 的 candidates,同时能够排除带有噪声样本的 candidates。

当 labels queried = 5000 时, 方法达到了最好的性能。因为 entropy 指标只能衡量 informativeness 信息量,因此这种方法筛选得到的 candidates 中,有很多样本是非常类似的。所以需要更多的 queries 才能得到 informative candidates { 就是说,5000 个 queries 中,其实很多是相似的 candidate,如果这种方法只选择1000 个 queries,此时 fine-tuning 得到的模型效果还不够,因为另外4000queries中还有很多信息量是当前模型还未能识别的 }。

 不能够达到相同的效果是因为 majority selection 的过程中未能排除那些带有噪声的 candidates。Learning from Scratch 方法经过 fine-tuning 也从未达到相同的效果,即使是使用了全部的训练数据,下文的参考文献也同意这样的结论。

N. Tajbakhsh, J. Y. Shin, S. R. Gurudu, R. T. Hurst, C. B. Kendall, M. B. Gotway, and J. Liang. Convolutional neural networks for medical image analysis: Full training or fine tuning? IEEE transactions on medical imaging, 35(5):1299– 1312, 2016. 2, 7

(To gain further insights)为了获取更进一步的见解,作者对这8种方法进行监视,继续对所有剩下的训练数据进行 fine-tuning。每次对当前的 CNN 进行 fine-tuned 得到更新后的 CNN,使用更新后的 CNN 对当前所有剩下的训练数据进行预测。作者观察到只需要 800 个 candidates 就能够达到最好的效果。如图6所示,通过 AIFT 选择得到的 candidates 仅仅占所有 candidates 的 5%(800/16300)。AIFT 方法只需要使用 800 个 candidates 就能训练出最好的模型(当前数据集下能够训练到的最好模型),也就能够代表剩余的未参与训练的数据。因为结肠镜视频连续不断的帧中,前后的帧对应的图像都很相似,不需要每一帧都去标注。

Pulmonary Embolism Detection:肺栓(shuan)塞(se)检测

在这部分的实验中,生成肺栓塞(PEs) candidates 的方法是 Liang 等人提出来的;Tajbakhsh 等人介绍了肺栓塞(PEs)图像的表示方法,如图7所示。作者在本实验中采用2通道(2-channel)的表示方法,因为这样能够连贯地(consistently)从横向和纵向(longitudinal and cross-sectional)视角提取 PEs 的 vessels,既能够得到很好的分类精度,又能加速 CNN 的训练过程。为了满足 CNN 的输入要求(RGB-3 通道),将上述2-通道的 patches 转化成3-通道的 patches,通过复制第二通道作为第三通道的方法。

J. Liang and J. Bi. Computer aided detection of pulmonary embolism with tobogganing and mutiple instance classification in ct pulmonary angiography. In Biennial International Conference on Information Processing in Medical Imaging, pages 630–641. Springer, 2007

N. Tajbakhsh, M. B. Gotway, and J. Liang. Computer-aided pulmonary embolism detection using a novel vessel-aligned multi-planar image representation and convolutional neural networks. In International Conference on Medical Image Computing and Computer Assisted Intervention, pages 62–69. Springer, 2015
69. Springer, 2015

作者在这部分实验使用 121 CTPA 数据集,总共有 326 PEs。Liang 等人提出的 tobogganing 算法用于获取原生的 PE candidates。总共生成了 6255 个 PE candidates,其中包括 5568 个 false positive 和 687 个 true positive。

为了训练 CNN,作者先根据3种不同的物理尺寸(10 mm-wide,15mm-wide,20mm-wide)提出 patches。然后沿着血管的方向对每个 candidate 的位置进行3次转化,up to 20% of the physical size of each patch(没想好怎么翻译)。最后对训练数据进行数据增强,围绕 vessl 坐标轴从横向和纵向平面进行旋转。对于每种尺度和位移处理都有5种变形体(variations)。

训练数据包括 434 个 true positive PE candidates 和 3406 个 false positive PE candidates;测试数据包括253个 true positive candidates 和 2162 个 false positive PE candidates。所有 PE 的概率都是通过求 patches 的平均值得到的,每个 PE 对应的 patches 是通过数据增强(data augmentation)得到的。

如图8所示,作者还是使用这8种方法在测试数据上比较。每个方法在 labels queried = 2000 的时候,性能都已经趋于饱和了。 在8种方法中最快达到最佳性能,主要归功于作者提出的 AIFT 算法。这两种方法只需要 1000 个标注数据就能够达到 IFT Random 方法使用2200个标注数据的效果。注意到  方法需要 3100 个标注数据才能达到最佳性能,因为 PE 数据同样带有噪声标签。由于 Entropy 指标倾向于选择具有不确定性的样本,所以  等两种方法在刚开始 fine-tuning 的时候效果很差。IFT Random 方法在刚开始 fine-tuning 时,效果最佳,原因跟“结肠镜检测实验”一样,但该方法在后期增长速度很慢。基于上述实验结果的分析,证明了作者提出的 AIFT 至少能够减少一半的标注代价。

Observations on selected patterns:

作者非常细致地监视着 active selection 过程,并对选中的 candidates 进行检查(exam)。例如,在结肠镜视频帧分类的实验中,作者在第三次迭代(iteration)时,通过 AIFT 的六种方法选择了前 10 个 candidates,如图10所示(附加材料)。本节作者主要整理了如下几点 observation:

1)模式 A 和 模式B 在早期的 AIFT 比较占优势 { 早期的 AIFT 比较有可能会选择模式A和模式B的candidate },因为 CNN 还未使用目标领域进行 fine-tuning。

2)模式 C, D, E 在后期的AIFT 比较占优势,因为 CNN 已经在目标领域经过大量地 fine-tuning。

3)使用 majority selection 的  等三种方法中,能够排除模式 C, D, E。而不使用 majority selection 的  方法就能够处理好模式 C, D, E的candidates。

4)模式 B, F, G 的 candidates 对提升当前 CNN 的性能很有帮助。

5)如图10所示, 更倾向于选择属于模式A的candidates,因为模式A具有高度不确定性。

6)如图10所示, 更倾向于选择属于模式B的candidates,而 更倾向于选择属于模式C的candidates。这也正是为什么可能突然对提升当前CNN的性能具有贡献,为什么通常情况下 的效果会更好。

7)理论上,组合  得到的效果应该更好,但是如何分配它们的权重很难,也很重要。因为这需要根据特定的场景去确定  的值,这也是将来需要进一步研究的工作。

Conclusion,discussion and future work

作者开发了一种主动的,增量的 fine-tuning 方法,将 active learning 整合到 transfer learning,具有如下优势:

1)模型一开始使用标注数据完全为空的数据集,首先主动选择最具有 informative and representative 的样本给专家标注,然后将这些标注好的数据通过 continuous fine-tuning 的方式精细调整当前的 CNN,增量式的提升CNN的性能。

2)AIFT 方法通过 majority selection 能够自动地处理噪声数据,而且该方法只计算一部分 patches 的 entropy 和 diversity,大大的减少了计算时间。

3)作者将 AIFT 方法运用到三种不同的医疗图像应用中并进行评估,证明了该方法至少能够减少一半的标注代价。

 

作者实验过程中使用的 CNN 是 AlexNet 网络结构,因为在 Caffe 提供的库中已经有预训练好的 AlexNet 模型。而且 AlexNet 的网络结构很适合作者的实验,特别是它那不深不浅的网络深度:AlexNet 的网络结构足够用来研究 AIFT 对预训练 CNNs 性能的影响,网络结构也不会太深以致于作者能够快速地完成相关的实验。当然,更深的网络结构(比如,VGG,GoogleNet,ResNet 等)在一些具有挑战性的计算机视觉任务中已经广泛使用,并且达到较高的性能。然而,作者的目的并不是为了在不同的医疗图像任务中得到最好的效果,而是为了回答一个 critical question:将 CNNs 运用到医疗图像时,如何能够显著地减少标注代价(How to dramatically reduce the cost of annotation when applying CNNs in biomedical imaging)。论文末尾的附加材料提供了所使用的 AlexNet 网络结构以及相关的参数。

在现实生活中,数据集通常是不平衡的(正负样本)。为了得到更好的分类效果,训练过程应该既要有正样本,也要有负样本。图9展示了在结肠镜质量的应用中,6种AIFT相关的方法在每次迭代中选择的正负样本比例。对于 Random selection,在整个 fine-tuning 过程中所选择的正负样本比例基本不变,a reason that IFT Random has stable performance at the cold-start。 似乎具有自动保持数据平衡的能力,这个新的发现值得在未来继续研究。

在标注数据方面,你可以选择在 candidate level、patient level 或者 patch level { 一个 patient 可以产生多个 candidate,一个 candidate 可以产生多个 patches }。作者选择在 candidate level 对样本进行筛选,分类,标注。选择 patient level 显然能够减少标注代价,但是会带来更多带有噪声的标签。选择 patch level 将解决噪声标签的问题,但是增加大量的标注代价。作者相信选择 candidate level 对三个相关的实验是最好的权衡。

作者只选择 entropy 和 diversity 两个指标作为评估标准。理论上,已经有很多研究者设计了大量关于 active selection 的方法,但是作者发现只有上文整理的7种基本的模式。作为论文的结论,作者方便地关注这7种模式,而不是许多方法。有大量的方法用于选择一种特殊的模式:如,entropy,Gaussian distance,standard deviation 等指标会倾向于选择属于模式A的candidate,而 diversity,variance,divergence 则倾向于选择属于模式C的candidate。

 

Supplementary material:部分附加材料

(论文中使用的 AlexNet 网络结构)

(论文的三种实验对应的参数)

 

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值