论文:https://web.pkusz.edu.cn/adsp/files/2021/07/ACL2021_CMCL1.pdf
摘要:
针对两个问题:
【1】严重的数据偏差:
- 视觉数据偏差:数据集中正常样本图像的比例远超于异常样本图像;此外,每个异常样本图像中,正常区域的占比远超于异常区域的占比。
- 文本数据偏差:放射学家标注的参考报告,通常遍历所有部位生成了描述,使得整个报告中正常本文描述占了绝大多数。此外,描述同一个部位的许多句子重复率极高。
【2】有限的医学数据:
大部分现有的方法不会考虑它们的难度,而统一进行随机采样。有限数据的不平衡的数据偏差将会误导模型训练。
所以,提出了CMCL(具体做法):
- 估计每个训练实例的难度,评估当前模型的胜任力
- 选择最合适的训练实例的某个batch,考虑当前模型的胜任力
- 迭代式第进行上述两步,CMCL能逐渐从简单样本到困难样本进行学习训练,提升模型的性能。
经过和18年Co-Attention模型的对比,CMCL的异常部位报告生成的准确率有明显提升和改善。
贡献:
【1】将课程学习“curriculum learning”用于医学报告生成任务中,使得模型能逐步从简单样本到更复杂样本去训练,帮助现有模型更好利用有限的医学数据,以缓解数据偏差。
【2】从多个角度评估每个训练实例的难度,并提出一个competence-based curriculum learning framework(CMCL)以同时考虑多个难点
【3】在公开数据集上,评估了提出的方法。在现有baseline上仅仅增加CMCL,在训练数据采样做出微小调整,而无需额外的参数,现有baseline model的性能有很大提升。
CMCL框架介绍:
Curriculum Learning的改进:
baseline、single difficulty-based curriculum learning、CMCL的方法对比:
baseline:统一随机批采样进行模型训练
single difficulty-based curriculum learning:首先依据困难度量从易到难排序好样本,再依据模型胜任力进行批次采样训练
multiple difficulty-based curriculum learning(CMCL中采用的):首先依据多个困难度量从易到难排序好样本,再依据模型复杂度和胜任力进行批次采样训练
Difficulty Metrics:
visual difficulty:定义了启发式指标和基于模型的指标一起去评估视觉难度
[1] Heruistic Medtirc d1:先提取所有正常训练样本的正常图像表示(来自ResNet-50的最后的AVG),然后给定任意一张图像,我们再获得经过Res50的表示。最终,计算给定的任意图像和所有正常样本图像表示间的平均余弦相似度,作为d1.
[2] Model Confidence d2:采用Res50进行异常分类任务。采用Res50获得在训练集中每张图像I的14个常见疾病的分类概率分布P(I),采用概率分布的交叉熵值H(I)作为置信度度量d2,表示是否图像容易或难以被分类。
Texual Difficulty:定义了启发式指标和基于模型的指标一起去评估文本难度
[1] Heruistic Medtirc d3:将句子中包含“no”"normal""clear""stable"的句子作为正常句子,其他的当做异常句子。采用一个报告中异常句子的数量去定义报告的难度d3。
[2] Model Confidence d4:,采用CNN-HLSTM模型,使用训练样本的负对数损失值作为d4。
方法:
先简要介绍传统的单个基于难度的课程学习方法,再介绍针对医学报告生成任务所提出的多个基于难度的课程学习方法:
【1】Single Difficulty-based Curriculum Learning
① 计算每个训练样本的难度d,依据难度低->高将训练集排好序
② 在时间步t=0,初始化模型胜任力c(0),取样难度最低的batch,进行训练
③ t=1,估计模型胜任力c(t),取样难度次低的batch,进行训练
④ 循环③,直到模型收敛
【2】Multiple Difficulty-based Curriculum Learning
相比于【1】方法,single->multiple的改变:一个难度度量d变为四个难度度量d1,d2,d3,d4;增添了perplexity的估计。 算法流程较为复杂,可以直接跳过看下面的解释图就比较一目了然:
① 依据四个难度度量指标分别将训练集样本依据难度低->高排好序
② 分别取四种训练集的batch,计算perplexity指标,选取perplexity最大值的batch训练模型
(PPL越高,说明模型对于此课程的学习越差,可以提升的空间越多。所以采取argmax PPL的batch进行训练)
③ 迭代②,直到模型收敛
实验结果
该方法CMCL插入当前的方法的效果提升如下表所示: