当前位置: 代码迷 >> 综合 >> Dealing with Missing Modalities in the VQ Answer-Difference Prediction Task through知识蒸馏 笔记
  详细解决方案

Dealing with Missing Modalities in the VQ Answer-Difference Prediction Task through知识蒸馏 笔记

热度:57   发布时间:2023-12-29 15:51:03.0

Dealing with Missing Modalities in the Visual Question Answer-Difference Prediction Task through Knowledge Distillation 论文笔记

  • 一、Abstract
  • 二、引言
  • 三、相关工作
    • 1、Answer Difference in VQA Datasets
    • 2、Generalized Knowledge Distillation
  • 四、Methodology
    • 1、Problem Definition
    • 2、Proposed Training Method
    • 3、Individual Modality Teacher Models
    • 4、“Big” Teacher Model
    • 5、Student Model
    • 6、Teaching the Student
  • 五、实验
    • 1、Implementation Details
    • 2、VizWiz VQD Dataset Setup
    • 3、Answer Difference Baselines
    • 4、Results of Knowledge Distillation
    • 5、Testing on the VQA 2.0 Dataset
  • 六、总结
  • 结语

写在前面
这是 CVPR2021 Workshop 第四篇,从题目可以瞅一眼,关于 知识蒸馏,以及解决 VQ A-Difference模态缺失 的问题。
说实话,笔者也是第一次看这种文章, 知识蒸馏 的概念倒是听过,但不知道怎么操作的。至于 答案差异性,也算是不知所云,期待这篇文章能给我们普及一下这方面的知识。
论文地址: Dealing with Missing Modalities in the Visual Question Answer-Difference Prediction Task through Knowledge Distillation
代码:无~
槽点: 参考文献 太老,清一色17.18.19,少有几篇20的。看着确实方法有点老,这种文章咋选入的workshop?

一、Abstract

在这里插入图片描述
摘要里面对文章标题做了详细的解释:采用 知识蒸馏 的方法解决 模态缺失 的问题。

方法:采用 三输入image/question/answer)+ 模型的联合蒸馏knowledge 到目标网络(student),student 输入为 image/question pairs

数据集采用 VizWiz VQA-V2 Answer difference datasets

二、引言

VQA的发展产生了 VQD(Visual Question Answer-Diffenence任务),也就是在 VQA 之上再进一步的任务:尝试理解为什么 VQA 模型可能 产生不同答案 的原因。

借此引入VizzWiz数据集,然后以另外一篇参考文献为依托,讲述现有一些模型 未能考虑答案的轻微差异性 甚至是 答案的主观性,因此对应产生了 VQD 任务。

VQD 定义如下: 给出 问题+图像+10个可能的答案,模型需要回答 不同类型答案 产生的 10种类别/原因,即 在所给图像和问题的情况下,为什么会有 10个可能的答案

另外由于 VQD 挑战仍在进行,测试集并未公开,意味着在 测试时 需要使用 不同的答案 作为 输入 。所以 实际上VQD的定义 为:给一对图像+问题,模型需要 理解图像+问题,从而不仅仅 输出 正确答案,而且还能 推理 为什么会有 不同的答案

所以,作者的打算:
1、使用 3modalities (图像+问题+答案) 训练网络
2、知识蒸馏 出缺失的模态;
3、去训练另外一个 只有图像+问题 作为输入的模型
本文 主要贡献 如下:
1、回顾了 VQD,设计出方法解决 测试时模态缺失 的问题
2、设计了 的network,“Big” teacher
3、新方法?

三、相关工作

作者一开始表明了数据集存在的一些 问题,重点关注于 数据集中的答案差异
在这里插入图片描述

1、Answer Difference in VQA Datasets

之前的研究该问题的工作:基于性能指标一致性 ?

在这里插入图片描述
现有文献对 问题差异性 的研究:subjective, ambiguous, or containing synonymous answers具体来说,在 VQA & VizWiz 数据集中,明确地标出了每个视觉问题——指出 九个选项哪一个导致 观察到的 答案差异 的原因。
在这里插入图片描述

