[Reinforcement Learning] 強化學習介紹

隨着AlphaGo和AlphaZero的出現,強化學習相關算法在這幾年引發了學術界和工業界的重視。最近也翻了不少強化學習的資料,有時間了仍是得本身動腦筋整理一下。html

強化學習定義

先借用維基百科上對強化學習的標準定義:git

強化學習(Reinforcement Learning,簡稱RL)是機器學習中的一個領域,強調如何基於環境而行動,以取得最大化的預期利益。github

從本質上看,強化學習是一個通用的問題解決框架,其核心思想是 Trial & Errorweb

強化學習能夠用一個閉環示意圖來表示:
算法



強化學習四元素

  • 策略(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. 監督學習

強化學習與監督學習能夠參考下圖:
ide



二者的目標都是學習一個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。

下圖爲根據環境是否已知進行細分的示意圖:



強化學習相關推薦資料

  • Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto:介紹強化學習很全面的一本書籍,相關的電子書及源碼見這裏
  • David Silver在UCL的強化學習視頻教程:介紹強化學習的視頻教程,基本與Sutton的書籍能夠配套學習,Silver來自於Google Deepmind,視頻和課件能夠從Silver的主頁獲取,中文字幕版視頻YouTube連接點這裏
  • 強化學習在阿里的技術演進與業務創新:介紹強化學習在阿里巴巴的落地,能夠拓展強化學習應用的業務思路,電子版見這裏,密碼:yh48。
  • Tutorial: Deep Reinforcement Learning:一樣來自於Sliver的一個課件,主要針對RL與DL的結合進行介紹,電子版見這裏,密碼:9mrp。
  • 莫煩PYTHON強化學習視頻教程:能夠經過簡短的視頻歸納地瞭解強化學習相關內容,適合於入門的同窗,視頻見這裏
  • OpenAI Gym:Gym is a toolkit for developing and comparing reinforcement learning algorithms,Gym包含了不少的控制遊戲(好比過山車、二級立杆、Atari遊戲等),並提供了很是好的接口能夠學習,連接見這裏
  • Lil'Log:介紹DL和RL的一個優質博客,RL相關包括RL介紹、Policy Gradients算法介紹及Deep RL結合Tensorflow和Gym的源碼實現,主頁連接見這裏

Reference

[1] 維基百科-強化學習
[2] Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto, 2018
[3] Evolution Strategies as a Scalable Alternative to Reinforcement Learning

相關文章
相關標籤/搜索