标题:可解释的视觉问题回答的概率神经符号模型
来源:ICML 2019https://proceedings.mlr.press/v97/vedantam19a.html
代码:https://github.com/kdexd/probnmn-clevr
一、问题提出
neural-symbolic模型是神经和符号网络模型的结合。
神经网络参数的灵活可以挖掘到跟多的信息,但是缺乏解释性;
符号网络缺乏灵活的学习能力,但支持很强的泛化和系统性,且更加直观可解释。
本文从NMN出发,结合neural和program,深入探讨模型的推理能力。
对于VQA的image i 和question x, 生成一个程序program z, 利用program制定推理过程,使用神经网络进行具体运算。
例子:该例子中,基于问题,program首先从场景中过滤出cylinder和cube两个关键词,应用filter[cube]算子并关联[left],之后和filter[cylinder]一起预测答案。
在构建program的过程中,将会动态产生一组参数θ,每一个参数代表一个模块。
本文的内容是在神经符号模型中引入了概率公式,通过这样的表达式,期望该模型满足可解释推理模型的一些自然需求。
二、主要思想
问题形式化定义:
输入图像: i ∈ R U × V i\in\ R^{U\times V} i∈ RU×V
输入问题: x = ( x 1 , . . . , x t ) , x t ∈ X x=\left(x_1,...,x_t\right),\ \ x_t\in\ X x=(x1,...,xt), xt∈ X
回答: a ∈ A a\in\ A a∈ A
前缀序列化程序program: z = ( z 1 , . . . , z t ) ∈ Z z=(z_1,...,z_t)\in\ Z z=(z1,...,zt)∈ Z,其中给定符号 z ∈ Z z\in\ Z z∈ Z,有一个对应的神经网络(后续可以动态的实例化神经网络)和参数 θ z \theta_z θz(给定z,这些都是确定的)。——该步定义类同于NMN神经模块网络中的模块
采用的数据集:
D = { x n , z n } ∪ { x m , a m , i m } D=\{x^n,z^n\}\cup\{x^m,a^m,i^m\} D={
xn,zn}∪{
xm,am,im}
{ x m , a m , i m } \{x^m,a^m,i^m\} {
xm,am,im}:VQA数据集
{ x n , z n } \{x^n,z^n\} {
xn,zn}:指引数据集,需要人工标注(为了探索模型的学习效果,期望N<<M,即使用很少的注释program得到很好的学习效果)
概率图模型:
分为两个步骤:Generative Model和Inference Network
- Generative Model
给定图像i,建立 p ( x , z , a | i ) p\left(x,z,a\middle|\ i\right) p(x,z,a∣ i)的模型,即关于问题、回答和program关系的模型。
模型分解为:
p ( x , z , a | i ) = p ( z ) p ( x