亚马逊专家揭秘:如何建立自动检测乳腺癌的深度学习模型

安妮 编译自 Insight Data Science 量子位出品 | 公众号 QbitAI

本文作者Sheng Weng,现亚马逊Alexa项目组数据专家,莱斯大学应用物理专业已毕业博士生,主要研究用超快激光转化生物光子学成像及显微镜检查。

前不久,他参加了Insight Data Science的青年计划——这是一个为期7周的博士后团体的交流计划,是学术界与企业界的医学数据研究交流桥梁。参加本项目期间,Sheng Weng为为医疗检测公司iSono创建了用深度学习自动检测乳腺癌的新模型,并将研究原理发布在公司的官方博客上。量子位全文编译整理如下:

Sheng Weng照片

背景资料

乳腺癌是导致全球女性死亡的第二大癌症类型,其中,浸润性乳腺癌是主要的乳腺癌类型。据报道,美国八分之一的女性都会被确诊为浸润性乳腺癌。在2017年,粗略预计有255180例患者被确诊为浸润性乳腺癌,有40610位患者死于乳腺癌。

一般来说,医生都会建议健康女性一年做一次乳腺癌检查,尤其是年过50的中年妇女,她们的患病率较高。传统的检查流程一般包括乳房X射线和超声图像检测,但这是一种比较主观的诊断,非常依赖医生的水平。

iSono Health是一个初创公司,致力于开发低成本的自动超声图像检测平台,促进女性每月进行乳腺癌自我检测。我创建的模型需要借助iSono的app分析检测结果,它能够用超声图像区分乳腺肿块是良性还是恶性的,并且可以实时记录并查看。

数据概览

iSono Health提供了一份原始数据集,包含2684个JPEG格式的2D乳腺超声检测图像。我们将这些原始数据进行了归类:

良性案例:1007例

恶性病例:1499例

非典型病例:178例

良性致病类型:12例

恶性致病类型:13例

非典型致病类型:3例

大多数的超声检测图像大小为300*225像素,每个像素的值在0到225之间。这些图像来自不同的渠道,所以对病情的判定和解决方案都不尽相同。总共有12例良性致病类型和13例恶性致病类型,下图就展示了集中不同致病类型的乳腺病变。

为了使病变检测成为一个二进制的分类问题(良性或恶性),我忽略了所有的致病类型和非典型病例信息,并随机挑选了1920张图像用于建立和评估模型——这些图像中一半是良性的,而另一半是恶性的,是一个相对平衡的数据集。

数据准备

我用3*3的中值滤波器来移除超声图像中的斑点噪音,将每个图像上的像素值标准化,这样就会出现零均值。

先说明一点,对于乳腺癌这种复杂的图像分类问题,1920张图像是一个相对较小的数据集。扩充数据能够减少过度拟合,增强模型的泛化能力,是极具吸引力的解决方案。我们将这个数据集分成三部分,75%用于训练,12.5%用于验证,剩下的12.5%作为测试数据集。基于乳腺病变对旋转并不敏感的假设,我将每张图片进行旋转。具体来说,就是将每张图片在-10°到10°之间随机进行旋转,并重复了12次,最终得到1920*12=23040张图像。因为我想让整个病变区位于图像的核心,所以并没有使用裁剪或移动等其他的增强技术。

根据观察,几乎所有图片中的病变区(包含病变处和四周)都在图像中央,因此我可以把图片裁剪成200*200像素大小,这样也能移除图像旋转引起的填充。为了保持网络可控,每张图像降低采样到原图像的五分之一,也就是40*40像素大小。下面这张图就是数据准备的流程图。

数据增强步骤结束之后,现在手边有17280张训练图像,2880张验证图像,和2880张用于测试的图像。每个数据集都包含着50%的良性病例和恶性病例。在数据增强之前,验证和测试集和训练集要分开,所以各分组间没有重叠的原始图像。

算法

为了得到合适的分类器,常规方法通常是三个步骤:特征提取、特征选择和分类。这三个步骤需要单独被处理好,之后再整合在一起。提取判别特征可能会减轻后续特征选择和分类难度。然而,有效特征是基于问题的,并且高度依赖图像处理中每个中间结果 ,所以通常需要很多试错设计和针对不同用户的干预措施。

近年来深度学习技术的进步可能会改变图片分类的设计。《自然》杂志最近报道了一项用深度卷积神经网络对皮肤癌进行分类的进展,其效果与皮肤病专家的判断相当。没有定义“深度”的具体含义,但简单来讲它是每个神经元之间可能存在的联系数量,确实真正影响了深度学习结构的“深度”。

深度学习可以直接从训练数据数据中提取特征,而不需要对特征的提取和选择进行详细描述。神经网络将输入信息通过层层的神经元传递,之后将输入信息转换成输出信息。有了反向传播的帮助,神经网络的内部权重会根据每次迭代获得的错误信息自动更新。

在这个项目中,我研究并比较了两种不同深度学习架构的表现——即全连接神经网络(FCNN)和卷积神经网络(CNN)。这两种模型都是使用python和TensorFlow在Nvidia Tesla K80 GPU上实现的,用的是亚马逊云服务(AWS)EC2 p2.xlarge。

全连接神经网络

在一个全连接神经网络中,每个神经元与前一层所有神经元连接,每个连接都有自己的权重。然而,权重间的信息却不被神经元共享。在用全连接神经网络之前,需要增加一个额外步骤——将所有的2D图像转化为长度为1600的1D序列。

我构建的全连接神经网络有一个输入层,三个隐藏层(各自分别有512、256和128个节点),和一个有两个输出的输出层。

卷积神经网络

在一个卷积神经网络中,每个神经元只与前一层的几个局部神经元联系在一起,并且在该层中每个神经元的权重相同。因为卷积运算产生的信息与图像的空间特性相关,因此卷积神经网络很适合解决图像分类问题。例如,卷积可能导致图像边缘更加突出。

我构建的卷积神经网络有三个卷积层,每一层都是上一层的图像通过5*5的滤波器/内核(kernel)卷积形成。将一个卷积层的输出输入给另一个卷积层,可以提取出更高阶的特征。卷积后,这些特征可更容易被全连接网络学习。卷积层可以被看做是为数据做准备的,让全连接层能够利用输入图像的空间结构。我的直觉是,在图像经过多个卷积层后,神经元将被编码成完全相关的空间特征。卷积层后有两个全连接层,分别有512和256个节点。这个卷积神经网络架构的灵感来自AlexNet的前几层,下图显示了详细的信息。

模型评价

卷积神经网络比全连接神经网络在下面的评价指标中表现得要好。卷积神经网络的预测精度是73%,而全连接神经网络的精度只有66%。在下面这张复杂的矩阵图中,分类良性和恶性肿瘤病例的阈值是0.5,也是我们之前的默认值。降低阈值可以提高灵敏度,减少假阳性病例。即这种情况下有一个微妙的平衡,假阳性病例具有重要的暗示——尤其是在预防性乳房切除术上。

卷积神经网络的优点也可以在下面两个图表中观察到。在第3000次训练迭代后,卷积神经网络的精确度快速且平稳地增加到0.9,而全连接神经网络在经过10000次迭代后还达不到这一水平。另一方面,卷积神经网络的损失值比全连接神经网络要低,这表明卷积神经网络中的梯度下降函数在收敛到局部最小值处表现最好。损失值是由成本函数计算的,基本定义了模型与期望输出值之间的差距。梯度下降试图通过缓慢改变权重将价值函数最小化。

这两个模型中都应用了随机梯度下降(SGD)和线性整流函数(ReLU),此外还采用了学习率衰减的方式提升性能表现。Dropout能够防止其过拟合。

结语

