学习进入第二大部分,终于能够喘口气。接下来我们要做的是使用PyTorch来完成一个大项目,这个项目的目标是从医疗影像中检测癌症。这个题目听起来好像也不是那么难,像我们前面检测一张图片是鸟还是飞机,这个貌似也是个简单分类问题,给出的结果为是或者不是。但是当你真的深入到业务之中,你会发现完全不像你想的那么简单。我们先不那么着急往后看,所以这一节就比较轻松,没有什么代码,主要来把整个项目框架理清楚。
在了解项目之前我们先了解一下数据挖掘的流程。这里引用的是一个称为数据挖掘项目的标准流程CRISP-DM的框架。这个框架里包含了数据挖掘流程的六个部分,罗列如下。这里面关于建模和评估应该都比较熟悉了,我们前面的环节讲的主要跟这两个部分相关,对于其他环节,看起来跟建设神经网络模型并没有太大的关系,但是在具体的项目中,前三个环节准备充分与否能够极大的影响模型的效果,而最后一个环节则是对模型的限制。
关于商业理解可能是比较直译的方式,我觉得大可把它看做是对业务的理解。对于一个实际的数据挖掘项目,一定是建立在需求之上的,这个需求就来源于业务的真实问题。我们接下来要处理的这个项目就是肺部恶性肿瘤的自动监测,我们可以获取的数据是病人胸部的CT扫描数据。
我们知道对于癌症,如果能在早期诊断出来并进行手术切除,会大大提升病人的生存率,但是现在主要依赖人工的检测。但是肿瘤早期非常小,要靠人工从大量的图像中仔细筛查无疑是十分困难的,而且还需要非常专业的医生才能够识别到,极有可能产生误判或者遗漏。但是我们的电脑如果能够学会怎么去判断那就不一样了,电脑不会累,可以孜孜不倦地进行细致的排查,不会因为疲倦厌烦以及各种身体和情绪影响而造成错误的结果。
作者还写了一个选择这个项目的原因,那就是这个问题还没有得到最终解决,仍然在探索的过程中。
了解了大概的项目情况,我们来看一下里面提到的CT扫描是什么东西。在我们这个项目中,使用的就是CT扫描数据,它是一种特别的数据格式,对这个数据格式优缺点和基本情况的了解有助于我们正确的使用和后续的模型优化。CT扫描的每一个体素都对应一个数值,这个数值描述的是内部物质的平均质量密度。这里说的体素可以对比像素,像我们之前处理的图像上的一个数据点就是一个像素,这里的一个体素是一个立体块,它包含一个空间体积。下面是一个人体躯干的CT扫描,可以看到人体组织的横切面,以及它是一个立体的元素,最下面两块是床垫床板。
CT扫描的数据还允许我们通过隐藏我们不感兴趣的部分进行立体查看,如下面这种样子,隐藏了其他部分,只展示骨骼和肺部组织。
下面这个设备就是获取CT数据的机器
了解了数据源,接下来就是来设计一个计划。这里书中给出了一个确定的计划,就不再需要动脑思考了。具体项目模型的构建分成5个步骤,先把CT数据加载进来,然后切分成小块,寻找到候选结节,最后对候选结节进行分类,确定候选结节的类型。
结节:这里指的肺部的小肿瘤。
白话了这么多,让我们看看数据的情况吧。这个数据来源于一个2016年的挑战赛LUNA(LUng Nodule Analysis Grand Challenge)。这个挑战赛的项目就是我们刚刚介绍过的这个项目,它提供了开源的数据集和高质量的标签。关于这个挑战赛的介绍官方网站是Grand Challenge (grand-challenge.org)。整个数据集下载需要60g的空间,解压之后大概需要120g空间,加上整个项目中间训练缓存数据总共需要220g的空间,另外推荐的计算资源是带8GB内存的GPU。如果你空间不够可以考虑只用其中一个子集(一共十个子集),当然这会影响训练效果,不过对学习没什么影响。
要进去需要先用邮箱注册一下,然后看第二个tab页,里面有很多挑战赛
我们需要的是在最后一页,LUNA 16,可以看到这个挑战目前已经关闭了,但是我们还是可以下载数据集
进去页面之后可以看到一些关于这个项目的描述信息,有兴趣可以再阅读一下。
左侧可以看到下载,但是这个地方需要科学上网才能打开,我把具体下载的网址贴在下面了,可能也需要科学上网,如果你下不了,可以联系我,我已经下载到数据了,后面传到网盘上去。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有