增強(qiáng)學(xué)習(xí) Q-learning

對(duì)于小白菜來(lái)說(shuō),首先是了解Q-learning的基本原理,最好是像學(xué)習(xí)bp,學(xué)習(xí)CNN一樣可以將一條計(jì)算走通,這里分享比較好理解的兩個(gè)博客,
英文原版:http://mnemstudio.org/path-finding-q-learning-tutorial.htm
中文翻譯:https://blog.csdn.net/itplus/article/details/9361915
1.Q-learning訓(xùn)練模型的基本思路:以(狀態(tài),行為,獎(jiǎng)勵(lì),下一個(gè)狀態(tài))構(gòu)成的元組(s^{_{t}},a^{_{t}},r^{_{t+1}},s^{_{t+1}})為樣本進(jìn)行訓(xùn)練,其中s^{_{t}}為當(dāng)前狀態(tài),a^{_{t}}為當(dāng)前狀態(tài)下執(zhí)行的action ,r^{_{t+1}}為執(zhí)行action后的獎(jiǎng)勵(lì),s^{_{t+1}}為下一個(gè)狀態(tài)。而Q-learning的學(xué)習(xí)目標(biāo)是r_{t+1}+\gamma*max_{a}Q(s^{_{t+1}},a),這個(gè)學(xué)習(xí)目標(biāo)是當(dāng)前action獲得reward加上下一步可獲得的最大期望價(jià)值。學(xué)習(xí)目標(biāo)中包含Q-learning的函數(shù)本身,所以其中使用了遞歸求解的思想。
2.一個(gè)具體例子

一棟房子

一棟房子里面有五個(gè)房間,對(duì)門進(jìn)行依次編號(hào),將上述圖簡(jiǎn)化為圖2(0與4互通,2與3互通.....)
圖2 狀態(tài)圖

首先,我們給出一個(gè)情景,一個(gè)機(jī)器人處于這棟房子之中,希望他能夠走出5號(hào)門。假定此時(shí)機(jī)器人處于0號(hào)房間之中。0號(hào)房間只能通往4號(hào)房間,所以給出其中reward為0,無(wú)法到達(dá)的地方仍為-1。當(dāng)機(jī)器人到達(dá)4號(hào)房間時(shí),他有兩個(gè)選擇,到達(dá)5號(hào)房間和0號(hào)房間。假設(shè)機(jī)器人到達(dá)5號(hào)房間(目標(biāo)),給出其相應(yīng)reward為100.因此繪制出圖3

圖3

在這里,狀態(tài)s就是我們的節(jié)點(diǎn),action就是行動(dòng)的方向,因此就會(huì)有下列reward值R矩陣:
R矩陣

由于一開(kāi)始機(jī)器人一無(wú)所知,我們初始化將Q為0,根據(jù)Q-learning的轉(zhuǎn)移規(guī)則:
Q(狀態(tài),動(dòng)作)= R(狀態(tài),動(dòng)作)+ Gamma * Max [ Q(下一個(gè)狀態(tài),所有動(dòng)作)]

我們首先將學(xué)習(xí)參數(shù)Gamma的值設(shè)置為0.8,將初始狀態(tài)設(shè)置為Room 1
Q矩陣

查看矩陣R的第二行(狀態(tài)1)。當(dāng)前狀態(tài)1有兩種可能的動(dòng)作:轉(zhuǎn)到狀態(tài)3,或轉(zhuǎn)到狀態(tài)5.通過(guò)隨機(jī)選擇,我們選擇轉(zhuǎn)到5作為我們的動(dòng)作。
R(1,5)=100
現(xiàn)在讓我們想象如果機(jī)器人處于狀態(tài)5會(huì)發(fā)生什么。查看獎(jiǎng)勵(lì)矩陣R的第六行(即狀態(tài)5)。它有3種可能的動(dòng)作:進(jìn)入狀態(tài)1,4或5。
Q(5,1)=0,Q(5,4)=0,Q(5,5)=0
Q(1,5)= R(1,5)+ 0.8* Max [ Q(5,1),Q(5,4),Q(5,5)]=100+0.8*0=100
一次episode之后,狀態(tài)5為當(dāng)前狀態(tài),更新了Q值

進(jìn)行下一次episode,選取狀態(tài)3為起始點(diǎn)看矩陣R的第四行; 它有3個(gè)可能的動(dòng)作:轉(zhuǎn)到狀態(tài)1,2或4.通過(guò)隨機(jī)選擇,我們選擇轉(zhuǎn)到狀態(tài)1作為我們的動(dòng)作。

現(xiàn)在我們想象我們處于狀態(tài)1.看第二行獎(jiǎng)勵(lì)矩陣R(即狀態(tài)1)。它有兩個(gè)可能的動(dòng)作:轉(zhuǎn)到狀態(tài)3或狀態(tài)5.然后,我們計(jì)算Q值:

Q(狀態(tài),動(dòng)作)= R(狀態(tài),動(dòng)作)+ Gamma * Max [ Q(下一個(gè)狀態(tài),所有動(dòng)作)]

Q(1,5)= R(1,5)+ 0.8 * Max [ Q(1,2),Q(1,5)] = 0 + 0.8 * Max(0,100)= 80更新之后的Q

經(jīng)過(guò)多次episode,最終收斂為Q:
,對(duì)Q矩陣進(jìn)行歸一化(省略百分號(hào)),

最后找到最優(yōu)路徑(紅色線):

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容