深度學習資訊|選擇性注意力在強化學習中的應用
非注意盲視 (Inattentional Blindness) 是一種心理現象:在人們聚焦于某項任務時,他們會忽視與之無關的細節,這就是 選擇性注意力 (Selective Attention) 的結果。
這種選擇性注意力使人能夠專注于外界的重要信息,而不會分心于無關緊要的細節。人們相信,這種選擇性注意力機制使人能夠將廣泛的感官信息濃縮為一種足夠簡潔的形式,用于未來的決策。
盡管這看似是一種局限性,但對于希望模仿生物有機體的成功和效率的機器學習系統而言,在自然界中觀察到的這種“瓶頸”往往能為設計帶來啟發。例如,雖然深度強化學習 (RL) 文獻中提出的大多數方法均允許智能體 (Agent) 訪問整個視覺輸入,甚至包括用于預測視覺輸入未來序列的模塊,但是否能通過注意力約束 減少 智能體對視覺輸入的訪問,提升智能體的性能?
在我們最近發布的 GECCO 2020 論文“可自解釋智能體的神經進化”(AttentionAgent) 中,我們研究了含有自注意力 Bottleneck 的智能體的特性。研究結果表明,與傳統方法相比,這些模型不僅能夠用傳統模型千分之一的參數量,基于像素級別的輸入,來解決具有挑戰性的視覺任務,而且得益于其可以“忽略混淆性細節”的能力,在面對未見過的任務修改時,模型的泛化能力也更加出色。
此外,通過觀察智能體的注意力集中在哪些方面,也為決策的產生過程提供了視覺上的可解釋性。
具有人工注意力的智能體
盡管有一些工作探討了稀疏性等約束在實際塑造強化學習智能體的能力中所發揮的作用,但 AttentionAgent 另辟蹊徑,從與非注意盲視有關的概念中汲取靈感,即當大腦參與需要付出努力的任務時,它的大部分注意力僅集中在與任務相關的元素上,暫時對其他信號視而不見。
為了實現這一點,我們將輸入圖像分割成幾個區塊,然后依靠修改后的自注意力架構來模擬區塊之間的投票,從而選出一個被認為重要的子集。在每個時間步中選擇相關的區塊,并且一旦確定,AttentionAgent 便僅基于這些區塊進行決策,而忽略其余區塊。
除了從視覺輸入中提取關鍵因素之外,能夠在這些因素隨時間變化時將它們進行關聯也同樣至關重要。例如,棒球比賽中的擊球手必須利用視覺信號來連續跟蹤棒球的位置,以預測能夠擊打到球的位置。AttentionAgent 則會利用長短期記憶 (LSTM) 模型,從重要的區塊中截取信息,并在每個時間步生成一個操作。LSTM 會跟蹤輸入序列的變化,因此可以利用這些信息來跟蹤關鍵因素隨時間的演變情況。
通常采用反向傳播來優化神經網絡。然而,由于 AttentionAgent 包含用于生成重要區塊的不可微的運算(例如排序和切片),因此將此類技術應用于訓練并非易事。因此,我們轉而采用無導數優化算法來克服這個困難。
我們的方法概述以及 AttentionAgent 中的數據處理流程說明。上排:輸入轉換 - 滑動窗口將輸入圖像分割成較小的區塊,然后將其“展平”以備將來處理。中間:區塊選舉 - 修改后的自注意力模塊在區塊之間進行投票,以生成區塊重要性向量。下排:動作生成 - AttentionAgent 挑選最重要的區塊,提取相應的特征,并根據它們做出決策。
泛化到未見過的環境修改
我們證明 AttentionAgent 學會了關注輸入圖像中的不同區域。重要區塊的可視化使您可以窺探智能體如何制定決策,從而說明大多數選擇都是有意義的,并且符合人類的直覺,是分析和調試開發中智能體的強大工具。此外,由于智能體學會了忽略對核心任務不重要的信息,因此可以泛化到環境進行了細微修改的任務。
在這里,我們展示了,如果讓智能體的決策控制器僅訪問重要區塊,而忽略場景的其余部分,則可以提高泛化能力,原因就在于智能體受到限制,無法“看到可能令其混淆的內容”。我們的智能體僅在 VizDoom TakeCover 環境下接受過生存訓練,但在其他未見過的墻壁較高、地板紋理不同的環境下,或是在面對令人分心的標志時也能生存下來。
DoomTakeCover 泛化:AttentionAgent 在未經修改的環境中訓練(左側)。它能夠適應環境的變化,例如更高的墻(中間,左側)、不同的地板紋理(中間,右側)或浮動文本(右側)
如果一個人學會在晴天駕駛,他/她也可以將這些技能(在某種程度上)轉移到其他駕駛場景,如夜間駕駛、雨天駕駛、駕駛不同的汽車或在擋風玻璃上有鳥糞的情況下駕駛。AttentionAgent 不僅能夠解決 CarRacing-v0,它還可以在未見過的條件(例如景色更亮或更暗,或者其視覺被側欄或背景斑點等偽像修改)下實現類似的性能,而需要的參數僅相當于不能泛化的傳統方法的千分之一。
CarRacing 泛化:無修改(左側);顏色擾動(中間,左側);左側和右側的豎線(中間,右側);添加了紅色斑點(右側)
局限性和未來工作
盡管 AttentionAgent 能夠應對環境的各種變化,但是這種方法存在局限性,還需要做更多的工作來進一步增強該智能體的泛化能力。例如,AttentionAgent 不能泛化到背景發生巨大變化的情況。對于在背景為草坪的原始賽車環境中訓練的智能體,當背景換為令人分心的 YouTube 視頻后,便無法泛化。我們在此基礎上進行了進一步研究,當我們將背景替換為純凈的均勻噪聲時,發現智能體的注意力模塊出現故障,只注意隨機噪聲區塊,而非與道路相關的區塊。如果我們一開始就在嘈雜的背景環境中訓練智能體,它就能繞賽道行駛,盡管性能很一般。有趣的是,智能體仍然只關注噪聲而非道路,它似乎已經學會了根據屏幕左右兩側選定區塊的數量來估計車道位置,以此來行駛。
AttentionAgent 無法泛化到經過大幅修改的環境。左側:背景突然變成一只貓(Creative Commons 視頻 1)。中間:背景突然變成街機游戲(Creative Commons 視頻 2)。右側:AttentionAgent 學會了通過避開噪聲區塊在純噪聲背景下行駛
我們用來從重要區塊中提取信息的簡單方法可能不足以完成更復雜的任務。如何學習更多有意義的特征,甚至從視覺輸入中提取符號信息,將是一個令人興奮的未來方向。除了向研究社區開放源代碼外,我們還發布了 CarRacingExtension,這是一整套涉及各種環境修改的賽車任務,是對有興趣進行智能體驗化的 ML 研究人員的測試平臺和基準。