Abstract

  肺多发结节的诊断和治疗在临床上很重要,但很有挑战性。以往对多发结节患者的结节特征的研究使用的是单独结节分析方法,从而忽略了结节之间的关系。在本研究中,我们提出了一个多实例学习(MIL)方法,并实证证明了学习多个结节之间的关系的好处。通过处理来自同一病人的多个结节作为一个整体,单独结节体素之间的关键关系信息将会被提取。据我们所知,我们首次研究肺多发结节之间的关系。受最近自然语言处理(NLP)领域进展的启发,我们引入了一个带有3D-CNN的self-attention transformer,名为NoduleSAT,以替代多实例学习中典型的基于池的聚合方法。我们在LUNA16数据库上进行了大量的lung nodule false positive reduction,在LIDC-IDRI数据库上进行了大量的恶性肿瘤分类实验,验证了所提方法的有效性。

Introduciton

  肺癌是癌症相关死亡率的主要原因。早期诊断肺癌是减少肺癌相关死亡的有效途径之一。随着低剂量ct (LDCT)的广泛应用,越来越多的早期肺结节已成为临床的一大挑战。特别是一组肺多发结节引起了研究的关注。除了某些容易诊断的疾病,如明显的肺转移和肺结核,偶然的多发肺结节在临床中被认为是一个难题。肺多发结节的诊断比单独的更复杂;除了分析生物行为(如良性、惰性、侵袭性),放射科医师还需要分析各种情况。
  最近的数据驱动方法,如放射组学和深度学习,已经主导了计算机辅助诊断(CADx)的研究。在肺结节的检测和表征方面,研究多结节之间关系的文献很少。换句话说,以前的研究对多发性结节的患者使用单独的结节分析方法。在临床实践中,放射科医师使用结节水平和患者水平的信息来诊断来自同一对象的结节;从算法的角度来看,独立结节方法在不考虑关系、上下文信息的情况下对结节进行分类。而我们认为它们之间的关系很重要,因此提出了多实例学习(MIL)方法来解决这一问题。据我们所知,这是首次研究肺多发结节之间的关系。受NLP领域最新进展的启发,我们引入了基于self-attention的Set Attention Transformers (SATs) 来学习结节之间的关系,而不是典型的多实例学习中基于池化的aggreation。为了从CT扫描中建模肺结节,使用3D-DenseNet作为主干,在单独结节水平上学习体素的表示。然后我们使用SATs来了解同一病人的多个结节之间的关系。整个名为NoduleSAT的网络可以进行端到端的训练。在肺结节假阳性减少和恶性肿瘤分类任务中,提出的多结节方法始终优于单独结节。
  论文的主要贡献有三个方面:1)我们实证地证明了了解结节之间的关系的好处;2)我们开发了Set Attention transformer (SATs)来进行关系学习;3)一个端到端可训练的结节模型在多结节建模中是有效的。我们的实验证明了多肺结节之间的关系学习的益处,这也将对这一重要课题的临床和生物学研究有启发作用。

METHODOLOGY

2.1 Set Attention Transformers (SATs)

  受self-attention transformer的启发,我们开发了SAT,它是一个用于处理permutation-invariant和size-varying集的通用模块。在这项研究中,一组是相同的病人的多个结节,SAT是为了学习多个肺结节之间的关系。对于输入集合X∈RN×cX \in R^{N\times c}X∈RN×c(NNN为集合的大小,ccc为表示的通道),一个scaled dot-product attention用来共享K,Q,VK,Q,VK,Q,V之间的特征。
