论文题目:FiLM: Visual Reasoning with a General Conditioning Layer
论文链接:https://arxiv.org/abs/1709.07871
代码框架:PyTorch
代码地址:https://github.com/ethanjperez/film
任务:视觉推理
数据集:CLEVR
方法介绍
左边这个生成器处理问题Xi,生成了N个关于i的参数组合,GRU是RNN的一种,用于自然语言处理。最后一个GRU隐藏状态是问题嵌入,从这里我们可以通过仿射映射预测每个残差块的(γ,β)参数。中间的CNN是提取特征,可以从零开始训练,或者迁移预训练的ResNet101;然后经过数个ResBlock,最后经过分类器。
相关工作
FiLM能视为条件归一化CN的泛化。
和human以及已有的方法进行准确率对比。
实验
4.2 What Do FiLM Layers Learn?
可视化
刚开始的时候,对于不同问题,特征图的可视化激活图都是一样的(Before FiLM那一行);经历了几次FiLM层之后,Before FiLM那一行的激活图不一样了。
4.4 CLEVR-Humans: Human-Posed Questions
探索模型的泛化性,用CLEVR-Humans数据集
过程:用已有的用CLEVR数据集训练好的模型,再辅以 CLEVR-Humans数据集来微调 linguistic pipeline,不能更新 visual pipeline为了避免过拟合。
4.5 CLEVR Compositional Generalization Test
用CLEVR-CoGenT这个新的数据集来测试few- shot and zero-shot的表现
数据集它包含了两个不同条件的数据集A,B,他们两的颜色正好对调。为了考察模型推理的方式:是通过记住特征的组合?还是通过学习泛化的表现?
用B微调后,A的准确率下降了。说明一定程度上还是在记特征组合。
0-shot是为了扩充实验。【few-shot是指样本很少,zero-shot是指样本为零】
附录
错误分析:
遮挡、FiLM学到了计数背后的潜在概念导致误判(差一)、逻辑前后不一致