"?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;是一種策略時間差分方法,核心是異策略,時間差分。
異策略:行動策略(產(chǎn)生數(shù)據(jù)的策略)和要評估改進的策略是分開的崩侠,行動策略是5行的thegma-貪婪逆趣,評估和改進的是6行的貪婪(選擇對每個狀態(tài)來說碰声,取值最大的動作)
時間差分:更新行為值函數(shù)時是依據(jù)時間差分目標(biāo)撩笆。時間差分目標(biāo)如下
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)驗回放對強化學(xué)習(xí)的學(xué)習(xí)過程進行訓(xùn)練滑潘。Why,因為RL負(fù)責(zé)收集數(shù)據(jù)锨咙,但上下文數(shù)據(jù)的關(guān)聯(lián)性很強 V.S. 神經(jīng)網(wǎng)絡(luò)訓(xùn)練時要求數(shù)據(jù)是獨立同分布的语卤。所以用經(jīng)驗回放來打破數(shù)據(jù)的關(guān)聯(lián)性。
解釋二:DeepMind創(chuàng)始人Hassabis是倫敦大學(xué)神經(jīng)科學(xué)博士:人在睡覺時,海馬體會把一天的記憶重放給大腦皮層粹舵。
如上圖钮孵,強化學(xué)習(xí)時,會把數(shù)據(jù)存到一個DB齐婴,then均勻隨機采樣抽取數(shù)據(jù)油猫,來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。2013NIPS就指出了柠偶。
2015nature提出目標(biāo)網(wǎng)絡(luò)來進一步減小數(shù)據(jù)間的關(guān)聯(lián)性情妖。DQN用目標(biāo)網(wǎng)絡(luò)Q-targets來單獨處理時間差分算法中的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進行值函數(shù)逼進時毡证,每一步更新的是網(wǎng)絡(luò)權(quán)值參數(shù),而不是圖2第6行的Q值了蔫仙,換成了梯度下降更新:
7是TD目標(biāo)料睛,用網(wǎng)絡(luò)參數(shù)theta來計算8。
以往神經(jīng)網(wǎng)絡(luò)逼近值函數(shù)時摇邦,【計算TD目標(biāo)的動作值函數(shù)】用的是網(wǎng)絡(luò)參數(shù)theta恤煞,與梯度計算【要逼近的動作值函數(shù)】,所用的網(wǎng)絡(luò)參數(shù)一樣施籍,這樣就容易導(dǎo)致數(shù)據(jù)關(guān)聯(lián)性居扒,訓(xùn)練不穩(wěn)定,事實上丑慎,這兩個操作的更新頻率等是不完全一樣的喜喂。所以單獨弄一個TD目標(biāo)網(wǎng)絡(luò)來【計算TD目標(biāo)】,theta-竿裂;【逼近值函數(shù)】的網(wǎng)絡(luò)用theta玉吁;【計算TD目標(biāo)的動作函數(shù)】每個固定的步數(shù)更新一次,【用于逼近的動作值函數(shù)網(wǎng)絡(luò)】每一步都更新腻异。所以值函數(shù)的更新變成:
DQN偽代碼:
第[1]行进副,初始化回放記憶D,可容納的數(shù)據(jù)條數(shù)為N
第[2]行悔常,利用隨機權(quán)值theta來初始化動作行為值函數(shù)Q
第[3]行敢会,令theta- = theta來計算TD目標(biāo)的動作行為值Q
第[4]行,循環(huán)每次事件
第[5]行这嚣,初始化每次事件的第一個狀態(tài)s1 ,預(yù)處理得到狀態(tài)對應(yīng)的特征輸入
第[6]行鸥昏,循環(huán)每個事件的每一步
第[7]行,利用概率thegma選一個隨機動作at
第[8]行姐帚,若小概率事件沒發(fā)生吏垮,則用貪婪策略選擇當(dāng)前值函數(shù)最大的那個動作,注意,這里選最大動作時用到的值函數(shù)網(wǎng)絡(luò)與逼近值函數(shù)所用的網(wǎng)絡(luò)是一個網(wǎng)絡(luò)膳汪,都對應(yīng)著theta唯蝶。
注意:第[7]行和第[8]行是行動策略,即thegma-greedy策略遗嗽。
第[9]行粘我,在仿真器中執(zhí)行動作at,觀測回報rt與圖像xt+1
第[10]行痹换,設(shè)置st+1 = st, at, xt+1, 預(yù)處理
第[11]行征字,將轉(zhuǎn)換(,娇豫,匙姜,)儲存在回放記憶D中
第[12]行,從回放記憶D中均勻隨機采樣一個轉(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- 來計算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)驗回放庐杨;在[13]行利用了獨立的目標(biāo)網(wǎng)絡(luò)theta-选调。第[15]行夹供,更新動作值函數(shù)逼近網(wǎng)絡(luò)參數(shù);第[17]行更新目標(biāo)網(wǎng)絡(luò)參數(shù).