Attn⁡(X)=softmax⁡(XXT/c)⋅σ(X)\operatorname{Attn}(X)=\operatorname{softmax}\left(X X^{T} / \sqrt{c}\right) \cdot \sigma(X)Attn(X)=softmax(XXT/c​)⋅σ(X)
其中σ\sigmaσ是非线性激活函数。
  然而,在我们的应用中,MHA过于繁琐,因此我们引入了一种更参数有效的Group Shuffle Attention(GSA)1用于SATs。假设ggg是组的数量(本研究中为g=8g=8g=8),cg=c/gc_g=c/gcg​=c/g, 令ccc mod g=0g=0g=0 我们用通道数去除XXX得到ggg组,x(i)∈RN×cg{x^{(i)}\in R^{N \times c_g}}x(i)∈RN×cg​,并在scaled dot-product attention之前,用权重Wg∈Rcg×cgW_g\in R^{c_g \times c_g}Wg​∈Rcg​×cg​ 来进行组线性变换。组内scaled dot-production attention 应用于每个小组。但是,在所有层中对输入进行分组会导致集合中的元素之间没有通信。为此,引入了无参数算子,channel shuffle ψ\psiψ2来促进信道融合。GSA的总体形式化如下:
GSA(X)=BN(ψ(concat⁡{Attn(Xi)∣Xi=X(i)Wi}i=1,…,g)+X),G S A(X)=\mathcal{B} \mathcal{N}\left(\psi\left(\operatorname{concat}\left\{A t t n\left(X_{i}\right) \mid X_{i}=X^{(i)} W_{i}\right\}_{i=1, \ldots, g}\right)+X\right),GSA(X)=BN(ψ(concat{Attn(Xi​)∣Xi​=X(i)Wi​}i=1,…,g​)+X),
  其中引入了批处理标准化BN来简化优化。GSA的参数大小比MHA小多达倍,这使得SATs非常轻便,易于学习。SAT只是一个LLL层的GSA运算符堆栈。


这里使用的方法在论文1中有更详细的描述

3.3节的Group Shuffle Attention中写到:
  我们建议使用attention来捕捉点之间的关系。MHA通过引入关键的多头设计成功地建立了关系模型,然而,我们认为它对于建模点云来说太大了。为此,我们提出了一种参数高效的Group Shuffle Attention (GSA)来代替MHA。在此基础上,本文提出了两个改进方案:首先,为了消除位置上的线性规划问题,我们将非线性本身集成到注意力模块中,即非线性自注意力模块。
Attn⁡σ(Q,X)=S(Q,X)⋅σ(X)\operatorname{Attn}_{\sigma}(Q, X)=S(Q, X) \cdot \sigma(X)Attnσ​(Q,X)=S(Q,X)⋅σ(X)
其中,我们对SSS使用Scaled Dot-Product attention,即S(Q,X)=softmax⁡(QXT/c)S(Q, X)=\operatorname{softmax}\left(Q X^{T} / \sqrt{c}\right)S(Q,X)=softmax(QXT/c​),以及对σ\sigmaσ只用ELU激活函数。换句话说,我们用前激活来处理后激活。
  其次,我们引入了带channel shuffle的组线性变换,并保持了多头设计。设ggg为组数,cg=c/gc_g=c/gcg​=c/g, 令ccc mod g=0g=0g=0 ,我们通过信道将XXX分成ggg组:X(i)∈RN×cg{X^{(i)}\in R^{N \times c_g}}X(i)∈RN×cg​,并定义Wi∈Rcg×cgW_i\in R^{c_g\times c_g}Wi​∈Rcg​×cg​为组iii的可学习变换权值,从而定义组注意(GroupAttn):
GroupAttn(X)=concat{Attnσ(Xi,Xi)∣Xi=X(i)Wi}i=1,…,g\begin{array}{l} \text {GroupAttn}(X)= \\ \text {concat}\left\{A t t n_{\sigma}\left(X_{i}, X_{i}\right) \mid X_{i}=X^{(i)} W_{i}\right\}_{i=1, \ldots, g} \end{array}GroupAttn(X)=concat{Attnσ​(Xi​,Xi​)∣Xi​=X(i)Wi​}i=1,…,g​​
  然而,一个纯的GroupAttn堆栈阻塞了组之间的信息流。为了实现高效的逐层转换,我们引入了一个无参数通道洗牌操作符ψ\psiψ,参见下图。

  对于元素x∈Rcx\in R^cx∈Rc来说,我们重写xxx为:
