Why choose lifelong learning in medical images?
最近几年顶会上将lifelong用在medical images中的文章,可参考,附abstract和introduction,arxiv上几乎都可以下载,部分需要springer。如有添加,后续会补~
PAPER | YEAR | CONFERENCE | method |
---|---|---|---|
A Lifelong Learning Approach to Brain MR Segmentation Across Scanners and Protocols | 2018 | MICCAI | multi-domain |
Learn the New, Keep the Old: Extending Pretrained Models with New Anatomy and Images | 2018 | MICCAI | multi-class |
Keep and learn: Continual learning by constraining the latent space for knowledge preservation in neural networks | 2018 | MICCAI | multi-class (classification) |
Distributed weight consolidation: A brain segmentation case study | 2018 | NeurIPS | multi-domain |
Towards continual learning in medical imaging | 2018 | NIPS | |
Feature Transformers: Privacy Preserving Lifelong Learners for Medical Imaging | 2019 | MICCAI | multi-data (classification) |
Dynamic Memory to Alleviate Catastrophic Forgetting in Continuous Learning Settings | 2020 | MICCAI | multi-domain |
Continual Learning of New Diseases with Dual Distillation and Ensemble Strategy | 2020 | MICCAI | multi-class (classification) |
What is Wrong with Continual Learning in Medical Image Segmentation? | 2020 | Arxiv | multi-domain |
Continual Learning of New Diseases with Dual Distillation and Ensemble Strategy
0. 摘要
abstract:
大多数智能诊断系统是针对一种或几种特定疾病而开发的,而医学专家可以诊断某些器官或组织的所有疾病。 由于通常很难收集所有疾病的数据,因此,如果一个智能系统能够首先诊断出几种疾病,然后在未来利用这些新类别的数据不断学习不断诊断出越来越多的疾病,那将是可取的。 然而,当前的智能系统的特征在于在学习新类别时会遗忘旧知识。 在本文中,我们提出了一个新的持续学习框架,以通过同时提炼旧知识和新近学习的新知识,以及通过合并来自先前分类器和学习到的新分类器的特定于类别的知识来缓解此问题。 实验表明,在多种医学和自然图像数据集上,该方法优于最新方法。
1. 简介
introduction:
近年来,深度学习已成为医学图像分析的常用工具,并且在各种疾病的诊断中达到了人类水平的表现。一旦开发和部署,大多数智能诊断系统将被固定。但是,很难收集某些器官或组织的所有疾病的训练数据。结果,当前的每个智能系统只能诊断一种或几种疾病,无法像医学专家那样诊断所有疾病。因此,希望使智能系统能够不断学习以诊断越来越多的疾病,最终成为类人专家。由于各种因素(例如,隐私,不在机构间共享的数据),这种连续的或终生的学习过程通常假定智能系统几乎不能访问或几乎不能访问先前学习过的疾病的旧数据。与人类可以在不忘记旧知识的情况下学习新知识的人类不同,当前的智能分类系统的特点是在学习新类别时会忘记旧类别。这使得开发一种智能系统变得非常具有挑战性,该系统可以不断学习对新疾病的诊断,而不会牺牲对先前学习的旧疾病的诊断性能。
通常,在学习新知识和保留以前获得的有关旧类别的知识之间总会存在一个权衡。为了减轻对先前学习知识的遗忘,一种方法是找到对旧知识至关重要的系统单元(例如,卷积神经网络中卷积核),然后在学习新知识时尝试使这些单元的参数保持不变。尽管这可以在一定程度上帮助系统保留旧知识,但是在继续学习新知识时会引起越来越多的困难,尤其是当卷积神经网络(CNN)中的大多数核对于保留旧知识至关重要时。为了解决这个难题,研究人员试图动态地将新组件动态添加到现有系统中,专门用于新知识。但是,这种方法通常假设智能系统可以预先区分新旧疾病,这在需要一起诊断新旧疾病的智能诊断系统中是不切实际的。受人类学习过程(通常在学习新知识的过程中重播旧知识的记忆)的启发,另一种方法是对于每个旧类别存储一小部分原始样本或重新生成合成数据,已被证明有助于在继续学习新类别时更有效地减少灾难性遗忘。但是,综合数据可能无法忠实地包含每个旧类别的细微区别特征,特别是当应用于不同疾病的一部分时,它们的某些部分看起来可能彼此相似,并且与相对较大的一组样本相比,每个旧类别的样本的小子集不平衡新类别的数据通常会使智能系统在预测期间偏向于最近学习的(相对较新的)类别。
在这里,我们提出了一个更有效的框架,可以在学习新类时保留旧知识,并提供一种更好的方法来模拟内存重播的思想。在此框架中,首先通过对旧类的原始分类器进行微调来训练仅适用于新类的专家分类器,然后将来自这两个分类器的知识进行提炼,以教导新的分类器来识别新旧类。从原始分类器到专家分类器的微调将使专家分类器在学习新类时主要包含旧知识,因此从专家分类器到新分类器的提炼将另外有助于保留旧类知识。除双重蒸馏外,还采用了集成策略,通过结合从原始分类器和新分类器中提取的旧类信息来帮助保留旧知识。所提出的方法在两个皮肤疾病数据集和一个自然图像数据集的持续学习中显示了最先进的性能。据我们所知,这是第一次探索对相对大量(即40种)疾病进行智能诊断的持续学习。
2. 终身学习
lifelong:
目的是使智能诊断系统不断学习以诊断新的疾病类别,同时保持其在旧疾病类别上的诊断性能不会大大降低。 持续学习问题的一种推论是,在继续学习新类别时,大多数(如果不是全部)旧类别的训练数据不可用。 关键的挑战是减少每次不断学习新类别时对旧知识的灾难性遗忘。 考虑到在先前的研究中,已确认保持每个旧类别的小数据子集对于潜在减少旧知识的灾难性遗忘至关重要,这里我们还假设每个旧类别的一小部分数据是可用的。
2.1 概述
overview:
在这项研究中,我们应用双重蒸馏策略来有效减少旧知识的灾难性遗忘。持续学习框架在图1中得到了展示,其中以原始CNN分类器(图1,蓝色)表示的旧类的诊断系统,以及在以更新的CNN分类器表示的一组新类的连续学习后的系统(图1,橙色)。与现有方法不同,由原始CNN分类器的特征提取器部分和新的完全连接层组成的专家CNN分类器经过专门训练,可以对新类进行分类(图1,绿色),然后进行分类。原始分类器和专家分类器的知识都经过提炼,以训练更新的分类器。由于专家分类器是从原始分类器中进行微调的,因此可以将旧分类的知识部分保留在专家分类器中,因此从专家分类器到更新分类器的蒸馏将不仅提炼新分类的知识,而且还具有旧类的部分知识,因此与从原始分类器到更新的分类器的提炼相比,可以帮助保留更多的旧类知识。
除了双重蒸馏之外,还提出了一种集成策略来减少对旧知识的灾难性遗忘(图1,右)。在训练更新的分类器时,将先前存储的每个旧类别的数据小子集和每个新类别的相对较大的数据集一起收集为训练集。在测试阶段,由于其简单性和有效性,最近样本均值方法被用于类别预测,其中平均值通常是通过对存储或选定数据子集中特征向量的平均来计算的。但是,当通过更新的分类器预测任何测试数据的类别时,不平衡的训练集可能导致偏向于新类别。为了减轻预测偏差,对于每个旧类,将来自原始分类器和更新的分类器的平均特征向量进行集合(即,在这里平均)以进行预测。这种集成策略使每个旧类的平均特征向量与先前使用原始分类器生成的平均特征向量的偏差较小,从而帮助每个旧类的知识表示变化较小。这种合奏可以减少旧知识的灾难性遗忘。值得注意的是,更新的分类器将成为下一轮持续学习中的原始分类器。
2.2 双重蒸馏
Dual distillation:
双重蒸馏用于训练更新的分类器。 形式上,令
{
(
x
i
,
y
i
)
,
i
=
1
,
.
.
.
,
,
N
}
\{ (x_i,y_i),i=1,...,,N\}
{(xi,yi),i=1,...,,N}表示每个旧类的先前存储的小数据子集和每个新类的整个数据集,其中
x
i
x_i
xi表示图像,one hot向量
y
i
y_i
yi表示对应的类标签。对于每张图片
x
i
x_i
xi被表示为
z
i
=
[
z
i
1
,
z
i
2
,
.
.
.
,
z
i
s
]
T
z_i=[z_{i1},z_{i2},...,z_{is}]^T
zi=[zi1,zi2,...,zis]T原始分类器的逻辑输出(执行softmax之前),s是旧类别的数量。同样的,被表示为
z
i
=
[
z
^
i
1
,
z
^
i
2
,
.
.
.
,
z
^
i
s
]
T
z_i=[\hat z_{i1},\hat z_{i2},...,\hat z_{is}]^T
zi=[z^i1,z^i2,...,z^is]T更新分类器的逻辑输出,t是新类别的数量。然后,可以通过使蒸馏损失
L
0
L_0
L0最小化来实现从原始分类器到更新分类器的旧知识的蒸馏。
L
0
(
θ
)
=
−
1
N
∑
i
=
1
N
∑
j
=
1
s
p
i
j
log
p
^
i
j
L_0(\theta)=-\frac{1}{N}\sum_{i=1}^N \sum_{j=1}^sp_{ij}\log\hat p_{ij}
L0(θ)=−N1i=1∑Nj=1∑spijlogp^ij
其中
θ
\theta
θ表示更新后的分类器的学习参数,
p
i
j
p_{ij}
pij和
p
^
i
j
\hat p_{ij}
p^ij来自修改后的softmax运算
p
i
j
=
e
x
p
(
z
i
j
/
T
0
)
∑
k
=
1
s
e
x
p
(
z
i
k
/
T
0
)
,
p
^
i
j
=
e
x
p
(
z
^
i
j
/
T
0
)
∑
k
=
1
s
e
x
p
(
z
^
i
k
/
T
0
)
p_{ij}=\frac{exp(z_{ij}/T_0)}{\sum_{k=1}^sexp(z_{ik}/T_0)},\hat p_{ij}=\frac{exp(\hat z_{ij}/T_0)}{\sum_{k=1}^sexp(\hat z_{ik}/T_0)}
pij=∑k=1sexp(zik/T0)exp(zij/T0),p^ij=∑k=1sexp(z^ik/T0)exp(z^ij/T0)
T
0
≥
1
T_0\geq 1
T0≥1是蒸馏参数。 较大的
T
0
T_0
T0将迫使更新的分类器学习不同特征向量
z
i
z_i
zi之间的更细粒度的分离。
同样,可以通过最小化蒸馏损失
L
n
L_n
Ln来实现从专家分类器到更新分类器新知识蒸馏。
L
n
(
θ
)
=
−
1
N
∑
i
=
1
N
∑
j
=
1
t
p
i
j
log
p
^
i
j
L_n(\theta)=-\frac{1}{N}\sum_{i=1}^N \sum_{j=1}^tp_{ij}\log\hat p_{ij}
Ln(θ)=−N1i=1∑Nj=1∑tpijlogp^ij
其中
q
i
j
q_{ij}
qij和
q
^
i
j
\hat q_{ij}
q^ij分别来自专家分类器修改的softmax和更新的分类器的相应部分,其蒸馏参数为
T
n
T_n
Tn
除了两个蒸馏损失外,交叉熵损失
T
c
T_c
Tc还可用于帮助更新的分类器区分新旧类别
L
c
(
θ
)
=
−
1
N
∑
i
=
1
N
∑
j
=
1
s
+
t
y
i
j
log
y
^
i
j
L_c(\theta)=-\frac{1}{N}\sum_{i=1}^N \sum_{j=1}^{s+t}y_{ij}\log\hat y_{ij}
Lc(θ)=−N1i=1∑Nj=1∑s+tyijlogy^ij
其中
y
i
j
y_{ij}
yij是one hot标签
y
i
y_i
yi的第j个分量,而
y
^
i
j
\hat y_{ij}
y^ij是输入图像
x
i
x_i
xi的更新分类器的第j个输出。 结合起来,可以通过使总损失
L
L
L最小来训练更新的分类器
L
(
θ
)
=
L
c
(
θ
)
+
λ
1
L
0
(
θ
)
+
λ
2
L
n
(
θ
)
L(\theta)=L_c(\theta)+\lambda_1L_0(\theta)+\lambda_2L_n(\theta)
L(θ)=Lc(θ)+λ1L0(θ)+λ2Ln(θ)
其中
λ
1
\lambda_1
λ1和
λ
2
\lambda_2
λ2是一个系数常数,平衡了不同的损失项。
2.3 类平均的集合
ensemble of class means:
考虑到训练集的大部分来自新类别,并且通常每个旧类别仅存储一小部分数据,因此直接使用更新的分类器的输出来预测任何测试数据的类别将不可避免地偏向新类别。正如最近的工作中所采用的那样,在本研究中, NME(Nearest-Mean-of-Exemplars)也用于预测任何测试数据的类别。 基本思想是,根据更新后的分类器倒数第二层的输出,提取每个类的所有可用数据的特征向量,并对它们进行平均,然后将任何测试数据归类为平均向量最接近于该测试数据的类。这意味着,对于每个新类,类均值是基于更新后的分类器倒数第二层输出的该类整个训练集上特征向量的平均值。 但是,对于每个旧类,与以前的工作不同,我们提出了一种用于计算类均值的整体策略。 具体来说,假设
m
j
m_j
mj是先前获得的第j个旧类的类平均值(在连续学习的前一轮中),并且
m
^
j
\hat m_j
m^j是基于训练好的更新分类器的倒数第二层输出的第j类存储的小数据子集上的特征向量的平均值。
在进行下一轮持续学习之前,由于存储每个类的样例训练数据的内存有限,因此需要从整个训练集中为每个新类选择一小部分训练数据,以及之前存储的每个旧类的数据都需要进一步减少。 假设内存大小为K,则只有
K
/
(
s
+
t
)
K/(s+t)
K/(s+t)个示例将存储在
(
s
+
t
)
(s+t)
(s+t)类中的每个类的内存中。就像在iCaRL方法中一样,采用herding选择策略为每个(新)类别生成示例的排序列表,其中近似于具有较高优先级的类别均值的示例。因此,将为每个新类选择和存储排序列表中的第一个
K
/
(
s
+
t
)
K/(s+t)
K/(s+t)示例。 对于每个旧类,已经缩短的列表中的第一个
K
/
(
s
+
t
)
K/(s+t)
K/(s+t)示例将被保留,丢弃内存中的其他示例。
3. 实验结果
3.1 实验设置
settings:
使用三个数据集来广泛评估所提出的方法(表1)。其中,Skin8数据集来自ISIC’2019持有的皮肤镜图像分类挑战。原始的Skin8在类之间高度不平衡。 为了减轻在持续学习中的潜在影响,从六个类别中随机选择了628张图像,其余两个较小的类别则保留了所有图像(少于260张)。 数据集Skin40包含从互联网收集的40类皮肤疾病图像,每个类别有50个训练图像和10个测试图像。 在训练中,每张图像均在[0.8,1.0]比例范围内随机裁剪,然后调整为224×224像素。
在每个数据集上,首先针对少量(例如2、5)类训练原始的CNN分类器,然后提供一组(例如2、5)新类数据来训练专家分类器和更新了分类器,完成了第一轮持续学习。使用SGD优化器(batch_size为16),初始学习率为0.01,然后分别在第80和160个epoch除以10。还应用了weight decay(0.00001)和动量(0.9)。每个模型最多训练200个epoch,并持续观察到训练收敛。每次训练更新的分类器后,都将计算到目前为止所有学习的分类的平均准确性。在下一轮持续学习中重复了这样的训练和评估过程。对于每个实验,报告了五次运行的准确度的平均和标准偏差,每种运行的学习顺序不同。除非另有说明,否则ResNet-18用作主干,内存大小K = 50,Skin40上的参数
T
0
=
T
n
=
4.0
T_0=T_n=4.0
T0=Tn=4.0,Skin8上的
T
0
=
T
n
=
2.0
,
λ
1
=
3.0
,
λ
2
=
1.0
T_0=T_n=2.0,\lambda_1=3.0, \lambda_2=1.0
T0=Tn=2.0,λ1=3.0,λ2=1.0
3.2 持续学习医学影像分类的表现
Performance on continual learning of medical image classes:
我们的方法首先通过与最新的基线进行比较,在皮肤数据集上进行了评估,包括iCaRL,端到端增量学习(End2End),蒸馏和回顾(DR)和LwF。调整每种基准方法的工作量都差不多。 除不存储旧样本的LwF外,所有方法均使用相同的内存大小。 此外,通过使用所有类别的训练数据训练非持续学习分类器,还报告了上限结果(图2,黑叉)。 图2显示,当分类器每次在Skin40上连续学习2、5或10个类(前三个子图),并且每次在Skin8上每次学习2个类(最后一个)时,我们的方法均优于所有强基准,所有这些都证实了有效性 我们的方法。与Skin40相比,Skin8上的改进程度较小,这可能是由于Skin8上的类较少和持续学习的次数较少。
3.3 持续学习的鲁棒性和泛化
Robustness and generalization of continual learning
为了显示我们方法的鲁棒性,我们使用了多个CNN主干来持续学习皮肤疾病。 如表所示。 如图2所示,无论分类器每次在Skin40上每次持续学习2、5或10个类(仅显示5类情况),我们的方法在所有三个CNN骨干网上都始终优于baseline。 除了CNN主干外,还评估了不同的内存大小(K = 100、200)(由于空间有限,未显示),所有这些都一致地表明我们的方法优于baseline
考虑到之前的研究仅在自然图像数据集上评估了baseline,因此我们的方法也在CIFAR100上进行了评估。 一致地,我们的方法在每次连续学习5、10或20个新类时显示出更好的性能(图3),这表明我们的方法可推广到各个领域。
一个有趣的发现是,在连续学习的前几轮中,我们的方法的性能类似于iCaRL,然后在后续几轮中变得更好。 这可能是因为在前几轮中存储的旧数据足以帮助分类器减少旧类的灾难性遗忘,从而导致我们方法中专家分类器和整体策略的影响可忽略不计。这在图3(右)中得到了证实,其中,当内存大小较小时(此处的K = 500,而第二个子图中的K = 2000),我们的方法优于早期连续学习的iCaRL。
3.4 消融研究
ablation study:
本部分评估了专家分类器和整体策略在持续学习中的作用。 表3显示,尽管每次从头开始训练的专家分类器都几乎没有改善学习性能(第3列对比第2列),但从原始分类器微调后的专家分类器显然可以提高更多的学习效果(第4列)。 添加集成策略可进一步提高性能(第5列)。 值得注意的是,如果内存大小变小(列4-5,K = 2000 vs. 500 vs. 100),则集成策略会有所帮助。
4. 结论
conclusion:
在这项研究中,我们提出了一个新的持续学习框架,以帮助智能系统减少学习新类别时旧知识的灾难性遗忘。 实验表明,在不断学习新疾病的过程中,双重蒸馏可以帮助更有效地教授新的分类器,而新旧分类器的联合预测可以进一步减轻遗忘的知识。