伯克利 AI 實驗室博客發佈首篇文章:讓神經網路自行選擇模組,實現動態推理
深度神經網路雖然在圖像,語音,機器人等方面取得了巨大的成功,但是這些成功通常局限在識別任務或者生成任務中,對於推理任務,常規的神經網路通常是無能為力的。伯克利AI實驗室近期開通了博客,該博客的第一篇文章針對推理任務,提出了神經模組網路,通過訓練多個神經網路模組完成推理任務,每個神經網路模組負責一個推理步驟,對於不同的推理任務,動態的組合這些模組,以生成針對不同問題的新網路結構。
該文章的作者為 Jacob Andreas , 雷鋒網瞭解到,他是伯克利 NLP 四年級博士生,也是 BAIR 實驗室成員。他的個人主頁上的介紹寫著,“我希望能教電腦閱讀”,研究方向包括機器學習模型與結構化神經網路方法。同時,他也是一個論文高產者,僅在今年就有多篇論文入選 ICML、ACL、CVPR 等主流國際頂級學術會議。雷鋒網對他發表的第一篇論文做了翻譯,全文如下:
問題的引入
假設我們正在構建一個家用機器人,並且希望它能夠回答有關周圍環境的問題。我們可能會問他這些問題:
如何確保機器人可以正確地回答這些問題?深度學習的標準方法是收集大量的問題,圖像和答案作為資料集,訓練一個單一的神經網路,直接從問題和影像對應到答案。如果大多數問題看起來像左邊的問題,目前我們已經有相似的圖像識別問題的解決方案,這些單一的方法是非常有效的:
但是對於右面的問題,這種單一的神經網路就很難工作了:
在這裡訓練好的單一網路已經放棄了,猜測給出了該圖像中最普遍的顏色。是什麼使得這個問題相比於上一個問題更難?即使圖像更清晰簡潔,該問題仍需要許多推理步驟:模型必須要首先找到藍色的圓柱體,找到具有相同大小的另一物件,然後確定其顏色,而不是簡單的識別圖像中的主要物件。這是一個複雜的計算,同時計算的複雜性與所提出的問題密切相關。不同的問題需要不同的步驟來解決。
深度學習中的主流範式是“一刀切”的方法:對於任何需要解決的問題,設計一個固定的模型架構,希望能夠捕獲關於輸入和輸出之間的一切關係,並通過標定好的訓練資料學習該模型的各種參數。
但現實世界的推理並不能以這種方式發揮作用:它涉及到各種不同的能力,不同的能力以新的方式結合以解決我們在現實世界中遇到的每一個新挑戰。我們需要的是一個模型,它可以動態地確定如何對擺在它面前的問題進行推理——一個可以選擇自己的結構的網路。伯克利AI實驗室的研究者針對這一問題,提出了一類稱為神經模組網路(Neural Module Network, NMN)的模型,它將這種更加靈活的解決方案融入到問題解決過程中,同時也保留了深度學習有效的特性。
如何解決
上面提到的推理問題涉及到三個不同的步驟:找到一個藍色圓柱找到其他與之相同尺寸的物體,確定其顏色。根據推理過程可以繪製下圖:
一個不同的問題可能涉及到不同的步驟,如果問題是“有多少東西與球有相同的大小?”可以會得到下面的推理步驟:
一些基礎的操作,例如“比較大小”,在不同的問題中是共用的,但是它們可能會通過不同的方式使用。MNM的關鍵思路是明確這種共用:使用兩個不同的網路結構來回答上面的兩個問題,但是在涉及到相同基本操作的網路之間實現共用權重。
對於這樣的新型網路結構,如何進行學習?實際上研究者同時訓練了大量的不同的網路,在適當的時候將參數綁在一起,而不是通過許多輸入/輸出對訓練單一的大型網路。
上圖為幾種常見的深度學習網路結構,包括DyNet 和TensorFlow Fold,通過動態地將它們結合在一起,即可以完成不同的推理任務。
在訓練過程結束時所獲得的並不是一個單一的深度網路,而是一個神經“模組”的集合,每個模組都實現了一個推理的步驟。當希望在一個新的問題實例上使用訓練好的模型時,研究人員可以動態的組合這些模組,以生成針對該問題的新網路結構。
關於這個過程一個值得注意的事情是,訓練過程中不需要為單個模組提供任何低級別的監督:模型從來沒有看到藍色物件或者“左側”關係的孤立示例,模組只能在較大的組合結構中學習,只有(問題,答案)對作為監督,但訓練程式能夠自動推斷結構部件與其負責的計算之間的正確關係:
同樣的過程也能回答關於現實圖片的問題,甚至能夠回答其他知識源的問題,例如資料庫:
如何從問題得到推理藍圖
這整個過程的關鍵因素是收集如上所屬的高級“推理藍圖”。這些藍圖告訴我們,每個問題的網路應如何佈局,以及不同的問題如何互相關聯。但是這些藍圖是從哪裡來的?
在對參考文獻1,2中的模型的初步研究中,研究者在設計特定問題的神經網路和分析語法結構之間找到了驚人的聯繫。語言學家長期以來一直認為,問題的語法與回答所需要的計算步驟的順序密切相關。由於自然語言處理方面的最新進展,可以使用現成的語法分析工具來自動提供這些藍圖的近似版本。
但從語言結構到網路結構的準確映射仍然是一個具有挑戰性的問題,轉換過程中容易出錯。在後來的工作中,研究者轉向使用由人類專家製作的資料,它們用理想化的推理藍圖直接標注了一系列問題,而沒有依靠語言分析。通過學習模仿這些人類專家,該模型能夠大大提高預測的品質。最令人驚訝的是,當採用訓練好的模型去模仿專家,但允許它自己修改這些專家的預測,它能夠在不同的問題中找到比專家更好的解決方案。
總結
儘管近些年來深度學習方法取得了顯著的成功,但許多問題仍然是一個挑戰,例如few-shot learning和複雜推理。這些問題正是結構化經典方法所閃耀的地方,例如語義解析和程式歸納。神經模組網路結合了經典人工智慧方法和深度學習方法兩者的優點:離散組合的靈活性和資料高效性,同時結合了深度網路的表徵力量。NMN已經在許多視覺和文本推理任務得到了成功。同時,研究者也在盡力將該方法應用到更多的AI任務中。
參考文獻
Neural Module Networks. Jacob Andreas, Marcus Rohrbach, Trevor Darrell and Dan Klein. CVPR 2016. (
arXiv
)
Learning to Compose Neural Networks for Question Answering. Jacob Andreas, Marcus Rohrbach, Trevor Darrell and Dan Klein. NAACL 2016. (
arXiv
)
Modeling Relationships in Referential Expressions with Compositional Modular Networks. Ronghang Hu, Marcus Rohrbach, Jacob Andreas, Trevor Darrell and Kate Saenko. CVPR 2017. (
arXiv
)
via
berkeley.edu/blog/
,雷鋒網編譯