x={x1,x2,…,xcg,xcg+1,xcg+2,…,xc}={(xicg+j∣j=1,…,cg)∣i=0,…,g−1}\begin{aligned} x &=\left\{x_{1}, x_{2}, \ldots, x_{c_{g}}, x_{c_{g}+1}, x_{c_{g}+2}, \ldots, x_{c}\right\} \\ &=\left\{\left(x_{i c_{g}+j} \mid j=1, \ldots, c_{g}\right) \mid i=0, \ldots, g-1\right\} \end{aligned}x​={x1​,x2​,…,xcg​​,xcg​+1​,xcg​+2​,…,xc​}={(xicg​+j​∣j=1,…,cg​)∣i=0,…,g−1}​
其中,(xicg+j∣j=1,…,cg)\left(x_{i c_{g}+j} \mid j=1, \ldots, c_{g}\right)(xicg​+j​∣j=1,…,cg​)是第(i+1)th(i+1)_{th}(i+1)th​组信道,因此我们定义信道洗牌ψ\psiψ为
ψ(x)={x1,xcg+1…,x(g−1)c9+1,x2,xc9+2,…,xc}={(xicg+j∣i=0,…,g−1)∣j=1,…,cg}\begin{aligned} \psi(x) &=\left\{x_{1}, x_{c_{g}+1} \ldots, x_{(g-1) c_{9}+1}, x_{2}, x_{c_{9}}+2, \ldots, x_{c}\right\} \\ &=\left\{\left(x_{i c_{g}+j} \mid i=0, \ldots, g-1\right) \mid j=1, \ldots, c_{g}\right\} \end{aligned}ψ(x)​={x1​,xcg​+1​…,x(g−1)c9​+1​,x2​,xc9​​+2,…,xc​}={(xicg​+j​∣i=0,…,g−1)∣j=1,…,cg​}​
  对于任何现代的深度学习框架,信道洗牌可以通过端到端重塑-转置-平化来优雅地实现。
  洗牌组注意(GSA)仅仅是继信道洗牌后的一个组注意力算法,加残差连接和一个组归一化GN。
GSA(X)=GN(ψ(GroupAttn(X))+X)G S A(X)=\mathcal{G} \mathcal{N}(\psi(\text {GroupAttn}(X))+X)GSA(X)=GN(ψ(GroupAttn(X))+X)

2.2 3D DenseNet Backbone

  为了从CT扫描中端到端学习病变体素的表示,我们使用3D DenseNet作为主干,其压缩率θ=2\theta=2θ=2 bottleneck为B=4B=4B=4。Leaky ReLU与批处理标准化一起用作激活函数。我们为不同的实验实例化了不同的densenet。
  将CT扫描的结节体素输入到3D DenseNet之前,我们进行如下预处理:1)将Hounsfield单元剪成[1024.400];2)线性变换为[-1;1];3)用三线性插值将体积数据调整为1mm×1mm×1mm1mm\times1mm \times 1mm1mm×1mm×1mm的间距。我们也应用在线数据扩充,包括90°、180°、270°的随机轴旋转,左右翻转和在[-1,1]范围内移动体素中心。

2.3 End-to-end NoduleSAT

  结合SATs和3D DenseNets,提出了网络学习的多个肺结节之间的关系叫NoduleSAT。我们对待同一对象(病人)的多个肺结节为一组,并使用shared-weight 3D DenseNet提取每个结节nodule-level表示。这些表示法被输入隐藏大小为HHH的LLL层SAT中,以了解它们之间的关系。注意,整个NoduleSAT网络可以通过标准的反向传播进行端到端训练。通过对结节假阳性减少(第3.1节)和结节恶性肿瘤分类(第3.2节)的实验,验证了所提方法的有效性。对于这两项任务,NoduleSAT都被训练来区分来自同一患者的多个候选/结节是否为结节/恶性。特别针对结节的恶性分类任务,利用模糊/不明确标签的结节,我们设计了一个隐藏的BCE损失来训练NoduleSATs。对于单独节点方法,这些数据样本使用起来很重要。在我们的NoduleSAT框架中,这些结节在损失反向传播中被忽略,但它作为输入提供重要的上下文信息给其他结节。掩蔽损失策略扩展了有效样本容量,并在我们的实验中被证明是有效的(第3.2节)。
  值得注意的是,提出的结节网络与之前在肺结节上使用多实例学习的研究有本质的不同,在之前的研究中,使用最大池聚合多结节信息,并输出单个患者层面的表示。因此,无法捕获多个结节之间的关系信息。作为比较,关系信息可以通过NoduleSAT中提出的一层又一层的self-attention得到。

