朱以汀
(四川大學計算機學院,成都 610065)
強化學習(Reinforcement learning)是深度學習的一個重要分支,簡單來說,強化學習中分為兩個概念,一個是Agent,即控制算法代理,第二個是環(huán)境,Agent每做出一個決策,都會形成一定的效果,而環(huán)境會根據(jù)效果來給Agent一個反饋(reward),Agent根據(jù)這個反饋來不斷調(diào)整自己,直到一個收斂的狀態(tài)。這就是強化學習的基本思想,由強化學習引申出來的具有代表性的算法就是DeepMind在2015年提出的DQN算法,以及后來針對DQN做的一系列優(yōu)化,例如Double-DQN以及Dueling-DQN。
強化學習也并非一個領域的產(chǎn)物,它分為決策迭代和值迭代,在各個領域中運用都很廣泛:
●在計算機科學中,主要表現(xiàn)為算法,機器學習方向的;
●在工程中,在決定有關序列的行為是,能夠得到最優(yōu)解;
●在神經(jīng)科學中,與神經(jīng)網(wǎng)絡像素,體現(xiàn)為大腦做出的決策,用于反饋系統(tǒng);
●在心理學中,與人類類似,研究動物的決策、什么驅動動物的行為;
●在經(jīng)濟學中,提現(xiàn)于宏觀經(jīng)濟以及博弈論。
所以總而言之,強化學習就是為了研究最有決策的,為什么人類能夠做出最優(yōu)的決策。
Q值是狀態(tài)價值,Q Learning算法的思想完全根據(jù)value iteration得到。但要明確一點是value iteration每次都對所有的Q值更新一遍,也就是所有的狀態(tài)和動作。但事實上在實際情況下我們沒辦法遍歷所有的狀態(tài),還有所有的動作,我們只能得到有限的系列樣本。因此,只能使用有限的樣本進行操作。那么,怎么處理?Q Learning提出了一種更新Q值的辦法:

雖然根據(jù)value iteration算出target Q,也就是標簽Q值,所以神經(jīng)網(wǎng)絡會根據(jù)Q值和target Q值做梯度下降,不斷地更新神經(jīng)網(wǎng)絡的權值,直到收斂,也就是神經(jīng)網(wǎng)絡能夠做比較滿意的決策了,這個過程就是DQN的迭代過程。
具體的算法如下:
初始化Q(s , a),?s∈S,a∈A(s),任意的數(shù)值,并且Q(terminal-state,·)=0
重復(對每一節(jié)episode):
初始化狀態(tài)S
重復(對episode中的每一步):
使用某一個policy比如(ε-greedy)根據(jù)狀態(tài)S選取一個動作執(zhí)行
執(zhí)行完動作后,觀察reward和新的狀態(tài)S’

循環(huán)直到S終止
網(wǎng)絡模型結構:
輸入是經(jīng)過處理的4個連續(xù)的84x84圖像,然后經(jīng)過兩個卷積層,兩個全連接層,最后輸出包含每一個動作Q值的向量。對于這個網(wǎng)絡的結構,針對不同的問題可以有不同的設置。具體結構如圖1所示:

圖1
綜上所述,強化學習可以應用于游戲中,即輸入游戲的連續(xù)4幀畫面,通過一次網(wǎng)絡的前饋輸出動作,同時給出其動作對應的reward值,在反饋至神經(jīng)網(wǎng)絡,不斷迭代更新其參數(shù)。常用于畫面簡單的游戲,有利于前兩層卷積層的特征提取,例如Atari或者flappy bird,都能夠在一天的時間內(nèi)收斂,Agent能玩到一個比較高的分數(shù)。

圖2
也能用于比較復雜的3D游戲,在理論上是可以收斂的,但是其收斂速度比較慢,有可能一個月都無法收斂到一個比較滿意的結果,所以可能還需要在神經(jīng)網(wǎng)絡中間插入其他游戲數(shù)據(jù)。
這樣就能實現(xiàn)Agent自動玩游戲,從而達到游戲自動化測試的目的。
本文給出了強化學習的介紹以及DQN網(wǎng)絡模型的結構與介紹,闡述了DQN在游戲自動化測試中的應用,提出了游戲自動化測試的新技術。
[1]Mnih V1,Kavukcuoglu K1,Silver D1,Rusu AA1,Veness J1,Bellemare MG1,Graves A1,Riedmiller M1,Fidjeland AK1,Ostrovski G1,Petersen S1,Beattie C1,Sadik A1,Antonoglou I1,King H1,Kumaran D1,Wierstra D1,Legg S1,Hassabis D1.Human-Level Control Through Deep Reinforcement Learning,2015.
[2]Hado van Hasselt,Arthur Guez,David Silver.Deep Reinforcement Learning with Double Q-learning,2015.
[3]Ziyu Wang,Tom Schaul,Matteo Hessel,Hado van Hasselt,Marc Lanctot,Nando de Freitas.Dueling Network Architectures for Deep Reinforcement Learning,2016.
[4]Volodymyr Mnih,Adrià Puigdomènech Badia,Mehdi Mirza,Alex Graves,Timothy P.Lillicrap,Tim Harley,David Silver,Koray Kavukcuoglu.Asynchronous Methods for Deep Reinforcement Learning,2016