標題:機器推理的合成注意網(wǎng)絡
推薦資源:文獻全文 - 學術范 (xueshufan.com)
來源:ICLR 2018https://arxiv.org/abs/1803.03067;
代碼:https://github.com/stanfordnlp/mac-network
作者筆記:斯坦福大學
一、問題提出
雖然當前的深度神經(jīng)網(wǎng)絡模型在學習”輸入和輸出之間的直接映射“方面非常有效,其深度虏劲、規(guī)模和統(tǒng)計特性使得它們能夠處理嘈雜和多樣化的數(shù)據(jù),但也限制了它們的可解釋性褒颈,無法展示出一個連貫且透明的“思維過程”來得到他們的預測柒巫。
深度學習系統(tǒng)缺少推理能力,例如下例中谷丸,問題需要分步解決——從一個對象遍歷到相關對象堡掏,迭代地朝著最終解決方案前進。
建立連貫的多步推理模型對于完成理解任務至關重要淤井,作者文中提到了前人提出的一些將符號結構和神經(jīng)模塊起來的方法布疼,例如:神經(jīng)模塊網(wǎng)絡摊趾,其存在一定的問題币狠,必須依賴于外部提供的結構化表示和功能程序,并且需要相對復雜的多階段強化學習訓練方案砾层。這些模型結構的剛性和對特定操作模塊的使用削弱了它們的魯棒性和泛化能力漩绵。
為了在端到端的神經(jīng)網(wǎng)絡方法的通用性和魯棒性 與 支持更加明確和結構化推理 的需求之間取得平衡,作者提出了MAC 網(wǎng)絡肛炮,這是一種端到端的可微推理架構止吐,用來順序執(zhí)行具體推理任務宝踪。
二、主要思想
給定一個知識庫K(對于VQA碍扔,是一個圖像)和一個任務描述q(對于VQA瘩燥,是一個問題),MAC網(wǎng)絡將問題分解為一系列推理步驟不同,每一個推理步驟使用一個MAC單元厉膀。
其組成主要包括三部分:
1、輸入單元
2二拐、堆疊的MAC單元(執(zhí)行推理任務)
3服鹅、輸出單元
設計理念:
MAC網(wǎng)絡內部的設計作者借鑒了計算機體系結構的知識,將控制和內存分離百新,通過串行執(zhí)行一系列指令來操作:
Step1:控制器獲取指令并進行解碼企软;
Step2:按照指令的指示,從內存中讀取信息饭望;
Step3:執(zhí)行指令仗哨,選擇地寫入相應的內存,并考慮處理的信息進行下一步循環(huán)杰妓。
組成:
基于此藻治,MAC單元顯式地將內存與控制分離,內部保持雙重隱藏狀態(tài):維度為d的控制狀態(tài)ci和內存狀態(tài)mi巷挥,并由三個串聯(lián)工作的操作單元組成桩卵,以執(zhí)行一個推理步驟:
1.控制單元Control:在每一步選擇性地處理問題詞序列中的一些部分來計算推理操作(這一步計算注意力來得到單詞序列上的概率分布,表示該步驟對每個詞的關注程度)倍宾,并更新控制狀態(tài)來表示單元要執(zhí)行的推理操作雏节。
2.讀取單元Read:在控制狀態(tài)的指導下,從知識庫中提取相關信息(在圖片中選擇性關注部分區(qū)域高职,同樣使用注意力分布來表示提取到的信息)
3.寫單元Write:將提取到的新信息和前一步內存狀態(tài)整合在一起钩乍,存儲中間結果并更新內存狀態(tài)——該狀態(tài)為當前推理獲得的結果。
初始化:
控制單元:
讀取單元:
可視化注意力:
例子:問題“what color is the matte thing to the right of the sphere in front of the tiny blue block”怔锌,首先找到藍色小塊并更新m1寥粹,之后控制單元關注到”the sphere in front of“,找到前面的球體并更新m2 埃元,最后關注到"the matte thing to the right of"涝涤,找到問題的結果:紫色圓柱。
寫單元:
Part3:輸出單元
三岛杀、實驗
實驗:CLEVR數(shù)據(jù)集
結果:
可解釋性:
計數(shù):
四阔拳、總結
1、保持問題和圖像的表征空間之間的嚴格分離(它們只能通過可解釋的離散分布進行交互)类嗤,極大地增強了網(wǎng)絡的可泛化性糊肠,并提高了其透明度辨宠。
2、不同于模塊網(wǎng)絡货裹,MAC是端到端的完全可微網(wǎng)絡嗤形,無需額外的監(jiān)督數(shù)據(jù),通過MAC單元的堆疊順序執(zhí)行推理才做弧圆,不需要依靠語法樹或者其他設計和部署模塊集合派殷。此外,與深度神經(jīng)網(wǎng)絡方法相比墓阀,MAC具有更好的泛化性能毡惜、更高的計算效率和更透明的關系推理能力。