3 EXPERIMENTS

3.1 Lung Nodule False Positive Reduction

3.1.1 Dataset

  肺结节检测的去假阳(FPR)一直是计算机辅助检测研究中一个要求很高的课题。由于客观存在的相关性和一个对象的结节大小差异很大,我们的SAT更适合解决这个问题。
  在这个实验中,我们使用了两个数据集。一个是LUNA16,一个广泛用于肺结节检测和去假阳的数据集。LUNA16数据集包括888个受试者的1186个结节的CT扫描。评价结果以10倍交叉验证的形式提供。LUNA16 FPR数据集使用竞赛主持人提供的候选,共754,975个候选。我们过滤掉了预测分数(根据我们的3D DenseNets基线)低于0.1的候选,结果是32405个候选用于通过SATs进一步细调。第二个数据集是天池肺结节检测数据集,数据协议与LUNA16相似,共有800名受试者,一共1224个结节。我们使用官方划分,600名受试者(975个结节)进行训练,200名受试者(269个结节)进行验证。在验证集(名为天池谷)上报告性能。利用我们在训练集上训练的结节检测模型(基于3D UNet),提取CT扫描的候选点,得到训练集上5531个候选,验证集上1515个。

3.1.2 Experiment Setting

  使用基于DenseNets的3D CNN作为强基线。输入大小为48×48×4848\times 48\times 4848×48×48。在每个分辨率级别上,密集块在每次下采样前都重复了[4,4,4,4][4,4,4,4][4,4,4,4]次,增长率为16。我们使用一个Adam优化器来训练批大小为32的CNN,初始学习率为1×10−31\times 10^{-3}1×10−3。在每个epoch之后,学习率以3×10−23\times 10^{-2}3×10−2的比率指数衰减。来自同一个对象的候选,被经过全局池化层的CNN的特征所表示,并一起输入到一个SAT中。由于某些特定对象的候选太多了,我们补充了与训练的3D DenseNet来训练SAT。
  去假阳实验中的SAT使用H = 256和L = 3。我们使用一个批大小为64的Adam优化器。初始学习率是5×10−35\times 10^{-3}5×10−3。我们在epoch = 100,130,170时将学习率乘以0.2。200个epoch足够一个好的收敛了。训练损失是一种交叉熵损失,它是由候选数平均得到的。

3.1.2 Result

  我们使用CPM评分进行评估,这是肺结节检测和去假阳最常用的指标。CPM评分是在平均误报次数为0.125,0.25,0.5,1.0,2.0,4.0,0.8的平均召回率。在FROC曲线上,越高越好。
  结果如表1所示,我们的基于SAT的方法大大改善了基线。在天池VAL,我们的模型有了更大的改进。请注意,10次运行的投票集成通常只能在这个数据集上提供1%的性能提升。我们声明,这些进步来自于对候选之间关系的了解。

3.2 Multiple Nodule Malignancy Classification