2、Generalized Knowledge Distillation

一般的 蒸馏 :采用两种流行的 “机器-教导-机器” 框架:知识蒸馏和私有信息

接下来分别讲述哪个人 第一次引入“学生-教师” 策略,主要思想就是 教师训练过程中 可以的得到 额外的信息,学生在 测试时 知识 不提供全部知识 的情况。

引入的 知识蒸馏:动机来源于 迁移教师的知识到学生,通过 匹配 教师的 输出 和学生的 输出 表示来 提升学生模型

在作者提出的模型中:有一个 三种单模态的模型+3输入(教师)目标(学生)模型 为仅采用visual/question对的模型。
吹牛皮的时候到了:是 第一个 引入一般的蒸馏计划VQD 任务中。

四、Methodology

主要包含 “教师”模型“Big”教师模型 + 知识蒸馏 的框架:
换汤不换药,结构有点老
在这里插入图片描述
在这里插入图片描述

1、Problem Definition

开始讲了 VQA 的定义,这里不啰嗦。然后讲 VQD的定义给出图问对,目标是 从 10种原因(为什么有不同的答案,本文第三张图片所示)中给出 真实的 binary ground truth vector(也就是 每个原因的概率
其中,数据集的标签 情况:每一个 原因 被打上标签:
1 :出现
0 :未出现。

作者模型框架 通用结构

在这里插入图片描述
说实话,确实有点过时了huo~

2、Proposed Training Method

上来介绍所用的 数据集ViWiz VQD 数据集包含了真实的 目标标签,以及含有不同答案原因的标签,注意一下,只有 测试集和测试集 提供这些,测试集不提供标签 的。

所以作者 在测试时 的数据集是 无法提供答案标签 的。

直观上来说,依赖三个模态 的模型和 只依赖问题和图像 的模型相比,依赖少的 表现得 更糟
另外:

在这里插入图片描述
鉴于此,作者根据 “教师-学生” 框架设计出多种模型,再加上 知识蒸馏。尽管 最佳的模型 有着所有的模态,由于当前数据集的限制,作者认为采用 不同教师模型的联合 同样是最佳解决方案。

3、Individual Modality Teacher Models

首先是对作者提出的模型进行描述:

视觉 教师: Resnet50 + mlp 产生 class logit
问题 教师:Glove embedding + GRU backbone + mlp 产生 class logit
Big Teacher: 使用 所有模态(V+Q+A),是 最复杂 的模型,超出了Baseline model

接下来 重点强调答案 教师:采用 不同标签答案 作为输入,尝试去 理解 这种答案差异分布的原因;

其他教师 模型有 轻微不同 的地方在于:在 没有任何其他线索的情况下,直接利用答案 猜测为什么会有 不同的答案。对于答案词表,官方采用了 6250词频大于5次 的单词。

而作者则选择了 独一无二的 58789 词表,原因 是有很多 独一无二的答案被舍弃掉 之后,模型可能 不会在意微小的差别,因此 导致混乱 或者 颗粒状的推理 产生。如果 除去测试集 外,使用了 45304 个单词。

4、“Big” Teacher Model

大教师 模型:res50+glove embedding +gru + attentionn 送入 MLP 产生 class logit

5、Student Model

ResNet50+Glove embeddings + GRU,采用 Q+V 作为输入+ MLP 产生中间特征 + FC classifier 输出 class logit 送入 Sigmoid 进行归一化 输出

6、Teaching the Student

教师 模型需要通过 预训练 才能教导学生( “预训练”,你在开玩笑?),采用 BCE损失

每一个教师模型采用 三个输入,通过 L2损失匹配 教师模型和学生模型的输出。另外还采用了 不同教师模型 里面的 中间视觉和问题特征Figure3 上面很详细。理论上来说是强迫学生模型 学习 另一个模态存在时 而不能学到的 特征表示

大教师 模型可以 学习答案的模态,通过 蒸馏 中间层的 特征表示学生 模型可以 模仿 其需要 遵循的特征 表示规律,从而可以 预测出 问题+图像对 产生答案差异类型。(emmmm, 感觉有点牵强?)

最终模型,采用 7个L2损失 在学生模型上,以及自身的 BCE损失,还采用了 中间特征 以及 预测特征 + 大教师 模型 蒸馏学生模型 的损失,最终损失如下:

在这里插入图片描述
在这里插入图片描述

五、实验

1、Implementation Details

ResNet50+ GRU 45304 个单词表,采用一个 word embedding 嵌入答案到特征里面,原因是:答案是单词而不是句子,所以 并未采用 RNN (啊,方法太老了吧?现在的 Transformer 完全无缘呀)

参数设置:1024 隐藏层维度
MLP 2层 全连接层 + relu 激活函数
adam 优化器 r=0.1
学习率 lr 0.01
教师模型 5 个 epoch
学生模型 20 个 epoch

2、VizWiz VQD Dataset Setup

一些对该数据集的介绍,由于 测试集未公开,所以采用 训练集训练验证集进行测试,每个问题有 10个答案 以及 10个答案为什么不同原因标注(正确的原因为1,其他为0)

3、Answer Difference Baselines

在这里插入图片描述
Q、I、A、 模型是单独训练的 教师 模型,Q+I+A 模型是 基础 模型,以及 大教师 模型
总结:单个模型 效果好,联合 起来效果更好,组合 更牛皮,归因于 知识蒸馏 至学生模型

4、Results of Knowledge Distillation

消融 实验:每一个蒸馏方法是 如何影响 学生模型的性能Basline没有 任何知识蒸馏的损失的 Q+I 模型。

在这里插入图片描述
这个 翻车 的结果表明:蒸馏 单个模态基础 模型 并未对 学生模型 产生帮助表4红色的 参数表明,教师 模型中的 视觉线索 并未 真正影响 基础模型;同时表明了:单个 教师 模型 发生退化 了。

原因 分析:学生模型 似乎 没有 从答案教师得到 更多的知识可能的原因答案 教师预测是==基于 并未出现 在学生模型上的不同模态 ==,所以单个 教师 模型 并不能帮助 学生模型。

然后作者 继续改进:单单 联合 所有教师模型 无用,最佳模型为 大教师+视觉+问题教师+所有中间特征的模型

在这里插入图片描述
原因 是由于 大教师 模型 (联合V、Q、A、+中间特征)依赖于 答案,并未超过最佳模型。

为了 更加伟大,作者运用 V+Q教师的损失+中间特征,使得 模型最伟大

5、Testing on the VQA 2.0 Dataset

VQA2.0 数据集在测试集中有 真实的答案 可以 提供,所以作者使用 trainval 训练,test 进行评估:
在这里插入图片描述
VizWiz 数据集上,和其他数据集 差异 的存在使得更 容易认错LQI 上,但其他类似 AMB、SBJ 这种并未受到影响,但是 DFF & SBJ 分数较高。

通过比较 视觉 教师 or 单独的视觉 模型,很难通过 仅观察 来得出 答案差异(在 LQL 上的性能下降)。

VQAv2 数据集上,表4单个模态 显著提升了模型性能,但是 最佳模型 仍然需要 大教师 模型的 参与变相说明作者提出的模型好?

接下来是 可视化 部分:

在这里插入图片描述
基础模型没有任何知识蒸馏 的模型,学生模型有蒸馏 的模型。

基础 模型在 学错 之后通过 蒸馏 学对了。

但是一个 显著缺陷 是: 学生模型 易受到 教师 错误的 影响如果教师模型答案全错,那么 学生 容易受到 教师的影响正确的改成错误的 (emmm, 理论上来说是这样,但是人类会出现大佬,反驳 老师,但 机器却不会 ),这表明了 教师模型 是很 plausible 的。

六、总结

设计模型 提高所给模态模型 的性能:大教师 模型,蒸馏知识学生模型

结语

终于,这篇博客算是写完了,这也是笔者第一次接触到这种类型的文章,研究答案的差异性,但是我很好奇的一点是,文中出现的 “reason” 真的是模型拥有的“推理”能力,而不是模板匹配吗?

  相关解决方案