0
本文作者: AI研習(xí)社-譯站 | 2019-01-09 10:46 |
本文為 AI 研習(xí)社編譯的技術(shù)博客,原標(biāo)題 :
An introduction to Reinforcement Learning
作者 | Thomas Simonini
翻譯 | 斯蒂芬?二狗子、Disillusion
校對(duì) | 斯蒂芬?二狗子 審核 | 就2 整理 | 菠蘿妹
原文鏈接:
https://medium.freecodecamp.org/an-introduction-to-reinforcement-learning-4339519de419
深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:簡(jiǎn)介篇(第一部分)
您將使用的一些編程環(huán)境
本文是深度強(qiáng)化學(xué)習(xí)課程的一部分,使用 Tensorflow 進(jìn)行實(shí)踐。點(diǎn)擊這里查看教學(xué)大綱。
強(qiáng)化學(xué)習(xí)是一種重要的機(jī)器學(xué)習(xí)類(lèi)型,其中智能體通過(guò)執(zhí)行操作和查看結(jié)果來(lái)了解如何在環(huán)境中執(zhí)行操作。
近年來(lái),我們?cè)谶@個(gè)迷人的研究領(lǐng)域看到了很多改進(jìn)。例如包括 2014年的DeepMind 的 Deep Q 學(xué)習(xí)架構(gòu),在2016 年 AlphaGo 擊敗李世石,2017年OpenAI 和 PPO 等。
DeepMind DQN
在本系列文章中,我們將重點(diǎn)學(xué)習(xí)目前用于解決強(qiáng)化學(xué)習(xí)問(wèn)題的不同架構(gòu),包括 Q-learning, Deep Q-learning, Policy Gradients, Actor Critic, and PPO.
在這第一篇文章中,您將學(xué)到:
什么是強(qiáng)化學(xué)習(xí),以及獎(jiǎng)勵(lì)機(jī)制是如何成為核心理念的
強(qiáng)化學(xué)習(xí)的三種方法
深層強(qiáng)化學(xué)習(xí)的“深層”意味著什么
在深入實(shí)現(xiàn) Deep Reinforcement Learning 智能體之前掌握這些內(nèi)容非常重要。
強(qiáng)化學(xué)習(xí)背后的理念是,智能體 Agent 將通過(guò)與環(huán)境互動(dòng)并獲得執(zhí)行行動(dòng)的獎(jiǎng)勵(lì)來(lái)學(xué)習(xí)環(huán)境。
從與環(huán)境的互動(dòng)中學(xué)習(xí)來(lái)自人們的自然經(jīng)驗(yàn)。想象一下,你是一個(gè)在起居室里的孩子。你看到一個(gè)壁爐,你接近它。
它很溫暖,很積極,你感覺(jué)很好 (積極獎(jiǎng)勵(lì)+1)。 你感覺(jué)火是一件好事。
但是你試著觸摸火焰。哎喲! 它會(huì)燒傷你的手 (負(fù)獎(jiǎng)勵(lì)-1)。你已經(jīng)明白,當(dāng)你離足夠遠(yuǎn)時(shí)火是積極的,因?yàn)樗鼤?huì)產(chǎn)生溫暖。但是太靠近它會(huì)燒傷你。
這就是人類(lèi)通過(guò)互動(dòng)學(xué)習(xí)的方式。強(qiáng)化學(xué)習(xí)是一種從行動(dòng)中學(xué)習(xí)的計(jì)算方法。
讓我看一個(gè)智能體學(xué)習(xí)如何玩超級(jí)馬里奧的一個(gè)例子。強(qiáng)化學(xué)習(xí)(RL)過(guò)程可以建模為一個(gè)循環(huán),其具體工作方式如下:
Agent從環(huán)境 Environment 獲取狀態(tài)S0(在我們的例子中,從超級(jí)馬里奧兄弟(環(huán)境)接收游戲(狀態(tài))的 first frame )
基于該狀態(tài)S0, 智能體采取行動(dòng)A0(我們的智能體將向右移動(dòng))
環(huán)境轉(zhuǎn)換到新?tīng)顟B(tài)S1( new frame )
環(huán)境給智能體帶來(lái)一些獎(jiǎng)勵(lì)R1( not dead :+1)
強(qiáng)化學(xué)習(xí)循環(huán)輸出state,action和reward的序列,agent的目的是最大化預(yù)計(jì)累計(jì)獎(jiǎng)勵(lì)(expected cumulative reward)
獎(jiǎng)勵(lì)假設(shè)函數(shù)的核心思想
為什么 Agent 的目標(biāo)是最大化預(yù)期的累積獎(jiǎng)勵(lì)?
實(shí)際上,強(qiáng)化學(xué)習(xí)是基于獎(jiǎng)勵(lì)假設(shè)的想法。所有目標(biāo)都可以通過(guò)預(yù)期累積獎(jiǎng)勵(lì)的最大化來(lái)描述。
這就是為什么在強(qiáng)化學(xué)習(xí)中,為了獲得最佳行為,我們需要最大化預(yù)期的累積獎(jiǎng)勵(lì)。
每個(gè)時(shí)間步t的累積獎(jiǎng)勵(lì)可定義為:
這相當(dāng)于
感謝 Pierre-Luc Bacon 的修正
但是,實(shí)際上,我們不能光添加這樣的獎(jiǎng)勵(lì)。早期(在游戲開(kāi)始時(shí))提供的獎(jiǎng)勵(lì)更有用,因?yàn)樗鼈儽任磥?lái)獎(jiǎng)勵(lì)更好預(yù)測(cè)。
假設(shè)你的 agent 是這只小老鼠而你的對(duì)手就是貓。目標(biāo)是在 agent 被貓吃掉之前吃最多的奶酪。
正如我們?cè)趫D中可以看到的那樣, 老鼠在附近吃奶酪的可能性比接近貓的奶酪更可能( agent 越接近貓,就越危險(xiǎn))。
因此,貓附近的獎(jiǎng)勵(lì),即使它更大(更多的奶酪),也應(yīng)該被將打折扣。因?yàn)槲覀儾淮_定 agent 能不能吃到。
為了給獎(jiǎng)勵(lì)打折,可以這樣做:
我們定義了一個(gè)名為gamma的折扣率。它必須介于0和1之間。
伽瑪越大,折扣越小。這意味著學(xué)習(xí),agent 更關(guān)心長(zhǎng)期獎(jiǎng)勵(lì)。
另一方面,伽瑪越小,折扣越大。這意味著我們的 agent 更關(guān)心短期獎(jiǎng)勵(lì)(最近的奶酪)。
累積的折扣預(yù)期獎(jiǎng)勵(lì)是:
感謝 Pierre-Luc Bacon 的修正
簡(jiǎn)單來(lái)說(shuō),每個(gè)獎(jiǎng)勵(lì)將通過(guò)伽瑪?shù)臅r(shí)間步長(zhǎng)指數(shù)倍進(jìn)行折扣。隨著時(shí)間步長(zhǎng)的增加,貓?jiān)絹?lái)越接近我們的 agent,因此未來(lái)的獎(jiǎng)勵(lì)的獲得越來(lái)越不可能發(fā)生。
任務(wù)是強(qiáng)化學(xué)習(xí)問(wèn)題的一個(gè)實(shí)例,我們可以定義兩種類(lèi)型的任務(wù):情節(jié)性 和 連續(xù)性。
情節(jié)性任務(wù)(episodic tasks)
這種情況下,強(qiáng)化學(xué)習(xí)任務(wù)會(huì)有一個(gè)起點(diǎn)和終點(diǎn)(一個(gè)最終狀態(tài))。這會(huì)創(chuàng)建一個(gè)劇情:一個(gè)狀態(tài) States, 行動(dòng) Actions, 獎(jiǎng)勵(lì)Rewards, 新?tīng)顟B(tài) New States 的列表
例如,想想超級(jí)馬里奧兄弟,一個(gè)劇情開(kāi)始于新馬里奧人物的出生點(diǎn)出來(lái)并到結(jié)束:當(dāng)馬里奧被殺或者達(dá)到了關(guān)卡的末尾。
新劇情的開(kāi)始
持續(xù)性任務(wù)
這些是永遠(yuǎn)持續(xù)的任務(wù)(沒(méi)有終點(diǎn)狀態(tài))。在這種情況下,agent必須學(xué)習(xí)如何選擇最佳操作并同時(shí)與環(huán)境交互。
例如, agent 進(jìn)行自動(dòng)股票交易。對(duì)于此任務(wù),沒(méi)有起點(diǎn)和終點(diǎn)狀態(tài)。agent 會(huì)持續(xù)執(zhí)行,直到我們決定阻止他。
我們有兩種學(xué)習(xí)方式:
在劇集結(jié)束時(shí)收集獎(jiǎng)勵(lì),然后計(jì)算最大預(yù)期未來(lái)獎(jiǎng)勵(lì): 蒙特卡洛方法
估算每一步的獎(jiǎng)勵(lì): 時(shí)序差分方法
蒙特卡洛
當(dāng)劇集結(jié)束時(shí)(智能體達(dá)到“終端狀態(tài)”),Agent 會(huì)查看總累積獎(jiǎng)勵(lì),看看它的表現(xiàn)如何。在蒙特卡洛方法中,獎(jiǎng)勵(lì)僅在比賽結(jié)束時(shí)收到。
然后,我們運(yùn)用學(xué)到知識(shí)開(kāi)始一個(gè)新的游戲。 Agent 會(huì)在每次迭代時(shí)做出更好的決策。
我們來(lái)舉個(gè)例子:
如果我們采取迷宮環(huán)境:
總是從同一個(gè)起點(diǎn)開(kāi)始。
如果貓吃了老鼠或者老鼠移動(dòng)超過(guò)20步,我們就會(huì)終止這一集劇情。
在劇集結(jié)束時(shí),我們有一個(gè) State, Actions, Rewards, 和 New States的列表
獎(jiǎng)勵(lì)總額 Gt 被統(tǒng)計(jì)(看看老鼠的表現(xiàn)如何)。
根據(jù)上面的公式更新V( st )。
然后用這個(gè)新知識(shí)開(kāi)始一個(gè)新游戲。
通過(guò)運(yùn)行越來(lái)越多的劇集, Agent 將學(xué)會(huì)更好, 并更好地發(fā)揮。
時(shí)序差分方法:每一步的學(xué)習(xí)
TD學(xué)習(xí)不會(huì)等到劇集結(jié)束時(shí)更新最大預(yù)期未來(lái)獎(jiǎng)勵(lì)估計(jì):它將更新其在該經(jīng)歷中發(fā)生的非最終狀態(tài)St的價(jià)值估計(jì)V.
該方法稱(chēng)為T(mén)D(0) 或一步TD(在任何單個(gè)步驟之后更新值函數(shù))。
TD方法只等到下一步更新值估計(jì)值。在時(shí)間 t + 1,它們使用觀(guān)察到的獎(jiǎng)勵(lì) Rt + 1和當(dāng)前估計(jì)值V(St + 1)立即得到TD目標(biāo)。
TD目標(biāo)是一個(gè)估計(jì)值:事實(shí)上,可以通過(guò)將其更新為一步目標(biāo)來(lái)更新先前估計(jì)V(St)。
在研究解決強(qiáng)化學(xué)習(xí)問(wèn)題的不同策略之前,我們必須涵蓋另一個(gè)非常重要的主題:勘探/開(kāi)發(fā)權(quán)衡。
勘探是尋找有關(guān)環(huán)境的更多信息。
開(kāi)發(fā)是利用已知信息來(lái)最大化獎(jiǎng)勵(lì)。
請(qǐng)記住,我們的RL智能體的目標(biāo)是最大化預(yù)期的累積獎(jiǎng)勵(lì)。但是,我們可能會(huì)陷入局部陷阱。
在這個(gè)游戲中,我們的鼠標(biāo)可以有無(wú)限量的小奶酪(每個(gè)+1)。但在迷宮的頂端有一大片奶酪(+1000)。
但是,如果只專(zhuān)注于獎(jiǎng)勵(lì),agent永遠(yuǎn)不會(huì)達(dá)到巨大的奶酪。它只會(huì)得到最近的獎(jiǎng)勵(lì)來(lái)源,即使這個(gè)來(lái)源很小(利用)。
但如果我們的經(jīng)紀(jì)人進(jìn)行了一些探索,那么它就有可能獲得巨大的回報(bào)。
這就是我們所說(shuō)的勘探/開(kāi)采權(quán)衡。我們必須定義一個(gè)有助于處理這種權(quán)衡的規(guī)則。我們將在以后的文章中看到處理它的不同方法。
既然我們已經(jīng)定義好了強(qiáng)化學(xué)習(xí)的主要元素,那么讓我們繼續(xù)討論解決強(qiáng)化學(xué)習(xí)問(wèn)題的三種方法。這些是基于數(shù)值,策略,模型的的方法。
基于數(shù)值
在基于數(shù)值的RL中,目標(biāo)是優(yōu)化價(jià)值函數(shù) V(s)。
價(jià)值函數(shù)是一個(gè)函數(shù),表明agent在每個(gè)狀態(tài)獲得的最大預(yù)期未來(lái)獎(jiǎng)勵(lì)。
每個(gè)狀態(tài)的數(shù)值是以該狀態(tài)為起始點(diǎn),agent在未來(lái)積累的獎(jiǎng)勵(lì)總額的期望。
Agent使用此函數(shù)在逐步地中選擇的狀態(tài),使其獲得期望最大。
在迷宮示例中,在每個(gè)步驟中我們將采用最大值:-7,然后是-6,然后是-5(依此類(lèi)推)以達(dá)到目標(biāo)。
基于策略
在基于策略的RL中,我們希望在不使用值函數(shù)的情況下直接優(yōu)化策略函數(shù) π(s)。
該策略定義了給定時(shí)間的智能體行為。
action = policy(state)
通過(guò)學(xué)習(xí)一種策略函數(shù)。這使我們得到每個(gè)狀態(tài)到最佳的相應(yīng)操作的映射。
我們有兩種策略類(lèi)型:
確定性:給定狀態(tài)下的策略將始終返回相同的操作。
隨機(jī):輸出行動(dòng)上的分別概率。
正如我們?cè)诖颂幙吹降?,該策略直接指出了針?duì)每個(gè)步驟采取的最佳操作。
基于模型
在基于模型的 RL 中,我們對(duì)環(huán)境進(jìn)行建模。這意味著我們創(chuàng)建了一個(gè)環(huán)境行為的模型。
問(wèn)題是每個(gè)環(huán)境都需要不同的模型表示。這就是為什么我們不會(huì)在即將發(fā)表的文章中談?wù)撨@種類(lèi)型的強(qiáng)化學(xué)習(xí)。
深層強(qiáng)化學(xué)習(xí)引入深層神經(jīng)網(wǎng)絡(luò)來(lái)解決強(qiáng)化學(xué)習(xí)問(wèn)題——因此得名“深層”。
例如,在下一篇文章中,我們將研究Q-Learning(經(jīng)典強(qiáng)化學(xué)習(xí))和深度Q-Learning。
你將看到兩者的不同之處。在第一種方法中,我們使用傳統(tǒng)的算法來(lái)創(chuàng)建一個(gè)Q表,它可以幫助我們找到針對(duì)每種狀態(tài)的操作。
在第二種方法中,我們將使用神經(jīng)網(wǎng)絡(luò)(根據(jù)狀態(tài)(q值)來(lái)估計(jì)獎(jiǎng)勵(lì))。
Udacity的Q learning notebook激發(fā)了上圖的靈感
恭喜!在這篇文章中有很多信息。在繼續(xù)之前,一定要真正掌握上述內(nèi)容。在進(jìn)入有趣的部分之前,掌握這些元素是很重要的:創(chuàng)建可以玩電子游戲的人工智能。
重要提示:本文是關(guān)于深度強(qiáng)化學(xué)習(xí)的一系列免費(fèi)博客文章的第一部分。要了解更多信息和資源,請(qǐng)查看教學(xué)大綱。
想要繼續(xù)查看該篇文章相關(guān)鏈接和參考文獻(xiàn)?
長(zhǎng)按鏈接點(diǎn)擊打開(kāi)或點(diǎn)擊【深度強(qiáng)化學(xué)習(xí)從入門(mén)到大師:簡(jiǎn)介篇(第一部分)】:
https://ai.yanxishe.com/page/TextTranslation/1390
AI研習(xí)社每日更新精彩內(nèi)容,觀(guān)看更多精彩內(nèi)容:雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
等你來(lái)譯:
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。