【论文笔记】Convolutional Neural Networks for Medical Image Analysis: Full Training or Fine Tuning?

发表期刊:《IEEE transactions on medical imaging》
发表时间:2016
主要作者:Tajbakhsh N, Shin J Y, Gurudu S R, et al.
目录:摘要 | 相关工作 | 具体研究内容 | 总结 | 生词


1. 摘要

大挑战:医学数据集数量有限,而从头训练一个CNN需要大量有标注数据,一个可行的替代方案是fine-tune。
Training a deep convolutional neural network (CNN) from scratch is difficult because it requires a large amount of labeled training data and a great deal of expertise to ensure proper convergence. A promising alternative is to fine-tune a CNN that has been pre-trained using, for instance, a large set of labeled natural images. However, the substantial differences between natural and medical images may advise against such knowledge transfer.
研究目的:在 有限的医学数据集 / 特定的医学任务 上fine-tune(迁移学习)是否可行?
In this paper, we seek to answer the following central question in the context of medical image analysis: Can the use of pre-trained deep CNN with sufficient fine-tuning eliminate the need for training a deep CNN from scratch【翻译:从头开始训练】?
实验设置
To address this question, we considered 4 distinct medical imaging applications in 3 specialties (radiology, cardiology, and gastroenterology) involving classification, detection, and segmentation from 3 different imaging modalities, and investigated how the performance of deep CNN trained from scratch compared with the pretrained CNN fine-tuned in a layer-wise manner.
结论
Our experiments consistently demonstrated that:
(1) the use of a pre-trained CNN with adequate fine-tuning outperformed or, in the worst case, performed as well as a CNN trained from scratch; ( fine-tuning比trained from scratch更好
(2) fine-tuned CNN were more robust to the size of training sets than CNN trained from scratch;(相比trained from scratch,fine-tuning对数据量更鲁棒
(3) neither shallow tuning nor deep tuning was the optimal choice for a particular application; (fine-tuning的方式,在不同任务中的效果不同
(4) our layer-wise fine-tuning scheme could offer a practical way to reach the best performance for the application at hand based on the amount of available data.(提出逐层fine-tuning能在有限的数据量下寻找最优的训练策略

2. 相关工作

作者将迁移学习在medical imaging上的研究分为两类:
(1)pre-trained CNN单纯作特征提取器,即从其全连接的某层提取特征用于后续分类器(例如:SVM等)的训练。
(2)pre-trained CNN直接在新数据集上fine-tune。进一步可分为两种情况:将其分类器替换成一个新的分类器和保持原来的分类器不变。
注意:本文研究内容属于(2)中保持原来的分类器不变的情况。
什么是fine-tune?
第一阶段:使用(源任务)大量有标签数据集训练这个CNN,得到模型权重;
第二阶段:利用(目标任务)少量有标签数据集微调这个CNN,微调之前使用第一阶段的权重初始化这个CNN。

3. 具体研究内容

研究四个任务:
A. Polyp detection 结肠镜检查视频中的息肉检测
B. Pulmonary embolism detection CT图像中的肺栓塞检测
C. Colonoscopy frame classification 结肠镜检查视频图像质量评估
D. Intima-media boundary segmentation 超声图像中的内膜-中膜边界分割

实验CNN:AlexNet(caffe框架实现,预训练模型也来自caffe框架内置的trained model)

实验分为三组:
第一组:通过逐层fine-tune的方式探索如何使CNN的性能达到最优?(逐层冻结CNN)
第二组:不同数据量对于fine-tune和trained from scratch的影响?(这里的fine-tune指的是不冻结任何层,而直接微调所有层)
第三组:fine-tune和trained from scratch对于收敛速度的影响?(这里的fine-tune指的是不冻结任何层,而直接微调所有层)

评估指标:
第一组和第二组:FROC曲线(横坐标是FP率,纵坐标是召回率,曲线越靠近左上角越好。)
第三组:迭代次数-AUC曲线(迭代次数用mini-batches指代;横坐标是mini-batches,纵坐标是AUC,曲线越靠近左上角越好。)

逐层fine-tune策略:
一般来说,CNN的前几层学习低级特征,而后几层学习高级特征,因此一般迁移学习时只需要fine-tune后几层即可。但是当目标任务和源任务差距较大时,就需要更深层次的fine-tune。一种有效的微调技术是从最后一层开始,然后在更新过程中逐步包括更多的层,直到达到所需的性能。我们将最后几个卷积层的调优称为“浅调优”,将所有卷积层的调优称为“深调优”。实验中,作者通过将某些层学习率置为0来冻结这些层,从而达到逐层调优的效果。具体Learning parameters的设置如下图所示:其中,α指学习率、μ指动量、γ是衰减系数。偏置项的学习率总是设置为相应权重的学习率的两倍。
在这里插入图片描述
训练细节/经验:
(1)α和scheduling rate严重影响了 CNN 的收敛性,学习率设置为 0.001 确保了所有应用程序都收敛。(较小的学习率会减慢收敛速度,较大的学习率通常会导致收敛失败。)
(2)γ决定了收敛速度。本文设置为0.95。(收敛速度慢需要调大学习率,收敛速度块需要调小学习率)
(3)CNN采用随机权重初始化。(作者也尝试了其他方法,收敛速度不同,但对性能影响不大。)

具体实验结果:(以Polyp detection任务为例,其他三个任务得出了统一的结论)
第一组实验结果:fine-tune所有层 相比 fine-tune其他层 和 trained from scratch 的结果达到了最优。
注意:
(1)有的任务是fine-tune某些层好,但总体看fine-tune比trained from scratch好,而寻找最优的fine-tune方法作者在前面已经提到过,就是逐层fine-tune策略。
(2)图中的对比算法handcrafted方法是自己曾经发表过的工作(都是当时的SOTA)。这图也证明了CNN的性能已经远超他们提出的handcrafted方法。
在这里插入图片描述
第二组实验结果:无论在多少数据量的情况下,fine-tune所有层都优于trained from scratch。
在这里插入图片描述第三组实验结果:fine-tune所有层的收敛速度比trained from scratch快。
在这里插入图片描述

4. 总结(略,见摘要)

5. 生词:

  • convergence 收敛
  • at hand 可用的
  • imaging modality systems 成像系统
  • lesion 病变
  • stratified 分层的
  • commencement开端

写在最后:为什么读这篇文章?

我研究的课题是基于内镜视频流的胃肠道息肉检测,也就是视频目标检测在医学影像方面的一个分支。在此过程中,我想利用跟踪器来获取时序信息以修正检测器不稳定和不准确的结果。于是,我在检测器后拼接了一个跟踪器用于获取跟踪管道,并基于跟踪管道的时序一致性和时序特征,利用一个CNN来修正原检测结果。简单而言,就是在一个检测器后又添加一个新的分类器,这个分类器用于修正原检测器的评分误差。但是,在训练的过程中出现了新分类器的loss不下降的问题,考虑可能是训练方式不对所导致的,因此特拿此文章来细读,希望能够找到合理的解决方案。
我的训练方式:
第一阶段:使用大量labeled still image获得检测器的预训练权重;
第二阶段:利用预训练权重初始化检测器,使用有限的video 对整体框架进行fine-tune。
实验发现,我们的框架trained from scratch根本无法训练,因而只能使用以上fine-tune的方式训练。
如果读者有类似检测器和跟踪器拼接的经验和建议,请在评论区畅所欲言,本人感激不尽!
这篇论文给我的启发:
(1)对于息肉检测任务,fine-tune所有层最好(和我的做法一致);
(2)使用不同数据量来训练自己的模型(正在实验)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值