Probabilistic Neural-symbolic Models for Interpretable Visual Question Answering (VQA一概率神经符号网络)

原文下载地址:https://arxiv.org/pdf/1902.07864.pdf

大概内容:

这一篇提出了一种神经符号表示模型,与其他 neural-symbolic model 不同的是,这一篇的模型前带了probabilistic。

 

背景:

什么叫做neural-symbolic model呢?

其实就是神经和符号网络模型的结合。

神经网络缺乏解释,符号网络偏偏就强在interpretable。神经网络参数的灵活性使它能探索很多未知的latent space。总之我认为这2种设计方式各有优缺点。

对于VQA的image i 和 question x, 生成一个program z, 这个program 像是一个得到最终答案的算法,而且每一步应该都是可执行的。这个program其实就对应标题中的symbolic。每一个program的component应该都是一个神经网络。通过执行所有 component 得到 最终解。

 

文章工作:

1. 提出了端到端的新的训练模型的办法,使模型整体契合度更高。

2.  生成的program 更加 直接、更易读、更容易被理解, supervision percentage 更低, learning efficiency 比较高。

3. 通过给定答案(可能与事实不符),生成得到这个答案的program,展现reason的能力。

4. 在CLEVER和SHAPES两大数据集上有提升。

 

创新点:

1. 使用了概率模型。提升了模型的program accuracy.

2. 提出了3 stage-wise 训练方法。

第一部分 question coding, 训练的是把问题转成program。

第二部分 module training, 训练的是如何执行这些program, 也就是训练神经网络

第三部分 joint learning, 把前面2部分的参数放在一起在训练一遍,作者认为这样达到了end to end的效果。但是我认为这并不是完全的end to end,从后面的实验结果来看question coding其实非常crucial。

3. 用了反向推理的思路,通过给定answer, generate program,增强模型的解释能力。

 

反思:

在自己的工作中,应该多注意:

1. 考虑通过概率的方式去设计模型,学习出分布,用统计的方法解决问题。

2. VQA是一个复杂的问题,通过答案推题目,通过题目推答案,这种循环的训练方式其实是一种dual的训练方式,可以考虑双向训练,达到更好的效果。

3. 用符号模型去做,把一个大模型拆成许多个小的component。

4. 考虑设计多个训练 stage,最后joint learning.

 

 

你可能感兴趣的:(Python学习)