看漫畫學(xué)強化學(xué)習(xí)

作者:? 石塔西

愛好機器學(xué)習(xí)算法,以及軍事和歷史

知乎ID:https://www.zhihu.com/people/si-ta-xi

前言

之前通過線上課程學(xué)習(xí)David Silver的《強化學(xué)習(xí)》岩臣,留下深刻印象的是其中一堆堆的公式蝗罗。公式雖然嚴謹灾票,但是對于我來說,遇到實際問題時崖面,我需要在腦海中浮現(xiàn)出一幅圖或一條曲線术幔,幫我快速定位問題另萤。正所謂“一圖勝千言”嘛。

最近終于找到了這樣一幅圖诅挑。國外有大神用漫畫的形式講解了強化學(xué)習(xí)中經(jīng)典的Advantage-Actor-Critic(A2C)算法四敞。盡管標題中只提及了A2C,實際上是將整個RL的算法思想凝結(jié)在區(qū)區(qū)幾幅漫畫中拔妥。

我很佩服漫畫的作者忿危,能夠從復(fù)雜的公式中提煉出算法的精髓,然后用通俗易懂毒嫡、深入淺出的方式展示出來癌蚁。能夠?qū)⒑駮x薄幻梯,才能顯現(xiàn)出一個人的功力兜畸。

有這樣NB的神作,不敢獨吞碘梢,調(diào)節(jié)一下順序咬摇,補充一些背景知識,加上我自己的批注煞躬,分享出來肛鹏,以饗讀者。 原漫畫的地址見:Intuitive RL: Intro to Advantage-Actor-Critic (A2C)

基本概念

強化學(xué)習(xí)中最基礎(chǔ)的四個概念:Agent, State, Action, Reward

Agent:不用多說恩沛,就是你的程序在扰,在這里就是這只狐貍。

Action: agent需要做的動作雷客。在漫畫中芒珠,就是狐貍在岔路口時,需要決定走其中的哪一條路搅裙。

State: 就是agent在決策時所能夠掌握的所有信息皱卓。對于這只狐貍來說,既包括了決策當時的所見所聞部逮,也包括了它一路走來的記憶娜汁。

Reward:選擇不同的路,可能遇到鳥蛋(正向收益)兄朋,也有可能遇到豺狼(負向收益)掐禁。

為什么Actor? 為什么Critic?

正如我之前所說的添履,Actor-Critic是一個混合算法野芒,結(jié)合了Policy Gradient(Actor)與Value Function Approximation (Critic)兩大類算法的優(yōu)點。原漫畫沒有交待眉睹,一個agent為什么需要actor與critic兩種決策機制享完。所以灼芭,在讓狐貍繼續(xù)探險之前,有必要先簡單介紹一下Policy Gradient (策略梯度般又,簡稱PG)算法彼绷,后面的內(nèi)容才好理解。

Policy Gradient看起來很高大上茴迁,但是如果類比有監(jiān)督學(xué)習(xí)中的多分類算法寄悯,就很好理解了。兩類算法的類比(簡化版本)如下表所示堕义,可見兩者很相似

還是以狐貍在三岔路口的選擇為例

比如考慮每步?jīng)Q策的直接收益的時間衰減猜旬,就是REINFORCE算法。

如果用V(S)倦卖,即“狀態(tài)值”state-value洒擦,來表示PG前的系數(shù),并用一個模型來專門學(xué)習(xí)它怕膛,則這個擬合真實(不是最優(yōu))V(s)的模型就叫做Critic熟嫩,而整個算法就是Actor-Critic算法。

因為篇幅所限褐捻,簡單介紹一下V(s)與Q(s,a)掸茅。它們是Value Function Approximation算法中兩個重要概念,著名的Deep Q-Network中的Q就來源于Q(s,a)柠逞。V(s)表示從狀態(tài)s走下去能夠得到的平均收益昧狮。它類似于咱們常說的“勢”,如果一個人處于“優(yōu)勢”板壮,無論他接下去怎么走(無論接下去執(zhí)行怎樣的action)逗鸣,哪怕走一兩個昏招,也有可能獲勝个束。具體精確的理解慕购,還請感興趣的同學(xué)移步David Silver的課吧。

重新回顧一下算法的脈絡(luò)茬底,所謂Actor-Critic算法

Actor負責學(xué)習(xí)在給定state下給各候選action打分沪悲。在action空間離散的情況下,就類似于多分類學(xué)習(xí)阱表。

因為與多分類監(jiān)督學(xué)習(xí)不同殿如,每步?jīng)Q策時贡珊,不存在唯一正確的action,所以PG前面應(yīng)該乘以一個系數(shù)涉馁,即likelihood ratio门岔。如果用V(S),即state-value烤送,來表示PG前的乘子寒随,并用一個模型來專門學(xué)習(xí)它,則這個擬合V(s)的模型就叫做Critic帮坚,類似一個回歸模型?妻往。

如果用Critic預(yù)測值與真實值之間的誤差,作為likelihood ratio试和,則PG前的乘子就有一個專門的名稱讯泣,Advantage。這時的算法阅悍,就叫做Advantage-Actor-Critic好渠,即A2C。

如果在學(xué)習(xí)過程中节视,引入異步拳锚、分布式學(xué)習(xí),此時的算法叫做Asynchronous-Advantage-Actor-Critic肴茄,即著名的A3C晌畅。

狐貍的探險

上一節(jié)已經(jīng)說明了狐貍(Agent)為什么需要actor-critic兩個決策系統(tǒng)。則狐貍的決策系統(tǒng)可以由下圖表示

state是狐貍做決策時所擁有的一切信息寡痰,包括它的所見所聞,還有它的記憶棋凳。

critic負責學(xué)習(xí)到準確的V(s)拦坠,負責評估當前狀態(tài)的“態(tài)勢”,類似一個回歸任務(wù)剩岳。

actor負責學(xué)習(xí)某狀態(tài)下各候選action的概率贞滨,類似一個多分類任務(wù)。

在第一個路口

狐貍的critic覺得當前態(tài)勢不錯拍棕,預(yù)計從此走下去晓铆,今天能得20分,即V(s)=20

狐貍的actor給三條路A/B/C都打了分

狐貍按照A=0.8, B=C=0.1的概率擲了色子绰播,從而決定走道路A(沒有簡單地選擇概率最大的道路骄噪,是為了有更多機會explore)

沿A路走,采到一枚蘑菇蠢箩,得1分

把自己對state value的估計值链蕊,采取的動作事甜,得到的收益都記錄下來

在接下來的兩個路口,也重復(fù)以上過程:

狐貍的反思:更新Critic

畢竟這只狐貍還太年輕滔韵,critic對當前狀態(tài)的估計可能存在誤差逻谦,actor對岔道的打分也未必準確,因此當有了三次經(jīng)歷后陪蜻,狐貍停下來做一次反思邦马,更新一下自己的critic和actor。狐貍決定先更新自己的critic宴卖。

之前說過了勇婴,critic更像是一個“回歸”任務(wù),目標是使critic預(yù)測出的state value與真實state value越接近越好嘱腥。以上三次經(jīng)歷的state value的預(yù)測值耕渴,狐貍已經(jīng)記在自己的小本上了,那么問題來了齿兔,那三個state的真實state value是多少橱脸?

在如何獲取真實state value的問題上,又分成了兩個流派:Monte Carlo(MC)法與Temporal-Difference(TD)法分苇。

MC法添诉,簡單來說,就是將一次實驗進行到底医寿,實驗結(jié)束時的V(s)自然為0栏赴,然后根據(jù)Bellman方程回推實驗中每個中間步驟的V(s),如下圖所示(圖中簡化了Bellman方程靖秩,忽略了時間衰減)须眷。MC法的缺點,一是更新慢沟突,必須等一次實驗結(jié)束花颗,才能對critic/actor進行更新;二是因為V(s)是狀態(tài)s之后能夠獲得的平均收益惠拭,實驗越長扩劝,在每個步驟之后采取不同action導(dǎo)致的分叉越多,但是MC法僅僅依靠上一次實驗所覆蓋的單一路徑就進行更新职辅,顯然導(dǎo)致high variance棒呛。

need-to-insert-img

另一種方法,TD法域携,就是依靠現(xiàn)有的不準確的critic進行bootstrapping簇秒,逐步迭代,獲得精確的critic

如上圖中狐貍的記事本所示涵亏,對于以上三步宰睡,狐貍既有了自己對當時state value的預(yù)測值蒲凶,也有了那三個state value的“真實值”,上面的紅字就是二者的差拆内,可以用類似“回歸”的方法最小化求解旋圆。

狐貍的反思:更新Actor

以上結(jié)論顯然是不合適的,下次不選橋麸恍,難道要選狼與陷阱灵巧?!哪里出錯了抹沪?

換個思路刻肄,

當初在岔路口時,狐貍對當時state value的預(yù)測是-100融欧,

選擇了破橋之后敏弃,根據(jù)critic bootstrapping推導(dǎo)回去,發(fā)現(xiàn)之前在岔路口時的狀態(tài)還不至于那么差噪馏,“真實state value”=-20麦到。

