強化學習——強化學習的算法分類
上一篇文章回顧了強化學習的核心概念,這裡繼續通過Open AI 的Spinning Up 項目總結強化學習(RL)的算法,通過分類和對比的方法系統介紹強化學習的算法。
1. 算法分類
現代強化學習算法分類
由于強化學習是一個更新速度非常快的領域,是以準确地全面地分類是相當困難的,Spinning up 項目組給出的這個分類雖然并不全面,但是對初學者來說是非常有用了。
可以看出強化學習可以分為Model-Free(無模型的) 和 Model-based(有模型的) 兩大類。Model-Free 又分成基于Policy Optimization(政策優化)和Q-learning。Model-based 又分為模型學習(Learn the Model)和給定模型(Given the Model)兩大類。
部分算法的全名和論文連結見文末附錄
2. Model-Free vs Model-Based
在之前的文章也闡述過兩者的差別,當時主要是以引入Model-based的算法的角度簡略地比較了兩者的優劣。Spinning up 項目組也對兩者的差別和優劣做了系統的比較。
- 兩個算法的差別主要是Agent是否知道或要計算出環境的模型 。
- 擁有模型的好處是:Agent可以根據模型看到會發生什麼,并提前規劃(Planning)行動路徑。
- 擁有模型的壞處是,真實模型和學習到帶模型是有誤差的,這種誤差會導緻Agent雖然在模型中表現很好,但是在真實環境中可能打不到預期結果。
- Model-Free的算法往往更易于實作和調整,截止到目前(2018年9月),Model-Free的算法更受歡迎。
3. 要學習什麼(學習對象)
RL學習的内容無非是如下幾個方面
- 政策,不管是随機的還是确定性的
- 行動價值函數(Q (s,a))
- 值函數(V(s))
- 環境模型
3.1. Model-Free 學習對象
Spinning Up 項目組就是根據學習的對象分成Policy Optimization(對象是政策),和Q-Learning(對象是Q(s,a))的。
(1) Policy Optimization
基于政策的強化學習就是參數化政策本身,獲得政策函數πθ(a|s), 我們訓練政策函數的目标是什麼呢?是獲得最大獎勵。優化政策函數就是優化目标函數可以定義為J(πθ).
Policy Optimization 通常是on-policy的,也就是每次更新政策采用最新政策産生的資料。
Policy Optimization的經典例子包含A2C / A3C,和PPO。
(2) Q-Learning
- Q-Learning 就是通過學習參數化Q函數Qθ(s,a)進而得* 到最優Q*(s,a)的。
- 典型地方法是優化基于Bellman方程的目标函數。
- Q-Learning 通常是Off-Policy的,這就意味着訓練的資料可以是訓練期間任意時刻的資料。
Q-Learning 的經典例子包含DQN和C51。
3.2. Policy Optimization和Q-Learning 的權衡與融合
Policy Optimization直接了當地優化你想要的對象(政策),是以Policy Optimization穩定性和可信度都較好,而Q-learning是采用訓練Qθ的方式間接優化政策,會遇到不穩定的情況。但是Q-learning的優點是利用資料的效率較高(Off-policy的原因?)
Policy Optimization和Q-Learning并非水火不相容,有些算法就融合和平衡了兩者的優缺點:
- DDPG, 同時學出一個确定性政策和Q函數,并用他們互相優化。
- SAC 是一種變體,它使用随機政策、熵正則化和一些其它技巧來穩定學習,同時在 benchmarks 上獲得比 DDPG 更高的分數。
4. Model-Based RL學習對象
Model-Based RL不像Model-Free RL那樣容易分類,很多方法都有交叉。Spinning up 項目組給出了幾個例子,但他們也聲稱這些例子是無法全部覆寫Model-Based強化學習的,這些例子中模型要麼是已知給定的,要麼是通過學習得到的。
4.1 純動态規劃(Pure Planning)
Pure Planning 是一個基礎的算法,其政策并不顯示的表達出來,而是使用規劃技術來選擇行動。比如 模型預測控制 (model-predictive control, MPC)。
在MPC中:
第一步:Agent首先觀察環境,并通過模型預測出所有可以行動的路徑(路徑包含多連續個行動)。
第二步:Agent執行規劃的第一個行動,然後立即舍去規劃剩餘部分。
第三步:重複第一、二步。
例如,MBMF 在一些深度強化學習的标準基準任務上,基于學習到的環境模型進行模型預測控制
4.2 Expert Iteration(專家疊代)
這個算法是Pure Planing 的更新版,它将政策顯示地表達出來,并通過學習得到這個最優政策π*θ(a|s)
- ExIt 算法用這種算法訓練深層神經網絡來玩 Hex
- AlphaZero 這種方法的另一個例子
4.3 免模型方法的資料增強
- MBVE 用假資料增加真實經驗
- World Models 全部用假資料來訓練智能體,是以被稱為:“在夢裡訓練”
4.4 将規劃嵌入政策
- 更多例子,參見 I2A