社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

如何用深度学习检测女性的第一杀手“乳腺癌”?

51CTO技术栈 • 8 年前 • 629 次点击  

乳腺癌是女性最常见的浸润性癌症,也是仅次于肺癌致女性死亡的第二大癌症。


在本文中我将构建一个基于 WideResNet 的神经网络,并将幻灯片图像分为两类,一类使用深度学习来检测乳腺癌,另一类是不使用深度学习来检测。


浸润性导管癌(IDC)是最常见的乳腺癌类型。美国癌症协会估计,每年美国超过 18 万妇女发现患有浸润性乳腺癌,并以 IDC 居多。


准确识别和分类乳腺癌类型是一项重要的任务,基于人工智能的自动化方法可大大节省时间,减少误诊。


关于数据集


俄亥俄州克利夫兰凯斯西部储备大学的研究人员收集了这个问题的数据集。原始数据集由Kaggle的工作人员预先处理,作为我们工作的起点。

详见:http://gleason.case.edu/webdata/jpi-dl-tutorial/IDC_regular_ps50_idx5.zip

图 1:每张幻灯片大约得到 1700 张 50x50 像素的小片


数据集有 162 个大切片(whole mount)幻灯片。这些幻灯片以 40 倍分辨率加以扫描。最后,它们被分成了 275215 个 50x50 像素的小片。


然后将 0 或 1 的标签分配给每个小片,其中包括 IDC 的小片的标签为 1,不包括 IDC 的小片的标签为 0。

图 2:阳性和阴性 IDC 组织的 3 个例子


用 WideResNet 对幻灯片进行分类


使用残差连接的 ResNet 架构非常擅长处理图像分类任务。ResNet 的核心思想是,引入跳过一层或多层的所谓的“身份快捷方式连接”。


WideResNet 架构表明只有 16 层深度也可以获得类似的性能。这有助于解决非常深的与 ResNet 有关的各种问题,比如爆炸/消失的梯度和退化。


使用 Vincent Fung(https://medium.com/@vincent.fung13)和 Apil Tamang(https://medium.com/@apiltamang)所写博文中的详细信息,我们就能对 ResNet 的实际用途有一番了解。

图 3:残差块


假设让叠加层拟合残差映射比让它们直接拟合所需的底层映射来得容易。这表明,更深层的模型应该不会得出比浅层模型更高的训练错误。


由于出色的实践结果,ResNet 迅速成了各种计算机视觉任务中最流行的架构之一。


另外,WideResNet 的存在是有它的理由的:精确度每提高一点,层数就要几乎翻番,所以训练很深的残差网络存在特征重用逐渐减少的问题,这使得网络训练起来非常慢。

图4:WideResNet 训练


为了解决这些问题,Zagoruyko 和 Komodakis 对 ResNet 块的架构进行了详细的实验研究,在此基础上提出了一种新的架构:我们可以减少残差网络的深度,增加宽度。他们称之为宽残差网络。


现在我们将介绍用 WideResNet 架构逐步解决这个问题的过程。我们使用 Deep Learning Studio,迅速构建神经网络,无需操心编程、语法和数据集的摄取。


项目创建


登录到本地或云端运行的 Deep Learning Studio 后,点击+按钮,即可创建一个新项目。

数据集摄取


然后,我们在“数据”选项卡中为该项目创建数据集。通常,训练和验证之间 80% 和 20% 是个不错的比例,但如果你愿意,也可以使用其他设置。


如果机器的内存足够多,可以将整个数据集加载到内存中,别忘了将“将数据集加载到内存中”设为“整个数据集”。

创建神经网络


你可以通过拖放层来创建神经网络,如下图所示:

确保将 WideResNet 设置成完全可以利用右边的属性来加以训练。另外,第一个密集层(Dense_3)应该有 20 个左右的神经元,ReLU 作为激活函数。


最终密集层(Dense_1)应该将输出维度设为 1,将激活设为 sigmoid。这么做的原因是,我们将这个问题设置为回归而不是分类。


如果回归输出低于 0.5,那么我们可以说输入属于类 0(即没有 IDC 癌症),否则它就有 IDC 癌症。


超参数和训练


我们使用的超参数如下图所示,你可以随意更改试用这些超参数。

最后,你可以从“训练选项卡”来开始训练,并借助训练仪表板来关注进度。

一旦完成了训练,你可以在结果选项卡中查看结果。我们在成本为每小时 0.90 美元的 K80 GPU 上,在几小时内获得了 85% 以上的精确度。

有了 Deep Learning Studio,作为 Web 应用程序或 REST API 来部署就轻而易举,这可以使用部署选项卡来完成,如下所示:

部署模型


部署的模型可以作为 Web 应用程序或 REST API 来加以访问,如下所示:

结束语


借助 Deep Learning Studio,短短几分钟就能构建好深度学习模型,只需要短短几秒钟就可以完成部署。


这种便利将让开发人员能够解决复杂的问题,不必担心编程和 API 等其他方面。


作者:Favio Vazquez,布加迪编译

编辑:陶家龙、孙淑娟

投稿:有投稿、寻求报道意向技术人请联络 editor@51cto.com

精彩文章推荐:

百亿级日志系统架构设计及优化

新手也能看懂的监控报警系统架构设计

普通程序员如何变身年薪百万的机器学习工程师?(文末有送书)


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/p2T1GMdRmA
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/12148