學(xué)號:16040520018
姓名:米芃
[嵌牛導(dǎo)讀]本文是強化學(xué)習(xí)名作——“Reinforcement Learning: an Introduction”一書中最為重要的內(nèi)容模暗,旨在介紹學(xué)習(xí)強化學(xué)習(xí)最基礎(chǔ)的概念及其原理利职,讓讀者能夠盡快的實現(xiàn)最新模型。畢竟淫痰,對任何機器學(xué)習(xí)實踐者來說,RL(強化學(xué)習(xí),即Reinforcement Learning)都是一種十分有用的工具鞋邑,特別是在AlphaGo的盛名之下氓辣。
[嵌牛鼻子]強化學(xué)習(xí) 馬爾科夫決策
[嵌牛提問]AlphaGo強大的背后有什么支持
[嵌牛正文]
監(jiān)督學(xué)習(xí) vs. 評估學(xué)習(xí)
對于很多感興趣的問題秒裕,監(jiān)督學(xué)習(xí)的范例沒有辦法給我們提供所需要的靈活性。監(jiān)督學(xué)習(xí)和強化學(xué)習(xí)這兩者之間最主要的區(qū)別在于收到的反饋是評估性的還是指導(dǎo)性的钞啸。指導(dǎo)性的反饋告訴你如何達(dá)到目標(biāo)簇爆,而評估性的反饋則告訴你將會把目標(biāo)完成到什么程度。監(jiān)督學(xué)習(xí)以指導(dǎo)性的反饋為基礎(chǔ)來解決問題爽撒,而強化學(xué)習(xí)則是基于評估性反饋來解決問題的入蛆。圖像分類就是用帶有指導(dǎo)性反饋的監(jiān)督學(xué)習(xí)解決問題的一個實際例子;當(dāng)算法嘗試分類一些特定的數(shù)據(jù)時硕勿,它將從指導(dǎo)性的反饋中了解到哪個才是真正的類別哨毁。而另一方面,評估性的反饋僅僅告訴你完成目標(biāo)的程度源武。如果你用評估性反饋來訓(xùn)練一個分類器扼褪,你的分類器可能會說“我認(rèn)為這是一個倉鼠”想幻,然后它會得到50分。但是话浇,由于沒有任何語境信息脏毯,我們不知道這 50 分是什么。我們需要進(jìn)行其他的分類幔崖,探索50分意味著我們是準(zhǔn)確或是不準(zhǔn)確食店。或許10000分是一個更好的分值赏寇,因此我們還是不知道它是什么吉嫩,除非我們嘗試去對其他數(shù)據(jù)再進(jìn)行分類。
猜到是倉鼠就可以得到兩個金色星星和一個笑臉嗅定,而猜沙鼠能得到一個銀色星星和一個大拇指
在我們感興趣的很多問題中自娩,評估性反饋的想法是更直觀的,更易實現(xiàn)的渠退。例如忙迁,想象一個控制著數(shù)據(jù)中心溫度的系統(tǒng)。指導(dǎo)性反饋在這里似乎沒有任何用處碎乃,你怎樣告訴你的算法在任意給定的時間步中每個零件正確的設(shè)置是什么姊扔?評估性反饋在這里就將發(fā)揮它的用處了。你能很容易的知道在一個特定的時間段用了多少電荠锭,或者平均溫度是多少旱眯,甚至有多少機器溫度過高了等數(shù)據(jù)。這實際上就是谷歌使用強化學(xué)習(xí)解決這些問題的方式证九。讓我們直接來學(xué)習(xí)吧删豺。
馬爾科夫決策過程
假定我們知道狀態(tài) s,如果未來的狀態(tài)條件獨立于過去的狀態(tài)愧怜,那么狀態(tài) s 就具有馬爾科夫性質(zhì)呀页。這意味著s描述了所有過去的狀態(tài)直到現(xiàn)在的狀態(tài)。如果這很難理解拥坛,那我們就用一個例子來解釋蓬蝶,讓這個問題顯得更簡單一點。假設(shè)一個球飛過空中猜惋,如果它的狀態(tài)是由它的位置和速度決定丸氛,并足以描述它當(dāng)前的位置和接下來的位置(不考慮物理模型和外界影響)。因此著摔,這一狀態(tài)就具備馬爾科夫性質(zhì)缓窜。但是,如果我們只知道這個球的位置不知道它的速度,它的狀態(tài)就不再是馬爾科夫禾锤。因為現(xiàn)在的狀態(tài)并不是所有以前狀態(tài)的歸納私股,我們需要以前的時間點所得到的信息去構(gòu)建合適的球的模型。
強化學(xué)習(xí)通扯髦溃可以建模為一個馬爾科夫決策過程倡鲸,即MDP(Markov Decision Process)。MDP是一個有向圖黄娘,它有節(jié)點和邊的狀態(tài)峭状,可以描述馬爾科夫狀態(tài)之間的轉(zhuǎn)變,下面是一個簡單的例子:
一個簡單的馬爾科夫決策過程
這個MDP展示了學(xué)習(xí)馬爾科夫決策的過程寸宏。在最開始你在一個“不理解”的狀態(tài)中宁炫,接下來偿曙,你有兩個可能的動作氮凝,學(xué)習(xí)或者不學(xué)習(xí)。如果你選擇不學(xué)習(xí)望忆,則有100%的可能性返回到不理解的狀態(tài)里罩阵。但是,如果你選擇學(xué)習(xí)启摄,只有20%的可能性讓你回到最開始的地方稿壁,即80%的可能性變成理解的狀態(tài)。
實際上歉备,我確定轉(zhuǎn)換到理解狀態(tài)的可能性超過80%傅是,MDP的核心其實很簡單,在一個狀態(tài)你可以采取一系列的動作蕾羊,在你采取行動之后喧笔,這里有一些你能轉(zhuǎn)化去什么狀態(tài)的分布。在采取不學(xué)習(xí)動作的例子中龟再,這個轉(zhuǎn)化也能被很好的確定书闸。
強化學(xué)習(xí)的目標(biāo)是去學(xué)習(xí)怎么花更多的時間在更有價值的狀態(tài)上,為了有一個更有價值的狀態(tài)利凑,我們需要MDP提供更多的信息浆劲。
你不需要一個MDP來告訴自己餓了要吃飯,但是強化學(xué)習(xí)的機制是需要它的
這個MDP增加了獎勵機制哀澈,你每轉(zhuǎn)化到一個狀態(tài)牌借,就會獲得一次獎勵。在這個例子中割按,由于接下來狀態(tài)是饑餓膨报,你會得到一個負(fù)面的獎勵,如果接下來狀態(tài)是餓死,那會得到一個更負(fù)面的獎勵丙躏。如果你吃飽了择示,就會獲得一個正面的獎勵。現(xiàn)在我們的MDP已經(jīng)完全成型晒旅,我們可以開始思考如何采取行動去獲取能獲得的最高獎勵栅盲。
由于這個MDP是十分簡單的,我們很容易發(fā)現(xiàn)待在一個更高獎勵的區(qū)域的方式废恋,即當(dāng)我們饑餓的時候就吃谈秫。在這個模型中,當(dāng)我們處于吃飽狀態(tài)的時候沒有太多其它的選擇鱼鼓,但是我們將會不可避免的再次饑餓拟烫,然后立馬選擇進(jìn)食。強化學(xué)習(xí)感興趣的問題其實具有更大更復(fù)雜的馬爾科夫決策過程迄本,并且在我們開始實際探索前硕淑,我們通常不知道這些策略。
形式化強化學(xué)習(xí)問題
現(xiàn)在我們有了很多我們需要的基礎(chǔ)材料嘉赎,接下來我們需要將目光轉(zhuǎn)向強化學(xué)習(xí)的術(shù)語置媳。最重要的組成是智能體(agent)和環(huán)境(environment)。智能體是被間接控制的公条,且存在于環(huán)境中拇囊。回顧我們的馬爾科夫決策模型靶橱,智能體可以在給定的狀態(tài)下選擇一個對它有顯著影響的動作寥袭。然而,智能體并不能完全的控制環(huán)境的動態(tài)关霸,環(huán)境會接收這些動作传黄,然后返回新的狀態(tài)和獎勵
來自Sutton和Barto的書“Reinforcement Learning: an Introduction”(這是強烈推薦的)的這張圖,很好的解釋了智能體和環(huán)境之間的相互作用谒拴。在某個時間步t尝江,智能體處于狀態(tài)s_t,采取動作a_t英上。然后環(huán)境會返回一個新的狀態(tài)s_t+1和一個獎勵r_t+1炭序。獎勵處于t+1時間步是因為它是由環(huán)境在t+1的狀態(tài)s_t+1返回的,因此讓它們兩個保持一致更加合理(如上圖所示)苍日。
我們現(xiàn)在已經(jīng)有一個強化學(xué)習(xí)問題的框架惭聂,接下來準(zhǔn)備學(xué)習(xí)如何最大化獎勵函數(shù)。在下一部分中相恃,我們將進(jìn)一步學(xué)習(xí)狀態(tài)價值(state value)函數(shù)和動作價值(action value)函數(shù)辜纲,以及奠定了強化學(xué)習(xí)算法基礎(chǔ)的貝爾曼(Bellman)方程,并進(jìn)一步探索一些簡單而有效的動態(tài)規(guī)劃解決方案。
獎勵與回報
正如前面所說的耕腾,強化學(xué)習(xí)中的智能體學(xué)習(xí)如何最大化未來的累積獎勵见剩。這個用來描述未來的累積獎勵的詞稱為回報,通常用R表示扫俺。我們還使用下標(biāo)t來表示在某個時間步驟下的返回值苍苞。數(shù)學(xué)公式的表示如下:
如果我們讓這個級數(shù)無限延伸,那么我們可能會得到無窮的回報狼纬,但這樣的話使得這個問題的定義失去意義羹呵。因此,只有當(dāng)我們期望得到的獎勵是有限級的疗琉,這個等式才有意義冈欢。有終止程序的任務(wù)稱為情景任務(wù)。紙牌游戲是情景性問題的好例子盈简。情景的開始是向每個人發(fā)牌凑耻,并且不可避免地根據(jù)特定的游戲規(guī)則而結(jié)束。然后送火,下一輪另一個情景又開始拳话,再次處理這些紙牌先匪。
比起使用未來的累積獎勵种吸,更為常用地是使用未來累積折扣獎勵:
在這里0<γ<1。以這種方式來定義回報值有兩個好處:不僅能夠以無限級數(shù)來定義回報值呀非,而且還能為隨后的回報賦予更好的權(quán)重坚俗,這意味著我們更關(guān)心即將到來的回報,而不是我們將來會得到的回報岸裙。γ的值越小猖败,就越正確。在特殊情況下降允,我們令γ等于0或者1恩闻。當(dāng)γ等于1時,我們就回到了第一個等式剧董,我們關(guān)心的是所有的回報幢尚,而不是考慮到未來有多遠(yuǎn)。另一方面翅楼,當(dāng)γ等于0時尉剩,我們關(guān)心的是當(dāng)前的回報,而不考慮之后的任何回報毅臊。這將導(dǎo)致我們的算法缺乏長遠(yuǎn)性理茎。它將學(xué)會采取最適合當(dāng)前情況的行動,但不會考慮此行動對未來的影響。
策略
策略皂林,被記為Π(s,a)朗鸠,描述了行動的一個方式。它是一個這樣的函數(shù):接受一個狀態(tài)和一個動作础倍,并返回在該狀態(tài)下采取這個動作的概率童社。因此,對于一個給定的狀態(tài)著隆,它必須滿足 扰楼。在下面的例子中,當(dāng)我們餓時美浦,我們可以在吃和不吃兩個動作之間做出選擇弦赖。
我們的策略應(yīng)該描述如何在每個狀態(tài)下采取行動。因此浦辨,一個等概率的隨機策略就該像這樣子: 其中E代表吃的行動蹬竖, 代表不吃的行動。這意味著流酬,如果你處于饑餓狀態(tài)币厕,你在選擇吃或者不吃的概率是相同的。
我們使用強化學(xué)習(xí)的目標(biāo)是為了去學(xué)習(xí)一個最優(yōu)的策略Π*芽腾,它告訴我們?nèi)绾涡袆右缘玫阶畲蠡幕貓蟮┳啊_@只是一個簡單的例子,容易知道例子中的最優(yōu)決策是餓了就吃 摊滔。在這個實例中阴绢,正如許多MDPs (馬爾可夫決策過程)一樣,最優(yōu)的決策是確定性的艰躺。每一個最佳狀態(tài)都有一個最佳行動呻袭。有時這被寫成
Π*(s)=a,這是一個從狀態(tài)到這些狀態(tài)下最優(yōu)決策行動的一個映射腺兴。
價值函數(shù)
我們利用價值函數(shù)來得到學(xué)習(xí)的最優(yōu)策略左电。強化學(xué)習(xí)中有兩種類型的價值函數(shù):狀態(tài)價值函數(shù),表示為V(s)页响;和行為價值函數(shù)篓足,表示為Q(s,a)。
狀態(tài)價值函數(shù)描述了在執(zhí)行一個策略時的狀態(tài)值拘泞。這是一個從狀態(tài)s開始執(zhí)行我們的策略Π所得到的預(yù)期回報:
值得注意的是纷纫,即使在相同的環(huán)境下,價值函數(shù)也會根據(jù)策略而改變陪腌。這是因為狀態(tài)的價值函數(shù)取決于你的行為方式辱魁,因為你在某一個特定的狀態(tài)下的行為會影響你預(yù)期的回報烟瞧。同樣要注意的是期望的重要性。(期望就像一個平均值染簇,就是你期望看到的回報)参滴。我們使用期望的原因在于:當(dāng)你到達(dá)一個狀態(tài)時,會發(fā)生一些隨機狀況锻弓。你可能有一個隨機策略砾赔,這意味著我們需要將我們所采取的所有不同行動的結(jié)果結(jié)合起來。同樣地青灼,過渡函數(shù)可以是隨機的暴心,也就是說,我們不能以100%的概率結(jié)束任何狀態(tài)杂拨。記住上面的這個例子:當(dāng)你選擇一個行動時专普,環(huán)境將返回下一個狀態(tài)〉粒可能有多個狀態(tài)可以返回檀夹,甚至是一個動作。更多的信息我們將會在Bellman方程(貝爾曼方程)中得到策橘。期望將所有的隨機性都考慮在內(nèi)炸渡。
我們將使用另一個價值函數(shù)是動作價值函數(shù)。動作價值函數(shù)是指我們采取某一特定策略時丽已,在某個狀態(tài)下采取一個動作所產(chǎn)生的價值蚌堵。這是在策略Π下,對給定狀態(tài)和行動時所返回的預(yù)期回報:
對狀態(tài)價值函數(shù)的注釋同樣適用于動作價值函數(shù)促脉。它將考慮到未來行動的隨機性辰斋,以及從環(huán)境中返回狀態(tài)的隨機性。
貝爾曼方程
Richard Bellman是一位美國應(yīng)用數(shù)學(xué)家瘸味,他推導(dǎo)了以下方程,讓我們能夠開始求解這些MDPs (馬爾可夫決策過程)够挂。在強化學(xué)習(xí)中旁仿,貝爾曼方程無處不在,必須了解強化學(xué)習(xí)算法是如何工作的孽糖。但是在我們了解貝爾曼方程之前枯冈,我們需要了解一些更有用的符號。我們P和R定義為如下:
P是過渡概率办悟。如果我們在狀態(tài)s處開始尘奏,采取行動a,那么我們在狀態(tài)s’的概率為
是另一種表達(dá)我們從狀態(tài)s開始病蛉,采取行動a炫加,到狀態(tài)s’的期望 (或平均) 獎勵的表達(dá)方式瑰煎。
最后,有了這些知識俗孝,我們準(zhǔn)備推導(dǎo)Bellman方程 (貝爾曼方程)酒甸。我們將把狀態(tài)價值函數(shù)考慮到Bellman方程(貝爾曼方程)之內(nèi)。根據(jù)回報的定義赋铝,我們可以修改公式(1)為如下所示:
如果我們想從總和回報中提出第一個獎勵插勤,公式可以被改寫為這樣:
在這里期望可以被描述如果我們采取策略Π時,繼續(xù)從狀態(tài)s出發(fā)的期望回報革骨∨┘猓可以通過對所有可能的動作和所有可能的返回狀態(tài)的求和來描述期望。接下來的兩個方程可以幫助我們邁出下一步良哲。
通過對這兩個部分分配期望值卤橄,我們就可以將我們的方程轉(zhuǎn)化為如下形式:
值得注意得是,方程(1)和這個方程的結(jié)束部分是一樣的臂外。因此窟扑,我們可以將其替換,得到如下:
Bellman方程(貝爾曼方程)的動作價值函數(shù)可以以類似的方式推導(dǎo)出來漏健。感興趣的人可以在文章的最后看到具體的步驟嚎货。其最終結(jié)果如下:
Bellman方程的重要性在于,它能讓我們將一個狀態(tài)的值表達(dá)成其他狀態(tài)的值蔫浆。這意味著當(dāng)我們知道狀態(tài)st+1的值時殖属,我們可以輕松地計算出狀態(tài)st的值。這為我們解決每個狀態(tài)值的迭代計算問題打開了大門瓦盛,因為如果我們知道下一個狀態(tài)的值洗显,我們就能知道當(dāng)前狀態(tài)的值。在這里原环,最重要的是要記住方程式的編號挠唆。最后,隨著Bellman方程(貝爾曼方程)的出現(xiàn)嘱吗,我們可以開始研究如何計算最優(yōu)策略玄组,并編寫我們的第一個強化學(xué)習(xí)智能體程序。
下一步:動態(tài)規(guī)劃
在下一篇文章中谒麦,我們將研究使用動態(tài)規(guī)劃來計算最優(yōu)策略俄讹,這將為更高級的算法奠定基礎(chǔ)。然而绕德,這將是第一個實際編寫強化學(xué)習(xí)算法的機會患膛。我們將研究策略迭代和值迭代以及他們的優(yōu)缺點。在此之前耻蛇,感謝您的閱讀踪蹬。
正如所承諾的:推導(dǎo)Bellman方程的動作價值函數(shù)(貝爾曼方程)
摘自微信公眾號:人工智能頭條
文中部分圖片無法下載粘貼胞此,附原文鏈接:http://mp.weixin.qq.com/s/LgSY1vdJFoTwSggq6wCbHQ