天天看點

深度強化學習之:模仿學習(imitation learning)

深度強化學習之:模仿學習(imitation learning)

2017.12.10 

  

深度強化學習之:模仿學習(imitation learning)

  本文所涉及到的 模仿學習,則是從給定的展示中進行學習。機器在這個過程中,也和環境進行互動,但是,并沒有顯示的得到 reward。在某些任務上,也很難定義 reward。如:自動駕駛,撞死一人,reward為多少,撞到一輛車,reward 為多少,撞到小動物,reward 為多少,撞到 X,reward 又是多少,諸如此類。。。而某些人類所定義的 reward,可能會造成不可控制的行為,如:我們想讓 agent 去考試,目标是讓其考 100,那麼,這個 agent 則可能會為了考 100,而采取作弊的方式,那麼,這個就比較尴尬了,是吧 ?我們當然想讓 agent 在學習到某些本領的同時,能遵守一定的規則。給他們展示怎麼做,然後讓其自己去學習,會是一個比較好的方式。

  本文所涉及的三種方法:1. 行為克隆,2. 逆強化學習,3. GAN 的方法

  接下來,我們将分别介紹這三種方法:

  一、Behavior Cloning : 

深度強化學習之:模仿學習(imitation learning)

  這裡以自動駕駛為例,首先我們要收集一堆資料,就是 demo,然後人類做什麼,就讓機器做什麼。其實就是監督學習(supervised learning),讓 agent 選擇的動作和 給定的動作是一緻的。。。

深度強化學習之:模仿學習(imitation learning)

  但是,這個方法是有問題的,因為 你給定的 data,是有限的,而且是有限制的。那麼,在其他資料上進行測試,則可能不會很好。

  要麼,你增加 training data,加入平常 agent 沒有看到過的資料,即:dataset aggregation 。

 

深度強化學習之:模仿學習(imitation learning)

   通過不斷地增加資料,那麼,就可以很好的改進 agent 的政策。有些場景下,也許适應這種方法。。。

深度強化學習之:模仿學習(imitation learning)

  而且,你的觀測資料 和 政策是有聯系的。因為在監督學習當中,我們需要 training data 和 test data 獨立同分布。但是,有時候,這兩者是不同的,那麼,就慘了。。。

  于是,另一類方法,出現了,即:Inverse Reinforcement Learning (也稱為:Inverse Optimal Control,Inverse Optimal Planning)。

   二、Inverse Reinforcement Learning (“Apprenticeship learning via Inverse Reinforcement Learning”, ICML 2004) 

  顧名思義,IRL 是 反過來的 RL,RL 是根據 reward 進行參數的調整,然後得到一個 policy。大緻流程應該是這個樣子:

深度強化學習之:模仿學習(imitation learning)

  但是, IRL 就不同了,因為他沒有顯示的 reward,隻能根據 人類行為,進行 reward的估計(反推 reward 的函數)。

深度強化學習之:模仿學習(imitation learning)

  在得到 reward 函數估計出來之後,再進行 政策函數的估計。。。

深度強化學習之:模仿學習(imitation learning)

  原本的 RL,就是給定一個 reward function R(t)(獎勵的加和,即:回報),然後,這裡我們回顧一下 RL 的大緻過程(這裡以 policy gradient 方法為例)

深度強化學習之:模仿學習(imitation learning)

  而 Inverse Reinforcement Learning 這是下面的這個思路:

深度強化學習之:模仿學習(imitation learning)

  逆強化學習 則是在給定一個專家之後(expert policy),通過不斷地尋找 reward function 來滿足給定的 statement(即,解釋專家的行為,explaining expert behavior)。。。

  專家的這個回報是最大的,英雄級别的,比任何其他的 actor 得到的都多。。。

  據說,這個 IRL 和 structure learning 是非常相似的:

深度強化學習之:模仿學習(imitation learning)

  可以看到,貌似真是的哎。。。然後,複習下什麼是 結構化學習:

深度強化學習之:模仿學習(imitation learning)

  我們對比下, IRL 和 結構化學習:

深度強化學習之:模仿學習(imitation learning)

  =======================================================================

深度強化學習之:模仿學習(imitation learning)

  我們可以看到,由于我們無法知道得到的 reward 情況,是以,我們隻能去估計這些 獎勵的函數,然後,我們用參數 w 來進行估計:

  是以, r 可以寫成 w 和 f(s, a) 相乘的形式。w 就是我們所要優化的參數,而 f(s,a)就是我們提取的 feature vector。

深度強化學習之:模仿學習(imitation learning)

   

  那麼 IRL 的流程究竟是怎樣的呢???

深度強化學習之:模仿學習(imitation learning)

  上面就是 IRL 所做的整個流程了。  

  三、GAN for Imitation Learning (Generative Adversarial imitation learning, NIPS, 2016) 

深度強化學習之:模仿學習(imitation learning)

  那麼如何用 GAN 來做這個事情呢?對應到這件事情上,我們知道,我們想得到的 軌迹 是屬于某一個高維的空間中,而 expert 給定的那些軌迹,我們假設是屬于一個 distribution,我們想讓我們的 model,也去 predict 一個分布出來,然後使得這兩者之間盡可能的接近。進而完成 actor 的訓練過程,示意圖如下所示:

深度強化學習之:模仿學習(imitation learning)

  ===============================  過程  ================================

深度強化學習之:模仿學習(imitation learning)

  ====>>  Generator:産生出一個軌迹,

  ====>>  Discriminator:判斷給定的軌迹是否是 expert 做的?

深度強化學習之:模仿學習(imitation learning)

  ==========================================================================

  Recap:Sentence Generation and Chat-bot 

深度強化學習之:模仿學習(imitation learning)

  ===========================================================

  Examples of Recent Study : 

深度強化學習之:模仿學習(imitation learning)
深度強化學習之:模仿學習(imitation learning)
深度強化學習之:模仿學習(imitation learning)
深度強化學習之:模仿學習(imitation learning)
深度強化學習之:模仿學習(imitation learning)
深度強化學習之:模仿學習(imitation learning)
深度強化學習之:模仿學習(imitation learning)
深度強化學習之:模仿學習(imitation learning)

繼續閱讀