Policy network

"?two branches ?for Deep Reinforcement Learning: based on Value or Policy.

based on Value: DQN(Deep Q Network, google) ?= NN + Q learning

Q learning : (State , action ) -->Q value, for each state choose the action which lead to the largest Q;是一種策略時(shí)間差分方法,核心是異策略,時(shí)間差分。

異策略:行動策略(產(chǎn)生數(shù)據(jù)的策略)和要評估改進(jìn)的策略是分開的,行動策略是5行的thegma-貪婪,評估和改進(jìn)的是6行的貪婪(選擇對每個狀態(tài)來說,取值最大的動作)

時(shí)間差分:更新行為值函數(shù)時(shí)是依據(jù)時(shí)間差分目標(biāo)。時(shí)間差分目標(biāo)如下


1
2


3
4

DQN benefits from: CNN, Experience replay and Fixed Q-targets

Experience replay makes DQN a off-policy "offline learning" which is able to learn from the experience and others' experience。經(jīng)驗(yàn)回放對強(qiáng)化學(xué)習(xí)的學(xué)習(xí)過程進(jìn)行訓(xùn)練。Why,因?yàn)镽L負(fù)責(zé)收集數(shù)據(jù),但上下文數(shù)據(jù)的關(guān)聯(lián)性很強(qiáng) V.S. 神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)要求數(shù)據(jù)是獨(dú)立同分布的。所以用經(jīng)驗(yàn)回放來打破數(shù)據(jù)的關(guān)聯(lián)性。

解釋二:DeepMind創(chuàng)始人Hassabis是倫敦大學(xué)神經(jīng)科學(xué)博士:人在睡覺時(shí),海馬體會把一天的記憶重放給大腦皮層。

5

如上圖,強(qiáng)化學(xué)習(xí)時(shí),會把數(shù)據(jù)存到一個DB,then均勻隨機(jī)采樣抽取數(shù)據(jù),來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。2013NIPS就指出了。

2015nature提出目標(biāo)網(wǎng)絡(luò)來進(jìn)一步減小數(shù)據(jù)間的關(guān)聯(lián)性。DQN用目標(biāo)網(wǎng)絡(luò)Q-targets來單獨(dú)處理時(shí)間差分算法中的TD偏差。

Fixed Q-targets makes DQN owns 2 networks with same structures but different parameters: one for predicting Q real with experience parameters and the other predict Q estimate with the latest parameters.

與表格型傳統(tǒng)Qlearning不同,用NN進(jìn)行值函數(shù)逼進(jìn)時(shí),每一步更新的是網(wǎng)絡(luò)權(quán)值參數(shù),而不是圖2第6行的Q值了,換成了梯度下降更新:


6

7是TD目標(biāo),用網(wǎng)絡(luò)參數(shù)theta來計(jì)算8。

7
8


9動作值函數(shù)逼近網(wǎng)絡(luò)

以往神經(jīng)網(wǎng)絡(luò)逼近值函數(shù)時(shí),【計(jì)算TD目標(biāo)的動作值函數(shù)】用的是網(wǎng)絡(luò)參數(shù)theta,與梯度計(jì)算【要逼近的動作值函數(shù)】,所用的網(wǎng)絡(luò)參數(shù)一樣,這樣就容易導(dǎo)致數(shù)據(jù)關(guān)聯(lián)性,訓(xùn)練不穩(wěn)定,事實(shí)上,這兩個操作的更新頻率等是不完全一樣的。所以單獨(dú)弄一個TD目標(biāo)網(wǎng)絡(luò)來【計(jì)算TD目標(biāo)】,theta-;【逼近值函數(shù)】的網(wǎng)絡(luò)用theta;【計(jì)算TD目標(biāo)的動作函數(shù)】每個固定的步數(shù)更新一次,【用于逼近的動作值函數(shù)網(wǎng)絡(luò)】每一步都更新。所以值函數(shù)的更新變成:

10

DQN偽代碼:

11

第[1]行,初始化回放記憶D,可容納的數(shù)據(jù)條數(shù)為N

第[2]行,利用隨機(jī)權(quán)值theta來初始化動作行為值函數(shù)Q

第[3]行,令theta- = theta來計(jì)算TD目標(biāo)的動作行為值Q

第[4]行,循環(huán)每次事件

第[5]行,初始化每次事件的第一個狀態(tài)s1 ,預(yù)處理得到狀態(tài)對應(yīng)的特征輸入

第[6]行,循環(huán)每個事件的每一步

第[7]行,利用概率thegma選一個隨機(jī)動作at

第[8]行,若小概率事件沒發(fā)生,則用貪婪策略選擇當(dāng)前值函數(shù)最大的那個動作,注意,這里選最大動作時(shí)用到的值函數(shù)網(wǎng)絡(luò)與逼近值函數(shù)所用的網(wǎng)絡(luò)是一個網(wǎng)絡(luò),都對應(yīng)著theta。

注意:第[7]行和第[8]行是行動策略,即thegma-greedy策略。

第[9]行,在仿真器中執(zhí)行動作at,觀測回報(bào)rt與圖像xt+1

第[10]行,設(shè)置st+1 = st, at, xt+1, 預(yù)處理

第[11]行,將轉(zhuǎn)換(,,,)儲存在回放記憶D中

第[12]行,從回放記憶D中均勻隨機(jī)采樣一個轉(zhuǎn)換樣本數(shù)據(jù)

第[13]行,判斷是否是一個事件的終止?fàn)顟B(tài),若是終止?fàn)顟B(tài)則TD目標(biāo)為rj,否則利用TD目標(biāo)網(wǎng)絡(luò)theata- 來計(jì)算TD目標(biāo)

第[14]行,執(zhí)行一次梯度下降算法

第[15]行,更新動作值函數(shù)逼近的網(wǎng)絡(luò)參數(shù)theta

第[16]行,每隔C步更新一次TD目標(biāo)網(wǎng)絡(luò)權(quán)值即令theta- ?= theta

第[17]行,結(jié)束每次事件內(nèi)循環(huán)

第[18]行,結(jié)束事件間的循環(huán)

我們可以看到,在第[12]行,利用了經(jīng)驗(yàn)回放;在[13]行利用了獨(dú)立的目標(biāo)網(wǎng)絡(luò)theta-。第[15]行,更新動作值函數(shù)逼近網(wǎng)絡(luò)參數(shù);第[17]行更新目標(biāo)網(wǎng)絡(luò)參數(shù).

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

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

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