丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
專欄 正文
發(fā)私信給宗仁
發(fā)送

0

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

本文作者: 宗仁 2019-03-05 17:25
導(dǎo)語:本系列文章通過通俗易懂的方式介紹強(qiáng)化學(xué)習(xí)的基本概念,雖然語言通俗,但是內(nèi)容依舊非常嚴(yán)謹(jǐn)性。

本系列文章通過通俗易懂的方式介紹強(qiáng)化學(xué)習(xí)的基本概念,雖然語言通俗,但是內(nèi)容依舊非常嚴(yán)謹(jǐn)性。文中用很多的公式,對數(shù)學(xué)公式頭疼的讀者可能會被嚇住,但是如果讀者一步一步follow下來,就會發(fā)現(xiàn)公式的推導(dǎo)非常自然,對于透徹的理解這些基本概念非常有幫助。除了理論之外,文章還會介紹每種算法的實(shí)現(xiàn)代碼,深入解答每一行關(guān)鍵代碼。讓讀者不但理解理論和算法,同時還能知道怎么用代碼來實(shí)現(xiàn)。通過理論與實(shí)際的結(jié)合,更加深入的理解學(xué)過的概念。讀者只需要基本的Python編程知識,文中每一個算法都有對應(yīng)的Jupyter Notebook代碼。(文章來源,李理的Github博客

目錄

引言

馬爾科夫決策過程(MDP)

和環(huán)境的互動

目標(biāo)和獎勵

回報(Return)

馬爾科夫?qū)傩?/p>

馬爾科夫決策過程(Markov Decision Processes)

價值函數(shù)(Value Function)

最優(yōu)價值函數(shù)(Optimal Value Functions)

OpenAI Gym簡介

運(yùn)行Environment

觀察(Observations)

Spaces

引言

前面我們介紹了監(jiān)督學(xué)習(xí),監(jiān)督學(xué)習(xí)的特點(diǎn)是有一個“老師”來“監(jiān)督”我們,告訴我們正確的結(jié)果是什么。在我們在小的時候,會有老師來教我們,本質(zhì)上監(jiān)督學(xué)習(xí)是一種知識的傳遞,但不能發(fā)現(xiàn)新的知識。對于人類整體而言,真正(甚至唯一)的知識來源是實(shí)踐——也就是強(qiáng)化學(xué)習(xí)。比如神農(nóng)嘗百草,最早人類并不知道哪些草能治病,但是通過嘗試,就能學(xué)到新的知識。學(xué)到的這些知識通過語言文字記錄下來,一代一代的流傳下來,從而人類社會作為整體能夠不斷的進(jìn)步。和監(jiān)督學(xué)習(xí)不同,沒有一個“老師”會“監(jiān)督“我們。比如下圍棋,不會有人告訴我們當(dāng)前局面最好的走法是什么,只有到游戲結(jié)束的時候我們才知道最終的勝負(fù),我們需要自己復(fù)盤(學(xué)習(xí))哪一步是好棋哪一步是臭棋。自然界也是一樣,它不會告訴我們是否應(yīng)該和別人合作,但是通過優(yōu)勝劣汰,最終”告訴”我們互相協(xié)助的社會會更有競爭力。和前面的監(jiān)督非監(jiān)督學(xué)習(xí)相比有一個很大的不同點(diǎn):在強(qiáng)化學(xué)習(xí)的Agent是可以通過Action影響環(huán)境的——我們的每走一步棋都會改變局面,有可能變好也有可能變壞。