3.2.1 Dataset

  然后,我们使用NoduleSAT来提供一个对多个肺结节恶性肿瘤的系统性的观点。LIDC-IDRI[是可获得的最大的公共肺癌筛查数据库之一,用于验证我们的方法。如图2 (a)所示,LIDC-IDRI数据组患者有1-23个结节,其中74.0%为多发结节患者。因此,本文提出的NoduleSAT网络非常适合这个任务。数据纳入标准为:1)该结节至少有3名放射科医师的注释,2)CT厚度小于等于3mm。总共选择了2175个合格结节,然后计算每个结节的平均恶性评分(savg),得出527例为恶性(savg>3s_{avg}>3savg​>3), 656良性(savg<3s_{avg}<3savg​<3)和992个未明确标记(或不明确,savgs_{avg}savg​= 3)结节

3.2.2 Experiment Setting

  我们首先用32×32×3232 \times 32 \times 3232×32×32的输入预训练一个3D DenseNet。密集块每次降采样前重复[3,8,4]次,增长率k = 32。训练样本只有1183个良性或恶性结节。用标准的交叉熵损失训练3D DenseNet。我们使用Adam优化器对3D DenseNet进行训练,初始学习率为0.001,200个epoch,并且每30个epoch将学习率减半。
  然后我们使用了NoduleSAT,用了与训练的3D Densenet和一个3层的SAT(H=256)。我们用一个batch 16个病人,端到端地训练NoduleSAT。注意,3D DenseNet的批大小是可变的。我们使用批处理归一化层来稳定训练。所有合格的2175个结节都用于训练NoduleSAT,并且只对良性和恶性结节有反向的损失。我们用一个Adam优化器来训练整个NoduleSAT,它的学习率最初是0.001,每15个epoch减半,总共150个epoch。另一个有1183个良性或恶性结节的结节也经过训练以进行公平比较。

3.2.3 Result

  我们使用了5倍交叉验证的AUC (AUROC)来评估我们的方法,即每个折叠处由患者分割,同时保持每个折叠处的结节数量大致相同。如图2 (b)所示,NoduleSAT和masked loss都能有效提高3D DenseNet基线的恶性肿瘤分类性能。我们有两个重要的发现:1)只有良性或恶性结节的NoduleSAT比使用相同数据集的3D DenseNet表现更好,我们将这种改进归因于对它们之间关系的学习。2)采用未定义标签结节,利用masked loss,进一步提高了性能。我们认为这种改进来自于对上下文的学习。我们的方法优雅地使用了未定义标签的样本,这对于单独节点方法来说是很重要的。

4 CONCLUSION AND FURTHER WORK

  在这项研究中,我们提出了Set Attention Transformer(SAT),以明确地学习来自同一病人的多个肺结节之间的关系信息。与3D DenseNet相结合,该提议的端到端可训练NoduleSAT鼓励模型从自底向上的结节层表示,来自顶向下地学习内部结节关系。
  我们正在研究肺部多发结节的临床问题。希望我们的数据驱动的方法能有助于了解多发肺结节的病因和生物学过程以及转移诊断。


  1. Jiancheng Yang, Qiang Zhang, Bingbing Ni, et al., “Modeling point clouds with self-attention and gumbel subset sampling,” in CVPR, June 2019. ↩︎

  2. Jiancheng Yang, Qiang Zhang, Bingbing Ni, et al., “Modeling point clouds with self-attention and gumbel subset sampling,” in CVPR, June 2019. ↩︎

