1.強(qiáng)化學(xué)習(xí)資源
函數(shù)庫
1墓陈、RL-Glue:提供了一個能將強(qiáng)化學(xué)習(xí)代理咳胃、環(huán)境和實驗程序連接起來的標(biāo)準(zhǔn)界面啰脚,且可進(jìn)行跨語言編程另凌。
地址:http://glue.rl-community.org/wiki/Main_Page
2、Gym:由OpenAI開發(fā)孙乖,是一個用于開發(fā)強(qiáng)化學(xué)習(xí)算法和性能對比的工具包浙炼,它可以訓(xùn)練代理學(xué)習(xí)很多任務(wù),包括步行和玩乒乓球游戲等唯袄。
地址:https://gym.openai.com/
3弯屈、RL4J:是集成在deeplearning4j庫下的一個強(qiáng)化學(xué)習(xí)框架,已獲得Apache 2.0開源許可恋拷。
地址:https://github.com/deeplearning4j/rl4j
4资厉、TensorForce:一個用于強(qiáng)化學(xué)習(xí)的TensorFlow庫。
地址:https://github.com/reinforceio/tensorforce
論文集
1蔬顾、用通用強(qiáng)化學(xué)習(xí)算法自我對弈來掌握國際象棋和將棋
題目:Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm
地址:https://arxiv.org/abs/1712.01815
這篇文章有13位作者宴偿,提出了AlphaZero方法。在這篇論文中诀豁,作者將先前的AlphaGo Zero方法推廣到一個單一的AlphaZero算法窄刘,它可以在多個具有挑戰(zhàn)性的領(lǐng)域?qū)崿F(xiàn)超越人類的性能,同樣利用的是“白板”強(qiáng)化學(xué)習(xí)(“白板”指的是所有知識均由感官和經(jīng)驗得來舷胜,即從零開始的學(xué)習(xí))娩践。從隨機(jī)下棋開始,除了游戲規(guī)則外,沒有輸入任何領(lǐng)域知識翻伺,AlphaZero在24小時內(nèi)實現(xiàn)了在國際象棋材泄、將棋和圍棋上超越人類水平的表現(xiàn),并且在這三種棋上都以令人信服的成績擊敗了當(dāng)前的世界冠軍程序穆趴。
2脸爱、深化強(qiáng)化學(xué)習(xí)綜述
題目:Deep Reinforcement Learning: An Overview
地址:https://arxiv.org/abs/1701.07274
這篇論文概述了深度強(qiáng)化學(xué)習(xí)中一些最新精彩工作遇汞,主要說明了六個核心要素未妹、六個重要機(jī)制和十二個有關(guān)應(yīng)用。文章中先介紹了機(jī)器學(xué)習(xí)空入、深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)的背景络它,接著討論了強(qiáng)化學(xué)習(xí)的核心要素,包括DQN網(wǎng)絡(luò)歪赢、策略化戳、獎勵、模型埋凯、規(guī)劃和搜索点楼。
3、用深度強(qiáng)化學(xué)習(xí)玩Atari游戲
題目:Playing Atari with Deep Reinforcement Learning
地址:https://arxiv.org/abs/1312.5602
這是DeepMind公司2014年的NIPS論文白对。這篇論文提出了一種深度學(xué)習(xí)方法掠廓,利用強(qiáng)化學(xué)習(xí)的方法,直接從高維的感知輸入中學(xué)習(xí)控制策略甩恼。該模型是一個卷積神經(jīng)網(wǎng)絡(luò)蟀瞧,利用Q-learning的變體來進(jìn)行訓(xùn)練,輸入是原始像素条摸,輸出是預(yù)測未來獎勵的價值函數(shù)悦污。此方法被應(yīng)用到Atari 2600游戲中,不需要調(diào)整結(jié)構(gòu)和學(xué)習(xí)算法钉蒲,在測試的七個游戲中6個超過了以往方法并且有3個超過人類水平切端。
4、用深度強(qiáng)化學(xué)習(xí)實現(xiàn)人類水平的控制
題目:Human-Level Control Through Deep Reinforcement Learning
地址:https://web.stanford.edu/class/psych209/Readings/MnihEtAlHassibis15NatureControlDeepRL.pdf
這是DeepMind公司2015年的Nature論文顷啼。強(qiáng)化學(xué)習(xí)理論根植于關(guān)于動物行為的心理學(xué)和神經(jīng)科學(xué)踏枣,它可以很好地解釋代理如何優(yōu)化他們對環(huán)境的控制。為了在真實復(fù)雜的物理世界中成功地使用強(qiáng)化學(xué)習(xí)算法线梗,代理必須面對這個困難任務(wù):利用高維的傳感器輸入數(shù)據(jù)椰于,推導(dǎo)出環(huán)境的有效表征,并把先前經(jīng)驗泛化到新的未知環(huán)境中仪搔。
講座教程
1瘾婿、強(qiáng)化學(xué)習(xí)(Georgia Tech, CS 8803)
地址:https://www.udacity.com/course/reinforcement-learning—ud600
官網(wǎng)介紹:如果你對機(jī)器學(xué)習(xí)感興趣并且希望從理論角度來學(xué)習(xí),你應(yīng)該選擇這門課程。本課程通過介紹經(jīng)典論文和最新工作偏陪,帶大家從計算機(jī)科學(xué)角度去探索自動決策的魅力抢呆。本課程會針對單代理和多代理規(guī)劃以及從經(jīng)驗中學(xué)習(xí)近乎最佳決策這兩個問題,來研究相應(yīng)的高效算法笛谦。課程結(jié)束后抱虐,你將具備復(fù)現(xiàn)強(qiáng)化學(xué)習(xí)中已發(fā)表論文的能力。
2饥脑、強(qiáng)化學(xué)習(xí)(Stanford, CS234)
地址:http://web.stanford.edu/class/cs234/index.html
官網(wǎng)介紹:要實現(xiàn)真正的人工智能恳邀,系統(tǒng)要能自主學(xué)習(xí)并做出正確的決定。強(qiáng)化學(xué)習(xí)是一種這樣的強(qiáng)大范式灶轰,它可應(yīng)用到很多任務(wù)中谣沸,包括機(jī)器人學(xué)、游戲博弈笋颤、消費者建模和醫(yī)療服務(wù)乳附。本課程詳細(xì)地介紹了強(qiáng)化學(xué)習(xí)的有關(guān)知識,你通過學(xué)習(xí)能了解當(dāng)前面臨問題和主要方法伴澄,也包括如何進(jìn)行泛化和搜索赋除。
3、深度強(qiáng)化學(xué)習(xí)(Berkeley, CS 294, Fall 2017)
地址:http://rll.berkeley.edu/deeprlcourse/
官網(wǎng)介紹:本課程需要一定的基礎(chǔ)知識非凌,包括強(qiáng)化學(xué)習(xí)举农、數(shù)值優(yōu)化和機(jī)器學(xué)習(xí)。我們鼓勵對以下概念不熟悉的學(xué)習(xí)提前閱讀下方提供的參考資料清焕。課堂上開始前會簡單回顧下這些內(nèi)容并蝗。
4、用Python玩轉(zhuǎn)深度強(qiáng)化學(xué)習(xí)(Udemy高級教程)
地址:https://www.udemy.com/deep-reinforcement-learning-in-python/
官網(wǎng)介紹:本課程主要介紹有關(guān)深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)在強(qiáng)化學(xué)習(xí)中的應(yīng)用秸妥。本課程需要一定的基礎(chǔ)知識(包括強(qiáng)化學(xué)習(xí)基礎(chǔ)滚停、馬爾可夫決策、動態(tài)編程粥惧、蒙特卡洛搜索和時序差分學(xué)習(xí))键畴,以及深度學(xué)習(xí)基礎(chǔ)編程。
最后突雪,原文地址在此:https://blog.algorithmia.com/introduction-to-reinforcement-learning/
2.實踐挑戰(zhàn)
強(qiáng)化學(xué)習(xí)的應(yīng)用前景十分光明起惕,但是實踐道路會很曲折。
第一是數(shù)據(jù)問題咏删。強(qiáng)化學(xué)習(xí)通常需要大量訓(xùn)練數(shù)據(jù)才能達(dá)到其他算法能高效率達(dá)到的性能水平惹想。DeepMind最近提出一個新算法,叫做RainbowDQN督函,它需要1800萬幀Atari游戲界面嘀粱,或大約83小時游戲視頻來訓(xùn)練模型激挪,而人類學(xué)會游戲的時間遠(yuǎn)遠(yuǎn)少于算法懊直。這個問題也出現(xiàn)在步態(tài)學(xué)習(xí)的任務(wù)中锦爵。
強(qiáng)化學(xué)習(xí)在實踐中的另一個挑戰(zhàn)是領(lǐng)域特殊性(domain-specificity)。強(qiáng)化學(xué)習(xí)是一種通用算法计福,理論上應(yīng)該適用于各種不同類型的問題娃磺。但是薄湿,這其中的大多數(shù)問題都有一個具有領(lǐng)域特殊性的解決方案,往往效果優(yōu)于強(qiáng)化學(xué)習(xí)方法偷卧,如MuJuCo機(jī)器人的在線軌跡優(yōu)化豺瘤。因此,我們要在權(quán)衡范圍和強(qiáng)度之間的關(guān)系涯冠。
最后炉奴,在強(qiáng)化學(xué)習(xí)中逼庞,目前最迫切的問題是設(shè)計獎勵函數(shù)蛇更。在設(shè)計獎勵時,算法設(shè)計者通常會帶有一些主觀理解赛糟。即使不存在這方面問題派任,強(qiáng)化學(xué)習(xí)在訓(xùn)練時也可能陷入局部最優(yōu)值。
上面提到了不少強(qiáng)化學(xué)習(xí)實踐中的挑戰(zhàn)問題璧南,希望后續(xù)研究能不斷解決這些問題掌逛。
3.強(qiáng)化學(xué)習(xí)幾要素
本文用電子游戲來理解強(qiáng)化學(xué)習(xí)(Reinforcement Learning, RL),這是一種最簡單的心智模型司倚。恰好豆混,電子游戲也是強(qiáng)化學(xué)習(xí)算法中應(yīng)用最廣泛的一個領(lǐng)域。在經(jīng)典電子游戲中动知,有以下幾類對象:
代理(agent皿伺,即智能體),可自由移動盒粮,對應(yīng)玩家鸵鸥;
動作,由代理做出丹皱,包括向上移動和出售物品等妒穴;
獎勵,由代理獲得摊崭,包括金幣和殺死其他玩家等讼油;
環(huán)境,指代理所處的地圖或房間等呢簸;
狀態(tài)矮台,指代理的當(dāng)前狀態(tài)淆攻,如位于地圖中某個特定方塊或房間中某個角落;
目標(biāo)嘿架,指代理目標(biāo)為獲得盡可能多的獎勵瓶珊;
上面這些對象是強(qiáng)化學(xué)習(xí)的具體組成部分,當(dāng)然也可仿照得到機(jī)器學(xué)習(xí)的各部分耸彪。在強(qiáng)化學(xué)習(xí)中伞芹,設(shè)置好環(huán)境后,我們能通過逐個狀態(tài)來指導(dǎo)代理蝉娜,當(dāng)代理做出正確動作時會得到獎勵唱较。
4.決策過程
強(qiáng)化學(xué)習(xí)中的決策(Decision Making),即如何讓代理在強(qiáng)化學(xué)習(xí)環(huán)境中做出正確動作召川,這里給了兩個方式南缓。
策略學(xué)習(xí)
策略學(xué)習(xí)(Policy Learning),可理解為一組很詳細(xì)的指示荧呐,它能告訴代理在每一步該做的動作汉形。這個策略可比喻為:當(dāng)你靠近敵人時,若敵人比你強(qiáng)倍阐,就往后退概疆。我們也可以把這個策略看作是函數(shù),它只有一個輸入峰搪,即代理當(dāng)前狀態(tài)岔冀。但是要事先知道你的策略并不是件容易事,我們要深入理解這個把狀態(tài)映射到目標(biāo)的復(fù)雜函數(shù)概耻。
用深度學(xué)習(xí)來探索強(qiáng)化學(xué)習(xí)場景下的策略問題使套,這方面有一些有趣研究。Andrej Karpathy構(gòu)建了一個神經(jīng)網(wǎng)絡(luò)來教代理打乒乓球(http://karpathy.github.io/2016/05/31/rl/)鞠柄。這聽起來并不驚奇侦高,因為神經(jīng)網(wǎng)絡(luò)能很好地逼近任意復(fù)雜的函數(shù)。
???乒乓球??
Q-Learning算法
另一個指導(dǎo)代理的方式是給定框架后讓代理根據(jù)當(dāng)前環(huán)境獨自做出動作春锋,而不是明確地告訴它在每個狀態(tài)下該執(zhí)行的動作矫膨。與策略學(xué)習(xí)不同,Q-Learning算法有兩個輸入期奔,分別是狀態(tài)和動作侧馅,并為每個狀態(tài)動作對返回對應(yīng)值。當(dāng)你面臨選擇時呐萌,這個算法會計算出該代理采取不同動作(上下左右)時對應(yīng)的期望值馁痴。
Q-Learning的創(chuàng)新點在于,它不僅估計了當(dāng)前狀態(tài)下采取行動的短時價值肺孤,還能得到采取指定行動后可能帶來的潛在未來價值罗晕。這與企業(yè)融資中的貼現(xiàn)現(xiàn)金流分析相似济欢,它在確定一個行動的當(dāng)前價值時也會考慮到所有潛在未來價值。由于未來獎勵會少于當(dāng)前獎勵小渊,因此Q-Learning算法還會使用折扣因子來模擬這個過程法褥。
策略學(xué)習(xí)和Q-Learning算法是強(qiáng)化學(xué)習(xí)中指導(dǎo)代理的兩種主要方法,但是有些研究者嘗試使用深度學(xué)習(xí)技術(shù)結(jié)合這兩者酬屉,或提出了其他創(chuàng)新解決方案半等。DeepMind提出了一種神經(jīng)網(wǎng)絡(luò)(https://storage.googleapis.com/deepmind-media/dqn/DQNNaturePaper.pdf),叫做深度Q網(wǎng)絡(luò)(Deep Q Networks, DQN)呐萨,來逼近Q-Learning函數(shù)杀饵,并取得了很不錯的效果。后來谬擦,他們把Q-Learning方法和策略學(xué)習(xí)結(jié)合在一起切距,提出了一種叫A3C的方法(https://arxiv.org/abs/1602.01783)。
把神經(jīng)網(wǎng)絡(luò)和其他方法相結(jié)合惨远,這樣聽起來可能很復(fù)雜谜悟。請記住,這些訓(xùn)練算法都只有一個簡單目標(biāo)锨络,就是在整個環(huán)境中有效指導(dǎo)代理來獲得最大回報赌躺。
5.強(qiáng)化學(xué)習(xí)算法分類
由于強(qiáng)化學(xué)習(xí)是一個更新速度非常快的領(lǐng)域羡儿,所以準(zhǔn)確地全面地分類是相當(dāng)困難的,Spinning up 項目組給出的這個分類雖然并不全面是钥,但是對初學(xué)者來說是非常有用了掠归。
可以看出強(qiáng)化學(xué)習(xí)可以分為Model-Free(無模型的) 和 Model-based(有模型的) 兩大類。Model-Free 又分成基于Policy Optimization(策略優(yōu)化)和Q-learning悄泥。Model-based 又分為模型學(xué)習(xí)(Learn the Model)和給定模型(Given the Model)兩大類虏冻。
部分算法的全名和論文鏈接見文末附錄
2. Model-Free vs Model-Based
在之前的文章也闡述過兩者的區(qū)別,當(dāng)時主要是以引入Model-based的算法的角度簡略地比較了兩者的優(yōu)劣弹囚。Spinning up 項目組也對兩者的區(qū)別和優(yōu)劣做了系統(tǒng)的比較厨相。
兩個算法的區(qū)別主要是Agent是否知道或要計算出環(huán)境的模型。
擁有模型的好處是:Agent可以根據(jù)模型看到會發(fā)生什么鸥鹉,并提前規(guī)劃(Planning)行動路徑蛮穿。
擁有模型的壞處是,真實模型和學(xué)習(xí)到帶模型是有誤差的毁渗,這種誤差會導(dǎo)致Agent雖然在模型中表現(xiàn)很好践磅,但是在真實環(huán)境中可能打不到預(yù)期結(jié)果。
Model-Free的算法往往更易于實現(xiàn)和調(diào)整灸异,截止到目前(2018年9月)府适,Model-Free的算法更受歡迎羔飞。
3. 要學(xué)習(xí)什么(學(xué)習(xí)對象)
RL學(xué)習(xí)的內(nèi)容無非是如下幾個方面
策略,不管是隨機(jī)的還是確定性的
行動價值函數(shù)(Q (s,a))
值函數(shù)(V(s))
環(huán)境模型
3.1. Model-Free 學(xué)習(xí)對象
Spinning Up 項目組就是根據(jù)學(xué)習(xí)的對象分成Policy Optimization(對象是策略)檐春,和Q-Learning(對象是Q(s,a))的逻淌。
(1) Policy Optimization
基于策略的強(qiáng)化學(xué)習(xí)就是參數(shù)化策略本身,獲得策略函數(shù)πθ(a|s), 我們訓(xùn)練策略函數(shù)的目標(biāo)是什么呢疟暖?是獲得最大獎勵恍风。優(yōu)化策略函數(shù)就是優(yōu)化目標(biāo)函數(shù)可以定義為J(πθ).
Policy Optimization 通常是on-policy的,也就是每次更新策略采用最新策略產(chǎn)生的數(shù)據(jù)誓篱。
Policy Optimization的經(jīng)典例子包含A2C / A3C,和PPO朋贬。
(2) Q-Learning
Q-Learning 就是通過學(xué)習(xí)參數(shù)化Q函數(shù)Qθ(s,a)從而得* 到最優(yōu)Q*(s,a)的。
典型地方法是優(yōu)化基于Bellman方程的目標(biāo)函數(shù)窜骄。
Q-Learning 通常是Off-Policy的锦募,這就意味著訓(xùn)練的數(shù)據(jù)可以是訓(xùn)練期間任意時刻的數(shù)據(jù)。
Q-Learning 的經(jīng)典例子包含DQN和C51邻遏。
3.2. Policy Optimization和Q-Learning 的權(quán)衡與融合
Policy Optimization直接了當(dāng)?shù)貎?yōu)化你想要的對象(策略)糠亩,因此Policy Optimization穩(wěn)定性和可信度都較好,而Q-learning是采用訓(xùn)練Qθ的方式間接優(yōu)化策略准验,會遇到不穩(wěn)定的情況赎线。但是Q-learning的優(yōu)點是利用數(shù)據(jù)的效率較高(Off-policy的原因?)
Policy Optimization和Q-Learning并非水火不相容糊饱,有些算法就融合和平衡了兩者的優(yōu)缺點:
DDPG, 同時學(xué)出一個確定性策略和Q函數(shù)垂寥,并用他們互相優(yōu)化。
SAC是一種變體另锋,它使用隨機(jī)策略滞项、熵正則化和一些其它技巧來穩(wěn)定學(xué)習(xí),同時在 benchmarks 上獲得比 DDPG 更高的分?jǐn)?shù)夭坪。
4. Model-Based RL學(xué)習(xí)對象
Model-Based RL不像Model-Free RL那樣容易分類文判,很多方法都有交叉。Spinning up 項目組給出了幾個例子室梅,但他們也聲稱這些例子是無法全部覆蓋Model-Based強(qiáng)化學(xué)習(xí)的戏仓,這些例子中模型要么是已知給定的,要么是通過學(xué)習(xí)得到的亡鼠。
4.1 純動態(tài)規(guī)劃(Pure Planning)
Pure Planning 是一個基礎(chǔ)的算法赏殃,其策略并不顯示的表達(dá)出來,而是使用規(guī)劃技術(shù)來選擇行動拆宛。比如模型預(yù)測控制(model-predictive control, MPC)嗓奢。
在MPC中:
第一步:Agent首先觀察環(huán)境,并通過模型預(yù)測出所有可以行動的路徑(路徑包含多連續(xù)個行動)浑厚。
第二步:Agent執(zhí)行規(guī)劃的第一個行動股耽,然后立即舍去規(guī)劃剩余部分根盒。
第三步:重復(fù)第一、二步物蝙。
例如炎滞,MBMF在一些深度強(qiáng)化學(xué)習(xí)的標(biāo)準(zhǔn)基準(zhǔn)任務(wù)上,基于學(xué)習(xí)到的環(huán)境模型進(jìn)行模型預(yù)測控制
4.2 Expert Iteration(專家迭代)
這個算法是Pure Planing 的升級版诬乞,它將策略顯示地表達(dá)出來册赛,并通過學(xué)習(xí)得到這個最優(yōu)策略π*θ(a|s)
Agent用規(guī)劃算法(類似于MT樹搜索)在模型中通過采樣生成候選行動。通過采樣生成的行動比單純通過策略本身生成的行動要好震嫉,所以它是"專家"森瘪。通過"專家"指導(dǎo),迭代更新并優(yōu)化策略票堵。
ExIt算法用這種算法訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)來玩 Hex
AlphaZero這種方法的另一個例子
4.3 免模型方法的數(shù)據(jù)增強(qiáng)
這個方法是將模型采樣中生成的數(shù)據(jù)用來訓(xùn)練Model-Free的策略或者Q函數(shù)扼睬。訓(xùn)練的數(shù)據(jù)可以單純是模型采樣生成的,也可以是真實經(jīng)歷的數(shù)據(jù)與模型采樣數(shù)據(jù)的結(jié)合悴势。
MBVE用假數(shù)據(jù)增加真實經(jīng)驗
World Models全部用假數(shù)據(jù)來訓(xùn)練智能體窗宇,所以被稱為:“在夢里訓(xùn)練”
4.4 將規(guī)劃嵌入策略
該算法是將規(guī)劃(Planning)嵌入策略中作為策略的一個子程序,這樣在用任意Model-Free訓(xùn)練的過程中特纤,如何和何時規(guī)劃也被學(xué)習(xí)到了军俊。這個算法的優(yōu)點就是當(dāng)模型與現(xiàn)實環(huán)境存在較大的偏差,策略也可以選擇忽略規(guī)劃捧存。
更多例子粪躬,參見I2A
附錄:部分算法全名及論文鏈接
A2C / A3C(Asynchronous Advantage Actor-Critic): Mnih et al, 2016
PPO(Proximal Policy Optimization): Schulman et al, 2017
TRPO(Trust Region Policy Optimization): Schulman et al, 2015
DDPG(Deep Deterministic Policy Gradient): Lillicrap et al, 2015
TD3(Twin Delayed DDPG): Fujimoto et al, 2018
SAC(Soft Actor-Critic): Haarnoja et al, 2018
DQN(Deep Q-Networks): Mnih et al, 2013
C51(Categorical 51-Atom DQN): Bellemare et al, 2017
QR-DQN(Quantile Regression DQN): Dabney et al, 2017
HER(Hindsight Experience Replay): Andrychowicz et al, 2017
World Models: Ha and Schmidhuber, 2018
I2A(Imagination-Augmented Agents): Weber et al, 2017
MBMF(Model-Based RL with Model-Free Fine-Tuning): Nagabandi et al, 2017
MBVE(Model-Based Value Expansion): Feinberg et al, 2018
AlphaZero: Silver et al, 2017