CNN结构:场景分割与Relation Network
?????????? 參考第一個(gè)回答:如何評(píng)價(jià)DeepMind最新提出的RelationNetWork
?????????? 參考鏈接:Relation Network筆記? ,暫時(shí)還沒有應(yīng)用到場(chǎng)景中
?????????? LiFeifei阿姨的課程:CV與ML課程在線
- 論文:A simple neural network module for relational reasoning
- github代碼: https://github.com/siddk/relation-network
????
?? 摘抄一段:
Visual reasoning是個(gè)非常重要的問題,由于ResNet等大殺器出現(xiàn),visual recognition任務(wù)本身快要被解決,所以計(jì)算機(jī)視覺的研究方向逐漸往認(rèn)知過程的更上游走,即邏輯推理。
于是出現(xiàn)了去年比較火的Visual question answering(VQA):給張圖,你可以問任意問題,人工智能系統(tǒng)都需要給出正確答案。這是我之前做的一個(gè)簡(jiǎn)單的VQA demo (Demo for Visual Question Answering)。VQA任務(wù)的典型數(shù)據(jù)庫(kù)是COCO-VQA(Introducing the 2nd VQA Challenge!),今年出了第二代。大家做了半天,各種lstm, attention-based model, stacked LSTM等等,發(fā)現(xiàn)其實(shí)跟BOW+IMG的baseline差不了太多;VQA還是被當(dāng)成個(gè)分類問題,離真正人類級(jí)別的reasoning還很遠(yuǎn)。這里大家逐漸意識(shí)到了兩個(gè)問題,第一個(gè)是網(wǎng)絡(luò)本身的問題,即現(xiàn)有的卷積網(wǎng)絡(luò)并不能很好的表達(dá)因果推斷;第二個(gè)問題是,直接在自然圖片上進(jìn)行問答系統(tǒng)的研究太難了,很難debug整個(gè)系統(tǒng),于是有了下面兩個(gè)解決方向:
針對(duì)第一個(gè)問題,研究者開始在網(wǎng)絡(luò)設(shè)計(jì)中explicitly加入reasoning or memory module. 比如說,去年有篇比較有意思的CVPR'16論文,Neural Module Networks( https://arxiv.org/pdf/1511.02799.pdf) , 很好地提出了一個(gè)可以讓網(wǎng)絡(luò)進(jìn)行compositional reasoning的模塊,概念挺漂亮。可惜的是調(diào)參能力一般,performance離我那個(gè)iBOWIMG的baseline也差得不遠(yuǎn)(參見https://arxiv.org/pdf/1512.02167.pdf)。
另外,我覺得這篇論文也有一稿多投的嫌疑,因?yàn)檫@幾乎一模一樣的模型在作者另外一篇Learning to compose neural networks for question answering (https://arxiv.org/pdf/1601.01705.pdf)拿了NAACL'16的best paper 。作者Jacob我也認(rèn)識(shí),我就不多吐槽了,還好他不會(huì)看中文。。。
針對(duì)第二個(gè)問題,研究者開始通過graphics合成圖片的辦法來建立絕對(duì)可控的VQA數(shù)據(jù)庫(kù),這樣就可以更好的分析模型的行為。Facebook AI Research幾個(gè)研究者(Larry Zitnick和Ross Girshick)帶著Feifei的學(xué)生Justin Johnson實(shí)習(xí)去年暑假搞了個(gè)合成的VQA數(shù)據(jù)庫(kù)CLEVR(CLEVR: A Diagnostic Dataset for Compositional Language and Elementary Visual Reasoning)。CLEVR有100,000圖片,~1,000,000個(gè)問題答案對(duì)。里面的每張圖片都是通過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個(gè)問題模板里面采樣生成。 通過各種組合可以生成海量而且可控的問題答案,如下圖所示。然后在這篇論文中,作者測(cè)試了一些VQA常用的baselines, BOW+IMG, LSTM啥的,表現(xiàn)都一般。那個(gè)暑假正好我也在FAIR實(shí)習(xí),跟Larry和田總
@田淵棟 一起做項(xiàng)目。Larry是非常喜歡這種Neural module network和programming sytax的路子。跟Justin和Ross以及組里其他成員去Lake Tahoe那邊hiking的時(shí)候也聊起了這個(gè)數(shù)據(jù)庫(kù),他們說你那個(gè)simple baseline for visual question answering在這個(gè)數(shù)據(jù)庫(kù)上不管用了啊=,=!。另外,八卦下,Justin是Stanford的跳水運(yùn)動(dòng)員,Ross是戶外運(yùn)動(dòng)達(dá)人,所以整個(gè)hiking過程中我費(fèi)了牛勁,也再?zèng)]見過這兩位,望其項(xiàng)背而不得=,=!后來,這篇CLEVR數(shù)據(jù)庫(kù)的論文被CVPR'17收了。然后,同一堆作者再馬不停蹄再交了篇ICCV'17 submission: Inferring and executing programs for visual reasoning (https://arxiv.org/pdf/1705.03633.pdf)。這篇論文也搞了個(gè)compositional model for visual question answering的模型。模型有兩個(gè)模塊program generator, execution engine,第一個(gè)模塊來預(yù)測(cè)問題里面的program, 第二個(gè)模塊來執(zhí)行這些預(yù)測(cè)出來的program, 然后進(jìn)一步預(yù)測(cè)答案。這兩個(gè)模塊還是蠻新穎的,打破了以前做VQA就用CNN疊LSTM的簡(jiǎn)單粗暴套路。這模型受之前那個(gè)Neural Module Network也影響挺大,也更符合CLEVR本身數(shù)據(jù)的生成過程。結(jié)合CLEVR本身的生成program, 這兩個(gè)模塊其實(shí)是可以分開進(jìn)行訓(xùn)練。
在Table 1里面(如下圖所示),作者測(cè)試了兩種辦法, Ours-strong是把CLEVR數(shù)據(jù)庫(kù)本身的700K的生成program全部拿來訓(xùn)練(注:這篇論文的作者本來就是CLEVR的作者),然后可以得到牛逼的96.9%, 已經(jīng)秒殺人類的92.6%準(zhǔn)確度。然后Ours-semi方法,用更少量的18K和9K的program進(jìn)行訓(xùn)練,也可以得到95.4%和88.6%的準(zhǔn)確度。
這個(gè)訓(xùn)練過程其實(shí)蠻tricky。訓(xùn)練過程給的除了question-answer pair, 還給了生成CLEVR數(shù)據(jù)庫(kù)本身的program, 這跟其他方法比較就不是這么fair了。另外,我覺得這個(gè)訓(xùn)練過程,其實(shí)是在訓(xùn)練一個(gè)新的網(wǎng)絡(luò)reverse-engineer之前CLEVR數(shù)據(jù)庫(kù)本身的生成程序。并且,這個(gè)reverse-engineering的復(fù)雜度挺低,用9k program訓(xùn)練就可以達(dá)到88.6%就是個(gè)證明。換句話說,對(duì)于這種自動(dòng)生成的數(shù)據(jù)庫(kù),用好了方法和模塊結(jié)構(gòu),也許挺容易刷到高分。這就為接下來的Visual Relation Network埋下了伏筆。
說了這么大堆東西,終于輪到DeepMind的Visual Relation Network module (https://arxiv.org/pdf/1706.01427.pdf)登場(chǎng)了。模型如下圖所示,
如標(biāo)題所示,模型結(jié)構(gòu)確實(shí)很簡(jiǎn)單:LSTM編碼question, 然后跟兩兩配對(duì)的spatial cell的deep feature疊加,然后后面接一些FC layers最后softmax分類到某個(gè)答案詞上面。總結(jié)起來就是這個(gè)非常簡(jiǎn)單的兩兩配對(duì)的learnable module:
這樣簡(jiǎn)單的模型,在CLEVR上達(dá)到了"驚人"的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, 以及內(nèi)部到底學(xué)到了些什么東西(這是我自己很關(guān)注的一個(gè)問題)。我自己覺得這個(gè)relational module其實(shí)是implicitly學(xué)到了"the functional programs used to generate the CLEVR questions",也就是說,訓(xùn)練過后這個(gè)module可以很完美地reverse engineer那個(gè)CLEVR數(shù)據(jù)本身的生成過程。如果我是這篇論文的reviewer, 我會(huì)要求作者對(duì)模型進(jìn)行可視化分析,可能里面的一些hidden units就是在做visual relation detection。
Relational module種explicitly表達(dá)兩兩物體關(guān)系的做法,跟之前DeepMind的那篇Spatial Transformer (https://arxiv.org/pdf/1506.02025.pdf)也有共通之處:CNN網(wǎng)絡(luò)本身并不能很好地表達(dá)某些變換或者關(guān)系,所以需要一些特定的learnable的module結(jié)構(gòu)來幫助表達(dá)和學(xué)習(xí)。可以預(yù)見這個(gè)relational module可以在很多結(jié)構(gòu)化數(shù)據(jù),如graph learning, structure learning等結(jié)構(gòu)化數(shù)據(jù)上派上大用場(chǎng)。論文中也把模型在其他兩個(gè)數(shù)據(jù)庫(kù)任務(wù)bAbI model for language understanding(這個(gè)數(shù)據(jù)庫(kù)其實(shí)早就被刷到100%了)和dynamic physical system reasonsing進(jìn)行了測(cè)試,都取得了不錯(cuò)的效果。但是,這個(gè)module是真正解決了relationship detection的問題,還是僅僅只是利用short-cut來overfit數(shù)據(jù)庫(kù),還得等到人們?cè)谄渌麍?chǎng)合,如visual relationship detection(Visual Relationship Detection with Language Priors)等測(cè)試其有效性
作者:周博磊鏈接:https://www.zhihu.com/question/60784169/answer/180518895
總結(jié)
以上是生活随笔為你收集整理的CNN结构:场景分割与Relation Network的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DNF哈林武器可以升级泰波尔斯吗 萌新入
- 下一篇: DeepMind:所谓SACX学习范式