1. 程式人生 > 其它 >強化學習中好奇心機制

強化學習中好奇心機制

參考連結:

https://www.leiphone.com/category/ai/TmJCRLNVeuXoh2mv.html

https://tianjuewudi.gitee.io/2021/12/02/qiang-hua-xue-xi-zhong-de-hao-qi-xin-jiang-li-ji-zhi/#!

https://cloud.tencent.com/developer/news/339809

https://cloud.tencent.com/developer/article/1367441

https://blog.csdn.net/triplemeng/article/details/84912694

https://blog.csdn.net/wzduang/article/details/112533271

參考論文:

Curiosity-driven Exploration by Self-supervised Prediction

Large-Scale Study of Curiosity-Driven Learning

Curiosity-driven Exploration for Mapless Navigation with Deep Reinforcement Learning

Exploration by Random Network Distillation

1.背景

近年來,我們在深度強化學習領域看到了很多創新。從2014年的DeepMind 的深度 Q 學習框架到2018年 OpenAI 釋出的玩 Dota2 的 OpenAI Five遊戲機器人,我們生活在一個激動人心且充滿希望的時代。

今天我們將瞭解深度強化學習中最令人興奮、最有前景的策略之一——好奇心驅動學習

強化學習基於獎勵機制,即每個目標可以被描述為獲得最大化的獎勵。然而,目前的問題就是外部獎勵(也就是由環境給出的獎勵)是由人為硬性編碼的函式,並不可擴充套件。

好奇心驅動學習的思想是建立一個擁有內在的獎勵函式的智慧體(獎勵函式由智慧體自己生成)。這意味著智慧體將成為自學者,因為他既是學生,也是反饋者。

2.幾個現實案例

假如您正在嘗試學習如何在一個迷宮般的大超市裡找到您想要買的東西。您找來找去,但就是找不到。如果每一步都得不到“胡蘿蔔”,連“大棒”也沒有,無法得到反饋,您可能每走一步都會懷疑自己走的方向是否正確。在這種情況下,要如何避免原地打轉呢?這時候就可以利用好奇心啦。在逛超市時,您會嘗試預測“我現在在肉類區,所以我覺得拐角的區域是水產區”。如果預測錯了,您會感到意外“喲,沒想到”,並因此得到好奇心的滿足獎勵。這讓您以後更願意探索新的地點,只為看看預期與現實是否一致。

在一個迷宮中尋找東西,只有找到這個東西才能得到獎勵,其餘時間都是遙遙無期的探索。為了避免智慧體始終在迷宮中無目的的探索,我們可以通過定義額外的獎勵函式使得獎勵變得稠密。

在一個陽光明媚的週末午後,一個三歲小孩在人生中的激勵遙不可及的情況下(比如大學,工作,房子,家庭等等),仍然能夠在遊樂場上沒心沒肺的玩耍。作為人類主體(human agent),她的行為受到了心理學家稱之為內在激勵(intrinsic motivation)即好奇心的驅動。

3.好奇心機制誕生原因

目前強化學習中存在著兩個主要問題:

  1. 稀疏獎勵的問題,在於行動與其反饋(獎勵)之間的時差。如果每個行動都有獎勵,則智慧體會快速學習,以便獲得快速反饋。相反,如果獎勵洗漱,智慧體很難從中學習。
  2. 設計密集、定義良好的外部獎勵是很困難的,並且通常不可擴充套件。

4.好奇心機制

好奇心機制是鼓勵智慧體採取行動,來降低學習體預測其自身行為後果能力的不確定性。好奇心實質上是一種內部獎勵,即智慧體在當前狀態下預測其自身行為後果的誤差。測量好奇心誤差需要建立一個環境動態模型,在給定當前狀態和動作的情況下預測下一個狀態。通過好奇心模組(Intrinsic Curiosity Module, ICM)的設計來產生智慧體的好奇心獎勵。

良好的特徵空間使得智慧體能夠根據當前的狀態和動作預測下一個狀態。將好奇心定義為給定當前狀態 \(s_t\) 和行動 \(a_t\) 的預測新狀態 \(s_{t+1}\) 與真實新狀態 \(s_{t+1}^*\) 之間的誤差。考慮到外部環境隨機噪聲的影響,智慧體可能會將不可控的環境噪聲作為好奇心的一部分,從而影響了智慧體的探索行為。因此,我們需要根據以下三個規則來構建好的特徵空間:

  1. 對可由智慧體控制的物體進行建模;
  2. 對智慧體無法控制但可能對其產生影響的事物進行建模;
  3. 對智慧體無法控制且對其沒有影響的事物建模。

將空間緊湊、保留有關觀察的充分資訊的穩定特徵空間用於ICM模組的構建,保證帶有ICM模組的智慧體能夠排除不可控事物並控制所有能對其產生影響的事物。ICM模組由兩個神經網路組成,用於學習狀態和下一狀態的特徵表示的逆向模型和用於生成下一狀態的預測特徵表示的前向動態模型。

