医学图像识别的问题

如果将CNN应用于医学图像,首要面对的问题是训练数据的缺乏。因为CNN的训练数据都需要有类别标号,这通常需要专家来手工标记。要是标记像ImageNet这样大规模的上百万张的训练图像,简直是不可想象的。

因为CNN的参数多,必须依靠大规模的训练数据才能防止过度拟合(Over Fitting)。在数据量少的情况下,有两种解决方案:一个叫Data Augmentation。就是依赖现有的图像,通过旋转,平移,变形等变化,产生更多的图像。二是使用转移学习(Transfer Learning)。其思想是通过在另一种大规模的数据集上面训练,得到CNN的参数作为初始值,再在目标数据集上训练对参数进行调优(Fine-tuning)。

转移训练的原理是某些特征在不同的训练数据集上是具有通用性的。对于CNN而言,其第一层是提取局部的特征,在后续层通过下采样扩大感知区域, 再往后的层感知区域更大,得到的特征也更加抽象。在前几层的特征通常并不与某一个具体的分类任务直接相关,而是类似于Gabor Filter, 边缘,与方向有关的特征等。这些特征都是比较通用的,因此可以在一个数据集上训练得到而应用在一个与之类似的数据集上。当然,如果训练出的特征对某个训练数据集或者识别任务具有特异性,用它做转移学习就未必有好的效果。

对于医学图像而言,得到大规模的训练数据是比较不容易的,那么可否使用Transfer Learning利用现成的ImageNet的图像来帮助医学图像的识别呢?ImageNet里面的图像(二维,彩色)没有医学图像,包含一些诸如鸟类、猫、狗、直升机等物体的识别,与医学图像(二维或三维,非彩色)相差很大。如果回答是肯定的话,是一件令人非常振奋的事情。

使用ImageNet做转移学习的效果

在NIH的Hoo-Chang Shin ; Holger R. Roth等人最近的一篇文章中研究了这个问题(下载链接)。其全名为:Deep Convolutional Neural Networks for Computer-Aided Detection: CNN Architectures, Dataset Characteristics and Transfer Learning。

该文章除了研究上述问题,还比较了CifarNet (2009年), AlexNet(2012年)和GoogleNet(2014年)这三个一个比一个复杂的网络结构在不同的训练数据量的情况下的性能。这三个网络的结构简图如下: 

该文章研究的医学图像应用为CT图像中胸腹部淋巴结(三维)的检测和肺部疾病的分类(二维)。如何让彩色二维图像与医学图像相结合呢?该文采用了两个小技巧: 

对于三维CT图像,将通过某一点的冠状面、矢状面和横断面的三个二维图像组合在一起,作为RGB的三个通道,使之与彩色图像兼容。对二维CT图像,分别采用三种不同的CT灰度窗口,得到三张图像,组合成彩色图像。 

实验的结果如上图。可以看出,在不使用Transfer Learning的情况下(Random Initialization, RI),AlexNet虽然比GoogleNet简单,但是效果比GoogleNet好,这是因为GoogleNet参数太多,训练数据不够导致过度拟合,使其泛化能力下降,从而分类精度降低。使用了Transfer Learning (TL)后,GoogleNet的性能提高很多,效果比AlexNet要好。

Random Initialization和Transfer Learning 在训练过程中的性能比较如下图: 

可见Transfer Learning减少了测试数据上的误差,提高了分类的准确率。

再来看看Transfer Learning学到了那些特征: 

上图显示了在CNN的第一层中学习到的特征。可以看出在不使用Transfer Learning的情况下,单从CT图像上学习到的特征都表现出比较模糊的样子,而使用Transfer Learning的CNN相应的特征中包含一些和边缘有关的特征,这些实际上是从ImageNet中学习过来的,但有助于CT图像的分类和识别。

 
0

