深度強化學習中如何從已有的好行為中快速學習策略?

深度強化學習中如何最好地利用示教信號(也就是已知的正確的動作)?很多情況下強化學習直接explore的話不知道要到猴年馬月,我希望在這個正確的動作中進一步的搜索.

是用逆強化學習?還是直接把這個正確的動作作為深度強化學習過程中的explore的過程


謝邀, @Flood Sung 這位知友有寫過一些這方面的東西, 你可以去看看.

其實你想要了解的是 Imitation learning 或者是 Learn from demonstrations. 所以我也分別簡單提一下這兩個, 弄清大概, 在去網上找其他資料就好了.

Imitation Learning

下面會用到一些圖片, 來自一個課件: https://katefvision.github.io/katefSlides/immitation_learning_I_katef.pdf

說到從專家那學行為/有人教你正確的行為, 其實就和 Supervised learning 差不多. 但 Supervised learning 真的就是萬能鑰匙嗎? 答案肯定不是! 比如我們從專業駕駛員那學自動駕駛, 一種做法就是直接將觀測值對應上行為值, 做監督學習.

可是問題來了, 我們知道監督學習不可能會誤差到0, 做的動作和人類一模一樣, 他總是會有一些小小的誤差. 然後這些誤差會被累積. 比如下面我們想要學習到的開車路線是和人類的差不多. 不過因為那些小誤差的不斷累積, 這種累積效應就會將 AI 開的車開到完全不同的地方.

如何避免這件事呢? 那我們就引入了 Imitation learning. 我們不是完全照搬專家的行為, 而是學習專家為什麼要那樣做. 學習的不是一個專家鏡像, 而是一個專家的行為分布(distribution). 這就是 imitation learning 的精髓了.

另外一點是, imitation learning 不需要對 reward 進行設計. 比如自動駕駛, 行為規則太複雜了, 設計一套 reward 也是會相當複雜. 那如果我們已經有 demonstration data, 我們就能用 imitation learning 根據專家的 distribution 虛擬出一個 reward 信號來學習策略.

而是用 imitation learning 的方法有很多. 下面列舉了一些.

  • Data Augmentation
  • Inverse reinforcement learning
  • Adversarial Imitation learning

我想提的一個是 Adversarial Imitation learning, 因為前面兩個是比較老的方法, 後面這個是最近提出的, 如果想直接看論文, 這裡有兩篇, 一篇 OpenAI 的, 一篇 DeepMind 的.

[OpenAI] Ho, J. Ermon, S. Generative adversarial imitation learning. Advances in Neural Information Processing Systems, 2016. 4565-4573.

[DeepMind] Merel, J., Tassa, Y., Tb, D., Srinivasan, S., Lemmon, J., Wang, Z., Wayne, G. Heess, N. 2017. Learning human behaviors from motion capture by adversarial imitation.

他們兩個講得是同一個道理, 用生成對抗網路 GAN 的模式來做 imitation learning. 想法很新穎. 下面是 DeepMind 那篇的一張示意圖.

因為我們要學的是專家的分布, 說到學分布, GAN 不就是干這個事的嘛! 正好可以用在這裡. Generator 就是 Actor, Demonstrator 就是專家, Discriminator 學習區分這些分布到底是專家的還是 Generator 的, Generator 要學習產生/靠近專家的分布, 來騙過 Discriminator. 這樣 Generator 的行為就越來越像專家了. 而且因為學習的是一種分布, 就間接減小了之前提到 Supervised learning 的那種問題.

這種演算法還比較新, 不過應該算有潛力的, 期待以後的發展.

Learn from Demonstrations + Hand-Design Reward Function

這個也是 DeepMind 的. 主要目的是為了使用專家的 data 來加速 RL 的學習, 文獻在這:

Hester, T., Vecerik, M., Pietquin, O., Lanctot, M., Schaul, T., Piot, B., Sendonaris, A., Dulac-Arnold, G., Osband, I., Agapiou, J., Leibo, J. Z. Gruslys, A. 2017. Learning from Demonstrations for Real World Reinforcement Learning.

這種作法中, 我們還是會有自己設計的 Reward function, 只是我們的記憶庫中永遠都會有專家的 data, 所以總會學到專家的行為. 特別是在最開始學習的時候, 應該會學得很快.

相比起前面提到的 imitation learning, 我能想到這方法的一個好處就是: 有時候專家的行為也不一定是最優行為. reward 可以告訴你最優行為, 所以這種方法, 只要精心設計 reward, 學出來可能比專家還要好!


推薦閱讀:

有研究強化學習(Reinforcement Learning)的不,強化學習的研究價值和應用前景如何?
怎麼在監督學習的基礎上做強化學習?
生成對抗網路(GAN)相比傳統訓練方法有什麼優勢?
在機器學習的演算法中, 矩陣運算的效率總是優於for循環嗎?
應該如何理解No Free Lunch Theorems for Optimization?

TAG:機器人 | 機器學習 | 智能機器人 | 深度學習DeepLearning | 強化學習ReinforcementLearning |