KAC Network
tensorflow代码
3.1 Framework
本文提出的KAC Network分两个分支,一是visual consistency branch(V branch) 和一个 language consistency branch(L branch)
L branch:用attention model 选出query-related proposals,再经reconstruction model重构出input query q’,q’与原输入query q 相比,得loss:Llc
V branch: 根据input query 重构出候选proposals的位置参数,与原proposals的位置参数相比,得loss:Lvc
3.2 Knowledge Based Pooling(KBP)
将proposal ri 用CNN处理后,得到对应的visual feature vi (维度为dv)和概率分布 pi
1)input query q 先通过NLP分析器进行分析,找出所有名词
2)根据概率分布pi找出proposal的所属类别名称
3)proposal ri 的knowledge kiq 定义为其类别名称与query中名词的相似度(文章中是余弦相似度)
3.3 Visual Consistency
weakly supervised任务中没有proposals的groundtruth,可以把 kiq 作为guidance,也就是影响权重
- input query q 经过LSTM处理得embedding vector q’’(维度为dq);proposal ri 经过CNN处理得 vi(维度为dv);image x 经CNN处理得 v(维度为dv)
- multimodal feature viq:把上一步得到的vectors concatenate 之后映射到m维空间内:
- attention model 通过一个全连接层得到5维的predicting vector:
sip[0]表示 ri 与query q 的相似度,sip[1]~ sip[4]表示proposal的位置参数 - loss: Lvc
3.4 Language Consistency
这一部分主要借鉴《Grounding of Textual Phrases in Images by Reconstruction》[34]这篇论文。[34]中:
本文中:
下划线的地方应该就是本文对[34]修改的地方。接下来和[34]中一样,vkatt 作为解码LSTM的输入,预测出重构q’ 的文本序列。
loss:Llc