[Reinforcement Learning] 強化學習介紹
隨著AlphaGo和AlphaZero的出現,強化學習相關演算法在這幾年引起了學術界和工業界的重視。最近也翻了很多強化學習的資料,有時間了還是得自己動腦筋整理一下。
強化學習定義
先借用維基百科上對強化學習的標準定義:
強化學習(Reinforcement Learning,簡稱RL)是機器學習中的一個領域,強調如何基於環境而行動,以取得最大化的預期利益。
從本質上看, 強化學習是一個通用的問題解決框架,其核心思想是 Trial & Error 。
強化學習可以用一個閉環示意圖來表示:
強化學習四元素
- 策略(Policy):環境的感知狀態到行動的對映方式。
- 反饋(Reward):環境對智慧體行動的反饋。
- 價值函式(Value Function):評估狀態的價值函式,狀態的價值即從當前狀態開始,期望在未來獲得的獎賞。
- 環境模型(Model):模擬環境的行為。
強化學習的特點
- 起源於動物學習心理學的試錯法(trial-and-error),因此符合行為心理學。
- 尋求探索(exploration)和採用(exploitation)之間的權衡:強化學習一面要採用(exploitation)已經發現的有效行動,另一方面也要探索(exploration)那些沒有被認可的行動,已找到更好的解決方案。
- 考慮整個問題而不是子問題。
- 通用AI解決方案。
強化學習 vs. 機器學習
機器學習是人工智慧的一個分支,在近30多年已發展為一門多領域交叉學科,而強化學習是機器學習的一個子領域。強化學習與機器學習之間的關係可以通過下圖來形式化的描述:
注:上圖中Machine Learning分支應該包含進化演算法(Evolutionary Algorithms)。
強化學習與其他機器學習的不同:
- 強化學習更加專注於線上規劃,需要在探索(explore 未知領域)和採用(exploit 現有知識)之間找到平衡。
- 強化學習不需要監督者,只需要獲取環境的反饋。
- 反饋是延遲的,不是立即生成的。
- 時間在強化學習中很重要,其資料為序列資料,並不滿足獨立同分布假設(i.i.d)。
強化學習 vs. 監督學習
強化學習與監督學習可以參考下圖:
兩者的目標都是學習一個model,而區別在於:
監督學習:
- Open loop
- Learning from labeled data
- Passive data
強化學習:
- Closed loop
- Learning from decayed reward
- Explore environment
強化學習 vs. 進化演算法
進化演算法(Evolutionary Algorithms,簡稱EA)是通過生物進化優勝略汰,適者生存的啟發而發展的一類演算法,通過種群不斷地迭代達到優化的目標。進化演算法屬於仿生類演算法的一種,仿生類演算法還包括粒子群演算法(PSO)、人工免疫演算法以及如日中天的神經網路演算法等。
進化演算法最大的優點在於整個優化過程是gradients-free的,其思想可以通過下圖表示:
RL和EA雖然都屬於優化問題的求解框架,而且兩者都需要大量的算力,但是兩者有著本質上的區別。
Sutton在其強化學習介紹一書中也重點談到了RL與EA的區別,這裡簡單談一下兩者的區別:
- RL通過與環境互動來進行學習,而EA通過種群迭代來進行學習;
- RL通過最大化累計回報來解決序列問題,而EAs通過最大化適應函式(Fitness Function)來尋求單步最優;
- RL對於state過於依賴,而EA在agent不能準確感知環境的狀態類問題上也能適用。
近期隨著RL的研究熱潮不斷推進,很多研究也嘗試通過將EA和RL結合解決優化問題,比如OpenAI通過使用進化策略來優化RL,獲得了突破性的進展[3]。
強化學習分類
強化學習分類比較多樣:
- 按照環境是否已知可以分為Model-based & Model-free;
- 按照學習方式可以分為On-Policy & Off-Policy;
- 按照學習目標可以分為Value-based & Policy-based。
下圖為根據環境是否已知進行細分的示意圖: