阅读笔记:Semi

编程入门 行业动态 更新时间:2024-10-13 22:23:21

阅读<a href=https://www.elefans.com/category/jswz/34/1770047.html style=笔记:Semi"/>

阅读笔记:Semi

Abstract

  胸部CT对良恶性肺结节的分型是早期发现肺癌、延长患者生存最关键的一步。深度卷积神经网络(deep convolutional neural networks, DCNNs)虽然在图像分类方面取得了很大的成功,但它仍然需要大量的带标记的训练数据,而大多数医学图像分析应用由于需要进行图像采集,尤其是图像标注的工作,而无法得到这些数据。在本文中,我们提出了一个半监督对抗分类(SSAC)模型,该模型可以使用标记和未标记数据进行训练,用于肺良性恶性结节的分类。这个模型包含一个基于自编码器的对抗无监督重建网络 R R R、监督的分类网络 C C C和可学习的过渡层,这个过渡层能通过R到C的学习调整图像的表示能力。SSAC模型已经扩展到多视点知识协作学习,旨在采用三个SSACs来分别描述每个结节的整体外观以及形状和纹理的异质性,并在九个平面上进行这样的表征。MK-SSAC模型在基准LIDC-IDRI数据集上进行了评价,其准确率为92.53%,曲线下面积(AUC)为95.81%,优于其他肺结节分类和半监督学习方法。

Introduction

  虽然比手工制作的基于特征的方法更精确,DCNNs在常规肺结节分类上没有像ImageNet中那样取得同样的成绩。表现不佳的主要原因是DCNN可能会对肺结节数据进行过拟合,肺结节数据量远远不足以训练一个深度学习模型。事实上,在大多数基于深度学习的医学图像分析任务中,一个基本的挑战是小数据问题,这涉及到获取图像数据和图像标注所需的工作。很多研究都是需要一定数量的训练数据的,而医学的数据是不那么容易获得的。
  由于医学图像注释需要高度的技能和专注度,而且并不总是可用,因此采用了半监督学习(SSL),使我们能够同时使用标记和未标记数据进行模型训练。一个典型的例子是,利用未标记数据训练的深度自编码器(DAE)可以通过将解码器部分替换为全连接层和使用标记数据进行微调,从而变成分类器。而DAE是一个生成模型,它学习适合重建但可能不适合区分的图像表示。在DAE的编码器部分和分类网络的特征提取部分共享参数可能会导致区分能力有限。因此,我们建议联合使用带标记和未带标记数据训练的生成模型和仅带标记数据训练的判别模型进行半监督医学图像分类。
  在本文中,我们提出了半监督对敌分类(SSAC)模型,该模型可以通过非参数共享的方式联合使用未标记数据和标记数据进行训练。这个模型是由一个对抗的autoencoder-based无监督重建网络 R R R,监督分类网络 C C C和可学的过渡层(T层),这能够通过 R R R到 C C C的学习调整图像表征能力。SSAC模型进一步扩展到多视点知识协作(MV-KBC)学习,表示为MK-SSAC模型,它通过使用胸部CT为良性和恶性肺结节分类。提出的MK-SSAC模型由27个SSAC子模型组成,每个模型分别从矢状面、冠状面、轴向面和6个对角线平面视图表征一个结节的整体外观(OA)、体素值的异质性(HVV)和形状的异质性(HS)。

……
  本工作的主要贡献包括:

  1. 提出的SSAC模型使用可学习的T层,来将通过重构网络 R R R学习到的表征能力迁移到分类网络 C C C,放弃参数共享和功能适应策略,
  2. R R R中使用对抗训练来最小化输入肺结节分布和重构的分布的差异。
  3. 在LIDC-IDRI数据集上对扩展的MK-SSAC模型进行了评价,在肺良恶性结节的分类方面达到了先进水平。

Experimental dataset

  (总结一下)使用了LIDC-IDRI数据集,将中位恶性水平< 3的结节处理为良性,将中位恶性水平> 3的结节处理为恶性,将中位恶性水平= 3的结节处理为未标记数据。得到1301个良性节点、644个恶性节点和612个未标记节点。从天池肺结节检测数据集中提取1227个未标注的节点,与LIDC-IDRI结合,最终得到1301个良性节点、644个恶性节点和1839个未标记节点。

