參考第一個回答:如何評價DeepMind最新提出的RelationNetWork
git
參考連接:Relation Network筆記 ,暫時尚未應用到場景中
github
LiFeifei阿姨的課程:CV與ML課程在線
數據庫
摘抄一段:
網絡
Visual reasoning是個很是重要的問題,因爲ResNet等大殺器出現,visual recognition任務自己快要被解決,因此計算機視覺的研究方向逐漸往認知過程的更上游走,即邏輯推理。學習
因而出現了去年比較火的Visual question answering(VQA):給張圖,你能夠問任意問題,人工智能系統都須要給出正確答案。這是我以前作的一個簡單的VQA demo (Demo for Visual Question Answering)。VQA任務的典型數據庫是COCO-VQA(Introducing the 2nd VQA Challenge!),今年出了第二代。你們作了半天,各類lstm, attention-based model, stacked LSTM等等,發現其實跟BOW+IMG的baseline差不了太多;VQA仍是被當成個分類問題,離真正人類級別的reasoning還很遠。這裏你們逐漸意識到了兩個問題,第一個是網絡自己的問題,即現有的卷積網絡並不能很好的表達因果推斷;第二個問題是,直接在天然圖片上進行問答系統的研究太難了,很難debug整個系統,因而有了下面兩個解決方向:測試
針對第一個問題,研究者開始在網絡設計中explicitly加入reasoning or memory module. 好比說,去年有篇比較有意思的CVPR'16論文,Neural Module Networks( https://arxiv.org/pdf/1511.02799.pdf) , 很好地提出了一個可讓網絡進行compositional reasoning的模塊,概念挺漂亮。惋惜的是調參能力通常,performance離我那個iBOWIMG的baseline也差得不遠(參見https://arxiv.org/pdf/1512.02167.pdf)。編碼
另外,我以爲這篇論文也有一稿多投的嫌疑,由於這幾乎如出一轍的模型在做者另一篇Learning to compose neural networks for question answering (https://arxiv.org/pdf/1601.01705.pdf)拿了NAACL'16的best paper 。做者Jacob我也認識,我就很少吐槽了,還好他不會看中文。。。人工智能
針對第二個問題,研究者開始經過graphics合成圖片的辦法來創建絕對可控的VQA數據庫,這樣就能夠更好的分析模型的行爲。Facebook AI Research幾個研究者(Larry Zitnick和Ross Girshick)帶着Feifei的學生Justin Johnson實習去年暑假搞了個合成的VQA數據庫CLEVR(CLEVR: A Diagnostic Dataset for Compositional Language and Elementary Visual Reasoning)。CLEVR有100,000圖片,~1,000,000個問題答案對。裏面的每張圖片都是經過Blender渲染生成,裏面的物體基本屬性是three object shapes (cube, sphere, cylinder), two absolute sizes (small and large), two materials (shiny, matte), four relationships (left, right, behind, in front)。而後問題也是經過從90個問題模板裏面採樣生成。 經過各類組合能夠生成海量並且可控的問題答案,以下圖所示。而後在這篇論文中,做者測試了一些VQA經常使用的baselines, BOW+IMG, LSTM啥的,表現都通常。那個暑假正好我也在FAIR實習,跟Larry和田總 spa
一塊兒作項目。Larry是很是喜歡這種Neural module network和programming sytax的路子。跟Justin和Ross以及組裏其餘成員去Lake Tahoe那邊hiking的時候也聊起了這個數據庫,他們說你那個simple baseline for visual question answering在這個數據庫上無論用了啊=,=!。另外,八卦下,Justin是Stanford的跳水運動員,Ross是戶外運動達人,因此整個hiking過程當中我費了牛勁,也再沒見過這兩位,望其項背而不得=,=!後來,這篇CLEVR數據庫的論文被CVPR'17收了。而後,同一堆做者再快馬加鞭再交了篇ICCV'17 submission: Inferring and executing programs for visual reasoning (https://arxiv.org/pdf/1705.03633.pdf)。這篇論文也搞了個compositional model for visual question answering的模型。模型有兩個模塊program generator, execution engine,第一個模塊來預測問題裏面的program, 第二個模塊來執行這些預測出來的program, 而後進一步預測答案。這兩個模塊仍是蠻新穎的,打破了之前作VQA就用CNN疊LSTM的簡單粗暴套路。這模型受以前那個Neural Module Network也影響挺大,也更符合CLEVR自己數據的生成過程。結合CLEVR自己的生成program, 這兩個模塊實際上是能夠分開進行訓練。.net
在Table 1裏面(以下圖所示),做者測試了兩種辦法, Ours-strong是把CLEVR數據庫自己的700K的生成program所有拿來訓練(注:這篇論文的做者原本就是CLEVR的做者),而後能夠獲得牛逼的96.9%, 已經秒殺人類的92.6%準確度。而後Ours-semi方法,用更少許的18K和9K的program進行訓練,也能夠獲得95.4%和88.6%的準確度。
這個訓練過程其實蠻tricky。訓練過程給的除了question-answer pair, 還給了生成CLEVR數據庫自己的program, 這跟其餘方法比較就不是這麼fair了。另外,我以爲這個訓練過程,實際上是在訓練一個新的網絡reverse-engineer以前CLEVR數據庫自己的生成程序。而且,這個reverse-engineering的複雜度挺低,用9k program訓練就能夠達到88.6%就是個證實。換句話說,對於這種自動生成的數據庫,用好了方法和模塊結構,也許挺容易刷到高分。這就爲接下來的Visual Relation Network埋下了伏筆。
說了這麼大堆東西,終於輪到DeepMind的Visual Relation Network module (https://arxiv.org/pdf/1706.01427.pdf)登場了。模型以下圖所示,
如標題所示,模型結構確實很簡單:LSTM編碼question, 而後跟兩兩配對的spatial cell的deep feature疊加,而後後面接一些FC layers最後softmax分類到某個答案詞上面。總結起來就是這個很是簡單的兩兩配對的learnable module:
這樣簡單的模型,在CLEVR上達到了"驚人"的95.5%,比以前最好的CNN+LSTM+SA還要好差很少20%。這裏做者並無比較前面那篇ICCV submission裏的96.9%,這是爲何了,做者解釋說「 ...(ICCV method) uses additional supervisory signals on the functional programs used to generate the CLEVR questions" 。這種說法的確沒任何問題,但這卻能幫咱們更好的理解模型。
這篇論文並無給出任何解釋模型爲何work, 以及內部到底學到了些什麼東西(這是我本身很關注的一個問題)。我本身以爲這個relational module實際上是implicitly學到了"the functional programs used to generate the CLEVR questions",也就是說,訓練事後這個module能夠很完美地reverse engineer那個CLEVR數據自己的生成過程。若是我是這篇論文的reviewer, 我會要求做者對模型進行可視化分析,可能裏面的一些hidden units就是在作visual relation detection。
Relational module種explicitly表達兩兩物體關係的作法,跟以前DeepMind的那篇Spatial Transformer (https://arxiv.org/pdf/1506.02025.pdf)也有共通之處:CNN網絡自己並不能很好地表達某些變換或者關係,因此須要一些特定的learnable的module結構來幫助表達和學習。能夠預見這個relational module能夠在不少結構化數據,如graph learning, structure learning等結構化數據上派上大用場。論文中也把模型在其餘兩個數據庫任務bAbI model for language understanding(這個數據庫其實早就被刷到100%了)和dynamic physical system reasonsing進行了測試,都取得了不錯的效果。可是,這個module是真正解決了relationship detection的問題,仍是僅僅只是利用short-cut來overfit數據庫,還得等到人們在其餘場合,如visual relationship detection(Visual Relationship Detection with Language Priors)等測試其有效性