ImageNet && 医学图像的识别的更多相关文章

  1. 刷新神经网络新深度:ImageNet计算机视觉挑战赛微软中国研究员夺冠

    微软亚洲研究院首席研究员孙剑 世界上最好计算机视觉系统有多精确?就在美国东部时间12月10日上午9时,ImageNet计算机视觉识别挑战赛结果揭晓——微软亚洲研究院视觉计算组的研究员们凭借深层神经网络 ...

  2. 深度学习研究理解5:Visualizing and Understanding Convolutional Networks(转)

    Visualizing and understandingConvolutional Networks 本文是Matthew D.Zeiler 和Rob Fergus于(纽约大学)13年撰写的论文,主 ...

  3. 深度学习“引擎”之争:GPU加速还是专属神经网络芯片?

    深度学习“引擎”之争:GPU加速还是专属神经网络芯片? 深度学习(Deep Learning)在这两年风靡全球,大数据和高性能计算平台的推动作用功不可没,可谓深度学习的“燃料”和“引擎”,GPU则是引 ...

  4. 论文阅读(Lukas Neumann——【ICCV2017】Deep TextSpotter_An End-to-End Trainable Scene Text Localization and Recognition Framework)

    Lukas Neumann——[ICCV2017]Deep TextSpotter_An End-to-End Trainable Scene Text Localization and Recogn ...

  5. cuda-convnet在Ubuntu12.04+CUDA5.5下的配置

    deep learning近年来非常之火,尤其是在IMAGENET上的识别效果更是惊呆了小伙伴,其所用的Hinton的学生编写的cuda-convet代码早已公开,但是一直没有时间去仔细研究,最近趁着 ...

  6. CNN更新换代!性能提升算力减半,还即插即用

    传统的卷积运算,要成为过去时了. Facebook和新加坡国立大学联手提出了新一代替代品:OctConv(Octave Convolution),效果惊艳,用起来还非常方便. OctConv就如同卷积 ...

  7. Kaggle上的犬种识别(ImageNet Dogs)

    Kaggle上的犬种识别(ImageNet Dogs) Dog Breed Identification (ImageNet Dogs) on Kaggle 在本节中,将解决在Kaggle竞赛中的犬种 ...

  8. 微软亚洲实验室一篇超过人类识别率的论文:Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification ImageNet Classification

    在该文章的两大创新点:一个是PReLU,一个是权值初始化的方法.下面我们分别一一来看. PReLU(paramter ReLU) 所谓的PRelu,即在 ReLU激活函数的基础上加入了一个参数,看一个 ...

  9. caffe_手写数字识别Lenet模型理解

    这两天看了Lenet的模型理解,很简单的手写数字CNN网络,90年代美国用它来识别钞票,准确率还是很高的,所以它也是一个很经典的模型.而且学习这个模型也有助于我们理解更大的网络比如Imagenet等等 ...

随机推荐

  1. VS013的单元测试去哪里了

    需要安装这个插件 http://visualstudiogallery.msdn.microsoft.com/45208924-e7b0-45df-8cff-165b505a38d7

  2. HDU5140---Hun Gui Wei Company (主席树)

    主席树太强大了,,如果仅仅用来求第k大就太屈才了..貌似和HDU4605差不多,那个是在图上根据点的顺序建立主席树,这个是根据年龄大小 或者等级高低建立主席树. 题意 大致就是一个二维区间的求和,但是 ...

  3. HDU-3665(单源最短路)

    Problem Description XiaoY is living in a big city, there are N towns in it and some towns near the s ...

  4. C plus plus primer plus

    1,运算符,操作数; 使用相同的符号(基本运算符,+ - * /  %),进行多种操作(指使用一个运算符符号,对不用类型的变量进行操作,int ,float,double),此概念将运算符的重载(op ...

  5. 【转】在ASP.NET MVC中,使用Bundle来打包压缩js和css

    在ASP.NET MVC4中(在WebForm中应该也有),有一个叫做Bundle的东西,它用来将js和css进行压缩(多个文件可以打包成一个文件),并且可以区分调试和非调试,在调试时不进行压缩,以原 ...

  6. Highcharts 基本曲线图

    基本曲线图实例 文件名:highcharts_line_basic.htm <html> <head> <meta charset="UTF-8" / ...

  7. wpf下拉框不能多选的原因

    <dxe:ComboBoxEdit Margin="0"  Height="25" Width="65" VerticalAlignm ...

  8. 你需要知道的九大排序算法【Python实现】之归并排序

    四.归并排序 基本思想:归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的.然后再把有序子序列合并为整体有序序列.归并过程:比 ...

  9. Android adb

    查看原文:http://blog.csdn.net/u010818425/article/details/52266593 (一)基础操作 安装app adb install -r xxx.apk / ...

  10. [转]Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果

    转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17539199),请尊重他人的辛勤劳动成果,谢谢! 我在上一 ...