1. 程式人生 > >李飛飛發表研究新成果:視覺推理的推斷和執行程式(HR)

李飛飛發表研究新成果:視覺推理的推斷和執行程式(HR)

原文

論文導讀:目前進行視覺推理的方法都是通過黑箱結構將輸入直接對映到輸出,而不是對潛在的推理過程進行明確建模。這樣一來,黑箱模型學習到的是利用資料內的偏置而不是學習進行視覺推理的過程。受到模組化網路的啟發,本文提出了一個視覺推理模型,由一個程式產生器和一個執行引擎構成,程式產生器用來構造進行推演的推理過程的明確表示,執行引擎能夠執行生成的程式來產生答案。程式產生器和執行引擎都是通過神經網路實現的,並且用後置演算法和增強演算法結合進行訓練。作者使用CLEVR基準來評測視覺推理,實驗證明該模型顯著優於強基準,並且各種設定下泛化能力更強。

問題匯入:在很多應用中,計算機視覺系統需要通過對視覺世界的推理來回答覆雜的問題。為了處理新的物體之間的相互作用,或者物體屬性的組合,視覺推理需要是組合型的:即使一個模型沒有
人在摸自行車的先驗知識,它也應該能通過把它對自行車的意思結合起來理解這個短語。這樣的組合推理是人類智慧的一個標誌,它能讓人們用有限的基本技能解決大量的問題。

組合推理是實際應用中遇到的需要理解複雜視覺場景不可或缺的一部分,例如機器導航,自動駕駛,以及監控。目前的模型都無法完成這樣的推理。

主要演算法

作者提出了一個用於視覺提問回答的可學習的組合模型。該模型將影象和關於影象的視覺問題作為輸入。模型從固定的可能答案集中選擇出對應問題的一條回答。在其內部,模型預測出一個程式來表示需要回答該問題的推理步驟。然後,該模型在影象上執行預測的程式,產生一個答案分佈。

系統框圖:程式產生器是一個序列到序列模型,將問題作為一序列單詞輸入,然後輸出一個函式序列作為程式,其中,序列可視為為程式抽象語法樹的字首遍歷。執行引擎在影象上執行程式,通過組合一個模組化的神經網路來映象預測程式的結構。

程式

作者通過一個預先設定的函式集F來定義語法。由於作者感興趣的地方在於視覺問題回答,他們將場景常量包括在詞典中,代表影象的視覺特徵。我們用語義樹來表示有效的程式,每個節點都包含一個函式,在其中每個節點的子代和函式的引數數量一樣多。

程式產生器

程式產生器從以詞序列來表示的自然語言問題中預測程式。作者使用字首遍歷來序列化語義樹,它本來是一個非連續離散結構,將其轉換為函式序列。然後便可以使用標準

LSTM序列到序列模型來實現程式產生器。

執行引擎

給定一個預測程式和輸入影象,執行引擎在影象上執行程式,來預測答案。執行引擎通過模組化的神經網路來實現:用生成的程式來組合針對該問題的神經網路,網路通過一系列模組組成。對於每個函式集中的函式f,執行引擎都含有一個神經網路模組mf。給定程式z,執行引擎按程式定義的順序將每個函式f對映到其對應的模型mf,來產生一個神經網路m(z)子模組的輸出作為相應父模組的輸入。

實驗內容

強監督及半監督學習

CLEVR資料集上基準模型,人工和我們的模型的三個變體的問題回答準確率對比。我們模型的強監督版本使用了所有的700000真實值程式進行訓練,而半監督版本分別使用了900018000真實值程式進行訓練。人工表現通過CLEVR的一個5500的子集進行測量。結果顯示使用強監督,我們的模型在CLEVR資料集上可以達到近乎完美的準確率。(甚至比亞馬遜的Mechanical Turk的人工還要準確)。

預測程式(左)和答案(右)的準確率與真實值程式數量的關係圖。藍色和綠色分別給出了微調之前和之後的準確率。點線表示強監督模型的準確率。

模型學到了什麼?

CLEVR-CoGenT資料集是用來研究VQA模型進行組合泛化的能力。該資料集包含兩個情況下的資料:Condition A中,所有的立方體都是灰色,藍色,棕色或黃色的,所有的圓柱體都是紅色,綠色,紫色或青色的。Condition B中,立方體和圓柱體交換了顏色模式。

根據最終特徵圖,對預測的答案分數總和的梯度範數視覺化結果。從左到右,每個問題都為程式添加了一個模組,新的模組是問題中的下劃線部分。視覺化結果說明了模型在對哪個目標進行問題回答的推理過程。影象來自驗證集。

結果顯示,我們的模型僅用10000個問題和1000張圖片就可以學習到新屬性的組合,並且優於同樣訓練的基準線。我們認為這是由於模型的組合特性使其能從很少的訓練資料中快速學習屬性的新語義,例如紅色

對新的屬性組合的泛化能力

CLEVR-CoGenT資料集上的問題回答準確率。上:我們在Condition A資料上訓練模型,然後分別在Condition ACondition B上對模型進行測試。然後我們使用3000張圖片和30000個問題,在Condition B上對模型進行微調,然後再次對兩個Condition分別進行測試。在Condition A上訓練時,該模型使用了18000個程式,但是在Condition B上進行微調時沒有使用任何程式。下:我們研究了使用不同數量資料在Condition B上進行微調的影響。我們展示了整體的準確率以及對顏色提問和對形狀提問的準確率。

對新問題型別的泛化能力

分別在短的和長的CLEVR問題上的回答準確率。左列:僅在短問題上訓練的模型。模型使用了25000個真實值短程式進行訓練。右列:在短問題和長問題上進行的訓練。模型在短問題上進行訓練,然後在整個資料集上進行微調。微調時沒有用任何實值程式。

模型在短問題上訓練時,程式和答案預測不正確的長問題示例,但是在模型在長問題上微調之後,程式和答案都能正確預測。

對人提出問題的泛化能力

CLEVR-Humans資料集的問題示例,以及模型預測的程式和答案。CLEVR資料庫中沒有出現的問題答案進行了下劃線。一些預測的程式能和問題的語義進行準確匹配(綠色),一些程式和問題語義緊密匹配(黃色),而一些程式和問題似乎沒有關係(紅色)。

四個模型只在CLEVR資料集(左)訓練,以及在CLEVR-Humans資料集的微調(右),在CLEVR-Humans資料測試集的問題回答準確率。

結論

本文通過一個長線工作,將符號表示整合入(神經)機器學習模型。我們的結果顯示,清晰的程式表示可以使用來回答關於影象的新問題的組合程式變得更簡單。作者提出的整體程式表示,可學習程式產生器和模組化統一設計讓模型比神經模組網路更具靈活性,並且更容易擴充套件到新的問題和領域。