Imitation Learning

ygp12345發表於2020-10-18


很多場景是很難有一個明確的reward甚至沒有reward。所以需要很厲害的agent或者直接由人來示範的資料,讓agent跟著做。
本文會講兩個Imitation Learning的方法:

1.Behavior Cloning

在這裡插入圖片描述
Behavior Cloning其實和監督學習(supervised learning)是一樣的。 以自動駕駛為例子,蒐集很多的expert(假設是人類)駕駛資料,這些資料的狀態s是開車的場景,動作a是在此場景下做出的動作。把這些資料輸入到Neural Network中,使網路輸出的動作能儘可能接近實際人類做出的動作,就完成任務。
在這裡插入圖片描述
但是這個過程中,expert觀察到state是有限的。比如在實驗中,讓人去開車,都能順利轉彎,沒有出現撞牆的情況。而這時讓agent去開車,如果某一時間它沒及時轉彎導致處於快撞牆的state,由於缺少相應的訓練資料導致agent不知道接下來怎麼做。

所以這時需要引入Dataset Aggregation稍微緩解下這個問題。
在這裡插入圖片描述
1.讓actor π 1 \pi_1 π1開車
2.讓一個專家坐在車子裡觀察所處狀態並告訴actor 做出什麼動作。
3.但是actor不會聽取專家的建議,還是以actor的意願去開車,最終就撞牆了,一個episode結束。
4.這時actor就知道在快要撞牆的時候要採取什麼樣的動作,然後用這個新的data去訓練新的actor π 2 \pi_2 π2
5.重複1234步

以上就是Dataset Aggregation的過程

從上面我們可以看出Behavior Cloning很容易實現,但是它也有問題:

1.agent會完全複製expert的行為,不管這個行為對不對
2.agent的學習能力有限,沒辦法什麼都學,有可能只學到不好的東西,沒學到有價值的東西
3.有可能會遇到Mismatch的問題(上面開車那個例子)

這裡再具體看一下第三點
在這裡插入圖片描述
在監督學習中,是希望訓練資料和測試資料有獨立同分布的。而在Behavior Cloning中,actor做出的action是會影響後續的state的。因為Network的訓練是有誤差的,訓練出來的actor 不可能完全和expert actor 一模一樣,就會導致某個state下,兩者採取的action不一樣,然後就導致後面的state完全不一樣了,最壞的情況就是actor後面遇到的state是expert沒遇到過的,這時actor就會完全不知道如何進行下去了。即,失之毫米,差之千里。

所以,雖然Behavior Cloning簡單但是並不是一個很好的辦法,所以又有第二種方法Inverse Reinforcement Learning (IRL)

2.Inverse Reinforcement Learning (IRL)

在這裡插入圖片描述
左圖是熟悉的Reinforcement Learning的步驟,通過Environment和Reward function,最終更新出理想的Actor。

右圖就是 Inverse Reinforcement Learning 的步驟,由於沒辦法從Environment獲得reward,那就通過收集expert的資料還有Environment的資訊,來反推Reward function,推出Reward function就能應用以前的Reinforcement Learning的做法了。
在這裡插入圖片描述
具體來看Inverse Reinforcement Learning怎麼運作的。

1.expert π \pi π去玩遊戲,記錄遊戲過程,形成n個 τ \tau τ,每個 τ \tau τ代表1個episode。
2.actor π \pi π 去玩遊戲,記錄遊戲過程,形成n個 τ \tau τ
3.設定一個Reward Function,這個Reward Function強制要求expert的累計得分一定要高於actor的累計得分。
4.有了Reward Function就可以使actor去更新出更強的actor。
5.當actor能在此時的Reward Function達到很高的reward時,修改Reward Function(還是要求expert的得分一定要高於actor),6.讓actor根據新Reward Function去更新出更強的actor。
7.重複上述步驟。

Inverse Reinforcement Learning可以實現只用很少量的expert的示範資料,就訓練出一個很理想的actor。

看了以上的步驟,可以想到,actor和reward function就對應類似於GAN的generator和discriminator。通過reward function的不斷修改,使actor越來越接近expert的水平。

在這裡插入圖片描述

相關文章