DQN

好久沒(méi)寫(xiě)了,看了一下中間隔了居然有一個(gè)月,這種沒(méi)有活水流入的生活,確實(shí)會(huì)讓人feel bad;

這篇要講到DQN,主要是Nature2015那版(在這之前還有一版NIPS2013):

為什么要把Q-learning從用表格來(lái)記錄每個(gè)狀態(tài)的價(jià)值升級(jí)到神經(jīng)網(wǎng)絡(luò)呢,因?yàn)闋顟B(tài)和動(dòng)作空間如果是高維連續(xù)的,那么表格顯然記錄不過(guò)來(lái);

整個(gè)DQN的過(guò)程是這樣的,首先將當(dāng)前狀態(tài)s輸入網(wǎng)絡(luò)得到所有action的Q值,以argmax選擇Q值最大的那個(gè)a作為當(dāng)前動(dòng)作,然后environment又會(huì)轉(zhuǎn)移到下一個(gè)狀態(tài)s’,并得到reward;將(s,a,s',r)作為一條記錄,放入經(jīng)驗(yàn)池,然后每次從經(jīng)驗(yàn)池取一定數(shù)目的訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練。

神經(jīng)網(wǎng)絡(luò)最重要的是loss的設(shè)計(jì),這里從Q-learning的貝爾曼公式出發(fā):

每一次Q值的迭代,都是用當(dāng)前動(dòng)作可能得到的最大價(jià)值去迭代當(dāng)前的Q值,這里我們可以認(rèn)為函數(shù)的目標(biāo)就是使當(dāng)前的Q估計(jì)值不斷接近Q目標(biāo)值;那么loss即如此:這里的y是r+r*maxQ(s',a),

當(dāng)前網(wǎng)絡(luò)得到在s采取動(dòng)作a的Q值,那么yi需要的是在s采取動(dòng)作a后到達(dá)s'的最大可能Q值,是根據(jù)上一個(gè)迭代周期得到的;所以這里用到了雙網(wǎng)絡(luò)結(jié)構(gòu),即把s‘輸入target網(wǎng)絡(luò),用target網(wǎng)絡(luò)的參數(shù)計(jì)算出q-target值:

然后梯度下降:

這里的雙網(wǎng)絡(luò)結(jié)構(gòu)也是從NIPS2013到Nature2015的一大改進(jìn),“引入target_net后,再一段時(shí)間里目標(biāo)Q值保持不變,一定程度降低了當(dāng)前Q值和目標(biāo)Q值的相關(guān)性,提高了算法穩(wěn)定性”。

所以說(shuō)如果用單網(wǎng)絡(luò)的話(huà)就是把s'和a'輸?shù)骄W(wǎng)絡(luò)里?這里目標(biāo)值在單網(wǎng)絡(luò)的得到如何得到的?就是把s‘輸入當(dāng)前網(wǎng)絡(luò)得到,然后用得到的q值去和s得到的做loss。

RL和DL結(jié)合還有一個(gè)問(wèn)題是DL都是樣本獨(dú)立的,但是RL前后狀態(tài)相關(guān),這里用到了經(jīng)驗(yàn)回放的策略解決該問(wèn)題,說(shuō)白了就是把樣本存起來(lái),然后每次拿個(gè)mini-batch訓(xùn)練。

?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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