根據我們設定好的特徵空間的規則,我們只希望預測環境中可能由於智慧體的行為引起的改變,同時忽略其餘內容對智慧體產生影響的更改。這意味著,我們需要的不是從原始感覺空間進行預測,而是將感官輸入轉換為特徵向量,其中僅表示與智慧體執行的動作相關的資訊。

要學習這個特徵空間:我們使用自我監督,在智慧體逆向動態任務上訓練神經網路,給定其當前狀態 \(s_t\) 和下一個狀態 \(s_{t+1}\) 預測學習體行為 \(\hat {a_t}\)

我們使用此特徵空間來訓練前向態模型,給定當前狀態 \(\phi(s_t)\) 的特徵表示和動作,用該模型預測下一個狀態 \(\phi(s_{t+1})\) 的未來表示。

並且我們向智慧體提供前向動態模型的預測誤差(預測的下一狀態與真實下一狀態之差),作為鼓勵其好奇心的內在獎勵。

\[Curiosity = \phi_{predict}(s_{t + 1}) - \phi(s_{t + 1}) \]

那麼,我們在ICM中有兩個模型:

1.反向模型(藍色):將狀態 \(s_t\)\(s_{t + 1}\) 編碼到經過訓練以預測動作的特徵向量 \(\phi(s_{t})\)\(\phi(s_{t+1})\) 中。

\[\hat{a_t} = g(s_t,s_{t+1};\theta_I) \]

其中, \(\hat{a_t}\) 是預測的動作,g是反向模型的學習函式,\(\theta_I\) 是反向模型的引數。對應的逆損失函式為:

\[\underset{\theta_I}{min} L_I(\hat{a_t},a_t) \]

2.正向模型(紅色):將 \(\phi(s_t)\)\(a_t\) 作為輸入,並且預測下一狀態的特徵表示 \(\hat{\phi}(s_{t + 1})\)

\[\hat{\phi}(s_{t + 1}) = f(\phi(s_t),a_t;\theta_F) \]

其中, \(\hat{\phi}(s_{t + 1})\) 是下一狀態的特徵表示,f是前向模型的學習函式,\(\theta_F\) 是前向模型的引數。對應的逆損失函式為:

\[L_F(\phi(s_t),\hat{\phi}(s_{t+1})) = \frac{1}{2} ||\hat{\phi}(s_{t+1})-\phi(s_t)||^2_2 \]

然後從數學上講,好奇心將是我們預測的下一個狀態的特徵向量與下一個狀態的真實特徵向量之間的差。

\[r^i_t = \frac{\eta}{2}||\hat{\phi}(s_{t + 1}) - \phi(s_{t + 1})||^2_2 \]

其中,\(r^i_t\) 是第t時刻的內在獎勵值,\(\eta\) 是規範因子,\(\hat{\phi}(s_{t + 1}) - \phi(s_{t + 1})\) 是預測的下一狀態與實際下一狀態的差。最後,該模組的整體優化問題是逆向損失,正向損失的結合。

\[\underset{\theta_P,\theta_I,\theta_F}{min} \left[-\lambda E_{\pi(s_t;\theta_P)}[\sum_t r_t]+(1-\beta)L_I+\beta L_F \right] \]

其中,\(\theta_P,\theta_I,\theta_F\) 分別代表策略,反向模型,前向模型的引數,\(\lambda\) 代表損失對學習內在獎勵的重要性,\(\beta\) 是權衡反向模型損失和正向模型損失的標量(介於0和1之間),\(L_I\) 是反向模型的損失,\(L_F\) 是前向模型的損失。

回顧一下:

  • 由於外部獎勵實現和稀疏獎勵的問題,我們希望建立智慧體的內在獎勵
  • 為此,我們創造了好奇心,這是智慧體在預測其當前狀態下的行動結果時的誤差
  • 利用好奇心將推動我們的學習體支援具有高預測誤差的轉換(在智慧體花費較少時間的區域或動態複雜的區域中會更高),從而更好地探索我們的環境。
  • 但是因為我們無法通過預測下一幀(太複雜)來預測下一個狀態,所以我們使用更好的特徵表示,只保留可由智慧體控制或影響智慧體的元素。補充,推薦在任務中合理設計特徵空間。
  • 為了產生好奇心,我們使用由兩個模型組成的內在好奇心模組:用於學習狀態和下一狀態的特徵表示的逆向模型和用於生成下一狀態的預測特徵表示的前向模型
  • 好奇心將等於前向動態模型和逆向動態模型之間的差異。

5.相關知識

5.1 Random Network Distillaiton

Random Network Distillaiton,中文為隨機網路蒸餾,簡稱RND。和Curiosity目標一致,它也通過給智慧體新增內在的探索獎勵來解決稀疏獎勵的問題。兩者的核心都是對於沒有探索過的狀態會給予高獎勵,但是對於判斷狀態是否已經探索過卻有不同的方法。

與Curiosity不同,RND擁有兩個網路,兩個網路的結構一致,輸入為狀態 \(s_t\) ,生成一組向量,其實也就是特徵提取。一個網路稱為target網路,一開始隨機引數後,其引數不再更新。另外一個網路稱為Predictor網路,其引數可以不斷學習調整,其學習的目標是對於給定相同的狀態 \(s_t\) ,其輸出和Target網路越接近越好。

因此當兩個網路的輸出差異越大,越說明這個狀態是網路之前沒有探索過的,我們應當給予更大的獎勵,相反當兩者趨近於一致時,說明這個狀態已經多次遇到,經過了充分的學習,應當給予更小的獎勵。其獎勵函式公式為:

\[r^i_t = ||\hat{f}(s_{t + 1}) - f(s_{t + 1})||^2_2 \]

f就是target網路的輸出,\(\hat{f}\) 就是預測的值。

5.2 基於“意外”的好奇心

正文中提到的就是基於“意外”的好奇心,ICM方法也建立了關於世界動態的預測模型,並在模型未能做出良好預測時對智慧體給予獎勵,這種獎勵標誌著“意外”或“新東西”。注意,探索沒去過的地方,並不是ICM好奇心機制的直接組成部分。

對於ICM方法而言,這只是獲得更多“意外”的一種方式,目的是讓獲得的總體獎勵最大化。事實證明,在某些環境中可能存在其他方式造成“自我意外”,從而導致無法預料的結果。

在 《Large-Scale Study of Curiosity-Driven Learning》一文中,ICM方法的作者和OpenAI的研究人員表明,基於“意外最大化”的強化學習方法可能存在潛在的風險:智慧體可以學會放縱和拖延的行為,不去做任何有用的事情來完成當前任務。

為了瞭解其中的原因,請看一個常見的思想實驗,實驗名為“嘈雜的電視問題”,在實驗中,智慧體被置於一個迷宮中,任務是尋找一個非常有價值的專案(與本文之前的超市例子中的“乳酪”類似)。

測試環境中還放了一臺電視,智慧體有電視的遙控器。電視訊道數量有限(每個頻道放映不同的節目),每次按鍵都會切換到隨機頻道。智慧體在這樣的環境中會如何表現?

對基於意外的好奇心的方法而言,改變頻道會產生巨大的回報,因為每次頻道變化都是不可預測和意外的。重要的是,即使在所有可用頻道的節目都迴圈出現一次之後,由於頻道放映的內容是隨機的,所以每一個新變化仍然屬於意外,因為智慧體一直預測改變頻道後會放什麼節目,這個預測很可能會出錯,導致意外的產生。

即使智慧體已經看過每個頻道的每個節目,這種隨機變化仍然是不可預測的。因此,不斷收穫意外的好奇心智慧體,最終將永遠留在電視機前,不會去尋找那個非常有價值的物品,這類似於一種“拖延”行為。那麼,如何定義“好奇心”才能避免產生這種拖延行為呢?

5.3 基於“情境”的好奇心

在《Episodic Curiositythrough Reachability》一文中,我們探索了一種基於記憶的“情境好奇心”模型,結果證明,這種模型不太容易產生“自我放縱”的即時滿足感。為什麼呢?

這裡仍以上文的實驗為例,智慧體在不斷變換電視訊道一段時間後,所有的節目最終都會出現在記憶中。因此,電視將不再具有吸引力:即使螢幕上出現的節目順序是隨機且不可預測的,但所有這些節目已經在記憶中了。

這是本方法與前文的“基於意外”的方法的主要區別:我們的方法甚至沒有去預測未來。與此相反,智慧體會檢查過去的資訊,瞭解自己是否已經看到過與當前的觀察結果。因此,我們的智慧體不會被嘈雜的電視所提供的“即時滿足感”所吸引。它必須去電視之外世界進行探索,才能獲得更多獎勵。

如何判斷智慧體是否看到與現有記憶中相同的東西?檢查二者是否完全匹配可能是毫無意義的:因為在現實環境中,很少出現完全相同的場景。比如,即使智慧體返回了一間完全相同的房間內,其觀察角度也會與之前的記憶場景不同。

我們不會檢查智慧體記憶中的是否存在精確匹配,而是用訓練後的深度神經網路來衡量兩種體驗的相似度。為了訓練該網路,我們會猜測前後兩個觀察結果在時間上是否相距很近。如果二者在時間上很接近,很可能就應該被視為智慧體同一段體驗中的不同部分。

是新是舊可由“可達性”圖決定。在實際應用中,此圖無法獲取,我們通過訓練神經網路估計器,在觀察結果之間估計一系列步驟。