由于Alpha Go的成功,強(qiáng)化學(xué)習(xí)始終是人們談?wù)摰慕裹c?,F(xiàn)在Thomas Simonini在國外blog網(wǎng)站上發(fā)布了系列強(qiáng)化學(xué)習(xí)教程,以下是本系列的第一篇,簡單介紹了強(qiáng)化學(xué)習(xí)的基本概念。
An introduction to Reinforcement Learning
我們基于TensorFlow制作了一門深度強(qiáng)化學(xué)習(xí)的視頻課程【1】,主要介紹了如何使用TensorFlow實現(xiàn)強(qiáng)化學(xué)習(xí)問題求解。
強(qiáng)化學(xué)習(xí)是機(jī)器學(xué)習(xí)的一種重要分支,通過“agent ”學(xué)習(xí)的方式,得出在當(dāng)前環(huán)境下所應(yīng)該采取的動作,并觀察得到的結(jié)果。
最近幾年,我們見證了了許多研究領(lǐng)域的巨大進(jìn)展,例如包括2014年的“DeepMind and the Deep Q learning architecture”【2】,2016年的“beating the champion of the game of Go with AlphaGo”【3】,2017年的“OpenAI and the PPO”【4】
在這個系列文章中,我們將關(guān)注于深度學(xué)習(xí)問題中各類不同的求解方法。包括Q-learning,DeepQ-learning,策略梯度,ActorCritic,以及PPO。
在第一篇文章中,你將會學(xué)到:
強(qiáng)化學(xué)習(xí)是什么,為什么說“獎勵”是最重要的思想。
強(qiáng)化學(xué)習(xí)的三個方法。
深度強(qiáng)化學(xué)習(xí)中的“深度”是什么意思?
在進(jìn)入深度學(xué)習(xí)實現(xiàn)的主題之前,一定要把這些元素弄清楚。
強(qiáng)化學(xué)習(xí)背后的思想是,代理(agent)將通過與環(huán)境(environment)的動作(action)交互,進(jìn)而獲得獎勵(reward)。
從與環(huán)境的交互中進(jìn)行學(xué)習(xí),這一思想來自于我們的自然經(jīng)驗,想象一下當(dāng)你是個孩子的時候,看到一團(tuán)火,并嘗試接觸它。
火很溫暖,你感覺很開心(獎勵+1)。你就會覺得火是個好東西。
可一旦你嘗試去觸摸它。哎呦!火把你的手燒傷了(懲罰-1).你才明白只有與火保持一定距離,才會產(chǎn)生溫暖,才是個好東西,但如果太過靠近的話,就會燒傷自己。
這一過程是人類通過交互進(jìn)行學(xué)習(xí)的方式。強(qiáng)化學(xué)習(xí)是一種可以根據(jù)行為進(jìn)行計算的學(xué)習(xí)方法。
強(qiáng)化學(xué)習(xí)的過程
舉個例子,思考如何訓(xùn)練agent 學(xué)會玩超級瑪麗游戲。這一強(qiáng)化學(xué)習(xí)過程可以被建模為如下的一組循環(huán)過程。
agent從環(huán)境中接收到狀態(tài)S0。(此案例中,這句話意思是從超級瑪麗游戲中得到的第一幀信息)
基于狀態(tài)S0,agent執(zhí)行A0操作。(右移)
環(huán)境轉(zhuǎn)移至新狀態(tài)S1。(新一幀)
環(huán)境給予R1獎勵。(沒死:+1)
強(qiáng)化學(xué)習(xí)循環(huán)輸出狀態(tài)、行為、獎勵的序列。整體的目標(biāo)是最大化全局reward的期望。
獎勵假設(shè)是核心思想
在強(qiáng)化學(xué)習(xí)中,為了得到最好的行為序列,我們需要最大化累積reward期望。
每個時間步的累積reward可以寫作:
等價于:
然而,在現(xiàn)實世界中,我們不能僅僅加入獎勵。這種獎勵來的太快,且發(fā)生的概率非常大,因此比起長期獎勵來說,更容易預(yù)測。
另一個例子中,agent 是老鼠,對手是貓,目標(biāo)是在被貓吃掉之前,先吃掉最多的奶酪。
從圖中可以看到,吃掉身邊的奶酪要比吃掉貓旁邊的奶酪,要容易許多。
由于一旦被貓抓住,游戲即將結(jié)束,因此,貓身邊的奶酪獎勵會有衰減。
我們對折扣的處理如下所示(定義gamma為衰減比例,在0-1之間):
Gamma越大,衰減越小。這意味著agent 的學(xué)習(xí)過程更關(guān)注于長期的回報。
另一方面,更小的gamma,會帶來更大的衰減。這意味著我們的agent 關(guān)心于短期的回報。
衰減后的累計獎勵期望為:
每個時間步間的獎勵將與gamma參數(shù)相乘,獲得衰減后的獎勵值。隨著時間步驟的增加,貓距離我們更近,因此為未來的獎勵概率將變得越來越小。
事件型或者持續(xù)型任務(wù)
任務(wù)是強(qiáng)化學(xué)習(xí)問題中的基礎(chǔ)單元,我們可以有兩類任務(wù):事件型與持續(xù)型。
事件型任務(wù)
在這一情況中,我們有一個起始點和終止點(終止?fàn)顟B(tài))。這會創(chuàng)建一個事件:一組狀態(tài)、行為、獎勵以及新獎勵。
對于超級瑪麗的情況來說,一個事件從游戲開始進(jìn)行記錄,直到角色被殺結(jié)束。
持續(xù)型任務(wù)
持續(xù)型任務(wù)意味著任務(wù)不存在終止?fàn)顟B(tài)。在這一案例中,agent 將學(xué)習(xí)如何選擇最好的動作,并與環(huán)境同步交互。
例如,通過agent 進(jìn)行自動股票交易。在這個任務(wù)中,并不存在起始點和終止?fàn)顟B(tài),直到我們主動終止之前,agent 將一直運(yùn)行下去。
蒙特卡洛與時間差分學(xué)習(xí)方法
接下來將學(xué)習(xí)兩種方法:
蒙特卡洛方法:在事件結(jié)束后收集獎勵,進(jìn)而計算未來獎勵的最大期望。
時間差分學(xué)習(xí):在每一個時間步進(jìn)行估計計算。
蒙特卡洛方法
當(dāng)時間結(jié)束時(agent 達(dá)到“終止?fàn)顟B(tài)”),agent 將看到全部累積獎勵,進(jìn)而計算它將如何去做。在蒙特卡洛方法中,獎勵只會在游戲結(jié)束時進(jìn)行收集。
從一個新游戲開始,agent 將會隨著迭代的進(jìn)行,完成更好的決策。
舉例如下:
如果我們在如上環(huán)境中:
總是從相同位置開始
當(dāng)被貓抓到或者移動超過20步時,事件終止。
在事件的結(jié)尾,我們得到一組狀態(tài)、行為、獎勵以及新狀態(tài)。
agent 將對整體獎勵Gt求和。
基于上面的公式對V(st)求和
根據(jù)更新的認(rèn)知開始新的游戲
隨著執(zhí)行的事件越來越多,agent 學(xué)習(xí)的結(jié)果將越來越好。
時間查分學(xué)習(xí):每步更新
對于時序差分學(xué)習(xí),不需要等到每個事件終止便可以根據(jù)未來獎勵的最大期望估計進(jìn)行更新。
這種方法叫做TD(0)或者單步TD方法(在每個步驟間隔進(jìn)行值函數(shù)更新)。
TD方法在每一步進(jìn)行值函數(shù)評估更新。在t+1時,立刻觀察到獎勵Rt+1,并得到當(dāng)前的評估值V(st+1)。
TD的目標(biāo)是得到評估值,并根據(jù)單步的估計值完成前一個估計值V(st)更新。
探索/開發(fā)間的平衡
在繼續(xù)了解其他細(xì)節(jié)之前,我們必須介紹一個非常重要的主題:探索與開發(fā)之間的平衡。
探索是為了發(fā)現(xiàn)環(huán)境的更多信息
開發(fā)是為了根據(jù)已知信息去最大化獎勵值。
記住,我們agent 的目標(biāo)是為了最大化累積獎勵的期望,然而,我們可能陷入到一個常見的陷阱中。
在游戲中,老鼠可以獲得無限的小奶酪(1次獲得1個),但在迷宮的上部,有一個超大的奶酪包裹(1次可獲得1000個)。
然而,如果我們只關(guān)注于獎勵,agent 將永遠(yuǎn)無法達(dá)到奶酪包裹處。并且,它將會僅去探索最近的獎勵來源,即使這個獎勵特別?。ㄩ_發(fā),exploitation)。
但如果agent 進(jìn)行一點小小的探索工作,就有可能獲得更大的獎勵。
這就是探索與開發(fā)的平衡問題。我們必須定義出一個規(guī)則,幫助agent 去解決這個平衡。我們將在未來文章中通過不同策略去解決這一問題。
強(qiáng)化學(xué)習(xí)的三種方法
現(xiàn)在我們定義了強(qiáng)化學(xué)習(xí)的主要元素,接下來將介紹三種解決強(qiáng)化學(xué)習(xí)問題的方法,包括基于值的方法、基于策略的方法與基于模型的方法。
基于值的方法
在基于值的強(qiáng)化學(xué)習(xí)方法中,目標(biāo)是優(yōu)化值函數(shù)V(s)。
值函數(shù)的作用是,告訴我們在每個狀態(tài)下,未來最大化的獎勵期望。
值是每個狀態(tài)條件下,從當(dāng)前開始,在未來所能取得的最大總回報的值。
agent 將使用值函數(shù)去在每一步選擇采用哪個狀態(tài)。
在迷宮問題中,在每一步將選擇最大值:-7,-6,-5等等。
基于策略的方法
在基于策略的強(qiáng)化學(xué)習(xí)方法中,我們希望能直接優(yōu)化策略函數(shù)π(s)。
策略的定義是,在給定時間的agent 行為。
通過學(xué)習(xí)到策略函數(shù),可以讓我們對每個狀態(tài)映射出最好的相關(guān)動作。
兩種策略:
確定策略:在給定狀態(tài)下總是返回相同動作。
隨機(jī)策略:輸出一個動作的概率分布。
如同我們看到的,策略直接指出了每一步的最優(yōu)行為。
基于模型的方法
在基于模型的強(qiáng)化學(xué)習(xí)中,我們對環(huán)境建模,這意味著我們創(chuàng)造了環(huán)境的模型。
問題是,每種行為都需要不同的模型表示,這就是為什么在接下來的文章中并沒有提及此類方法的原因。
深度強(qiáng)化學(xué)習(xí)的介紹
深度強(qiáng)化學(xué)習(xí)采用深度神經(jīng)網(wǎng)絡(luò)以解決強(qiáng)化學(xué)習(xí)問題。
在例子中,在下一篇文章我們將采用Q-learning與深度Q-learning。
你將會看到顯著地不同,在第一種方法中,我們將使用一個傳統(tǒng)算法那去創(chuàng)建Q值表,以幫助我們找到每種狀態(tài)下應(yīng)采用的行為。第二種方法中,我們將使用神經(jīng)網(wǎng)絡(luò)(得到某狀態(tài)下的近似獎勵:Q值)。
這篇文章里有很多信息,在繼續(xù)進(jìn)行之前,一定要真正掌握住基礎(chǔ)知識。
重點:這篇文章是這一免費(fèi)的強(qiáng)化學(xué)習(xí)博文專欄的第一部分。關(guān)于更多的資源,見此鏈接【5】.
下一次我們將基于Q-learning訓(xùn)練agent 去玩FrozenLake游戲。
-
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5511瀏覽量
121354 -
強(qiáng)化學(xué)習(xí)
+關(guān)注
關(guān)注
4文章
268瀏覽量
11274 -
tensorflow
+關(guān)注
關(guān)注
13文章
329瀏覽量
60571
原文標(biāo)題:【干貨】強(qiáng)化學(xué)習(xí)介紹
文章出處:【微信號:AItists,微信公眾號:人工智能學(xué)家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論