深度學習課程筆記(七):模仿學習(imitation learning)


深度學習課程筆記(七):模仿學習(imitation learning)

2017.12.10 

 

  

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

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

  

  接下來,我們將分別介紹這三種方法:

  一、Behavior Cloning 

  

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

  

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

  要么,你增加 training data,加入平常 agent 沒有看到過的數據,即:dataset aggregation 

 

   通過不斷地增加數據,那么,就可以很好的改進 agent 的策略。有些場景下,也許適應這種方法。。。

  

  而且,你的觀測數據 和 策略是有聯系的。因為在監督學習當中,我們需要 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。大致流程應該是這個樣子:

  

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

  

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

  

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

  

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

  

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

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

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

  

  可以看到,貌似真是的哎。。。然后,復習下什么是 結構化學習:

  

 

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

  

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

  

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

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

  

   

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

  

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

 

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

  

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

  

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

  

  ====>>  Generator:產生出一個軌跡,

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

  

 

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

  Recap:Sentence Generation and Chat-bot 

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

  

 

 

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

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

  Examples of Recent Study : 

  

  

  

 

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM