https://blog.csdn.net/cindy_1102/article/details/88051963
爲什麼要模仿學習 Imitation Learning
(也稱爲 learning by demonstration, apprenticeship learning)
在某些情況下:
- 機器也可以和環境進行互動,但是不能明顯的得到reward
- 在某些任務中很難定義reward
- 人爲涉及的獎勵可能會得到不受控制的行爲
因此需要 imitation learning: 讓一個專家來示範應該如何解決問題,而機器則試着去模仿專家
行爲克隆
這個方法可以看做是一個監督學習,在這個方法中,actor需要學習在某些特定的state下儘可能像專家一樣行動
然而,專家只能進行有限的採樣,因此需要引入Dataset Aggregation(讓專家處於機器所處的state中)
Dataset Aggregation:
- 通過行爲克隆得到一個 actor π1\pi_1π1
- 使用 π1\pi_1π1 和環境進行互動
- 讓專家對觀察對象作標籤 π1\pi_1π1
- 使用新的數據來訓練 π2\pi_2π2
缺點:
agent可能會複製專家所有的動作,包括一些無關的動作。如果機器只有有限的學習能力,可能會導致它複製到錯誤的行爲。
有些行爲必須被複制,但有些可以被忽略,但監督學習對所有的誤差都平等處理。
在監督學習中,我們希望訓練數據和測試數據有相同的分佈,但是在行爲克隆中,訓練數據來自於專家的分佈,而測試數據來自於actor,因爲專家的 π\piπ 和actor的是不一樣的,生成的state也是不一樣的,分佈可能會不相同,因此引入 IRL
Inverse Reinforcement Learning (IRL)
在前面介紹過的RL中:環境和reward是用來生成一個actor的,但是在IRL中,沒有reward function,而是用一個專家來和環境做互動並學到一個reward function,然後這個reward function纔會被用來訓練actor。
生成的reward可能會很簡單,但也可能會導致複雜的policy
- 專家和actor都會生成對應的 trajectory.
- 生成的reward function需要滿足專家的累積reward總是比actor的大
- 使用reward function來訓練一個新的actor替換原來舊的actor
- 重複上述步驟.
這裏的模型和GAN十分相似,actor就是generator,reward function就是discriminator。
(假設:專家永遠是最棒的)