美文网首页Major-人工智能
【Major独家编译】微软数据专家教你如何在科学碗比赛中快速入门

【Major独家编译】微软数据专家教你如何在科学碗比赛中快速入门

作者: Major术业 | 来源:发表于2017-03-07 10:55 被阅读292次

作者:微软数据科学家Miguel Fierro,高级数据科学家Ye Xing和首席数据科学家Tao Wu

译者:刘彬-Major

自一月份中旬以来,数据科学碗肺癌检测比赛吸引了超过1,000份文档的提交。为了在这场比赛中获得胜利,数据科学家们需要快速训练模型并不断进行数据的更新。因此培训机器学习的速度是在这场比赛里获胜的重要因素之一。在这方面,认知工具包和LightGBM表现都非常出色,结合Azure的高性能GPU VM,它们会帮助你在数据科学碗的比赛中更好的竞争。

所以在本文中,我们将展示如何在一小时之内使用Boosting tree,图像特征提取和预先训练的卷积神经网络(CNN)来扫描病理切片从而判断病人是否会产生癌变。为了实现这一点,我们采用以下方法:

1.一个预训练的CNN作为图像特征效。这个152层ResNet模型会在Microsoft Cognitive Toolkit深度学习框架(以前称为CNTK)上实现,并使用ImageNet数据集进行训练。

2.LightGBM梯度 boosting框架作为图像分类器。

3.具有GPU加速的Azure虚拟机(VM)

使用GPU VM的时候,你需要安装这些框架:

CUDA:CUDA 8.0 可以从NVIDIA网站下载(需要注册)。如果你使用Linux,你还需要从网站下载CUDA Patch 1。该补丁添加了对gcc 5.4的支持作为主机编译器之一。

cuDNN:cuDNN 5.1(需要注册NVIDIA)。

MKL:英特尔数学核心库(MKL)版本11.3更新3(需要注册Intel)。

Anaconda:Anaconda 4.2.0提供对conda环境和jupyter笔记本的支持。

OpenCV:从官方OpenCV网站下载并安装。这也可以通过conda使用此命令安装:

conda install -chttps://conda.binstar.org/conda-forge opencv

Scikit-learn:Scikit-learn 0.18很容易通过pip安装:

pip installscikit-learn

认知工具包:用于Python的认知工具包2.0 beta9。您可以从源代码构建,但它更快地安装预编译的二进制文件。

LightGBM:LightGBM很容易与CMake安装。您还需要安装Python绑定。

数据管理库:您还需要安装dicom和glob库,使用pip:

pip install pydicomglob2

背景介绍

据美国肺部研究协会称,肺癌是导致死亡率高的主要癌症,在美国不管是男性还是女性,早期患癌的诊断率都比较低。Kaggle的数据科学碗竞赛旨在帮助早期肺癌检测。参与者使用机器学习来确定肺的CT扫描是否具有癌性病变。扫描结果参见下图

使用认知工具包和LightGBM的癌症图像检测

许多深度学习应用使用预训练模型为基础,再训练模型应用到新的领域,这个技术被称为迁移学习。我们使用从数据科学碗的数据集中训练好的模型来进行迁移学习,从而生成特征。一旦特征被提取,使用了LightGBM的Boosting tree就会被应用于图像分类。

图2用来自ImageNet的图像表示ResNetCNN。输入是猫的RGB图像,输出是概率向量,其最大值对应于标签“tabby cat”。

图2是分类图像CNN的典型方案。在这种情况下输入的图像是猫,具有224×224的大小和3的深度,对应于三个颜色通道,红色,绿色和蓝色(RGB)。图像暴露于每个内层中的卷积,尺寸减小并且深度增长。最后一层输出1000个概率的向量,对应于ImageNet的1000个类。

图3的方案是患者扫描的图像被批量地馈送到网络,让其在正向传播之后被转换成特征。此过程使用MicrosoftCognitive Toolkit计算。接下来,这些特征被LightGBM设置从而提升Boosting tree的输入,然后将图像分类为患有或不患有癌症患者的图像。

为了创建特征,我们删除CNN的最后一层,并使用倒数第二层的输出作为特征。过程如图1所示。每个患者具有任意数量的扫描图像。图像被裁剪为224×244,并包装成图2,以匹配ImageNet的格式。它们以k批次被传送到预训练网络,然后在每个内层中卷积,直到完成,这个过程使用认知工具包执行。

同时在图4中,我们展示出了Boosting tree的优化损失。在NC-24 GPU实例上的Azure虚拟机中,ResNet-152的计算时间为53分钟,ResNet-18的计算时间为29分钟。因此,Boosting tree的训练时间可以在1和10分钟之间变化。一旦训练完成,我们可以使用由Kaggle提供的验证集来计算预测。

有可能的改进

在这篇文章中,我们讨论了一个应用ImageNet预先训练的ResNet CNN架构,基于医学影像检测癌症的基本示例,这将有助于你在当前的数据科学碗竞赛中快速开始。我们提供的示例是如何学习从自然图像转化到医学图像。在医学影像领域,我们经常缺乏大到足以训练深层神经网络的图像数据集,因此使用预先训练的ImageNet CNN模型作为基础缓解了这个问题。虽然医学图像和自然图像之间的图像对比度和纹理的差异差异明显,但是监督微调,即对特定范围的数据进行反向传播在很多任务中显示执行良好。

另一个有可能的改进是将传统医学图像技术特征与CNN模型集成。例如,在处理完图像传送到CNN之前,我们可以使用计算机辅助检测(CAD)系统来帮助识别,这将有助于改善肺部的CT识别速度。此外,还可以考虑2D的自然图像和3D肺癌CT图像之间的尺寸差异。本文提供的示例是用三个相邻的轴向图像作为三个输入通道来替换来自2D 自然图像的三个原始RGB通道。

#点击“阅读原文”,可查看英文原文#

更多干货,请关注订阅号:Major术业

Major术业

相关文章

网友评论

    本文标题:【Major独家编译】微软数据专家教你如何在科学碗比赛中快速入门

    本文链接:https://www.haomeiwen.com/subject/vltmgttx.html