AI作者:Chan Joya

AI编辑:田旭

Pythia,她是古希腊的阿波罗神女祭司,以传达阿波罗神的神谕而闻名,被认为能预知未来。她的名字,被 Facebook AI Research 将赋给了在 VQA 2018 Challenge 上的冠军模型。Pythia 以 VQA 2017 Challenge 的冠军模型 Up-Down 为基本方法,辅助以了诸多工程细节上的调整,这使得 Pythia 较往年增加了约 2% 的性能提升(70.34% → 72.25%)。在这里,我们将尝试去解读这个模型。

由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia

论文:Pythia v0.1: the Winning Entry to the VQA Challenge 2018

代码:facebookresearch/pythia (虽然在提交结果时为 72.25%,但公开的代码中达到的效果为 72.27%)

首先我们将会对 2017 VQA Challenge 的冠军模型 Up-Down 进行解读,而后再引入 Pythia 为其的改进,最后从代码中去查看值得注意的实现部分。一起来看吧!

2017 VQA Challenge 冠军,Up-Down 模型解读

Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering(CVPR'18,澳大利亚国立大学 & 京东 AI 研究院 & Microsoft Research & 阿德莱德大学 & 麦考瑞大学) 

Tips and Tricks for Visual Question Answering: Learnings from the 2017 Challenge(CVPR'18,阿德莱德大学 & 澳大利亚国立大学 & Microsoft Research)

VQA 2017 Challenge 的冠军模型体现在这两篇文章中,我们放在一起介绍。CVPR'18 这一篇是方法论,Tips and Tricks 算是工程实现方面的报告。在方法论中,主打的就是 top-down 和 bottom-up 和两种 attention 机制:前者是指的人会被视觉中的显著突出物体给吸引,是由图像这种底层信息到上层语义的;而后者指的是人在进行某项任务的时候,紧密关注和该任务相关的部分,是由上游任务去关注到图像的。一般的注意力机制就像下图中的左侧显示的那样,是自上而下(top-down)的,表现在依据任务为这些 grid cell 去分配不同的权重,而右侧的注意力机制是自下而上的,从物体层面(object-level)去注意到显著性区域:

由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia

图1.1 两种注意力机制的比较

那我们首先来看 bottom-up attention 如何实现。作者采用了基于 ResNet-101 的 Faster R-CNN,添加了 attributes 分支在 VisualGenome 上进行了训练,也正因为如此,Faster R-CNN 能进行更为细致的检测 (图2.2)。在得到图像的预测区域后,再取到这个区域对应的特征(7×7×2048 做一个 mean pooling)。也就是说,在 VQA 模型中是没有用到预测出的标签的,而仅仅使用了该区域的特征。

由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia
图1.2 Bottom-up attention 部分,Faster R-CNN 的检测实例

再来看 top-down attention,这个注意力机制的原型即为 image caption 中的 soft attention 机制,本质上是为不同区域的图像特征赋予权重。如何生成这些权重呢?在这里依照下图简单说明一下:(1)GRU 编码问题为 hidden state 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia ;(2)bottom-up 部分得到图像向量 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia 是一个 2048 维的向量;(3)令对于 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia 的权重为 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia, 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia 是需要学习的参数, 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia 可以看作是输入为 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia 和 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia 的一个 LSTM。通过这样一个变换接上 softmax,形成对应于每一个 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia 的权重为 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia。而后续的过程也可以很自然的得出了,利用权重对图像特征做 weighted sum: 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia ,与问题 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia 一起再经过一个 LSTM 得出候选答案的概率。

由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia
图1.3 本文中的 VQA 模型。对照上述的文字一步一步地进行理解,模型中这种双 LSTM 的做法最早来源于 CVPR2015 的论文 Long-term Recurrent Convolutional Networks for Visual Recognition and Description

两者结合后的模型称为 Up-Down,以下提供了在 VQA v2.0 上的评测结果,为提交时最高:

由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia
图1.4 表格是 VQA v2.0 test-standard server 在 2017年8月8日的结果, 提交的 Up-Down 模型是 30 个模型的 ensemble 结果。图像是模型可视化的结果

从评测时集成了 30 个模型就可以看出,文章中一定有诸多的实现细节。下面就是 Tips and Tricks 一文中提及的细节:

  1. sigmoid outputs: 允许多个正确答案存在,利用多个二分类器来替代 softmax;

  2. soft training targets: 这里一开始理解成了知识蒸馏中的 soft target,但是实质上在这里训练时的标签没有任何不同,只是 allow uncertain answers;

  3. image features from bottom-up attention: 这也就是核心方法 Up-Down;

  4. gated tanh activations: 门控 tanh **函数,灵感来源于 LSTM/GRU 中的 gating 操作,实验中发现具有比 ReLU 和 tanh 更好的效果。简述如下:这个层的目标是完成一个非线性的映射 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia ,参数为 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia ,实现为 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia,其中 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia 分别表示 sigmoid 函数和 element-wise 乘积。 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia 就可以看作是对于 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia 的一个门控;

  5. output embeddings initialized using GloVe and Google Images: 这里的操作就很骚了,涉及对于答案分类时最后一层的初始化方法。本质上每个答案的分数就是图片特征和问题特征与层权重的点积: 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia ,而层权重就可以看成是答案的特征;对于 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia 通过答案的 GloVe word embeddings 进行初始化,对于 由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia ,对每个答案在 Google Images 上搜索,挑选 10 个最相关的图片计算经过 ImageNet 预训练的 ResNet-101 特征进行初始化;

  6. large mini-batches: 256 和 384 最佳;

  7. smart shuffling of training data: 保持在同一个 batch 中的问题都有同样的一对,但是其对应的是不同的图像和答案。

涨点情况以及细致分析可以移步原论文。这里也有分享的 slides:VQA-Challenge-Slides-TeneyAnderson,将本可以秘而不宣的 tricks 做详细的 ablation study 是一件非常令人感动的事情。

代码:Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering

Pythia: 极致的工程能力

Pythia v0.1 the Winning Entry to the VQA Challenge 2018(arxiv'18,Facebook AI Research)

做出这个模型的,是 Facebook AI Research (FAIR)’s A-STAR team. A-STAR 的意思,如果将其拆解开来则是 Agents that See, Talk, Act, and Reason。这些人类才特有的动作,似乎都是 VQA 这个任务里所不可少的一部分。Pythia 的重点调整在于模型结构,超参数,数据增强,以及最后的模型集成。我们分条列举:

模型结构:65.32% → 66.91%

  1. 还记得 Up-Down 里面那个长相奇怪的门控**函数吗?Pythia 使用了 RELU+Weight Normalization 来取代它,这样可以降低计算量,但是效果上有无提升文中没有给出实验。

  2. 在进行 top-down 的 attention 权重计算时,将特征整合的方式由原本 concat 转换为 element-wise multiplication,这也是可以降低计算量的表现。

  3. 在第二个 LSTM 做文本和图像的联合预测时,hidden size 为 5000 最佳。

超参数:66.91% → 68.05%

这里主要是学习率的调整。作者发现在 Up-Down 模型中适当减小 batch 可以带来一些提升,这意味着在同样的 batch 下提升学习率可能带来性能的提升。为了防止学习率过大不收敛,他们采用了广泛使用的 warm-up 策略,并使用了适当的 lr step。这使得 Pythia 的性能提升约一个点。

Faster R-CNN 增强:68.05% → 68.49%

将 Faster R-CNN 的 backbone 由 ResNet-101 换为 ResNext-101-FPN,并且不再使用 ROI Pooling 后的 7×7×2048 + mean pooling 表征 object -level 特征,而采用 fc7 出来的 2048 维向量以减少计算量。

数据增强:68.49% → 69.24%

采用了图像水平翻转的增强方法,这样的方式在纯视觉任务中广泛出现。在这里还需要做变换的是,将问题和答案中的“左”和“右”对调。

Bottom-up 增强:69.24% → 70.01%

光是使用 Faster R-CNN 在 head network 上的 fc7 特征不足以表示图像整体的特征。于是作者们融合了 ResNet-152 提取的整图特征,并且增加了在每一张图提取 object-level feature 的个数。它们分别带来了可见的提升。

模型集成:70.96% → 72.18%

由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia
图2.1 不同 Ensemble 策略的实验

注:72.18% 是 VQA v2.0 test-dev 上的结果,而提交在 test-std 上的结果为 72.27%。test-std 才是最终的榜单排名依据。

总结

Up-Down 是一个十分优秀的,面向于真实图像场景的 VQA 模型,Pythia 是对它的强化实现(不愧是 FAIR,代码写的真是好)。以 Up-Down 为基础的方法已经连续斩获 2017 和 2018 的 VQA 冠军。现在 VQA 2019 Challenge 已经拉开帷幕,winner 将在 VQA and Dialog Workshop, CVPR 2019 进行公布。还会是 Up-Down 吗?

文中的错误与疏漏,恳请批评指正。欢迎交流 ~(另外弱弱的问一句,正进行/有意 VQA 2019 Challenge 的童鞋,可以拉上我呀 ლ╹◡╹ლ!有卡,我们一起炼丹!)

AI编辑:田旭

推荐阅读

堪比Focal Loss!解决目标检测中样本不平衡的无采样方法

超越BN和GN!谷歌提出新的归一化层:FRN

这份Kaggle Grandmaster的图像分类训练技巧,你知道多少?

TensorFlow 2.2.0-rc0,这次更新让人惊奇!

2020年,我终于决定入门GCN

另辟蹊径!斯坦福大学提出边界框回归任务新Loss:GIoU

人人必须要知道的语义分割模型:DeepLabv3+

机器学习算法工程师


                                            一个用心的公众号

由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia


由浅及深,细致解读图像问答 VQA 2018 Challenge 冠军模型 Pythia

相关文章:

  • 2021-11-27
  • 2021-07-26
  • 2021-05-08
  • 2021-09-24
  • 2021-11-06
  • 2021-11-27
  • 2021-10-21
猜你喜欢
  • 2022-01-19
  • 2021-12-24
  • 2021-07-07
  • 2021-07-11
相关资源
相似解决方案