它要解決的核心問題是給定一個狀態(tài),我們需要判斷它的價值(Value)。價值和獎勵(Reward)是強(qiáng)化學(xué)習(xí)最基本的兩個概念。對于一個Agent(強(qiáng)化學(xué)習(xí)的主體)來說,Reward是立刻獲得的,內(nèi)在的甚至與生俱來的。比如處于饑餓狀態(tài)下,吃飯會有Reward。而Value是延遲的,需要計算和慎重考慮的。比如饑餓狀態(tài)下去偷東西吃可以有Reward,但是從Value(價值觀)的角度這(可能)并不是一個好的Action。為什么不好?雖然人類很監(jiān)督學(xué)習(xí),比如先賢告訴我們這是不符合道德規(guī)范的,不是好的行為。但是我們之前說了,人類最終的知識來源是強(qiáng)化學(xué)習(xí),先賢是從哪里知道的呢?有人認(rèn)為來自上帝或者就是來自人的天性,比如“人之初性本善”,我們會在最后一章討論哲學(xué)的問題。如果從進(jìn)化論的角度來解釋,人類其實(shí)在玩一場”生存”游戲,有遵循道德的人群和有不遵循的人群,大自然會通過優(yōu)勝劣汰”告訴”我們最終的結(jié)果,最終我們的先賢“學(xué)到”了(其實(shí)是被選擇了)這些道德規(guī)范,并且把這些規(guī)范通過教育(監(jiān)督學(xué)習(xí))一代代流傳下來。

強(qiáng)化學(xué)習(xí)最常見模型-馬爾科夫決策過程(MDP)

馬爾科夫決策過程(Markov Decision Process)是強(qiáng)化學(xué)習(xí)最常見的模型。我們通過這個模型來介紹強(qiáng)化學(xué)習(xí)的一些基本概念。

  • 和環(huán)境的互動

強(qiáng)化學(xué)習(xí)的本質(zhì)就是通過與環(huán)境的互動來學(xué)習(xí)怎么達(dá)成一個目標(biāo)。這個學(xué)習(xí)和做決策的主體就叫Agent。Agent交互的對象就是環(huán)境(Environment),環(huán)境可大可小,對于坐井觀天的青蛙來說,它的環(huán)境就是那口小井;而對于人類來說,整個地球甚至太陽系都是我們研究的對象。Agent會持續(xù)的和環(huán)境交互,根據(jù)當(dāng)前的狀態(tài)選擇行為(Action),而環(huán)境會給Agent新的狀態(tài)和Reward。整個交互過程如下圖所示。

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

圖:強(qiáng)化學(xué)習(xí)里Agent和環(huán)境的互動

Agent和環(huán)境的交互假設(shè)是時刻t=0,1,…。在t時刻,Agent處于某個狀態(tài)St∈S,這里SS表示所有可能狀態(tài)的集合,也就是狀態(tài)空間。它可以選擇一個行為At∈A(St),其中A(St)是狀態(tài)St時可以選擇的所有行為的集合。選擇了行為 At之后,環(huán)境會在下一個(t+1)時刻給Agent一個新的狀態(tài)St+1和Reward Rt+1∈R?R。

一個實(shí)數(shù)值的Reward是否足夠?拿人來說,是有很多方面的追求,比如同時要考慮工作和家庭。當(dāng)然最簡單的方法是把兩個目標(biāo)(goal)進(jìn)行加權(quán)求和,而且這個權(quán)重似乎會變化,因此人類是否有一個單一的目標(biāo),而其他目標(biāo)都是它的一種外在表現(xiàn)?我們這里不討論這個問題,但是對于實(shí)際的Task來說,一般是足夠了。比如下圍棋,就是勝負(fù);玩Atari游戲就是獲得最高的得分。

在每個時刻t,Agent根據(jù)當(dāng)前的狀態(tài)St會選取不同的行為 At,選擇的方法叫做策略(Policy),一般假設(shè)是它一個概率分布(確定的策略是它的特殊情況)πt(At|St),如果這個隨機(jī)過程是平穩(wěn)的(Stationary),那么我們的策略也一般與時間無關(guān)的,即πt(At|St)=π(At|St)。策略有好有壞,Agent的目標(biāo)是學(xué)習(xí)到最好的策略(是否存在也是強(qiáng)化學(xué)習(xí)的一個理論問題,不過我們一般認(rèn)為存在,也有一些理論可以證明如果系統(tǒng)滿足一些假設(shè),最優(yōu)策略是存在的)。

  • 目標(biāo)和獎勵

每個時刻t,環(huán)境都會給Agent一個RewardRt,而Agent的目標(biāo)(Goal)是最大化最終得到的所有Reward的和。這里隱含的意思是:我們的目標(biāo)不是短期的Reward,而是長期Reward的累加。在學(xué)校的時候平時努力學(xué)習(xí)最終會有回報的,如果短期來看,學(xué)習(xí)可能會饑餓會疲憊,而出去玩可能會愉快。這就是所謂的“Reward假設(shè)”:我們所說的目標(biāo)(Goal)或者目的(Purpose)最終可以被看成最大化一個Reward信號的累加值。

就像前文說過,用一個數(shù)值來描述Agent所有的目標(biāo)(尤其是人這樣復(fù)雜的生物)似乎有些不夠,我們暫且把Agent放到一些具體的任務(wù)(Task)上來看看似乎足夠。比如我們讓一個老鼠逃離迷宮(Maze),如果它沒有找到出口我們給它-1的Reward,這樣它學(xué)習(xí)的目標(biāo)就是盡快的逃離迷宮。比如下象棋,如果獲勝,我們給它+1的Reward,如果輸棋則是-1,和棋則是0。又比如掃地機(jī)器人,如果它收集到垃圾,那么給它+1的Reward,那么它的目標(biāo)就是盡可能多的收集垃圾。

注意:我們定義的目標(biāo)是要告訴Agent我們期望它做的是什么(What),而不是告訴它怎么做(How)。比如下棋時吃掉對方的棋子是一種獲勝的策略(怎么做),我們不能給吃子Reward,否則它就可能學(xué)到的策略是為了吃子,因為我們知道有的時候為了獲勝必須犧牲己方的棋子。

  • 回報(Return)

Agent的目標(biāo)是最大化長期的Reward累加值,下面我們來形式化的定義這個累加值——回報。假設(shè)t時刻之后的Reward是Rt,Rt+1,…,我們期望這些Reward的和最大。由于環(huán)境(可能)是隨機(jī)的,而且Agent的策略也(可能)是隨機(jī)的,因此Agent的目標(biāo)是最大化Reward累加和的期望值?;貓驡t定義如下:

Gt=Rt+1+Rt+2+Rt+3+...+RT

其中T是最后的時刻。有些任務(wù)會有一些結(jié)束的狀態(tài),從任務(wù)的初始狀態(tài)到結(jié)束狀態(tài),我們稱之為一個episode。比如下象棋,從開始下棋到最終分出勝負(fù)(或者和棋)一局游戲結(jié)束就叫一個episode。如果我們開始一個新的episode,比如下棋重新開始一局,那么Agent的狀態(tài)會重置到初始化狀態(tài),而且新的一局和上一局是沒有關(guān)系的。除了episode的任務(wù)之外,還有一種任務(wù)沒有結(jié)束狀態(tài),會一直繼續(xù)下去,也就是T=∞。

由于未來的不確定性,我們一般會對未來的Reward進(jìn)行打折(Discount)。這很好理解,眼前的Reward的是確定的,拿到手再說,未來的Reward不確定因素太多,所以要打折。因此我們可以定義打折后的回報(Discounted Return)如下:

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

其中γ是一個參數(shù),0≤γ≤10≤γ≤1,叫做打折率(Discount Ratio)。如果γ<1γ<1并且Reward是有界的,那么無窮項的和是收斂的。如果γ=0,則Agent只考慮當(dāng)前t時刻的Reward,而隨著γγ趨近于1,則未來的Reward越來越重要,當(dāng)γ=1γ=1時,未來的Reward和當(dāng)前的一樣重要?;貓驡t有如下的遞歸公式:

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

馬爾科夫?qū)傩?/h3>

在強(qiáng)化學(xué)習(xí)里,Agent根據(jù)狀態(tài)來決定采取什么樣的行為,而狀態(tài)是來自環(huán)境的一個信號(Signal)。狀態(tài)可以來自Agent的傳感器的測量(Sensory Measurements),也可以是這些原始測量的復(fù)雜處理??梢允钱?dāng)前時刻的傳感器信號,也可以包含以前的信號。理想的,我們期望狀態(tài)信號能夠緊湊的壓縮過去所有的信息,它能夠保留所有相關(guān)的信息而盡量丟棄無關(guān)的信息。這通常要求狀態(tài)不僅包含當(dāng)前時刻的信號,還可能包含之前的一些信息,當(dāng)然通常不需要所有過去的信息。如果一個狀態(tài)信號包含了所有相關(guān)的信息,那么就叫它具有馬爾科夫?qū)傩?Markov Property)。比如下象棋,當(dāng)前的局面(包括所有棋子的位置和誰走下一步棋)包含了所有的信息。不管是先走車再走馬還是先走馬再走車,總之它們到達(dá)了相同的局面。因此通常馬爾科夫?qū)傩酝ǔEc具體的“路徑”無關(guān)。下面我們來形式化的定義馬爾科夫?qū)傩浴?/p>

我們假設(shè)環(huán)境的動力系統(tǒng)(dynamics)是如下的隨機(jī)過程:

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

也就是在過去所有的歷史信息的情況下(S0,A0,R1,…,St?1,At?1,Rt),Agent處于狀態(tài)St下采取At后環(huán)境反饋的新狀態(tài)是s’并且rewward是r的聯(lián)合概率分布。如果系統(tǒng)滿足馬爾科夫?qū)傩裕敲此械倪^去歷史信息都壓縮在St里了,因此給定St的條件下與過去的歷史無關(guān),因此滿足馬爾科夫?qū)傩缘南到y(tǒng)的動力系統(tǒng)可以簡化為如下公式:

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

如果環(huán)境具有馬爾科夫?qū)傩?,那么在給定當(dāng)前狀態(tài)和行為的條件下我們可以使用上式預(yù)測下一個狀態(tài)和Reward(的概率)。通過不斷迭代的使用這個公式,我們可以(精確的)計算當(dāng)前狀態(tài)的期望回報。

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

圖:Atari Broke游戲

比如上圖Atari Broke游戲,玩法就是用下面的擋板把球反彈回去,然后碰掉上方的格子,每碰掉一個格子就會有加分(Reward),如果所有格子都碰掉了或者擋板沒有接到球讓它落入屏幕下方就算游戲結(jié)束。玩家的目標(biāo)就是獲得更多的得分。

如果我們分析這個游戲的環(huán)境,假如我們把當(dāng)前幀的圖像作為當(dāng)前的狀態(tài),那么它是否是馬爾科夫的呢?似乎不行,因為一幅圖像只有今天的信息,可能有兩個狀態(tài)圖像相同但是球速可能不同。我們可以把當(dāng)前幀和前一幀圖像作為當(dāng)前的狀態(tài),假設(shè)球是勻速直線運(yùn)動的(在沒有碰撞的時候是這樣的),那么根據(jù)兩幀的球的位置可以計算出其速度來。這樣就可以大致認(rèn)為它是具有馬爾科夫?qū)傩缘牧恕?/p>

馬爾科夫決策過程(Markov Decision Processes)

滿足馬爾科夫?qū)傩缘膹?qiáng)化學(xué)習(xí)叫做馬爾科夫決策過程,如果狀態(tài)空間和行為空間是有限的,那么它就叫有限馬爾科夫決策過程。一個馬爾科夫決策過程完全由環(huán)境的當(dāng)前狀態(tài)決定,我們再次重復(fù)一下這個重要公式:

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

有了上面的公式,我們可以計算關(guān)于環(huán)境的任何信息(也就是說環(huán)境完全由這個公式確定)。比如我們可以計算某個特點(diǎn)狀態(tài)s和行為a的期望reward如下:

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

上面的公式直接根據(jù)期望的定義推導(dǎo)出來,我們這里簡單的推導(dǎo)一下,后面類似的地方就略過了。

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

同樣我們可以得到狀態(tài)轉(zhuǎn)移概率:

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

以及給定當(dāng)前s、當(dāng)前a和下一個s條件時期望的Reward:

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

  • 價值函數(shù)(Value Function)

很多強(qiáng)化學(xué)習(xí)方法會涉及求狀態(tài)的價值函數(shù)(或者State-Action對的價值函數(shù))。這個函數(shù)計算Agent處于這個狀態(tài)(或者Agent處于狀態(tài)s并且采取xingw行為a)到底有多好。比如下棋的時候我們會思考如果我們處于某個局面(Position)到底是好是壞,從而采取Action引導(dǎo)局面向這個好的局面發(fā)展或者避開不好的局面。這里的“好”指的是在這個狀態(tài)下Agent獲得回報的期望值,當(dāng)然這個期望值是與Agent的策略(Policy)緊密相關(guān)的,因此價值函數(shù)指的是在某個策略下的價值函數(shù)。

回憶一下,策略π是一個從狀態(tài)s∈S, Action a∈A(s)到概率π(a|s)的映射。我們把狀態(tài)s時策略π的價值,也就是Agent處于狀態(tài)s,并且使用策略π,它所能得到的回報的期望值,定義為vπ(s)。它的形式化定義是:

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

這里Eπ[?]代表Agent使用策略π來采取行為時隨機(jī)變量的期望值。如果有終止?fàn)顟B(tài),我們定義其價值函數(shù)為零。我們把函數(shù)vπ叫做策略ππ的狀態(tài)價值函數(shù)(State Value Function)。

類似的我們可以定義qπ(s,a),在狀態(tài)s下采取Action a的價值,其形式化定義為:

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

我們把qπ叫做策略π的行為價值函數(shù)(Action Value Function)。

值函數(shù)vπ和qπ可以從經(jīng)驗(Experience)中估計出來。比如我們可以這樣來估計:如果一個Agent使用策略π模擬很多次,通過平均可以估計出一個值來,如果模擬次數(shù)趨于無窮大,那么這種方法得到的估計值v^π(s)會收斂到真正的vπ(s))。這就是蒙特卡羅(Monte Carlo)方法,這個方法也可以用于qπ(s,a)的估計。如果狀態(tài)空間非常大,我們也可以假設(shè)vπ(s)或者qπ(s,a)是參數(shù)化的函數(shù)(模型)vπ(s;w)或者qπ(s,a;w),這就是近似的方法。我們可以用深度神經(jīng)網(wǎng)絡(luò)來實(shí)現(xiàn)vπ(s;w)或者qπ(s,a;w),這就是所謂的深度強(qiáng)化學(xué)習(xí)(Deep Reinforcement Learning)。

值函數(shù)一個非常重要的特效是它滿足某種遞歸性,這在強(qiáng)化學(xué)習(xí)和動態(tài)規(guī)劃會經(jīng)常用到。這個遞歸公式就是貝爾曼方程(Bellman Equation),希望讀者能夠理解并推導(dǎo)下面的公式(如果有些步驟不能推導(dǎo),也至少讀懂它在說什么并能夠“認(rèn)可”這個等式,書讀百遍其義自見,實(shí)在不理解多抄兩遍也會有幫助)。

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

我們再來看一下Bellman公式,它是遞歸定義的——vπ(s)是由vπ(s′)來定義的,對于有些簡單問題,我們可以根據(jù)這個公式把vπ通過解方程解出來。

我們結(jié)合上圖來分析上面公式的。當(dāng)前狀態(tài)是s,根據(jù)策略π,我們采取行為a的概率是π(a|s),而我們在狀態(tài)a和行為s的條件下,環(huán)境反饋r和s’的概率是p(r,s′|s,a),所有可能的(a,r,s’)組合我們都要求和,所以就得到簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一),在每一條路徑(每一種s,r,s’的組合)下Rt+1就是r,因此可以得到簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)。而在給定路徑的情況下,s,r,s′s,r,s′都固定了,因此s’也是固定的了,而根據(jù)馬爾科夫?qū)傩裕珿t+1Gt+1只與t+1時刻的狀態(tài)St+1=s′St+1=s′有關(guān),因此第二項變成了  簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

  • 最優(yōu)價值函數(shù)(Optimal Value Functions)

解決強(qiáng)化學(xué)習(xí)任務(wù),粗略來說,就是找到一個策略,使得長期的reward盡可能多。首先我們定義什么是一個策略π比另外一個策略π‘好(或者一樣好),記作π≥π′。形式化的定義是π≥π′??s∈S,vπ(s)≥vπ′(s)。 可以證明(這里略過)存在一個(可能有多個)最優(yōu)的$\pi_,它比所有其它策略都“好”。最優(yōu)策略對于的價值函數(shù)叫做最優(yōu)價值函數(shù),記作v_(s)$:

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

