直覺(jué)式強(qiáng)化學(xué)習(xí)系列, 簡(jiǎn)明英語(yǔ)REINFORCE算法的溫和指南
> Photo by Michael Dziedzic on Unsplash 這是我關(guān)于強(qiáng)化學(xué)習(xí)(RL)的系列文章中的第六篇。現(xiàn)在,我們對(duì)構(gòu)成RL問(wèn)題構(gòu)成要素的概念以及用于解決它們的技術(shù)有了很好的理解。我們還詳細(xì)研究了兩種基于價(jià)值的算法-Q學(xué)習(xí)算法和深度Q網(wǎng)絡(luò)(DQN),這是我們進(jìn)入深度強(qiáng)化學(xué)習(xí)的第一步。 在本文中,我們將繼續(xù)進(jìn)行深度強(qiáng)化學(xué)習(xí)之旅,并使用Policy Gradients技術(shù)學(xué)習(xí)我們的第一個(gè)基于Policy的算法。我們將逐步介紹REINFORCE算法,以便了解它與DQN方法的不同之處。 這是該系列中以前和之后文章的快速摘要。我的目標(biāo)始終是不僅要理解某件事情的工作原理,而且要理解為什么它如此工作。 · 基本概念和術(shù)語(yǔ)簡(jiǎn)介(什么是RL問(wèn)題,以及如何使用Markov決策過(guò)程中的技術(shù)和諸如收益,價(jià)值和政策等概念將RL問(wèn)題解決框架應(yīng)用于該框架) · 解決方案方法(流行的RL解決方案的概述,并根據(jù)這些解決方案之間的關(guān)系對(duì)其進(jìn)行分類。Bellman方程式的重要內(nèi)容是所有RL算法的基礎(chǔ)。) · 無(wú)模型算法(使用迭代算法逐步改善預(yù)測(cè)的基于價(jià)值和基于策略的解決方案的相似性和差異。利用,探索和ε貪婪策略。) · Q學(xué)習(xí)(對(duì)此算法進(jìn)行深入分析,這是后續(xù)深度學(xué)習(xí)方法的基礎(chǔ)。對(duì)為什么該算法收斂到最佳值有直覺(jué)。) · Deep Q Networks(我們的第一個(gè)深度學(xué)習(xí)算法。分步逐步講解它的工作原理以及為什么選擇這些架構(gòu)。) · 策略梯度-本文(我們的第一個(gè)基于策略的深度學(xué)習(xí)算法。) · Actor-Critic(復(fù)雜的深度學(xué)習(xí)算法,結(jié)合了Deep Q網(wǎng)絡(luò)和策略梯度的優(yōu)點(diǎn)。) · 驚喜主題(敬請(qǐng)期待?。?/p> 如果您還沒(méi)有閱讀早期的文章,那么最好先閱讀它們,因?yàn)楸疚慕⒃谖覀冊(cè)诖擞懻摰脑S多概念的基礎(chǔ)上。 政策梯度 通過(guò)Deep Q Networks,我們可以間接獲得最佳策略。網(wǎng)絡(luò)學(xué)習(xí)輸出給定狀態(tài)的最佳Q值。然后,將這些Q值用于得出最佳策略。 因此,它需要利用隱式策略,以便可以進(jìn)行自我訓(xùn)練。它使用ε-貪心策略。 另一方面,我們可以構(gòu)建一個(gè)直接學(xué)習(xí)最優(yōu)策略的神經(jīng)網(wǎng)絡(luò)。它不是學(xué)習(xí)以狀態(tài)為輸入并為所有動(dòng)作輸出Q值的函數(shù),而是學(xué)習(xí)一個(gè)輸出可以從該狀態(tài)采取的最佳動(dòng)作的函數(shù)。 更準(zhǔn)確地說(shuō),它不是輸出一個(gè)最佳動(dòng)作,而是輸出可以從該狀態(tài)采取的動(dòng)作的概率分布。然后可以通過(guò)從概率分布中采樣來(lái)選擇動(dòng)作。
> (Image by Author) 這正是最佳策略。 架構(gòu)構(gòu)件 策略網(wǎng)絡(luò)是一個(gè)相當(dāng)標(biāo)準(zhǔn)的神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu),經(jīng)過(guò)訓(xùn)練可以預(yù)測(cè)最佳策略。與DQN一樣,如果您的狀態(tài)可以通過(guò)一組數(shù)字變量表示,則它就像具有幾個(gè)隱藏層的線性網(wǎng)絡(luò)一樣簡(jiǎn)單?;蛘撸绻臓顟B(tài)數(shù)據(jù)以圖像或文本表示,則可以使用常規(guī)的CNN或RNN體系結(jié)構(gòu)。 策略網(wǎng)絡(luò)采用當(dāng)前狀態(tài),并預(yù)測(cè)從該狀態(tài)采取的措施的概率分布。
> (Image by Author) 訓(xùn)練數(shù)據(jù)是從實(shí)際經(jīng)驗(yàn)中收集的,同時(shí)與環(huán)境進(jìn)行交互并存儲(chǔ)觀察到的結(jié)果。存儲(chǔ)經(jīng)驗(yàn)集。每個(gè)樣本都包含一個(gè)(狀態(tài),動(dòng)作,獎(jiǎng)勵(lì))元組。 高層次的工作流程 高級(jí)工作流程是"策略梯度"經(jīng)過(guò)許多時(shí)期的培訓(xùn)。每個(gè)時(shí)期有兩個(gè)階段。在第一階段,它從環(huán)境中收集有關(guān)情節(jié)的訓(xùn)練數(shù)據(jù)。在第二階段,它使用培訓(xùn)數(shù)據(jù)來(lái)培訓(xùn)策略網(wǎng)絡(luò)。
> (Image by Author) 現(xiàn)在,讓我們放大第一階段。
> (Image by Author) 策略網(wǎng)絡(luò)充當(dāng)代理并與環(huán)境交互以生成情節(jié)。根據(jù)當(dāng)前狀態(tài),策略網(wǎng)絡(luò)可以預(yù)測(cè)操作的概率分布。然后從該分布中采樣一個(gè)動(dòng)作,在環(huán)境中執(zhí)行該動(dòng)作,并獲取獎(jiǎng)勵(lì)和下一個(gè)狀態(tài)。它將每個(gè)觀察結(jié)果保存為訓(xùn)練數(shù)據(jù)的樣本。 策略網(wǎng)絡(luò)保持不變,并且在此階段沒(méi)有改善。
> (Image by Author) 現(xiàn)在,我們將放大流程的下一個(gè)階段。
> (Image by Author) 在劇集結(jié)束時(shí),將訓(xùn)練數(shù)據(jù)輸入到策略網(wǎng)絡(luò)。它從數(shù)據(jù)樣本中獲取當(dāng)前狀態(tài)和操作,并預(yù)測(cè)該操作的可能性。
> (Image by Author) 通過(guò)從數(shù)據(jù)樣本中獲取報(bào)酬來(lái)計(jì)算折現(xiàn)收益。
> (Image by Author) 折現(xiàn)收益率和行動(dòng)概率用于計(jì)算損失以訓(xùn)練策略網(wǎng)絡(luò)。在找到最佳策略之前,策略網(wǎng)絡(luò)將學(xué)會(huì)預(yù)測(cè)更好的操作。
> (Image by Author) 與基于價(jià)值的解決方案相比,基于策略的解決方案具有一些優(yōu)勢(shì) 基于值的解決方案學(xué)習(xí)值函數(shù),該函數(shù)輸出可以從狀態(tài)采取的所有操作的Q值。他們將面臨行動(dòng)數(shù)量非常多的問(wèn)題。例如,您可以進(jìn)行連續(xù)動(dòng)作(例如,機(jī)器人可以旋轉(zhuǎn)任意角度,包括從0度到360度的分度角,抬起手臂或旋轉(zhuǎn)頭部任意角度,以介于一定范圍內(nèi),依此類推),導(dǎo)致動(dòng)作數(shù)量無(wú)限。 另一方面,基于策略的解決方案(如"策略梯度")學(xué)習(xí)的策略功能可輸出操作的概率分布,因此,它們可以處理大量操作的問(wèn)題。 這也意味著Policy Gradient可以學(xué)習(xí)確定性策略以及隨機(jī)策略,而在這些策略中,并非總是有最佳的行動(dòng)。由于代理通過(guò)從概率分布中采樣來(lái)選擇操作,因此它可以每次更改其操作。 另一方面,對(duì)于基于價(jià)值的解決方案,最優(yōu)策略是通過(guò)選擇具有最高Q值的操作從最優(yōu)Q值得出的。因此,他們只能學(xué)習(xí)確定性策略。 最后,由于基于策略的方法可以直接找到策略,因此在培訓(xùn)時(shí)間方面,它們通常比基于價(jià)值的方法更有效。 政策梯度確保充分探索 與使用隱式ε-貪婪策略的基于價(jià)值的解決方案相比,"策略梯度"會(huì)隨著時(shí)間的流逝學(xué)習(xí)其策略。 在每個(gè)步驟中,它都通過(guò)對(duì)預(yù)測(cè)的概率分布進(jìn)行采樣來(lái)選擇一個(gè)動(dòng)作。結(jié)果,它最終會(huì)采取各種不同的動(dòng)作。 訓(xùn)練開(kāi)始時(shí),它輸出的動(dòng)作的概率分布是相當(dāng)均勻的,因?yàn)樗恢朗走x哪個(gè)動(dòng)作。這鼓勵(lì)了探索,因?yàn)樗馕吨袆?dòng)作都具有同等可能性。隨著訓(xùn)練的進(jìn)行,概率分布會(huì)收斂于最佳動(dòng)作,從而使利用最大化。如果某個(gè)狀態(tài)只有一個(gè)最佳動(dòng)作,則該概率分布是退化分布,從而導(dǎo)致確定性策略。 策略梯度損失功能 通過(guò)Q-Learning和DQN,我們有了一個(gè)目標(biāo)Q值,可以用來(lái)與我們預(yù)測(cè)的Q值進(jìn)行比較。因此,很容易為它定義一個(gè)損失函數(shù)。但是,使用"策略梯度"時(shí),沒(méi)有這樣的目標(biāo)特征可用來(lái)比較其預(yù)測(cè)的動(dòng)作概率分布。 我們所能提供的只是選定的行動(dòng)是帶來(lái)正面還是負(fù)面的回報(bào)。在這種情況下,我們?nèi)绾问褂盟鼇?lái)定義損失函數(shù)? 讓我們考慮一下我們希望Loss函數(shù)實(shí)現(xiàn)的目標(biāo)。如果一個(gè)動(dòng)作產(chǎn)生積極的回報(bào),我們希望該動(dòng)作變得更有可能(即,增加其可能性),如果它產(chǎn)生一個(gè)負(fù)面獎(jiǎng)勵(lì),我們希望該動(dòng)作變得不太可能(即降低其可能性)。 但是,對(duì)于積極的行動(dòng),我們不想將其概率增加到1,這意味著它成為大專證書(shū)唯一要采取的行動(dòng),因?yàn)樗衅渌袆?dòng)的可能性都將降低為0。類似地,對(duì)于消極的行動(dòng),我們不想將其概率降低為0,這意味著該操作將永遠(yuǎn)不會(huì)發(fā)生。我們希望繼續(xù)探索并嘗試多次不同的操作。 相反,對(duì)于積極的行動(dòng),我們希望概率會(huì)略有增加,而所有其他行動(dòng)的可能性會(huì)略有降低(因?yàn)樗鼈兊目偤捅仨殲?)。這使該操作更有可能發(fā)生。 換句話說(shuō),如果我們采取行動(dòng)a1,而P(a)是采取行動(dòng)" a"的概率,則我們希望最大化P(a1)。由于損失函數(shù)通過(guò)最小化而不是最大化來(lái)工作,因此我們可以等效地使用1-P(a1)作為損失。它隨著P(a1)接近1而接近0,因此它鼓勵(lì)網(wǎng)絡(luò)修改其權(quán)重以通過(guò)增加P(a1)來(lái)調(diào)整概率分布。 負(fù)面行動(dòng)也是如此。 概率用浮點(diǎn)數(shù)表示,當(dāng)這些數(shù)字很?。ń咏?)或很大(接近1)時(shí),這些計(jì)算可能會(huì)導(dǎo)致數(shù)值溢出問(wèn)題。 為避免這種情況,我們通常使用-log(P(a1)),其行為等效于1 — P(a1)。當(dāng)P(a1)接近1時(shí),它也趨于0,但是'log'不會(huì)出現(xiàn)溢出問(wèn)題,因?yàn)檫@些值的優(yōu)勢(shì)是從(–∞,0)到(0,1)的范圍更廣。 最后,我們不想為每個(gè)動(dòng)作分配相等的權(quán)重。在情節(jié)中產(chǎn)生更多獎(jiǎng)勵(lì)的那些動(dòng)作應(yīng)獲得更高的權(quán)重。因此,我們使用每個(gè)動(dòng)作的折現(xiàn)收益來(lái)確定其貢獻(xiàn)。因此,損失函數(shù)為-log(P(a))* Rt,其中Rt是動(dòng)作" a"的折現(xiàn)收益。這樣,每個(gè)操作采取的機(jī)率與該操作所產(chǎn)生的貼現(xiàn)收益成比例地更新。 詳細(xì)操作 現(xiàn)在,我們來(lái)看一下"策略梯度"的REINFORCE算法的詳細(xì)操作。從某個(gè)初始開(kāi)始狀態(tài)開(kāi)始,策略網(wǎng)絡(luò)將當(dāng)前狀態(tài)作為輸入,并輸出所有操作的概率分布。
> (Image by Author) 然后,我們通過(guò)對(duì)該分布進(jìn)行抽樣來(lái)選擇一個(gè)動(dòng)作。
> (Image by Author) 動(dòng)作被饋送到產(chǎn)生下一個(gè)狀態(tài)和獎(jiǎng)勵(lì)的環(huán)境。下一步狀態(tài)將反饋到策略網(wǎng)絡(luò)中。
> (Image by Author) 每個(gè)觀察到的經(jīng)驗(yàn)樣本都存儲(chǔ)為培訓(xùn)數(shù)據(jù)。請(qǐng)注意,策略網(wǎng)絡(luò)權(quán)重在此階段保持固定。
> (Image by Author) 我們將繼續(xù)執(zhí)行此操作,直到劇集結(jié)束。之后,我們開(kāi)始使用訓(xùn)練數(shù)據(jù)作為輸入來(lái)訓(xùn)練策略網(wǎng)絡(luò)的階段。培訓(xùn)批次包含樣本集。
> (Image by Author) 情節(jié)中訪問(wèn)的每個(gè)狀態(tài)都輸入到策略網(wǎng)絡(luò)。
> (Image by Author) 策略網(wǎng)絡(luò)預(yù)測(cè)來(lái)自每個(gè)狀態(tài)的所有動(dòng)作的概率分布。
> (Image by Author) 獲取從每個(gè)狀態(tài)實(shí)際采取的操作的概率。
> (Image by Author) 將每個(gè)樣本的折現(xiàn)收益計(jì)算為獎(jiǎng)勵(lì)的加權(quán)總和。
> (Image by Author) 然后將動(dòng)作概率的(對(duì)數(shù))乘以折現(xiàn)收益。我們想最大化它,但是由于神經(jīng)網(wǎng)絡(luò)通過(guò)使損失最小化而起作用,因此我們將其取負(fù),從而達(dá)到相同的效果。最后,將所有狀態(tài)的這些負(fù)數(shù)相加。
> (Image by Author) 綜上所述,這是計(jì)算損耗的完整流程。
> (Image by Author) 此損失用于訓(xùn)練策略網(wǎng)絡(luò),然后針對(duì)下一個(gè)時(shí)期重復(fù)該周期。
> (Image by Author) 結(jié)論 現(xiàn)在我們已經(jīng)看到了為什么使用基于策略的"策略梯度"方法,以及該算法如何工作。在上一篇文章中,我們還看到了基于值的DQN算法。 在下一篇文章中,我們將最終了解一種稱為Actor-Critic的更高級(jí)的RL解決方案,它將以創(chuàng)新的方式將這兩種方法的優(yōu)勢(shì)相結(jié)合。讓我們繼續(xù)學(xué)習(xí)! |
|
來(lái)自: 新用戶0175WbuX > 《待分類》