| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> Dealing with Missing Modalities in the VQ Answer-Difference Prediction Task through知识蒸馏 笔记 -> 正文阅读 |
|
[人工智能]Dealing with Missing Modalities in the VQ Answer-Difference Prediction Task through知识蒸馏 笔记 |
Dealing with Missing Modalities in the Visual Question Answer-Difference Prediction Task through Knowledge Distillation 论文笔记写在前面 这是 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、Answer Difference in VQA Datasets之前的研究该问题的工作:基于性能指标一致性 ?
2、Generalized Knowledge Distillation一般的 蒸馏 :采用两种流行的 “机器-教导-机器” 框架:知识蒸馏和私有信息, 接下来分别讲述哪个人 第一次引入“学生-教师” 策略,主要思想就是 教师 在 训练过程中 可以的得到 额外的信息,学生在 测试时 知识 不提供全部知识 的情况。 引入的 知识蒸馏:动机来源于 迁移教师的知识到学生,通过 匹配 教师的 输出 和学生的 输出 表示来 提升学生模型。 在作者提出的模型中:有一个 三种单模态的模型+3输入(教师), 目标(学生)模型 为仅采用visual/question对的模型。 四、Methodology主要包含 “教师”模型 和 “Big”教师模型 + 知识蒸馏 的框架: 1、Problem Definition开始讲了 VQA 的定义,这里不啰嗦。然后讲 VQD的定义:给出图问对,目标是 从 10种原因(为什么有不同的答案,本文第三张图片所示)中给出 真实的 binary ground truth vector(也就是 每个原因的概率 )。 作者模型框架 通用结构:
2、Proposed Training Method上来介绍所用的 数据集,ViWiz VQD 数据集包含了真实的 目标标签,以及含有不同答案原因的标签,注意一下,只有 测试集和测试集 提供这些,测试集 是 不提供标签 的。 所以作者 在测试时 的数据集是 无法提供答案标签 的。 直观上来说,依赖三个模态 的模型和 只依赖问题和图像 的模型相比,依赖少的 表现得 更糟。
3、Individual Modality Teacher Models首先是对作者提出的模型进行描述: 视觉 教师: Resnet50 + mlp 产生 class logit 接下来 重点强调 了 答案 教师:采用 不同标签答案 作为输入,尝试去 理解 这种答案差异分布的原因; 和 其他教师 模型有 轻微不同 的地方在于:在 没有任何其他线索的情况下,直接利用答案 猜测为什么会有 不同的答案。对于答案词表,官方采用了 6250 个 词频大于5次 的单词。 而作者则选择了 独一无二的 58789 个 词表,原因 是有很多 独一无二的答案被舍弃掉 之后,模型可能 不会在意微小的差别,因此 导致混乱 或者 颗粒状的推理 产生。如果 除去测试集 外,使用了 45304 个单词。 4、“Big” Teacher Model大教师 模型:res50+glove embedding +gru + attentionn 送入 MLP 产生 class logit 5、Student ModelResNet50+Glove embeddings + GRU,采用 Q+V 作为输入+ MLP 产生中间特征 + FC classifier 输出 class logit 送入 Sigmoid 进行归一化 输出 6、Teaching the Student教师 模型需要通过 预训练 才能教导学生( “预训练”,你在开玩笑?),采用 BCE损失 每一个教师模型采用 三个输入,通过 L2损失 来 匹配 教师模型和学生模型的输出。另外还采用了 不同教师模型 里面的 中间视觉和问题特征,Figure3 上面很详细。理论上来说是强迫学生模型 学习 另一个模态存在时 而不能学到的 特征表示。 大教师 模型可以 学习答案的模态,通过 蒸馏 中间层的 特征表示,学生 模型可以 模仿 其需要 遵循的特征 表示规律,从而可以 预测出 问题+图像对 产生答案 的 差异类型。(emmmm, 感觉有点牵强?) 最终模型,采用 7个L2损失 在学生模型上,以及自身的 BCE损失,还采用了 中间特征 以及 预测特征 + 大教师 模型 蒸馏学生模型 的损失,最终损失如下:
五、实验1、Implementation DetailsResNet50+ GRU 45304 个单词表,采用一个 word embedding 嵌入答案到特征里面,原因是:答案是单词而不是句子,所以 并未采用 RNN (啊,方法太老了吧?现在的 Transformer 完全无缘呀) 参数设置:1024 隐藏层维度 2、VizWiz VQD Dataset Setup一些对该数据集的介绍,由于 测试集未公开,所以采用 训练集训练,验证集进行测试,每个问题有 10个答案 以及 10个答案为什么不同 的 原因标注(正确的原因为1,其他为0) 3、Answer Difference Baselines
4、Results of Knowledge Distillation消融 实验:每一个蒸馏方法是 如何影响 学生模型的性能。Basline 是 没有 任何知识蒸馏的损失的 Q+I 模型。
原因 分析:学生模型 似乎 没有 从答案教师得到 更多的知识,可能的原因 是 答案 教师预测是==基于 并未出现 在学生模型上的不同模态 ==,所以单个 教师 模型 并不能帮助 学生模型。 然后作者 继续改进:单单 联合 所有教师模型 无用,最佳模型为 大教师+视觉+问题教师+所有中间特征的模型
为了 更加伟大,作者运用 V+Q教师的损失+中间特征,使得 模型最伟大 5、Testing on the VQA 2.0 DatasetVQA2.0 数据集在测试集中有 真实的答案 可以 提供,所以作者使用 trainval 训练,test 进行评估: 通过比较 视觉 教师 or 单独的视觉 模型,很难通过 仅观察 来得出 答案差异(在 LQL 上的性能下降)。 在 VQAv2 数据集上,表4 中 单个模态 显著提升了模型性能,但是 最佳模型 仍然需要 大教师 模型的 参与(变相说明作者提出的模型好?) 接下来是 可视化 部分:
基础 模型在 学错 之后通过 蒸馏 学对了。 但是一个 显著缺陷 是: 学生模型 易受到 教师 错误的 影响:如果教师模型答案全错,那么 学生 容易受到 教师的影响 将 正确的改成错误的 (emmm, 理论上来说是这样,但是人类会出现大佬,反驳 老师,但 机器却不会 ),这表明了 教师模型 是很 plausible 的。 六、总结设计模型 提高 对 所给模态模型 的性能:大教师 模型,蒸馏知识 到 学生模型。 结语终于,这篇博客算是写完了,这也是笔者第一次接触到这种类型的文章,研究答案的差异性,但是我很好奇的一点是,文中出现的 “reason” 真的是模型拥有的“推理”能力,而不是模板匹配吗? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/17 20:32:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |