論文閱讀:《Probabilistic Neural-symbolic Models for Interpretable Visual Question Answering》

star發表於2022-04-09

標題:可解釋的視覺問題回答的概率神經符號模型
來源: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制定推理過程,使用神經網路進行具體運算。

image-20220409115142250

例子:該例子中,基於問題,program首先從場景中過濾出cylinder和cube兩個關鍵詞,應用filter[cube]運算元並關聯[left],之後和filter[cylinder]一起預測答案。

image-20220409115208071

在構建program的過程中,將會動態產生一組引數θ,每一個引數代表一個模組。

image-20220409115234404

本文的內容是在神經符號模型中引入了概率公式,通過這樣的表示式,期望該模型滿足可解釋推理模型的一些自然需求。

二、主要思想

問題形式化定義

輸入影像:\(i\in\ R^{U\times V}\)

輸入問題:\(x=\left(x_1,...,x_t\right),\ \ x_t\in\ X\)

回答:\(a\in\ A\)

字首序列化程式program:\(z=(z_1,...,z_t)\in\ Z\),其中給定符號\(z\in\ Z\),有一個對應的神經網路(後續可以動態的例項化神經網路)和引數\(\theta_z\)(給定z,這些都是確定的)。——該步定義類同於NMN神經模組網路中的模組

採用的資料集

\[D=\{x^n,z^n\}\cup\{x^m,a^m,i^m\} \]

\(\{x^m,a^m,i^m\}\):VQA資料集
\(\{x^n,z^n\}\):指引資料集,需要人工標註(為了探索模型的學習效果,期望N<<M,即使用很少的註釋program得到很好的學習效果)

概率圖模型

分為兩個步驟:Generative Model和Inference Network

image-20220409115823435

  1. Generative Model

給定影像i,建立\(p\left(x,z,a\middle|\ i\right)\)的模型,即關於問題、回答和program關係的模型。

模型分解為:

\[p\left(x,z,a\middle|\ i\right)=p\left(z\right)p\left(x\middle|\ z\right)p\left(a\middle|\ z,i\right) \]

步驟:首先從program z的先驗分佈中取樣一個program z,並通過該program z生成問題x;之後基於program z和輸入的圖片i,生成問題的答案。(此步驟中,z生成了問題x,但x不參與生成答案。)
其中,對program z裡面的每一個項設定一種小的神經單元,動態地例項化神經網路的引數\(\theta_z\)(給定z,這些都是確定的)。——該步類同於NMN

從而:
\(p\left(a\middle|\ i,z\right)\)被化為\(p\left(a\middle|\ i,\theta_z\right)\),其中\(\theta_z=\{{\theta_{z_t}}\}_{t=1}^T\)

從而:

\[p\left(x,z,a\middle|\ i\right)=p\left(z\right)p\left(x\middle|\ z\right)p\left(a\middle|\ i,z\right)=p\left(z\right)p\left(x\middle|\ z\right)p\left(a\middle|\ i,\theta_z\right) \]

\(p\left(z\right)\)用最大似然法對關於program的封閉資料集進行預訓練,並在之後保持固定,本文引數化為LSTM網路;

\(p_\sigma(x|z)\)同樣引數化為LSTM網路;

\(\theta_z\)被引數化為CNN網路,將圖片或者注意力作為輸入,提取圖中的感興趣區域。

  1. Inference Network

推理過程,如圖中虛線所示,首先通過問題生成program z,之後結合圖片和生成的program,生成問題的答案。

文中不再使用NMN中parser+layout的結構,而是使用一個推理網路\(q_\emptyset(z|x)\)來對映問題到潛在的結構化程式program。

優點:融合了概率公式的NMN模型(Prob-NMN)可以帶來更好的半監督學習和推理能力。

引數學習

文中提出了一種三階段優化演算法:

  • Question Coding
  • Module Training
  • Joint Training
  1. Question Coding

首先基於\(\{x^n,z^n\}\)以及\(x^m\),學習一個好的在潛空間z編碼問題x的方法,即優化概率公式\(p_\sigma(x|z)\)\(q_\emptyset(z|x)\)

目標:\(argmax\ \sum_{n}{log\ p\left(x^n\middle|\ z^n\right)}+\sum_{m}{log\ p\left(z^m\right)}\)

需要補充知識點:變分推斷和攤銷推理網路

參考知乎:

https://zhuanlan.zhihu.com/p/402237111

https://zhuanlan.zhihu.com/p/385341342

Step1:

先處理第二項\(\sum_{m}{log\ p\left(z^m\right)}\),利用攤銷推理網路\(q_\emptyset\)優化證據下界( Evidence Lower Bound (ELBO)):

image-20220409150453054

利用β < 1來衡量公式(1)中KL散度 \(D_{KL}(q(z|x)||p(z))\)的貢獻。
該約束條件下,\(u_{qc}\)項沒有捕獲program的語義,即沒有將其與特定的問題相關。所以還需要利用\(\{x^n,z^n\}\)學習問題和program之間的聯絡,併為問題x提供易讀的解釋。

Step2:

處理第一項\(\mathcal{L}=\sum_{n}{log\ p_\sigma\left(x^n\middle|\ z^n\right)+log\ p\left(z^n\right)}\),設序列z中第t個時間步的序列\(z_t\)分佈為引數\(\pi_t\)的範疇。設\(\mathrm{\Pi}=\{\pi_t\}_{t=1}^T\)表示整個\(\pi_t\)上的聯合隨機變數,,按照相同的方法優化組合\(\mathcal{L}=\sum_{n}{log\ p_\sigma\left(x^n\middle|\ z^n\right)+log\ p\left(z^n\right)}\)的下界:

image-20220409162127584

在實踐中,由於後驗\(q(\mathrm{\Pi}|z^n,x^n)\)會使得KL散度趨於∞,所以公式(2)中得到的下界沒有意義。故改為對\(\mathcal{L}\)進行近似:

image-20220409162943038

  1. Module Training

\[p\left(x,z,a\middle|\ i\right)=p\left(z\right)p\left(x\middle|\ z\right)p\left(a\middle|\ i,z\right)=p\left(z\right)p\left(x\middle|\ z\right)p\left(a\middle|\ i,\theta_z\right) \]

該階段對模組進行優化,即優化引數\(\theta_Z\)。最大化:

image-20220409182637609

目標是找到模組引數的最佳初始化值。

例子:模組find [green] 的初始化引數\(\theta_{find\left[green\right]}\)將會約束該模組的執行達到預期的效果(即將圖片中綠色部分加上注意力)。

  1. Joint Training

利用全部資料集\(D=x^n,z^n\cup x^m,a^m,i^m\),綜合學習概率圖模型的所有引數:\(\{\theta_Z,\sigma,\varphi\}\)

目標:最大化\(\mathcal{L}+U_f\),其中\(U_f=\sum_{m=1}^{M}{log\ p\left(x^m,a^m\middle|\ i^m\right)}\)\(\mathcal{L}=\sum_{n=1}^{N}{log\ p\left(x^n,z^n\right)}\)

按照步驟(1)類同的方法推導\(U_f\)的變分下界:

image-20220409183926489

綜合上述推導中的式(4)和式(3),將KL散度改寫並加入期望中(參照知乎文章),並對相應項加入比例因子,得到最終的優化目標:

image-20220409183952697

由於期望是關於\(\varphi\)不可微的,所以使用了一種REINFORCE估計器來獲取\(\varphi\)的梯度估計。

最終的演算法流程:

image-20220409135549137

三、實驗

資料集:SHAPES CLEVR

結果:

image-20220409184805264

image-20220409184816442

不同比例監督資料下的效果:

image-20220409184908741

生成program的一致性和靈敏性:

image-20220409185003544

四、總結

文章工作:

  1. 模型為半監督學習,利用少量標記資料學習program的表示。
  2. 使用了概率模型,提升了模型的效能,使得生成的program 更加直接、易讀、被理解。
  3. 用了反向推理的思路,通過給定答案(可能與事實不符),生成得到這個答案的program,提高了模型的解釋效能。
  4. 三階段訓練策略:先預學習部分引數,便於聯合學習獲取更好的表現。

相關文章