阅读笔记:RELATIONAL LEARNING BETWEEN MULTIPLE PULMONARY NODULES VIA DEEP SET ATTENTION TRANSFORMERS相关推荐

  1. 论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning

    论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning 本文通过神经网络利用了减少轮数的 Speck 的差分性质.为此,作者对神经网络 ...

  2. [文献阅读笔记]Machine Learning DDoS Detection for Consumer Internet of Things Devices 2018 IEEE SPW

    [文献阅读笔记]Machine Learning DDoS Detection for Consumer Internet of Things Devices 2018 IEEE SPW 1.INTO ...

  3. 【论文阅读笔记】Learning To Detect Unseen Object Classes by Between-Class Attribute Transfer

    摘要: 本文主要研究训练和测试类别不相交时(即没有目标类别的训练示例)的对象分类问题.在此之前并没有对于毫无关联的训练集和测试集进行对象检测的工作,只是对训练集所包含的样本进行分类.实验表明,通过使用 ...

  4. 【论文阅读】Representation Learning with Multiple Lipschitz-constrained Alignments on Partially-labeled

    标题长度受限,完整的该论文标题为: 论文标题:Representation Learning with Multiple Lipschitz-constrained Alignments on Par ...

  5. [论文阅读笔记58]Learning from Noisy Labels with Deep Neural Networks:A Survey

    1.题目 Learning from Noisy Labels with Deep Neural Networks: A Survey 作者团队:韩国科学技术院(KAIST) Song H , Kim ...

  6. 【论文笔记】Learning from Multiple Cities: A Meta-Learning Approach for Spatial-Temporal Prediction

    论文学习心得 前言 应用场景 基础概念 什么是元学习 元学习的分类 MAML 基本概念理解 MAML中的Task MAML算法详解 摘要 本文贡献 利用来自多个城市的信息来提高迁移的稳定性 元学习时空 ...

  7. RASNet阅读笔记:Learning Attentions: Residual Attentional Siamese Network for High Performance Online Vis

    CVPR2018 论文在此 文章全称:Learning Attentions: Residual Attentional Siamese Network for High Performance On ...

  8. 阅读笔记-Active Learning For Wireless IoT Intrusion Detection

    文章发表于2018年 IEEE WIreless Commmunications,作者来自同济大学以及AT&T Lab 本文主要研究的是无线入侵检测里的human-in-the-loop ac ...

  9. 阅读笔记|Ensemble Learning for Multi-Source Neural Machine Translation

    原文链接: Ensemble Learning for Multi-Source Neural Machine Translation Abstract 本文描述和评价了神经机器翻译(NMT)中进行集 ...

最新文章

  1. linux 3.4内核初始化,S3C2440移植linux3.4.2内核之内核框架介绍及简单修改
  2. c++ stack 的使用
  3. 第一百一十四节,JavaScript文档对象,DOM进阶
  4. nginx+fastcgi+c/c++搭建高性能Web框架
  5. 抽屉效果_宜家靠边,好用不贵的全格收纳抽屉使用感受
  6. 4倍速!ML.NET Model Builder GPU 与 CPU 对比测试
  7. Codeforces Round #Pi (Div. 2) B. Berland National Library 模拟
  8. 51Nod-1010 只包含因子2 3 5的数【打表+排序+二分搜索】
  9. 尚硅谷Docker---docker安装及简介
  10. Faster RCNN详解
  11. [转贴]九大职业之一了百了[启示录]
  12. 深度学习面试题:计算机视觉训练技巧
  13. 智能门锁电路图_【干货】智能锁工作原理及技术原理分析
  14. 补剂课堂:补充肌酸的最佳时机
  15. 看看什么叫穿越失败,我承认我确实笑了
  16. jQuery概述(查阅菜鸟教程随笔)
  17. excel查找在哪里_HR:对不起,我们公司不招25岁还用不好Excel的人
  18. 转载一篇关于泰迪很好的文章
  19. 什么是子网掩码?怎么根据子网掩码得到网络号?
  20. MySQL占用CPU过高,排查原因及解决的多种方式法

热门文章

  1. 计算机和操作系统基础知识
  2. lib linux.so2 bad,linux – docker,openmpi和/ proc / mounts行的意外...
  3. arma3自定义服务器,《绝地求生》自定义服务器要收费?类似《武装突袭3》
  4. 万年历c语言打印年月,万年历(实现从键盘输入1900年之后的任意的某年、某月,输出该月的日历)...
  5. 2020震撼的AE模版SDK
  6. 统计一篇英语文章每个单词出现的频率
  7. BloomFilter怎么用?使用布隆过滤器来判断key是否存在?
  8. vuex原理解析并实现一个简单的vuex
  9. [PTA C语言]求交错序列前N项和
  10. 软件开发Share the Cakes