天天看點

如何提高強化學習效果?内在獎勵和輔助任務

如何提高強化學習效果?内在獎勵和輔助任務

文字整理:智源社群 吳繼芳

如何能夠提高強化學習效果?

這是美國密西根大學教授Satinder Singh長期以來緻力于解決的問題。在2020北京智源大會上,Satinder Singh教授對這個問題進行了深度闡釋,他通過Meta-Gradient方法來學習發現以往強化學習智能體中需要手動設定的參數:内在獎勵和輔助任務問題。

Satinder Singh從近期關于強化學習的兩個研究工作出發,針對如何通過資料驅動的方式學習到内在獎勵函數,他提出了一個學習跨多生命周期(Lifetime)内部獎勵函數的Meta-Gradient架構,同時設計了相關實驗證明學習到的内在獎勵函數能夠捕獲有用的規律,這些規律有助于強化學習過程中的Exploration和Exploitation,并且可以遷移到到不同的學習智能體和環境中。

針對于如何在資料中發現問題作為輔助任務,他擴充通用輔助任務架構,參數化表示General Value Functions,并通過Meta-Gradient方法學習更新參數發現問題。實驗證明這個方法可以快速發現問題來提高強化學習效果。

Satinder Singh,美國密西根大學教授,Deep Mind科學家,AAAI Fellow。主要研究興趣是人工智能(AI)的傳統目标,即建構能夠學習在複雜、動态和不确定環境中具有廣泛能力的自主智能體。目前的主要研究是将深度學習與強化學習結合起來。

1

“發現”的意義

什麼是強化學習中的“發現”?簡單的思考方式是強化學習智能體中的參數可以分成兩部分:一部分參數是從資料中學習發現得到,另一部分是由研究人員根據經驗手動設定。Satinder Singh教授的報告主要讨論他和他的團隊如何嘗試通過Meta-Gradient方法來學習發現參數。

在強化學習中,政策(Policy)函數和價值(Value)函數的參數值通常從資料中學習得到。對于那些通常手動設定的參數,如圖1所示,表格中是最新論文中的一些例子以及它們的出處。這些例子都是采用Meta-Gradient方法發現參數。有些通過元學習(Meta-Laring)發現一個好的政策參數初始值。有些是用Meta-Gradient方法發現學習率(Learing Rate)和折扣因子(Discount Factor)。有些是用Meta-Gradient方法發現内在獎勵(Intrinsic Rewards)和輔助任務(Auxiliary Tasks)等。

在本次報告中,Satinder Singh教授主要分享他和他的團隊近期發表在ICML 2020和NeurIPS 2019中的兩篇論文的相關研究工作(圖1中标紅的兩篇)。雖然有許多不同的發現方法,比如:基于人口的方法(Population Based Method)、進化方法(Revolution Method),但是Satinder Singh教授他們隻是采用啟發式搜尋方法發現超參數值。這次報告的重點是采用Meta-Gradient方法發現參數。

如何提高強化學習效果?内在獎勵和輔助任務

圖1:手動參數的最新研究方法

2

内在獎勵

第一項工作由Satinder Singh教授和他的博生生共同完成的。文章的題目是:《What can Learned Intrinsic Rewards Capture ?》[1]

2.1 研究動機

在強化學習中,智能體有很多結構存儲知識。這些結構分為:常見結構(Common Structure)和非常見結構(Uncommon Structure)。其中, 常見結構有:政策(Policies)、價值函數(Value Functions)、環境模型(Models)和狀态表示(State Representations)等。在本次報告中,主要關注非常見結構:獎勵函數(Reward Function)。之是以是非常見結構是因為在強化學習中這些獎勵通常都是根據環境決定,并且是不可改變的。

在論文中,将強化學習問題中的獎勵函數分為外在獎勵(Extrinsic Rewards)和内在獎勵(Intrinsic Rewards)。外在獎勵用來衡量智能體的性能,通常是不能改變的。内在獎勵是智能體内部的。在内在獎勵中,有很多方法用來存儲知識,但是這些方法都是手動設計的,比如:Reward Shaping、Novelty-Based Reward、Curiosity-Driven Reward等。這些手動的内在獎勵方法都依賴領域知識或者需要細緻的微調才能起作用。在本次報告中,Satinder Singh主要關注兩個研究問題:

1、是否能夠通過資料驅動的方式,學習得到一個内在獎勵函數?

2、通過學習到的内在獎勵函數,什麼樣的知識能夠被捕獲到?

針對第一個問題,論文中提出了一個學習跨多生命周期Lifetime)内部獎勵函數的可擴充的Meta-Gradient架構。針對第二個問題,論文中設計了一系列的實驗,通過實驗證明:1)學習到的内在獎勵函數能夠捕獲有用的規律,這些規律有助于強化學習過程中的Exploration和Exploitation;2)學習到的内在獎勵函數可以推廣到不同的學習智能體和不同的環境中;3)内在獎勵函數可以捕獲知識告訴智能體要做什麼而不是怎麼做,政策是用來告訴智能體應該怎麼做。

2.2 Optimal Reward Framework

如何提高強化學習效果?内在獎勵和輔助任務

圖2:基于多生命周期的最優獎勵架構

研究的目标是從經驗中學習到有用的内在獎勵,論文中考慮多生命周期(Multiple Lifetime)的情況(如圖2所示)。涉及到的相關概念定義如下:

生命周期(Lifetime):是指由多個情節(Episodes)構成的智能體的整個訓練時間。生命周期可以有成千上萬的情節。每個情節有多個不同的參數更新(如圖1所示)。在生命周期的開始,智能體被按照一定分布随機采樣的任務初始化。在實驗過程中,任務可以是靜态(Stationary)或非靜态(Non-Stationary)的。當情節屬于一個生命周期時,任務随着時間改變。

内部獎勵(Intrinsic Reward):在一個生命周期内被用來訓練智能體政策(Policy),政策不能看到外在獎勵,隻能利用内部獎勵更新參數。

最優獎勵問題(Optimal Reward Problem):是指學習跨多生命周期的内在獎勵函數。通過訓練多個随機初始化的政策,獲得累積最優的外在獎勵。

目前針對最優化内在獎勵函數,仍然存在兩個開發不足的方面。

1、内在獎勵函數的輸入應該是整個生命周期的行為曆史而不是情節(Episode)内的行為曆史。這樣有助于強化學習中的Exploration。這是因為Exploration需要關注跨多個Episodes的發生情況,即當進行探索時,需要觀察整個生命周期内的行為曆史。

2、需要最大化整個長生命周期的傳回(Lifetime Return),而不是單個情節的傳回(Episodic Return)。這樣可以有更多空間來平衡跨多個場景之間的Exploration和Exploitation。

針對以上的不足,Satinder Singh教授和他的團隊提出一個Scalable Gradient-Based的方法來解決最優化内在獎勵的問題。

2.3 Truncated Meta-Gradients with Bootstrapping

Meta-Gradient方法有兩個循環,分别是:内部循環(Inner Loop)和外部循環(Outer Loop)。

如何提高強化學習效果?内在獎勵和輔助任務

圖3:Meta-Gradients中的兩個循環

内部循環在強化學習中很常見,如圖3所示,在展開的計算圖中進行政策參數(q)更新,直到生命周期結束。外部循環是指在整個生命周期通過反向傳播方法,更新内在獎勵函數參數(h)。内在獎勵函數可以是一個單獨的神經網絡或者是循環神經網絡(RNN)。神經網絡的節點與生命周期中各情節的行為曆史對應,構成整個生命周期的行為曆史。Meta-Gradient方法的核心思想是:在内部循環中的政策參數更新是關于内在獎勵函數參數可微到。是以,如果我們能夠展開計算圖,在整個生命周期内更新政策參數(q),那麼就可以通過這個巨大的計算圖反向傳播計算關于内在獎勵函數參數(h)的Meta-Gradients。

當然,由于受到記憶體空間的限制,這是展開整個計算圖更新參數是不可行的。這也是為什麼之前的一些Meta-Gradients方法在更新了少量q參數後就調優情節傳回(Episode Return)的原因。為了解決這個挑戰,Satinder Singh教授他們仍然采用了截斷計算圖隻更新少量參數的方法。但是他們采用生命周期價值函數(Lifetime Value Function)來近似截斷内部循環參數更新之後的其他未展開計算圖節點的生命周期獎勵(如圖4所示)。這個生命周期價值函數在未來不僅用來預測整個生命周期外部獎勵同時不斷的更新内部循環中的參數q。是以這個價值函數是在多生命周期間進行訓練。

如何提高強化學習效果?内在獎勵和輔助任務

圖4:Truncated Meta-Gradients with Bootstrapping

2.4 實驗

Satinder Singh教授分享了他們是如何實驗通過Meta-Gradients方法更新内部獎勵函數參數的。

2.4.1方法(Methodology)

1、設計特定領域的一系列具有特定規律的任務。

2、訓練跨多生命周期的内部獎勵函數。

3、評價分析學習到的内部獎勵函數在新的生命周期的效果。

2.4.2 探索不确定狀态

實驗設定如圖5所示,引入四個環境房間,智能體(圖中藍色方塊)在每個Episode中找到不可見的目标位置。這個目标位置在不同的生命周期不同,由随機采樣得到。但是每個生命周期的目标位置是确定的。如果智能體到達目标位置,則目前Episode結束。

如何提高強化學習效果?内在獎勵和輔助任務

圖5:探索不确定狀态實驗

這個實驗中的最優表現應該是:在生命周期的第一個Episode,智能體可以高效的探索整個房間來找到目标位置。當找到目标位置,則第一個Episode結束。從第二個Episode開始,智能體能夠記住目标位置在哪并直接到達目标位置。

如何提高強化學習效果?内在獎勵和輔助任務

圖6:不同方法的智能體探索軌迹對比分析

圖6中展示了生命周期内智能體的探索軌迹,圖(a)中黃色的位置代表對于智能體不可見的目标位置,(b)是智能體采用學習到的内在獎勵函數方法,(c)是智能體采用外部獎勵方法,(d)是智能體采用Count-Based Exploration 方法。可以看到,(b)中有更多的黃色和綠色充滿了四個房間,這表明采用學習到的内在獎勵函數在探索過程中表現更好。

2.4.3 探索不确定的目的

實驗設定如圖7所示,有三個目的(Object)A、B、C,它們分别具有不同的獎勵,A表示不好也不壞,B表示總是壞的,C表示并沒有那麼好。這些Object在不同的生命周期内不同,通過随機采樣産生,在特定的生命周期内是固定的。智能體收集到這三個目的中的任何一個,則該Episode結束。

如何提高強化學習效果?内在獎勵和輔助任務

圖7:探索不确定目的實驗

在這個實驗中,我們希望學習到内在獎勵函數可以捕獲到的規律是:規避B,因為它總是不好的,同時可以快速的指出A和C到底哪個更好,并在剩下的生命周期内總是做出最好的選擇。為了學到這些規律,智能體需要跨多個Episode進行探索學習。圖8展示了不同的Episode中探索到的Object,圖中每個方格代表每個軌迹中積累的内在獎勵,藍色代表正的獎勵,紅色代表負的獎勵。可以看到在Episode 1中,推薦Object A,在Episode 2中推薦Object C,在Episode 3中推薦Object A,整個過程中都沒有推薦Object B,它的顔色總是紅的。

如何提高強化學習效果?内在獎勵和輔助任務

圖8:每個軌迹的内部獎勵可視化

2.4.4 處理非固定任務

在這個實驗中,假設A和C的外部獎勵在一定時間後會發生變化,智能體需要學習預測這個變化是在什麼時候發生,以此來改變政策适應新的任務。圖9展示了實驗結果,左側圖中藍色柱狀條代表内部獎勵,在開始時内部獎勵一直是正的,大約在Episode 400接近500的時候,内在獎勵開始變為負值(綠色框的部分),即智能體開始緩慢的調整政策,到達Episode 500時,政策調整為一個新的行為來應對新的任務。

右側圖展示了整個過程政策的Entropy變化,可以看到在前400個Episodes中Entropy一直保持很小,當内部獎勵為負值時,智能體不知道任務會如何改變,是以它的Entropy開始增加。緊接着,智能體可以快速學習到這些改變,做出政策調整,快速适應新的任務。

如何提高強化學習效果?内在獎勵和輔助任務

圖9:處理非固定任務實驗結果

2.4.5 性能(performance)

設計實驗與手動設定内部獎勵方法進行比較,如圖10所示,前三個子圖代表靜态任務,在三個子圖中學習到的内在獎勵函數獲得最高的Episode Return。最後一個子圖代表非靜态任務,可以看到在任務發生改變時通過學習到的内在獎勵函數智能體的表現可以最快的恢複到最佳狀态。

如何提高強化學習效果?内在獎勵和輔助任務

圖10:Learned v.s. Handcrafted Intrinsic Rewards

如何提高強化學習效果?内在獎勵和輔助任務

圖11:Comparison to policy transfer methods

圖11中展示的是與政策轉移(Policy Transfer)方法(比如:MAML、RL2)的實驗比較結果,可以看出内部獎勵方法的表現優于MAML,最終達到同RL2一樣的效果。這是因為内部獎勵方法需要從部分Episode中學習政策,而RL2有一個好的初始化政策。

2.4.6遷移到新智能體環境

因為有些情況下政策是不能轉移的,是以通用轉移内部獎勵比政策轉移更可行。圖12中,采用新的動作空間(Action Space)來驗證訓練得到的内部獎勵,是以政策無法進行轉移。Permuted Actions是指左/右和上/下的語義相反,Extended Actions是指添加4個對角移動的動作。從圖中可以看到學習到的内在獎勵可以很好的轉移到新的動作空間中,對新環境是敏感的。

如何提高強化學習效果?内在獎勵和輔助任務

圖12:Generalisation to new agent-environment interfaces in Random ABC

2.4.7 Ablation Study

如圖13所示,藍色曲線代表将Lifetime的曆史行為作為輸入的LSTM内部獎勵網絡,橙色曲線代表将Episode曆史行為作為輸入的LSTM内部獎勵網絡,綠色帶表去掉Lifetime曆史行為。從圖中可以看出綠色曲線表現最差。這表明智能體在探索過程中,Lifetime History很重要。橙色曲線基本都比綠色曲線表現差,這也表明了long-term Lifetime History在智能體平衡Exploration和Exploitation過程中是必需的。

如何提高強化學習效果?内在獎勵和輔助任務

圖13:Evaluation of different intrinsic reward architectures and Objectives

2.4.8 總結

文章中證明通過Meta-Gradient方法可以學習到有用的内在獎勵。學習内在獎勵可以捕獲到有用的規律應用于智能體的Exploration和Exploitation。同時捕獲到的知識可以遷移到其他學習環境的智能體上。目前該方法仍然太簡單,有很多限制,Satinder Singh教授他們未來将研究在更加複雜環境下的内在獎勵學習。

3

輔助任務

第二項工作由Satinder Singh教授和他的DeepMind同僚共同完成的。文章的題目是:《Discovery of Useful Questions as Auxiliary Tasks》[2]。

3.1 預測問題

基本上所有的機器學習研究都是通過學習回答預先定義好的問題。為了能夠實作更一般的人工智能,智能體需要能夠自己發現問題并回答這些問題。在本文中,作者關注于将發現問題作為輔助任務來幫助構造智能體的表示。

3.2 General Value Functions (GVFs)

General value Functions是指表示任意狀态特征的價值函數,是強化學習中的價值函數的擴充,它可以由如下公式表示。

如何提高強化學習效果?内在獎勵和輔助任務

由于GVFs可以表達豐富的預測知識,是以被成功的用作輔助任務。

3.3 發現問題輔助任務架構

圖14中展示的是通用輔助任務架構,以最近一次的觀察作為輸入,q為模型參數,輸出為任務政策和預先定義的問題的回答(GVF)。

如何提高強化學習效果?内在獎勵和輔助任務

圖14:通用輔助任務架構

在訓練過程中,損失函數包含兩部分,分别為:主任務損失函數

如何提高強化學習效果?内在獎勵和輔助任務

和輔助任務損失函數

如何提高強化學習效果?内在獎勵和輔助任務

。本文中提出将發現問題作為輔助任務,而不隻是回答問題,架構如圖15所示。針對于發現問題,提出單獨的問題網絡,用未來的觀察作為輸入,h表示參數,輸出為累積向量和折扣因子向量。注意:未來的觀察隻能在訓練階段可以擷取到,無法在驗證階段獲得。但這對于本文提出的方法沒有影響,因為本身在驗證階段就不需要問題,隻需要在訓練階段提供與回答網絡相對應問題的語義表示。

如何提高強化學習效果?内在獎勵和輔助任務

圖15:發現問題輔助任務架構

文中采用Meta-Gradients方法學習更新參數,具體的參數更新過程如圖16、17所示。

如何提高強化學習效果?内在獎勵和輔助任務

圖16:Meta-Gradients(inner-loop)

如何提高強化學習效果?内在獎勵和輔助任務

圖17:Meta-Gradients(outer-loop)

3.4 實驗

為了驗證發現問題輔助方法效果,作者設計了兩組實驗,分别為:隻有輔助任務學習更新參數(圖18)、主任務和輔助任務共同學習更新參數(圖19),同時設計問題發現輔助任務方法與其他輔助任務方法進行比較(圖20)。實驗結果顯示采用問題發現輔助任務方法更新參數達到最好的效果。

如何提高強化學習效果?内在獎勵和輔助任務

圖18:Representation Learning Experiments

如何提高強化學習效果?内在獎勵和輔助任務

圖19:Joint Learning Experiments

如何提高強化學習效果?内在獎勵和輔助任務

圖20:Comparison of Auxiliary Tasks on ATARI

3.5 總結

文章中提出的方法解決了在強化學習領域如何從自身資料中發現問題作為輔助任務的方法。這個方法可以快速發現問題來提高強化學習效果,但是仍然存在一些限制,比如:計算長序列問題參數更新受記憶體大小影響。這也是Satinder Singh教授他們未來的研究方向。

4

結語

Satinder Singh教授分享了他的團隊最近的兩篇研究工作[1]和[2],讨論了如何将Meta-Gradient方法應用的學習發現強化學習智能體中的内在獎勵和輔助任務問題中。并通過實驗證明通過資料驅動的方式可以發現很多有用的知識來優化強化學習效果。

5

Q&A

Q1:在強化學習中,内在獎勵學習和熵正則化之間的關系?

Singh:讓我用兩種方式來回答。第一種是可以通過Meta-Gradient方法來學習熵正則化系數。Deepmind的Junhyuk Oh曾經采用過類似的方法,利用反向傳播方法學習熵正則化。第二種是熵正則化可以看成是一種品質比較差的探索方法,它無法學習到有用的探索政策。内在獎勵學習可以跨多個epsoides學習到有用的知識,這一點熵正則化是無法做到的,但它确實是另外一種特别的探索方法。

Q2:你主要關注Meta-Gradient架構,請問您有什麼理論能保證性能嗎?比如:什麼場景下效果會更好?

Singh:簡單來說,Meta-Gradient就是不斷的進行梯度計算。我們采用類似local minimize optimization等方法保證Meta-Gradient性能。但是這些計算是受記憶體限制的,仍然存在很大的挑戰。簡短的回答就是:我們沒有很強的理論保障。但是我認為這裡有很多有趣的工作值得去做。

參考文獻

[1] Zheng Z, Oh J, Hessel M, et al. What Can Learned Intrinsic Rewards Capture?[J]. arXiv preprint arXiv:1912.05500, 2019.

[2] Veeriah V, Hessel M, Xu Z, et al. Discovery of useful questions as auxiliary tasks[C]//Advances in Neural Information Processing Systems. 2019: 9310-9321.