Chen的这篇采用KL办法提升模型在ID和OOD上的性能借鉴了Niu2021的文章
实现
VQA任务:输入对应的图片和问题对,根据图片信息回答问题。
1)放宽图像文本配对要求,问题中object在图像存在即可,获得合理的pairs;
2)设计一个基于knowledge distillation的答案分配,为pairs生成伪答案。
前言
关于ID和OOD:
机器学习的研究中存在基础假设,即训练和测试数据集之间满足ID独立同分布(In Distribution)。然而实际的模型学习可能走了捷径,通过捕捉二者之间的关系获得较好的性能。因此,无法在其他数据集上获得同样高的结果。
基于这样的挑战,前人采用一些集成办法试图使模型在OOD(Out Of Distribution)上取得较好的效果。
而研究发现现有的优化模型如CSS不能同时做到在ID和OOD上表现优异,本文基于Niu2021的文章提出了改进,使得模型具有更好的泛化性。
正文内容:
一、对比KDDAug
- 基于集成的办法(eg.CSS):通过修改图片Qi或者Ii获得不匹配的pairs,从而使模型学习伪样本。
- SimpleAug:在特定的回答类型中(yes/no,颜色…),对Qi或者Ii进行随机采样形成新的pairs。
- KKDAug(本文提出的model):不限制问题类型,通过随机采用获得reasonable的pairs;使用知识蒸馏(KD)生成伪答案。
二、两步KDDAug
1.生成pairs
reasonable定义为:
问题适配于图片内容;对于pairs存在ground-truth回答。
- spaCy POS tagger 标记名词,统一单复数;
- 忽略诸如“图片”或“照片”等名词;删除所有没有任何有意义的名词的问题;
- 对于所有的图像I,利用对象检测器来检测每个图像中的所有object,并预测它们的类别。
- 遍历原始训练集中的所有问题和图像来组合所有可能的合理的VQ对。由于“Yes/No”问题较多,对同nouns组进行采样。
- CLIP-based 过滤器过滤,减少训练时长。
这一步实际上扩展了数据集,平衡去除biases;并且不需要手动注释。
2.知识蒸馏
(1)Single-Teacher KD
用原始训练集 Dorig 训练一个教师VQA模型,然后使用预先训练好的教师模型来预测每个组成的VQ对的答案分布。而 predt 被视为这个VQ对的伪答案。
(2)Multi-Teacher KD
训练 ID teacher 和 OOD teacher,计算二者的权重预测答案。
权重的计算:分别计算 ID 和 OOD 情况下predt与 bias之间的交叉熵,权重与交叉熵之间成反比。
三、实验
- 数据集:VQA v2 & VQA-CP v2
- VQA model:UpDn, LMH, RUBi, CSS
- teacher:LMH-CSS
改进
- 增加下游任务
- loss优化
- 在更多数据集上测试