《Stacked Attention Networks for Image Question Answering》论文解读与实验

这是去年10月份,自己看的第一篇关于VQA的论文,由于课程内容需要,对论文内容理解得还算深入,并在github上找了一些代码来实验。下面直接开始~

1. 实验目的

        完成一项视觉问答(VQA)的任务,即给定一张图像,和一个问题,构建一个网络模型使之能够根据图像内容回答问题。

2. 实验环境

处理器:Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz   3.19 GHz;

GPU:GeForce GTX 1070Ti,版本456.71,NVIDIA CUDA 11.1.96 driver;

Python 3.9.7;

程序所需依赖包在附件代码的requirements.txt文件中。

3. 实验方法

        本实验主要完成了对文献[1]的复现,该文献提出了堆叠注意力网络SANs,SANs模型是使用注意力机制完成VQA任务的经典模型。

        SANs模型使用问题的语义表达搜索图像中与问题相关的区域来预测答案。图像的全局特征通常包含大量冗余的、与问题无关的特征,使用图像的全局特征来预测问题的答案反而会使准确率下降,因此就引入了注意力机制,希望模型只注意到图像中与问题相关的局部区域,再使用局部的图像特征进行预测;根据图像回答问题通常是一个多步推理的过程,因此这里使用了多层的注意力以模拟多步推理的过程,越高的注意力层主要到的区域与问题的相关性越高。如图3.1所示,输入问题是“What are sitting in the basket on a bicycle?”,注意力层可视化效果中的明亮区域就是注意到的图像区域,在第一个注意力层中,模型注意到了三个区域,而第二个注意力层,模型锁定了一个目标区域,并根据这个目标区域进行答案预测。

图3.1  训练好的多层注意力可视化

         一个SANs模型主要包含三个组成部分:一个用于提取高层图像特征的CNN,一个用于提取问题的语义特征的LSTM,一个用于定位目标图像区域和实现多步推理堆叠注意力网络,如图3.2所示。SANs首先使用问题特征查询第一个视觉注意力层中的图像区域,然后将问题向量和检索到的图像特征组合成一个细化的查询向量,在第二个注意力层中再次查询图像区域。越高层的注意力能提供更清晰的注意力分布,与答案相关性更高。

图3.2  SANs结构图

 3.1 图像模型

 3.2 问题模型

3.3 堆叠注意力网络 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值