Methodology

  提出的SSAC模型由三个主要部件组成:一个对抗的基于自编码器的无监督重建网络R,监督分类网络 C C C和可学的过渡层(T层)(如图2)。这个模型被扩展到MK-SSAC模型(如图4(b))来进行恶性良性肺结节的分类,它包括了27个SSAC子模型,每个分别从三个正字法和六个对角线视图描述一个结节的OA, HVV和HS。

3.1 SSAC model

  SSAC模型包括一个重构网络 R R R、分类网络 C C C以及它们之间的可学习T层。重构网络 R R R由重构每个输入图像 I I I的生成器 G G G和区分输入图像 I I I与重构图像的鉴别器 D D D组成。生成器 G G G包含编码器和解码器(见图3(a))。该编码器包括一个conv-bn-relu块、三个conv块和三个identity块,是一个类似resnet的网络,输入为 64 × 64 64\times 64 64×64的patch。该解码器包括4个upsample-conv-bn-relu块和1个conv-tanh块,可生成相同大小的重构patch。鉴别器D是一种典型的DCNN结构(图3(b)),包括4个 3 × 3 3\times 3 3×3的卷积层,一个有512个神经元的全连接(FC)层,以及一个有2个神经元的FC层,再加上softmax激活函数。

  分类网络 C C C由两部分组成,由全局平均池(GAP)层分开(图2),在GAP层之前,其结构与 R R R的编码器相同;在GAP层之后是两个神经元的全连接层,其次是softmax函数。
  我们设计了 t ( t = 7 ) t(t=7) t(t=7)个可学习的T层来建立 R R R C C C之间的桥梁,而不是共享 R R R和 C C C之间的参数。这个桥梁为迁移由 R R R的conv-bn-relu块、三个conv块和三个identity块得到的特征图到 C C C的相应块。每个T层是一个 1 × 1 1\times 1 1×1的步长为1的卷积层,后面跟随一个BN层和relu层。
  SSAC模型可以通过三个步骤来训练。第1步,我们使用汇聚在ImageNet数据集上的参数初始化 C C C,目的是将在大规模图像数据集上学习到的图像表示能力用于描述我们的结节数据。第二步,我们使用标记数据和未标记数据对 R R R进行预训练。已知第n个标记或未标记的输入数据 X n , n = 1 , 2 , … , N X_n, n = 1,2,…,N Xn​,n=1,2,…,N,我们定义 R R R的损失函数如下:
L R ( X n ) = l mse  ( G ( X n ) , X n ) − λ [ l b c ( D ( G ( X n ) , 0 ) + l b c ( D ( X n ) , 1 ) ] L_{R}\left(\mathbf{X}_{n}\right)=l_{\text {mse }}\left(G\left(\mathbf{X}_{n}\right), \mathbf{X}_{n}\right)-\lambda\left[l_{b c}\left(D\left(G\left(\mathbf{X}_{n}\right), 0\right)+l_{b c}\left(D\left(\mathbf{X}_{n}\right), 1\right)\right]\right. LR​(Xn​)=lmse ​(G(Xn​),Xn​)−λ[lbc​(D(G(Xn​),0)+lbc​(D(Xn​),1)]
  其中 l b c l_{bc} lbc​是 D D D的交叉熵对抗损失,表示输入图像与重建图像分布的差值, l m s e l_{mse} lmse​为 G G G的均方重建损失。我们使用Adam算法来优化损失函数,并设置batch为32。由于在 G G G能产生相当好的图像重建之前,对抗性训练部分可能没有那么有用,所以我们在开始时设置 λ \lambda λ为0.1,在200个epoch后设置 λ \lambda λ为1。
   第三步,我们进一步使用带标签的样本来细调SSAC模型。假设第 m m m个标签数据 X m X_m Xm​以及对应的标签 Y m , m = 1 , 2 , … , M Y_m, m=1,2,\ldots,M Ym​,m=1,2,…,M,我们定义SSAC模型的损失函数为:
L S S A C ( X m ) = λ 1 { I mse ⁡ ( G ( X m ) , X m ) − [ I b c ( D ( G ( X m ) ) , 0 ) + l b c ( D ( X m ) , 1 ) ] } + l b c ( C ( X m ) , Y m ) \begin{array}{l} L_{S S A C}\left(\mathbf{X}_{\mathbf{m}}\right) \\ =\lambda_{1}\left\{I_{\operatorname{mse}}\left(G\left(\mathbf{X}_{\mathbf{m}}\right), \mathbf{X}_{\mathbf{m}}\right)-\left[I_{b c}\left(D\left(G\left(\mathbf{X}_{\mathbf{m}}\right)\right), 0\right)+l_{b c}\left(D\left(\mathbf{X}_{\mathbf{m}}\right), 1\right)\right]\right\} \\ \quad+l_{b c}\left(C\left(\mathbf{X}_{\mathbf{m}}\right), \mathbf{Y}_{\mathbf{m}}\right) \end{array} LSSAC​(Xm​)=λ1​{Imse​(G(Xm​),Xm​)−[Ibc​(D(G(Xm​)),0)+lbc​(D(Xm​),1)]}+lbc​(C(Xm​),Ym​)​
  其中第一项是生成器 G G G的重构损失,第二项是判别器 D D D的对抗损失,第三项是监督分类损失,并且平衡生成器和判别器贡献的权重参数 λ 1 \lambda_1 λ1​根据经验设置为0.01。同样,我们采用Adam算法对该损失函数进行优化,并将batch size设置为32。
  此外,当预训练好 R R R和细调好SSAC模型后,我们随机选择了10%的训练patch组成验证集,当在其他90%训练patch上的错误持续降低但是验证集上的持续增加时,结束训练。

3.2 MK-SSAC model

  SSAC模型可以扩展到MV-KBC学习,来通过三个步骤对良性恶性肺结节进行分类:

  1. 从每个肺结节提取多视点OA, HVV以及从HS patch
  2. 构建九知识协作SSAC (KBC-SSAC)模型,并且使用从每个九平面视图中提取的patch来训练他
  3. 构建并且训练MK-SSAC模型来进行结节分类。

3.2.1 提取多视图OA, HVV和HS

  我们使用样条插值将所有胸部CT扫描重新采样到统一的体素大小为 1 × 1 × 1 m m 3 1\times 1\times 1 mm^3 1×1×1mm3。让一个结节的位置在放射科医师给出的结节中心。对于每个肺结节,我们首先裁剪一个以其位置为中心的 64 × 64 × 64 64 \times 64\times 64 64×64×64立方体,使结节始终完全包含在立方体中,然后分别在横切面、矢状面、冠状面和六个对角线平面上提取二维切片。因此,我们为每个结核获得了9个切片视图。
  在每一个切片上,一个封装了一个结节的正方形感兴趣区域(ROI)被识别为一个OA patch,以代表结节的整体外观。为了描述结节的HVV,将OA patch内的非结节体素设置为0,如果OA patch大于 16 × 16 16\times 16 16×16,则提取一个包含最大结节体素的 16 × 16 16\times 16 16×16的patch作为一个HVV patch。为了生成结节的HS patch,将OA patch内的结节体素设置为0。我们还使用旋转、水平或垂直翻转等方法为每个训练patch生成4个增强数据。平移在体素[-6,6]范围内,旋转角度从{90,180,270}中随机选取。然后,所有的OA, HVV和HS patch被调整为 64 × 64 64 \times 64 64×64。
  在训练阶段,结节的区域被定义为放射科医师标记的区域的交叉点。在测试阶段,结节分割是在slice-by-slice的基础上,使用通过训练数据训练的U-Net来分割的,训练使用mini-batch随机梯度下降法(mini-batch SGD)算法,32的批量大小,最大的epoch为100,学习速率为0.001。我们还使用训练好的U-Net对天池数据进行了分割,因为这些数据没有分割注释。

3.2.2 KBC-SSAC model

  在每个平面视图上提取和增强的OA、HVV和HS patch被用于训练KBC-SSAC模型,该模型包含三个SSAC子模型,分别描述了节点OA、HVV和HS,如图4(a)。每个SSAC子模型都根据section3.1中的步骤进行了预训练。对于 k k kth KBC-SSAC模型,已知第 m m m个标记的输入patch三元组 { X m k ( O A ) , X m k ( H V V ) , X m k ( H S ) } \left\{\mathbf{X}_{m k}^{(O A)}, \mathbf{X}_{m k}^{(H V V)}, \mathbf{X}_{m k}^{(H S)}\right\} {Xmk(OA)​,Xmk(HVV)​,Xmk(HS)​}以及标签 Y m Y_m Ym​,我们表示每个SSAC中的 C C C的输出为 O m k ( # ) ∈ R 2 , # ∈ { O A , H V V , H S } , m = 1 , 2 , … , M , k = 1 , 2 , … , 9 \mathbf{O}_{m k}^{(\#)} \in R^{2}, \# \in\{O A, H V V, H S\}, m=1,2, \ldots, M, k=1,2, \ldots,9 Omk(#)​∈R2,#∈{OA,HVV,HS},m=1,2,…,M,k=1,2,…,9。因此第 k k k个KBC-SSAC模型的输出可以计算为:
M m k j = f ( ∑ # ∑ i = 1 2 U k i j ( # ) O m k i ( # ) ) M_{m k j}=f\left(\sum_{\#} \sum_{i=1}^{2} U_{k i j}^{(\#)} O_{m k i}^{(\#)}\right) Mmkj​=f⎝⎛​#∑​i=1∑2​Ukij(#)​Omki(#)​⎠⎞​
其中, { U k i j ( # ) ∈ R 2 , k = 1 , 2 , … , 9 , i ∈ { 1 , 2 } , j ∈ { 1 , 2 } } \left\{U_{k i j}^{(\#)} \in R^{2}, k=1,2, \ldots, 9, i \in\{1,2\}, j \in\{1,2\}\right\} {Ukij(#)​∈R2,k=1,2,…,9,i∈{1,2},j∈{1,2}}是每个SSAC O m k i ( # ) O_{mki}^{(\#)} Omki(#)​的输出和第 k k k个KBC-SSAC M m k j M_{mkj} Mmkj​的输出之间的权重集合,下标 i ∈ { 1 , 2 } i\in \{1,2\} i∈{1,2} 表示每个SSAC的输出层的第 i i i个神经元,下标 j ∈ { 1 , 2 } j\in \{1,2\} j∈{1,2} 表示每个KBC-SSAC的输出层的第 j j j个神经元, f ( ⋅ ) f(\cdot) f(⋅)是一个softmax激活函数。

3.2.3 MK-SSAC model

  MK-SSAC模型包括9个KBC-SSAC子模型,它们的预测由两个输出神经元组合而成。每个KBC-SSAC模型的双神经元输出层连接到同样的双神经元分类层,然后连接softmax函数(图4(b))。这个分类层的输出 P m ∈ R 2 P_m\in R^2 Pm​∈R2是MK-SSAC模型所做的预测,可以表示为:
P m = f ( ∑ k = 1 9 ∑ j = 1 2 W k j M m k j ) \mathbf{P}_{m}=f\left(\sum_{k=1}^{9} \sum_{j=1}^{2} W_{k j} M_{m k j}\right) Pm​=f(k=1∑9​j=1∑2​Wkj​Mmkj​)
其中, { W k j ∈ R 2 , k = 1 , 2 , … , 9 , j ∈ { 1 , 2 } } \left\{W_{k j} \in R^{2}, k=1,2, \ldots, 9, j \in\{1,2\}\right\} {Wkj​∈R2,k=1,2,…,9,j∈{1,2}}是第 k k k个KBC-SSAC M m k j M_{mkj} Mmkj​的输出与MK-SSAC P m P_{m} Pm​的输出之间的权重集合,下标 j j j表示KBC-SSAC输出层的第 j j j个神经元, f ( ⋅ ) f(\cdot) f(⋅)事softmax函数。总之,MK-SSAC模型的总损失为:
L M K − S S A C ( X m k ( # ) ) = ∑ m = 1 M ∑ k = 1 9 ∑ # λ 1 { l m s e ( G ( X m k ( # ) ) , X m k ( # ) ) − [ l b c ( D ( G ( X m k ( # ) ) ) , 0 ) + l b c ( D ( X m k ( # ) ) , 1 ) ] } + ∑ m = 1 M l b c ( P m , Y m ) \begin{array}{c} L_{M K-S S A C}\left(\mathbf{X}_{m k}^{(\#)}\right)=\sum_{m=1}^{M} \sum_{k=1}^{9} \sum_{\#} \lambda_{1}\left\{l_{m s e}\left(G\left(\mathbf{X}_{m k}^{(\#)}\right), \mathbf{X}_{m k}^{(\#)}\right)\right. \\ \left.-\left[l_{b c}\left(D\left(G\left(\mathbf{X}_{m k}^{(\#)}\right)\right), 0\right)+l_{b c}\left(D\left(\mathbf{X}_{m k}^{(\#)}\right), 1\right)\right]\right\}+\sum_{m=1}^{M} l_{b c}\left(\mathbf{P}_{m}, \mathbf{Y}_{m}\right) \end{array} LMK−SSAC​(Xmk(#)​)=∑m=1M​∑k=19​∑#​λ1​{lmse​(G(Xmk(#)​),Xmk(#)​)−[lbc​(D(G(Xmk(#)​)),0)+lbc​(D(Xmk(#)​),1)]}+∑m=1M​lbc​(Pm​,Ym​)​
λ 1 \lambda_1 λ1​的设置和训练策略与公式2一样。

Experiments and evaluation

4.1 Experimental design

  我们对LIDC-IDRI数据集分别使用MK-SSAC模型进行了5次独立的实验,并进行了10-fold交叉验证。使用包含1839个未标记结核的天池数据集来对每个MK-SSAC模型进行训练。MKSSAC模型的训练时间约为24小时,使用它对每个节点进行分类的时间不到0.5秒(Intel Xeon E5- 2640 V4 CPU, 4 NVIDIA Titan X GPU, 512GB RAM, Keras和Tensorflow)。训练过程很耗时,但可以离线执行。快速的测试表明,我们的模型可以用于常规的临床工作流程。
Comparison to other SSL methods. 我们的MK-SSAC模型与三种SSL模型——AAE、CatGAN和梯形网络进行了比较,在这三种SSL模型中,非监督组件和监督组件之间共享参数。其中,AAE和梯形网络的编码器和分类网络之间共享参数,CatGAN的鉴别器和分类网络之间共享参数。为了公平的比较,本实验中我们使用相同的MV-KBC模型,但将我们的SSAC分别替换为AAE、CatGAN和ladder network。此外,我们在AAE和CatGAN中使用相同的编码器、解码器和输入,使用相同的鉴别器,使用相同的训练设置,包括优化器、学习率、权重系数和批量大小。
Comparison to hand-crafted feature-based methods. 我们的MKSSAC模型与两种最先进的基于特征的手工方法进行了比较,这两种方法简称为Method Ⅰ和Ⅱ。方法Ⅰ使用基于三维灰度共生矩阵(GLCM)的纹理特征来描述结节外观。方法Ⅱ对多重视觉特征(MVF)进行大规模挖掘,包括形状、边缘锐度和基于glcm的纹理特征,可以更好地表示结节。这两种方法在我们的数据集上分别使用10-fold交叉验证测试了5次。
Comparison to DCNN-based methods. 我们还将MK-SSAC模型与两种最先进的深度学习方法进行了比较,分别简称为方法A和方法B 。方法A在决策层融合纹理、形状和深层模型学习信息(Fuse-TSD),方法B提供27个预先训练和微调的ResNet-50模型的集合,每个模型分别从9个平面视图之一描述结节的OA、HVV和HS。值得注意的是,方法A中报告的性能是在相同的LIDC-IDRI数据集上获得的,但是模型使用不同的结节组进行训练。为了进行公平的比较,我们使用10-fold交叉验证独立地在我们的数据集上运行方法a的源代码5次。对于方法B,由于采用相同的LIDC-IDRI数据集和相同的数据选择方案进行评估,所以我们采用了在(Xie et al., 2018a)1中报告的方法性能。

4.2 Evaluation criteria

  通过获得的准确性、敏感性、特异性和接受者曲线下面积(AUC)的平均值和标准差来评价肺良性恶性结节的分类表现。准确性和AUC测量总体分类性能,敏感性和特异性分别给出正确识别的恶性和良性结节的比例,AUC对两类之间的不平衡敏感。这些度量可以按照以下方式计算:
Accuracy  = T P + T N T P + T N + F N + F P Sensitivity = T P T P + F N Specificity  = T N T N + F P A U C = ∫ 0 1 t p r ( f p r ) d f p r = P ( X p > X n ) \begin{aligned} &\text { Accuracy }=\frac{T P+T N}{T P+T N+F N+F P}\\ &\text {Sensitivity}=\frac{T P}{T P+F N}\\ &\text { Specificity }=\frac{T N}{T N+F P}\\ &A U C=\int_{0}^{1} t_{p r}\left(f_{p r}\right) d f_{p r}=P\left(X_{p}>X_{n}\right) \end{aligned} ​ Accuracy =TP+TN+FN+FPTP+TN​Sensitivity=TP+FNTP​ Specificity =TN+FPTN​AUC=∫01​tpr​(fpr​)dfpr​=P(Xp​>Xn​)​
其中,TP、TN、FN、FP分别代表真阳性、真阴性、假阴性、假阳性的个数。真实阳性率 T p r T_{pr} Tpr​是假阳性率 f p r f_{pr} fpr​沿接收器算子曲线的函数, X p X_p Xp​和 X n X_n Xn​分别是一个正实例和一个负实例的置信分数。

Results

5.1 Comparison to other SSL methods

  表2比较了提出的MK-SSAC模型和三种SSL模型的性能,结果表明,MK-SSAC模型获得了最高的准确性、灵敏度和AUC,特异性排名第二。特别是,灵敏度的显著提高(最小1.87%)是实质性的。由于较高的敏感性意味着较低的假阴性率,因此我们的模型更适合于肺结节筛查,并且可能比其他三种SSL模型在临床实践中更有用。这个实验的结果表明,使用可学的T layers 来将重建网络学习到的图像表征能力迁移到分类网络优于参数共享策略,在这里,生成器的图像表示能力直接应用在判别器模型中。

5.2 Comparison to hand-crafted feature-based methods

  表3展示了我们的MK-SSAC模型和两种手工制作的基于特征的方法的性能。方法I只使用单一特征,因此精度最低,为85.38%。方法II将三种特征进行融合,准确率达到87.90%。与其他两种方法相比,我们的模型获得了92.53%的最高准确率,显著提高了灵敏度、特异性和曲线下面积(AUC)。实验结果表明,本文提出的深度学习方法在肺结节分类方面比单一和联合手工制作的基于特征的方法具有明显的优势。

5.3 Comparison to DCNN-based methods

  表4对比了提出的MK-SSAC模型和两种基于dcnn的方法的性能,我们的模型获得了最高的准确性、特异性和曲线下面积(AUC)和第二高的敏感性。它表明,我们之前提出的MV-KBC模型取得了相对较好的表现,并且在MV-KBC中用SSAC模型取代了ResNet-50,这可以通过使用标记和未标记数据半监督地进行训练,进一步提高分类精度、特异性和AUC。此外,它表明端到端模型(如 Method B和MK-SSAC)比二阶段方法(比如Method A)要好。

6 Discussion

6.1 Ablation studies

  第一个实验说明了连接重构网络和分类网络的T layer的贡献。除了T layer之外,重构网络本身以及在其中使用的对抗性学习在所提出的MK-SSAC模型中发挥了关键作用。为了证明这两个模块的贡献,我们通过构建MK-C模型和MK-SSGC模型进行了消融研究。在MK-C中,27个子模型中的每个子模型都只包含分类网络(即去除重构网络)。在MK-SSGC模型中,27个子模型中每个子模型中的重构网络仅仅是一个自编码器(即去除鉴别器)。
  表6比较了我们的MK-SSAC模型和这两种变体的性能。这表明,我们的模型比MK-C和MK-SSGC具有更高的准确性、敏感性、特异性和AUC。这一结果表明,重构网络本身和对抗性学习都有助于性能的提高。具体来说,半监督发生器(MK-C vs MK-SSGC)、对抗性训练(MK-SSGC vs MK-SSAC)获得的性能增益在准确率上分别为0.60%和0.31%,灵敏度上分别为1.35%和0.30%,特异性上分别为0.31%和0.21%,AUC上分别为0.27%和0.26%。特别是,半监督生成器的灵敏度提高了1.35%,这表明使用未标记数据来促进深度模型的训练不仅有效,而且对于使我们的模型更适合于肺结节筛查至关重要。
  通过可视化每个模型的FC层生成的54维特征,我们还定性地将我们的MK-SSAC模型与MK-C和MK-SSGC模型进行了比较。图5显示了使用t分布随机邻域嵌入(t-SNE)计算的边界点的接近度和边界点之间的接近度。结果表明,半监督生成器与对抗训练相结合,可显著提高肺良性和恶性结节的分离能力。

6.2 Deep analysis for adversarial training

  在这一节中,我们进一步分析了对抗性训练能够提高分类性能的原因。在重建网络中使用对抗训练来联合评估输入图像和重建图像分布的差异,目的是避免只关注最小的均方误差(MSE),这是一种基于像素的测量方法,对几何畸变很敏感。通过计算27个重建网络生成的图像的MSE和峰值信噪比(PSNR)来评估重建性能。结果表明,在重建过程中加入对抗训练可以使MSE从0.09降低到0.08,PSNR从15.06提高到17.61。同时,我们还从肺结节的单视图ROIs中随机选取10个斑块,并对重构后的斑块进行可视化处理。重构后的斑块由经过对抗训练/不经过对抗训练的MK-SSAC模型生成。对比图6可知,采用对抗性训练总体上可以提高重建roi的质量,从而使重建网络对肺结节的表征能力更强。在这种情况下,将重建网络学习到的图像表示能力转移到分类网络中,无需进行对抗性训练,分类效果优于模型。

6.3 Trade-off between labeled and unlabeled data

  我们建议以半监督的方式联合使用标记数据和未标记数据,可以缓解仅使用小标记数据集训练的深度模型的过拟合问题,从而提高分类性能。评估这个策略是否还适用于具有更小的标签数据集的分类问题,我们保持测试数据集不变,并且分别从每个fold的标记的训练数据随机选择80%、60%、40%和20%的训练结节,训练提出MK-SSAC模型和监督MK-C模型。从图7中可以看出,两种模型的分类准确率和AUC都随着标记训练数据百分比的增加而提高。此外,对于未标记的数据,无论使用多少百分比的标记训练图像,我们的半监督模型都稳定地优于全监督模型。我们还发现,将标记训练数据的数量减少到20%会导致有监督的MK-C模型出现更严重的过拟合,导致分类准确率(从91.62%下降到84.12%)和AUC(从95.28%下降到90.05%)大幅下降。然而,在未标记数据的帮助下,我们的MK-SSAC模型对于标记训练数据数量的变化具有较强的鲁棒性,准确率仅从92.53%下降到90.58%,AUC从95.81%下降到92.82%。同时,有趣的是,当标记训练数据从100%下降到20%时,我们的MK-SSAC模型的准确率和AUC增益分别从0.91%提高到6.46%和0.53%提高到2.77%。这表明,我们有标记的训练数据越少,未标记的数据起的作用就越大,我们的方法的改进也就越显著。这些结果表明,使用未标记数据可以很大程度上弥补由于小数据问题造成的图像表示能力的损失。

6.4 Analysis of the MV-KBC architecture

  在我们的MK-SSAC模型中,我们将每个三维肺结节分解为9个固定的平面视图,以学习结节的三维特征。基于先验知识,即一个结节的恶性程度与其形状和体素值的异质性之间存在高度对应关系,我们使用三种SSAC模型分别表征在每个平面视图上每个结节的OA、HVV和HS。
  为了证明将SSAC模型扩展到MV-SSAC模型是有效的,我们实现了三个baseline模型来进行比较。第一个baseline是不使用先验知识(SWO-SSAC)的单视图SSAC,它只描述了一个跨轴平面上的结节的OA。第二个baseline是基于知识的单视图协同SSAC (SK-SSAC)模型,该模型描述了一个跨轴平面的结节的OA、HVV和HS。第三个baseline是无知识的多视图SSAC (MWO-SSAC)模型,该模型从九个平面视图描述了一个结节的OA。表7给出了三种baseline模型和提出的MK-SSAC模型的性能。结果表明,将SSAC模型嵌入到MV-KBC体系结构中,与单视图和无先验知识体系结构相比,可以利用更多的节点信息,获得最佳的分类性能。

6.5 Robustness to LUNGx challenge dataset

  癌症影像档案(TCIA)中的LUNGx挑战数据集包含83个肺结节,其中10个结节(5个良性和5个恶性结节)用于训练,73个结节(37个良性和36个恶性结节)用于测试。我们对该数据集进行了两个实验:(1)直接使用训练好的MK-SSAC模型对73个测试结节进行测试,而不进行微调;(2)使用10个训练结节对训练后的MK-SSAC模型进行微调,然后对73个结核进行测试。两项实验均独立进行5次。所得的准确度、灵敏度、特异性和曲线下面积的均值和标准差见表8。结果表明,与MV-KBC方法相比,经过训练的MK-SSAC模型的平均准确率提高了0.54%(从75.62%提高到76.16%),平均AUC提高了0.74%(从76.85%提高到77.59%)。这不仅表明我们的模型由标记数据和未标记数据共同训练,比全监督的方法好,而且证明了我们的模型具有较强的泛化能力。通过进一步使用LUNGx训练数据集对训练模型进行调整,我们的方法获得了最高的平均准确率为77.26%,平均AUC为78.83%,大大高于12种表现最好的方法的平均AUC。

6.6 Robustness to ISIC-2017 challenge dataset

  2017年国际皮肤成像协作组织(ISIC)皮肤病变分类挑战的数据集包括2000张训练图像、150张验证图像和600张测试皮肤镜图像。每幅图像都与金标准(权威)病变诊断相匹配,包括黑色素瘤、痣和脂溢性角化病。我们还从ISIC Archive2中收集了1320张皮肤镜图像作为我们的未标记数据集。
  为了使我们的SSAC模型适应皮肤病变分类任务,我们重新设计了分类网络 C C C和重建网络 R R R。根据目前先进的皮肤病变分类方法,我们使用在ImageNet数据集上预先训练的ResNet- 50网络作为 C C C的backbone,以更好地初始化。为了使ResNet-50适应我们的分类任务,我们在最后的FC层中只保留三个输出神经元,并随机初始化修改后的FC层的权值。重建网络 R R R由生成器 G G G(即一个编码器+一个解码器)和一个判别器 D D D。编码器与 C C C的特征学习部分(即之前的GAP层)有相同的结构。解码器(见图8)由四个upsampling层,八个conv-bn-relu块和一个conv-sigmoid块组成。判别器 D D D的backbone是预先训练好的ResNet-50,但是在最后的FC层中只有两个输出神经元。我们设计了17个可学习的T层来连接 R R R和 C C C,通过将 R R R的conv- bm -relu块、4个conv块和12个identity块得到的特征图转移到 C C C的对应块来实现连接。

  我们使用了与3.1节相同的设定来训练SACC模型,包括包括优化器、学习率、加权系数和批处理大小。为了减轻深度模型的过拟合,我们使用与Zhang et al.(2019)^[Zhang, J., Xie, Y., Xia, Y., Shen, C., 2019. Attention residual learning for skin lesion classification. IEEE Trans. Med. Imaging.同的数据论证方法来扩大训练数据集。我们利用ISIC-2017验证集来监控SSAC模型的性能,并在网络出现过拟合时终止训练过程。四个性能指标(准确性、敏感性、特异性和曲线下面积)分别用于黑色素瘤分类任务(即黑色素瘤与其他分类任务)和脂溢性角化病分类任务(即脂溢性角化病与其他分类任务)的结果评估。需要注意的是,ISIC-2017挑战赛根据这两个类别的平均AUC对每种方法在测试数据集上的表现进行排名。
  我们将SSAC模型与baseline ResNet50模型、ARL-CNN模型以及ISIC-2017皮肤损伤分类挑战排行榜前五的方法进行了比较。表9比较了获得的性能指标。它表明,我们的SSAC模型联合使用2000个标记数据和1320个未标记数据获得了平均AUC为91.6%,明显高于baseline、ARL-CNN和#5方法的AUC,后者使用相同的标记数据集进行训练。同时,与使用外部标记数据的方法相比,我们的模型的平均AUC是第二高的,仅比使用3320个标记数据训练的ARL-CNN模型的平均AUC低0.1%。

Conclusion

  我们提出了一种新的半监督策略,以有效利用未标记的结节,并考虑结节在九个平面视图上形状、体素值的异质性,从而在胸部CT上区分恶性肺结节和良性肺结节。在LIDC-IDRI数据集上的实验结果证明了我们的MK-SSAC模型对于改进最先进的结节分类系统的有效性。虽然我们的模型是建立在特定的应用肺结节的分类上的,但是我们的半监督策略本身是通用的,可以应用于其他基于深度学习医学图像分类任务来减少对大量的注释的医学图像的要求或进一步提高分类的性能。在未来的工作中,我们将把重点放在应用强化学习来自动优化重建网络和分类网络的结构,以及超参数的设置,比如权重因子 λ \lambda λ,批量大小和学习速率,旨在使该MK-SSAC模型更准确和更有效率。此外,还需要研究是否将受试者的其他信息(如病理数据、生物标志物和诊断报告)纳入深度学习模型,以便更准确地对肺良性恶性结节进行分类。


  1. Xie, Y., Xia, Y., Zhang, J., Song, Y., Feng, D., Fulham, M., Cai, W., 2018a. Knowledgebased collaborative deep learning for benign-malignant lung nodule classification on chest ct. IEEE Trans. Med. Imaging doi:10.1109/TMI.2018.2876510. 1–1 ↩︎

更多推荐

阅读笔记:Semi

本文发布于:2024-03-23 22:23:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1743526.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:笔记   Semi

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!