同理對于行為也有一個最優(yōu)的行為價值函數(shù):

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

$q_(s,a)和和v_(s)$有如下關(guān)系:

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

我們可以這樣解讀這個公式:s和a確定后,它會進(jìn)入St+1狀態(tài)并得到Reward Rt+1,這是過程是有概率的,因此前面有一個期望E。但是這和Agent無關(guān),和Agent有關(guān)的是在t+1時刻的行為,如果要得到最優(yōu)的q(s,a),那么它必須在t+1時刻根據(jù)最優(yōu)策略π?來計算v(St+1),因此就是v?(St+1)。

需要注意:上面公式的隨機(jī)變量只是Rt+1Rt+1,它由環(huán)境p(r,s′|s,a)確定,而v?(s)和q?(s,a)是兩個常量(給定s,a的情況下)。

OpenAI Gym簡介

OpenAI Gym是一個用來開發(fā)和比較強(qiáng)化學(xué)習(xí)算法的工具。它對Agent的實(shí)現(xiàn)沒有任何約束,因此你可以用TensorFlow或者其它任何工具來實(shí)現(xiàn)Agent。它提供統(tǒng)一的Environment的接口,你可以用這個接口來定義一個具體的強(qiáng)化學(xué)習(xí)任務(wù),此外它也提供很多常見的任務(wù),比如很多Atari的游戲。

運(yùn)行Environment

首先我們介紹一個很簡單的游戲CartPole-v0,如下圖所示。

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

圖:CartPole-v0運(yùn)行時的截圖

這個游戲有一個小車,可以對車子施加+1或者-1的力(加速度),車上有一個桿子,我們的目標(biāo)是要求車子的位置在-2.4到2.4之間,并且桿子相對于垂直的角度在-15°和15°之間。如果從物理的角度來分析,它有4個狀態(tài)變量,車子的位置,車子的速度,桿的角度,桿的角速度。而我們施加的力會改變車子的速度,從而間接改變車子的位置。我們可以用幾行代碼運(yùn)行CartPole-v0這個游戲:

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

代碼很簡單,首先創(chuàng)建一個CartPole-v0 Environment對象env,重置(reset)使環(huán)境進(jìn)入初始狀態(tài)。接著循環(huán)1000次,每次首先把當(dāng)前的游戲狀態(tài)繪制出來(render),然后隨機(jī)的選擇一個Action env.action_space.sample(),接著調(diào)用env.step函數(shù)真正的“執(zhí)行”這個Action。

觀察(Observations)

觀察就是MDP里的狀態(tài)(State),Environment的step有4個返回值:

  1. observation 一個對象,代表觀察,不同的環(huán)境返回的對象是不同的。

  2. reward float類型 表示Reward。

  3. done bool類型 表示任務(wù)是否結(jié)束。對于Episode類任務(wù)會有結(jié)束狀態(tài),進(jìn)入結(jié)束狀態(tài)后再調(diào)用step是沒有意義的,必須要先調(diào)用reset

  4. info 調(diào)試用的一些信息

我們可以用如下代碼打印出其中的一些信息:

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

  • Spaces

Environment對象里有兩個空間(Space):狀態(tài)空間(State Space)和行為空間(Action Space),它們定義了所有可能的狀態(tài)和行為。我們可以查看一些CartPole-v0的Space:

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

從輸出可以看出,Discrete(2)表示這個任務(wù)有兩個選的Action(分布表示向左和向右移動),Box(4,)表示狀態(tài)由4維向量表示,物理意義分別是車子相對原點(diǎn)的位置和速度,桿相對于垂直方向的角度和角速度。我們可以用如下的代碼檢查其取值范圍:

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

簡單易懂------強(qiáng)化學(xué)習(xí)理論與實(shí)戰(zhàn)(一)

分享:
相關(guān)文章

專注AIR(人工智能+機(jī)器人)

專注人工智能+機(jī)器人報道,經(jīng)驗分享請加微信keatslee8(請注明原因)。 科學(xué)的本質(zhì)是:問一個不恰當(dāng)?shù)膯栴},于是走上了通往恰當(dāng)答案的路。
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說