这些代码将给iSono Health作为下一步算法开发的基准模型。卷积神经网络具有许多可以进一步调整的超参数,包括但不限于:卷积层数、完全连接层数、滤波器数量、滤波器尺寸、隐藏节点数、批量大小、学习速率、最大值合并大小,丢弃率等。此外,更好的图像增强以及来源一致的图像可能表现地更好。

从零开始构建CNN耗时且计算成本昂贵,学习是另一种可行的解决方案。它指利用预先训练的深度学习模型(例如,GoogleNet Inception v3)学习特征过程,然后应用于不同的数据集。如果有更多的数据可用,转移学习可能有助于培训程序。

最后,对所有帮助过我的人表示感谢。

参考资料

[1]http://www.breastcancer.org/about_us/press_room/press_kit/facts_figures

[2] Cheng, Jie-Zhi, et al. “Computer-Aided diagnosis with deep learning architecture: applications to breast lesions in us images and pulmonary nodules in CT scans.” Scientific reports 6 (2016).

[3] Esteva, Andre, et al. “Dermatologist-level classification of skin cancer with deep neural networks.” Nature (2017).

[4] MLA Krizhevsky, Alex, et al. “Imagenet classification with deep convolutional neural networks.” Advances in neural information processing systems (2012).

原文发布于微信公众号 - 量子位(QbitAI)

原文发表时间:2017-06-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CDA数据分析师

【技术】SPSS因子分析

因子分析在各行各业的应用非常广泛,尤其是科研论文中因子分析更是频频出现。小兵也凑个热闹,参考《SPSS统计分析》书中的案例,运用SPSS进行因子分析,作为我博客...

30590
来自专栏人工智能

深度学习如何在医学影像分割上大显神通?——分割网络的三个改进思路

一、医学影像分割有助于临床工作 图像分割在影像学诊断中大有用处。自动分割能帮助医生确认病变肿瘤的大小,定量评价治疗前后的效果。除此之外,脏器和病灶的识别和甄别也...

3.4K120
来自专栏机器之心

专访 | 对抗样本攻防战,清华大学TSAIL团队再获CAAD攻防赛第一

同样在去年,该团队在 NIPS 2017 AI 对抗性攻防竞赛的三项比赛任务中(有/无特定目标攻击;攻击检测),全部获得冠军,战胜了包括斯坦福、约翰霍普金斯大学...

32110
来自专栏人工智能头条

Yoshua Bengio:在能量模型中使用提前推断近似反向传播

17420
来自专栏AI科技评论

清华朱军团队包揽三项冠军,NIPS 2017对抗样本攻防竞赛总结

AI 科技评论按:自 Ian Goodfellow 等研究者发现了可以让图像分类器给出异常结果的「对抗性样本」(adversarial sample)以来,关于...

19840
来自专栏AI科技评论

热议 | 恺明大神又发新作 Rethinking ImageNet Pre-training,读过论文的你怎么看?

社长为你推荐来自 AI 研习社问答社区的精华问答。如有你也有问题,欢迎进社区提问。

9330
来自专栏ATYUN订阅号

如何通过热图发现图片分类任务的数据渗出

文末GitHub链接提供了生成以下图片所需的数据集和源代码。本文的所有内容都可以在具有1G内存GPU的笔记本电脑上复现。

14310
来自专栏云时之间

什么是过拟合?

各位小伙伴们大家好,很高兴能够和大家继续讨论机器学习方面的问题,今天想和大家讨论下关于机器学习中的监督学习中的过拟合的问题,以及解决过拟合的一些方法。 在正式...

39880
来自专栏机器学习算法与Python学习

干货 | 从入门到放弃:21种机器学习算法详解,附多种下载方式

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 下面是各模型在博客中的详细解说,为方...

54990
来自专栏AI科技评论

干货 | 浙大博士生刘汉唐带你回顾图像分割的经典算法

AI科技评论按:图像语义分割是 AI 领域中一个重要的分支,是机器视觉技术中关于图像理解的重要一环。近年的自动驾驶技术中,也需要用到这种技术。车载摄像头探查到图...

40650

扫码关注云+社区

领取腾讯云代金券