本文是強(qiáng)化學(xué)習(xí)名作——“Reinforcement Learning: an Introduction”一書中最為重要的內(nèi)容,,旨在介紹學(xué)習(xí)強(qiáng)化學(xué)習(xí)最基礎(chǔ)的概念及其原理,讓讀者能夠盡快的實(shí)現(xiàn)最新模型,。畢竟,,對(duì)任何機(jī)器學(xué)習(xí)實(shí)踐者來(lái)說(shuō),RL(強(qiáng)化學(xué)習(xí),,即Reinforcement Learning)都是一種十分有用的工具,,特別是在AlphaGo的盛名之下。 第一部分,,我們將具體了解了MDPs (馬爾可夫決策過(guò)程)以及強(qiáng)化學(xué)習(xí)框架的主要組成部分,;第二部分,我們將構(gòu)建并學(xué)習(xí)有關(guān)價(jià)值函數(shù)和Bellman (貝爾曼方程)的理論知識(shí),,它是強(qiáng)化學(xué)習(xí)中最重要公式,,我們將一步一步地推導(dǎo)、解釋,,以揭開(kāi)強(qiáng)化學(xué)習(xí)的神秘面紗,。 當(dāng)然,本文只是盡力用最快,、最直觀的方式帶你來(lái)理解強(qiáng)化學(xué)習(xí)背后的理論,,而要加深自己在該話題上的理解,Sutton和Barto所寫的“Reinforcement Learning:An Introduction”肯定值得你用心讀一讀,。此外,,AlphaGo身后的大神David Silver在YouTube上所講強(qiáng)化學(xué)習(xí)十課也值得你認(rèn)真學(xué)一學(xué)。 監(jiān)督學(xué)習(xí) vs. 評(píng)估學(xué)習(xí) 對(duì)于很多感興趣的問(wèn)題,監(jiān)督學(xué)習(xí)的范例沒(méi)有辦法給我們提供所需要的靈活性,。監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)這兩者之間最主要的區(qū)別在于收到的反饋是評(píng)估性的還是指導(dǎo)性的,。指導(dǎo)性的反饋告訴你如何達(dá)到目標(biāo),而評(píng)估性的反饋則告訴你將會(huì)把目標(biāo)完成到什么程度,。監(jiān)督學(xué)習(xí)以指導(dǎo)性的反饋為基礎(chǔ)來(lái)解決問(wèn)題,,而強(qiáng)化學(xué)習(xí)則是基于評(píng)估性反饋來(lái)解決問(wèn)題的。圖像分類就是用帶有指導(dǎo)性反饋的監(jiān)督學(xué)習(xí)解決問(wèn)題的一個(gè)實(shí)際例子,;當(dāng)算法嘗試分類一些特定的數(shù)據(jù)時(shí),,它將從指導(dǎo)性的反饋中了解到哪個(gè)才是真正的類別。而另一方面,,評(píng)估性的反饋僅僅告訴你完成目標(biāo)的程度,。如果你用評(píng)估性反饋來(lái)訓(xùn)練一個(gè)分類器,你的分類器可能會(huì)說(shuō)“我認(rèn)為這是一個(gè)倉(cāng)鼠”,,然后它會(huì)得到50分,。但是,由于沒(méi)有任何語(yǔ)境信息,,我們不知道這 50 分是什么,。我們需要進(jìn)行其他的分類,探索50分意味著我們是準(zhǔn)確或是不準(zhǔn)確,?;蛟S10000分是一個(gè)更好的分值,因此我們還是不知道它是什么,,除非我們嘗試去對(duì)其他數(shù)據(jù)再進(jìn)行分類,。 猜到是倉(cāng)鼠就可以得到兩個(gè)金色星星和一個(gè)笑臉,而猜沙鼠能得到一個(gè)銀色星星和一個(gè)大拇指 在我們感興趣的很多問(wèn)題中,,評(píng)估性反饋的想法是更直觀的,,更易實(shí)現(xiàn)的。例如,,想象一個(gè)控制著數(shù)據(jù)中心溫度的系統(tǒng),。指導(dǎo)性反饋在這里似乎沒(méi)有任何用處,你怎樣告訴你的算法在任意給定的時(shí)間步中每個(gè)零件正確的設(shè)置是什么,?評(píng)估性反饋在這里就將發(fā)揮它的用處了,。你能很容易的知道在一個(gè)特定的時(shí)間段用了多少電,或者平均溫度是多少,,甚至有多少機(jī)器溫度過(guò)高了等數(shù)據(jù),。這實(shí)際上就是谷歌使用強(qiáng)化學(xué)習(xí)解決這些問(wèn)題的方式。讓我們直接來(lái)學(xué)習(xí)吧,。 馬爾科夫決策過(guò)程 假定我們知道狀態(tài) s,,如果未來(lái)的狀態(tài)條件獨(dú)立于過(guò)去的狀態(tài),,那么狀態(tài) s 就具有馬爾科夫性質(zhì)。這意味著s描述了所有過(guò)去的狀態(tài)直到現(xiàn)在的狀態(tài),。如果這很難理解,,那我們就用一個(gè)例子來(lái)解釋,讓這個(gè)問(wèn)題顯得更簡(jiǎn)單一點(diǎn),。假設(shè)一個(gè)球飛過(guò)空中,,如果它的狀態(tài)是由它的位置和速度決定,并足以描述它當(dāng)前的位置和接下來(lái)的位置(不考慮物理模型和外界影響),。因此,,這一狀態(tài)就具備馬爾科夫性質(zhì)。但是,,如果我們只知道這個(gè)球的位置不知道它的速度,,它的狀態(tài)就不再是馬爾科夫。因?yàn)楝F(xiàn)在的狀態(tài)并不是所有以前狀態(tài)的歸納,,我們需要以前的時(shí)間點(diǎn)所得到的信息去構(gòu)建合適的球的模型,。 強(qiáng)化學(xué)習(xí)通常可以建模為一個(gè)馬爾科夫決策過(guò)程,,即MDP(Markov Decision Process)。MDP是一個(gè)有向圖,,它有節(jié)點(diǎn)和邊的狀態(tài),,可以描述馬爾科夫狀態(tài)之間的轉(zhuǎn)變,下面是一個(gè)簡(jiǎn)單的例子: 一個(gè)簡(jiǎn)單的馬爾科夫決策過(guò)程 這個(gè)MDP展示了學(xué)習(xí)馬爾科夫決策的過(guò)程,。在最開(kāi)始你在一個(gè)“不理解”的狀態(tài)中,,接下來(lái),你有兩個(gè)可能的動(dòng)作,,學(xué)習(xí)或者不學(xué)習(xí),。如果你選擇不學(xué)習(xí),則有100%的可能性返回到不理解的狀態(tài)里,。但是,,如果你選擇學(xué)習(xí),只有20%的可能性讓你回到最開(kāi)始的地方,,即80%的可能性變成理解的狀態(tài),。 實(shí)際上,我確定轉(zhuǎn)換到理解狀態(tài)的可能性超過(guò)80%,,MDP的核心其實(shí)很簡(jiǎn)單,,在一個(gè)狀態(tài)你可以采取一系列的動(dòng)作,在你采取行動(dòng)之后,,這里有一些你能轉(zhuǎn)化去什么狀態(tài)的分布,。在采取不學(xué)習(xí)動(dòng)作的例子中,,這個(gè)轉(zhuǎn)化也能被很好的確定。 強(qiáng)化學(xué)習(xí)的目標(biāo)是去學(xué)習(xí)怎么花更多的時(shí)間在更有價(jià)值的狀態(tài)上,,為了有一個(gè)更有價(jià)值的狀態(tài),,我們需要MDP提供更多的信息。 你不需要一個(gè)MDP來(lái)告訴自己餓了要吃飯,,但是強(qiáng)化學(xué)習(xí)的機(jī)制是需要它的 這個(gè)MDP增加了獎(jiǎng)勵(lì)機(jī)制,,你每轉(zhuǎn)化到一個(gè)狀態(tài),就會(huì)獲得一次獎(jiǎng)勵(lì),。在這個(gè)例子中,,由于接下來(lái)狀態(tài)是饑餓,你會(huì)得到一個(gè)負(fù)面的獎(jiǎng)勵(lì),,如果接下來(lái)狀態(tài)是餓死,,那會(huì)得到一個(gè)更負(fù)面的獎(jiǎng)勵(lì)。如果你吃飽了,,就會(huì)獲得一個(gè)正面的獎(jiǎng)勵(lì)?,F(xiàn)在我們的MDP已經(jīng)完全成型,我們可以開(kāi)始思考如何采取行動(dòng)去獲取能獲得的最高獎(jiǎng)勵(lì),。 由于這個(gè)MDP是十分簡(jiǎn)單的,,我們很容易發(fā)現(xiàn)待在一個(gè)更高獎(jiǎng)勵(lì)的區(qū)域的方式,即當(dāng)我們饑餓的時(shí)候就吃,。在這個(gè)模型中,,當(dāng)我們處于吃飽狀態(tài)的時(shí)候沒(méi)有太多其它的選擇,但是我們將會(huì)不可避免的再次饑餓,,然后立馬選擇進(jìn)食,。強(qiáng)化學(xué)習(xí)感興趣的問(wèn)題其實(shí)具有更大更復(fù)雜的馬爾科夫決策過(guò)程,并且在我們開(kāi)始實(shí)際探索前,,我們通常不知道這些策略,。 形式化強(qiáng)化學(xué)習(xí)問(wèn)題 現(xiàn)在我們有了很多我們需要的基礎(chǔ)材料,接下來(lái)我們需要將目光轉(zhuǎn)向強(qiáng)化學(xué)習(xí)的術(shù)語(yǔ),。最重要的組成是智能體(agent)和環(huán)境(environment),。智能體是被間接控制的,且存在于環(huán)境中,?;仡櫸覀兊鸟R爾科夫決策模型,智能體可以在給定的狀態(tài)下選擇一個(gè)對(duì)它有顯著影響的動(dòng)作,。然而,,智能體并不能完全的控制環(huán)境的動(dòng)態(tài),環(huán)境會(huì)接收這些動(dòng)作,,然后返回新的狀態(tài)和獎(jiǎng)勵(lì) 來(lái)自Sutton和Barto的書“Reinforcement Learning: an Introduction”(這是強(qiáng)烈推薦的)的這張圖,,很好的解釋了智能體和環(huán)境之間的相互作用,。在某個(gè)時(shí)間步t,智能體處于狀態(tài)s_t,,采取動(dòng)作a_t,。然后環(huán)境會(huì)返回一個(gè)新的狀態(tài)s_t+1和一個(gè)獎(jiǎng)勵(lì)r_t+1。獎(jiǎng)勵(lì)處于t+1時(shí)間步是因?yàn)樗怯森h(huán)境在t+1的狀態(tài)s_t+1返回的,,因此讓它們兩個(gè)保持一致更加合理(如上圖所示),。 我們現(xiàn)在已經(jīng)有一個(gè)強(qiáng)化學(xué)習(xí)問(wèn)題的框架,接下來(lái)準(zhǔn)備學(xué)習(xí)如何最大化獎(jiǎng)勵(lì)函數(shù),。在下一部分中,,我們將進(jìn)一步學(xué)習(xí)狀態(tài)價(jià)值(state value)函數(shù)和動(dòng)作價(jià)值(action value)函數(shù),以及奠定了強(qiáng)化學(xué)習(xí)算法基礎(chǔ)的貝爾曼(Bellman)方程,,并進(jìn)一步探索一些簡(jiǎn)單而有效的動(dòng)態(tài)規(guī)劃解決方案,。 獎(jiǎng)勵(lì)與回報(bào) 正如前面所說(shuō)的,強(qiáng)化學(xué)習(xí)中的智能體學(xué)習(xí)如何最大化未來(lái)的累積獎(jiǎng)勵(lì),。這個(gè)用來(lái)描述未來(lái)的累積獎(jiǎng)勵(lì)的詞稱為回報(bào),,通常用R表示。我們還使用下標(biāo)t來(lái)表示在某個(gè)時(shí)間步驟下的返回值。數(shù)學(xué)公式的表示如下: 如果我們讓這個(gè)級(jí)數(shù)無(wú)限延伸,那么我們可能會(huì)得到無(wú)窮的回報(bào),,但這樣的話使得這個(gè)問(wèn)題的定義失去意義。因此,,只有當(dāng)我們期望得到的獎(jiǎng)勵(lì)是有限級(jí)的,這個(gè)等式才有意義,。有終止程序的任務(wù)稱為情景任務(wù)。紙牌游戲是情景性問(wèn)題的好例子,。情景的開(kāi)始是向每個(gè)人發(fā)牌,,并且不可避免地根據(jù)特定的游戲規(guī)則而結(jié)束。然后,,下一輪另一個(gè)情景又開(kāi)始,,再次處理這些紙牌。 比起使用未來(lái)的累積獎(jiǎng)勵(lì),,更為常用地是使用未來(lái)累積折扣獎(jiǎng)勵(lì): 在這里0γ<>γ的值越小,,就越正確。在特殊情況下,,我們令γ等于0或者1,。當(dāng)γ等于1時(shí),我們就回到了第一個(gè)等式,,我們關(guān)心的是所有的回報(bào),,而不是考慮到未來(lái)有多遠(yuǎn),。另一方面,當(dāng)γ等于0時(shí),,我們關(guān)心的是當(dāng)前的回報(bào),,而不考慮之后的任何回報(bào)。這將導(dǎo)致我們的算法缺乏長(zhǎng)遠(yuǎn)性,。它將學(xué)會(huì)采取最適合當(dāng)前情況的行動(dòng),,但不會(huì)考慮此行動(dòng)對(duì)未來(lái)的影響。 策略 策略,,被記為Π(s,a),,描述了行動(dòng)的一個(gè)方式。它是一個(gè)這樣的函數(shù):接受一個(gè)狀態(tài)和一個(gè)動(dòng)作,,并返回在該狀態(tài)下采取這個(gè)動(dòng)作的概率,。因此,對(duì)于一個(gè)給定的狀態(tài),,它必須滿足 ,。在下面的例子中,當(dāng)我們餓時(shí),,我們可以在吃和不吃兩個(gè)動(dòng)作之間做出選擇,。 我們的策略應(yīng)該描述如何在每個(gè)狀態(tài)下采取行動(dòng)。因此,,一個(gè)等概率的隨機(jī)策略就該像這樣子: 其中E代表吃的行動(dòng),, 代表不吃的行動(dòng)。這意味著,,如果你處于饑餓狀態(tài),,你在選擇吃或者不吃的概率是相同的。 我們使用強(qiáng)化學(xué)習(xí)的目標(biāo)是為了去學(xué)習(xí)一個(gè)最優(yōu)的策略Π*,,它告訴我們?nèi)绾涡袆?dòng)以得到最大化的回報(bào),。這只是一個(gè)簡(jiǎn)單的例子,容易知道例子中的最優(yōu)決策是餓了就吃 ,。在這個(gè)實(shí)例中,,正如許多MDPs (馬爾可夫決策過(guò)程)一樣,最優(yōu)的決策是確定性的,。每一個(gè)最佳狀態(tài)都有一個(gè)最佳行動(dòng),。有時(shí)這被寫成 Π*(s)=a,這是一個(gè)從狀態(tài)到這些狀態(tài)下最優(yōu)決策行動(dòng)的一個(gè)映射,。 價(jià)值函數(shù) 我們利用價(jià)值函數(shù)來(lái)得到學(xué)習(xí)的最優(yōu)策略,。強(qiáng)化學(xué)習(xí)中有兩種類型的價(jià)值函數(shù):狀態(tài)價(jià)值函數(shù),表示為V(s),;和行為價(jià)值函數(shù),,表示為Q(s,a),。 狀態(tài)價(jià)值函數(shù)描述了在執(zhí)行一個(gè)策略時(shí)的狀態(tài)值。這是一個(gè)從狀態(tài)s開(kāi)始執(zhí)行我們的策略Π所得到的預(yù)期回報(bào): 值得注意的是,,即使在相同的環(huán)境下,,價(jià)值函數(shù)也會(huì)根據(jù)策略而改變。這是因?yàn)闋顟B(tài)的價(jià)值函數(shù)取決于你的行為方式,,因?yàn)槟阍谀骋粋€(gè)特定的狀態(tài)下的行為會(huì)影響你預(yù)期的回報(bào),。同樣要注意的是期望的重要性。(期望就像一個(gè)平均值,,就是你期望看到的回報(bào)),。我們使用期望的原因在于:當(dāng)你到達(dá)一個(gè)狀態(tài)時(shí),會(huì)發(fā)生一些隨機(jī)狀況,。你可能有一個(gè)隨機(jī)策略,,這意味著我們需要將我們所采取的所有不同行動(dòng)的結(jié)果結(jié)合起來(lái)。同樣地,,過(guò)渡函數(shù)可以是隨機(jī)的,,也就是說(shuō),我們不能以100%的概率結(jié)束任何狀態(tài),。記住上面的這個(gè)例子:當(dāng)你選擇一個(gè)行動(dòng)時(shí),,環(huán)境將返回下一個(gè)狀態(tài)??赡苡卸鄠€(gè)狀態(tài)可以返回,,甚至是一個(gè)動(dòng)作。更多的信息我們將會(huì)在Bellman方程(貝爾曼方程)中得到,。期望將所有的隨機(jī)性都考慮在內(nèi),。 我們將使用另一個(gè)價(jià)值函數(shù)是動(dòng)作價(jià)值函數(shù)。動(dòng)作價(jià)值函數(shù)是指我們采取某一特定策略時(shí),,在某個(gè)狀態(tài)下采取一個(gè)動(dòng)作所產(chǎn)生的價(jià)值,。這是在策略Π下,對(duì)給定狀態(tài)和行動(dòng)時(shí)所返回的預(yù)期回報(bào): 對(duì)狀態(tài)價(jià)值函數(shù)的注釋同樣適用于動(dòng)作價(jià)值函數(shù),。它將考慮到未來(lái)行動(dòng)的隨機(jī)性,以及從環(huán)境中返回狀態(tài)的隨機(jī)性,。 貝爾曼方程 Richard Bellman是一位美國(guó)應(yīng)用數(shù)學(xué)家,,他推導(dǎo)了以下方程,讓我們能夠開(kāi)始求解這些MDPs (馬爾可夫決策過(guò)程),。在強(qiáng)化學(xué)習(xí)中,,貝爾曼方程無(wú)處不在,必須了解強(qiáng)化學(xué)習(xí)算法是如何工作的,。但是在我們了解貝爾曼方程之前,,我們需要了解一些更有用的符號(hào),。我們P和R定義為如下: P是過(guò)渡概率。如果我們?cè)跔顟B(tài)s處開(kāi)始,,采取行動(dòng)a,,那么我們?cè)跔顟B(tài)s’的概率為 是另一種表達(dá)我們從狀態(tài)s開(kāi)始,采取行動(dòng)a,,到狀態(tài)s’的期望 (或平均) 獎(jiǎng)勵(lì)的表達(dá)方式,。 最后,有了這些知識(shí),,我們準(zhǔn)備推導(dǎo)Bellman方程 (貝爾曼方程),。我們將把狀態(tài)價(jià)值函數(shù)考慮到Bellman方程(貝爾曼方程)之內(nèi)。根據(jù)回報(bào)的定義,,我們可以修改公式(1)為如下所示: 如果我們想從總和回報(bào)中提出第一個(gè)獎(jiǎng)勵(lì),,公式可以被改寫為這樣: 在這里期望可以被描述如果我們采取策略Π時(shí),繼續(xù)從狀態(tài)s出發(fā)的期望回報(bào),??梢酝ㄟ^(guò)對(duì)所有可能的動(dòng)作和所有可能的返回狀態(tài)的求和來(lái)描述期望。接下來(lái)的兩個(gè)方程可以幫助我們邁出下一步,。 通過(guò)對(duì)這兩個(gè)部分分配期望值,,我們就可以將我們的方程轉(zhuǎn)化為如下形式: 值得注意得是,方程(1)和這個(gè)方程的結(jié)束部分是一樣的,。因此,,我們可以將其替換,得到如下: Bellman方程(貝爾曼方程)的動(dòng)作價(jià)值函數(shù)可以以類似的方式推導(dǎo)出來(lái),。感興趣的人可以在文章的最后看到具體的步驟,。其最終結(jié)果如下: Bellman方程的重要性在于,它能讓我們將一個(gè)狀態(tài)的值表達(dá)成其他狀態(tài)的值,。這意味著當(dāng)我們知道狀態(tài)st+1的值時(shí),,我們可以輕松地計(jì)算出狀態(tài)st的值。這為我們解決每個(gè)狀態(tài)值的迭代計(jì)算問(wèn)題打開(kāi)了大門,,因?yàn)槿绻覀冎老乱粋€(gè)狀態(tài)的值,,我們就能知道當(dāng)前狀態(tài)的值。在這里,,最重要的是要記住方程式的編號(hào),。最后,隨著Bellman方程(貝爾曼方程)的出現(xiàn),,我們可以開(kāi)始研究如何計(jì)算最優(yōu)策略,,并編寫我們的第一個(gè)強(qiáng)化學(xué)習(xí)智能體程序。 下一步:動(dòng)態(tài)規(guī)劃 在下一篇文章中,我們將研究使用動(dòng)態(tài)規(guī)劃來(lái)計(jì)算最優(yōu)策略,,這將為更高級(jí)的算法奠定基礎(chǔ),。然而,這將是第一個(gè)實(shí)際編寫強(qiáng)化學(xué)習(xí)算法的機(jī)會(huì),。我們將研究策略迭代和值迭代以及他們的優(yōu)缺點(diǎn),。在此之前,感謝您的閱讀,。 正如所承諾的:推導(dǎo)Bellman方程的動(dòng)作價(jià)值函數(shù)(貝爾曼方程) 正在我們推導(dǎo)出Bellman方程狀態(tài)價(jià)值函數(shù)的過(guò)程一樣,,我們用相同的推導(dǎo)過(guò)程得到了一系列的方程,下面我們從方程(2)開(kāi)始繼續(xù)推導(dǎo):
|
|
來(lái)自: 點(diǎn)畫狼藉 > 《人工智能》