Evaluate the Malignancy of Pulmonary Nodules Using the 3D Deep Leaky Noisy-or Network 论文阅读
原文:Evaluate the Malignancy of Pulmonary Nodules Using the 3D Deep Leaky Noisy-or Network
博文参考:Doublle Tree的博客中Evaluate the Malignancy of Pulmonary Nodules Using the 3D Deep Leaky Noisy-or Network 论文阅读一文。
注:本文为2017年Kaggle举办的数据科学竞赛中,第一名获奖团队的相关论文,若需查看代码可访问Github。
简介
根据CT图像的肺癌自动诊断系统包含以下步骤:
- 检测所有可疑病变;
- 评估整个肺部的恶性程度。
但目前大多数的研究主要集中于第一步,以及通过肺结节诊断肺癌存在较高的假阳性率。因此,肺癌的诊断需要对每个可疑结节进行细致分析,再联合所有结节信息进行定性诊断。针对上述问题,本文提出了一个三维深度神经网络(3D deep neural network)用于解决这些问题。该网络由两部分组成:
- 用于结节检测的3D region proposal network;
- 基于置信检测(the detection confidence)选出top-5结节并评估其癌症可能性,最后将此概率与Leaky noisy-or模型相结合评估患者患癌的可能性。
其中,上述两个模型均采用修改后的U-net模型,并使用数据增强操作避免过拟合问题。
数据集和预处理
数据集
训练集由LUNA16数据集(the Lung Nodule Analysis 2016)和NDSB3(Data Science Bowl 2017)数据集两部分组成。其中,LUNA16数据集含有888个病例,标记了1186个肺结节;在NDSB3数据集中,1397个病例用于训练,198个病例用于验证,506个病例用于测试,且人工标注了训练集中754个结节和验证集中78个结节。
对于LUNA16数据集,其存在许多较小的注释结节,且临床经验认为直径6mm以下的肺结节无危险。但在NDSB3数据集中,存在较多的大直径结节且结节多与主支气管相连。因此,针对两个数据集的差异,需去除LUNA16数据集中直径6mm的结节,同时对NDSB3数据集进行人工标注。
此处说明了Julian de Wit的解决方案中,直接设置结节直径为6mm的原因,以及为何需对NDSB3数据集进行人工标注。
其中,p为anchor box的真值标签。
bounding box回归标签为:
回归总损失为:
其中,S为smoothed L1-norm函数:
对于每个anchor box的损失函数为:
最后,整体的anchor box的损失函数为anchor box的损失值取平均。
正反例数据
正例数据
对于大结节而言,网络会生成较多的positive anchor box,因此为了降低训练数据之间的相关性,随机挑选其中一个。
由于结节直径大小分布不均,而NDSB3数据集多为大结节,因而对大于30mm和40mm的结节,采样频率分别是其他结节的2倍和6倍。
此处对于NDSB3竞赛得分有利,实际是否可行有待商榷。
反例数据
对于一些易误诊为结节的反例数据,通过使用hard negative mining方法解决。
具体方法为:
- 将不同的patch输入至网络得到不同置信度的输出映射;
- 随机选择N个反例数据构成候选池;
- 侯选池中的数据以置信度值大小排序,且选出top-n的数据作为反例数据。
未选中的数据忽略且不参与损失计算。
此处可借鉴该方法,尽可能降低假阳性率,以及加速模型训练。
图像分割(测试过程)
输入数据大小为208×208×208×1,overlap为32像素。
输出数据为{xi, yi, zi, ri, pi},其中xi, yi, zi表示proposal中心坐标,ri表示其半径大小,pi表示其置信度。
输出数据且使用非极大值抑制操作来去除overlaping proposal。
肿瘤分类
由于受限于训练样本数,因而复用结节检测器阶段的N-net网络。
输入数据为结节的proposal,大小均为96×96×96×1,其仅使用了结节中心点的信息。在分类器训练阶段,随机挑选proposal,且其选中的概率与proposal的置信度成正比;在测试阶段,只挑选top-5的proposal。
经卷积核为24×24×24×128的最后一个卷积层得到输出结果;随后提取每个proposal中心处2×2×2的体素,并将其通过最大池化操作后得到128维的特征,如下图图a所示。
对比四种预测肿瘤类别的方法(Feature combining method,MaxP method,Noisy-or method和Leaky Noisy-or method),挑选出Leaky Noisy-or方法作为最终的分类方法,如下图图b所示。
其中,Pi表示第i个结节癌变的概率。
训练过程
损失函数为交叉熵函数。为了避免过拟合采用了数据增强和正则化操作。
训练的步骤:
- transfer检测器训练参数后,再训练分类器;
- 采用gradient clipping方法训练分类器,随后存储BN(Batch Normalization)参数;
- 用存储的BN参数和gradient clipping方法交替训练检测器和分类器。
注:BN在训练阶段和测试阶段所计算的方法有所差异。因复用N-net网络,分类器和检测器交替训练,因而需对BN的参数做特殊处理。
网友评论