回頭來看,選擇“破橋”還改善了當時的處境欠肾,有80分的提升瓶颠。

因此,之后在相同狀態(tài)下(看見前路有狼刺桃、陷阱和破橋)選擇“破橋”的概率粹淋,不僅不應(yīng)該降低,反而還要提高瑟慈,以鼓勵這種明智的選擇桃移,顯然更合情合理。

這里封豪,某個狀態(tài)s下的state value的“真實值”與預(yù)測值之間的差異谴轮,就叫做Advantage,拿advantage作為Policy Gradient之前的乘子吹埠,整個算法就叫做Advantage-Actor-Critic (A2C)。

Advantage

注意state value的“真實值”與預(yù)測值之間的差異在Actor與Critic上發(fā)揮的不同作用

在Actor中疮装,這個差值就叫做Advantage缘琅,用來指導(dǎo)Actor應(yīng)該鼓勵還是抑制已經(jīng)采取的動作。動作帶來的Advantage越大廓推,驚喜越大刷袍,下次在相同狀態(tài)下選擇這個動作的概率就應(yīng)該越大,即得到鼓勵樊展。反之亦然呻纹。

在Critic中堆生,這個差值就叫做Error,是要優(yōu)化降低的目標雷酪,以使Agent對狀態(tài)值的估計越來越準確淑仆。間接使Actor選擇動作時也越來越準確。

其他

A2C的主要思路就這樣介紹完畢了哥力。在原漫畫中蔗怠,還簡單介紹了A3C、Entropy Loss的思想吩跋,就屬于旁枝末節(jié)寞射,請各位看官們移步原漫畫。其實A3C的思路也很簡單(實現(xiàn)就是另一回事了)锌钮,無非是讓好幾只狐貍并發(fā)地做實驗桥温,期間它們共享經(jīng)驗教訓(xùn),以加速學(xué)習(xí)梁丘。

小結(jié)

本篇算是一個半原創(chuàng)吧侵浸,在翻譯的同時,也增加了我對Actor-Critic的理解兰吟。

對于初學(xué)RL的同學(xué)通惫,希望本文能夠幫你們破除RL的神秘感,理清各算法發(fā)展的脈絡(luò)混蔼,以后在David Silver課上看到那些公式時履腋,能夠有“似曾相識”的感覺。

對于掌握了RL基本算法的同學(xué)惭嚣,也希望你們能夠像我一樣遵湖,當遇到實際問題時,先想到漫畫中的小狐貍晚吞,定位問題延旧,再去有的放矢地去翻書找公式。

很佩服原漫畫的作者槽地,能將復(fù)雜的公式迁沫、原理用如此通俗易懂、深入淺出的方式講明白捌蚊。再次向原作者致敬集畅,Excellent Job !!!

作者其它好文推薦:

用NumPy手工打造Wide&Deep

作者:天善智能

鏈接:http://www.reibang.com/p/ec7994cf3d29

來源:簡書

簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處缅糟。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挺智,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子窗宦,更是在濱河造成了極大的恐慌赦颇,老刑警劉巖二鳄,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異媒怯,居然都是意外死亡订讼,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門沪摄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來躯嫉,“玉大人,你說我怎么就攤上這事杨拐∑聿停” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵哄陶,是天一觀的道長帆阳。 經(jīng)常有香客問我,道長屋吨,這世上最難降的妖魔是什么蜒谤? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮至扰,結(jié)果婚禮上鳍徽,老公的妹妹穿的比我還像新娘。我一直安慰自己敢课,他們只是感情好阶祭,可當我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著直秆,像睡著了一般濒募。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上圾结,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天瑰剃,我揣著相機與錄音,去河邊找鬼筝野。 笑死晌姚,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的歇竟。 我是一名探鬼主播舀凛,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼途蒋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起馋记,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤号坡,失蹤者是張志新(化名)和其女友劉穎懊烤,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宽堆,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡腌紧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了畜隶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片壁肋。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖籽慢,靈堂內(nèi)的尸體忽然破棺而出浸遗,到底是詐尸還是另有隱情,我是刑警寧澤箱亿,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布跛锌,位于F島的核電站,受9級特大地震影響届惋,放射性物質(zhì)發(fā)生泄漏髓帽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一脑豹、第九天 我趴在偏房一處隱蔽的房頂上張望郑藏。 院中可真熱鬧,春花似錦瘩欺、人聲如沸必盖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筑悴。三九已至,卻和暖如春稍途,著一層夾襖步出監(jiān)牢的瞬間阁吝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工械拍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留突勇,地道東北人。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓坷虑,卻偏偏與公主長得像甲馋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子迄损,可洞房花燭夜當晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容