朱以汀
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
強(qiáng)化學(xué)習(xí)(Reinforcement learning)是深度學(xué)習(xí)的一個(gè)重要分支,簡(jiǎn)單來說,強(qiáng)化學(xué)習(xí)中分為兩個(gè)概念,一個(gè)是Agent,即控制算法代理,第二個(gè)是環(huán)境,Agent每做出一個(gè)決策,都會(huì)形成一定的效果,而環(huán)境會(huì)根據(jù)效果來給Agent一個(gè)反饋(reward),Agent根據(jù)這個(gè)反饋來不斷調(diào)整自己,直到一個(gè)收斂的狀態(tài)。這就是強(qiáng)化學(xué)習(xí)的基本思想,由強(qiáng)化學(xué)習(xí)引申出來的具有代表性的算法就是DeepMind在2015年提出的DQN算法,以及后來針對(duì)DQN做的一系列優(yōu)化,例如Double-DQN以及Dueling-DQN。
強(qiáng)化學(xué)習(xí)也并非一個(gè)領(lǐng)域的產(chǎn)物,它分為決策迭代和值迭代,在各個(gè)領(lǐng)域中運(yùn)用都很廣泛:
●在計(jì)算機(jī)科學(xué)中,主要表現(xiàn)為算法,機(jī)器學(xué)習(xí)方向的;
●在工程中,在決定有關(guān)序列的行為是,能夠得到最優(yōu)解;
●在神經(jīng)科學(xué)中,與神經(jīng)網(wǎng)絡(luò)像素,體現(xiàn)為大腦做出的決策,用于反饋系統(tǒng);
●在心理學(xué)中,與人類類似,研究動(dòng)物的決策、什么驅(qū)動(dòng)動(dòng)物的行為;
●在經(jīng)濟(jì)學(xué)中,提現(xiàn)于宏觀經(jīng)濟(jì)以及博弈論。
所以總而言之,強(qiáng)化學(xué)習(xí)就是為了研究最有決策的,為什么人類能夠做出最優(yōu)的決策。
Q值是狀態(tài)價(jià)值,Q Learning算法的思想完全根據(jù)value iteration得到。但要明確一點(diǎn)是value iteration每次都對(duì)所有的Q值更新一遍,也就是所有的狀態(tài)和動(dòng)作。但事實(shí)上在實(shí)際情況下我們沒辦法遍歷所有的狀態(tài),還有所有的動(dòng)作,我們只能得到有限的系列樣本。因此,只能使用有限的樣本進(jìn)行操作。那么,怎么處理?Q Learning提出了一種更新Q值的辦法:
雖然根據(jù)value iteration算出target Q,也就是標(biāo)簽Q值,所以神經(jīng)網(wǎng)絡(luò)會(huì)根據(jù)Q值和target Q值做梯度下降,不斷地更新神經(jīng)網(wǎng)絡(luò)的權(quán)值,直到收斂,也就是神經(jīng)網(wǎng)絡(luò)能夠做比較滿意的決策了,這個(gè)過程就是DQN的迭代過程。
具體的算法如下:
初始化Q(s , a),?s∈S,a∈A(s),任意的數(shù)值,并且Q(terminal-state,·)=0
重復(fù)(對(duì)每一節(jié)episode):
初始化狀態(tài)S
重復(fù)(對(duì)episode中的每一步):
使用某一個(gè)policy比如(ε-greedy)根據(jù)狀態(tài)S選取一個(gè)動(dòng)作執(zhí)行
執(zhí)行完動(dòng)作后,觀察reward和新的狀態(tài)S’
循環(huán)直到S終止
網(wǎng)絡(luò)模型結(jié)構(gòu):
輸入是經(jīng)過處理的4個(gè)連續(xù)的84x84圖像,然后經(jīng)過兩個(gè)卷積層,兩個(gè)全連接層,最后輸出包含每一個(gè)動(dòng)作Q值的向量。對(duì)于這個(gè)網(wǎng)絡(luò)的結(jié)構(gòu),針對(duì)不同的問題可以有不同的設(shè)置。具體結(jié)構(gòu)如圖1所示:
圖1
綜上所述,強(qiáng)化學(xué)習(xí)可以應(yīng)用于游戲中,即輸入游戲的連續(xù)4幀畫面,通過一次網(wǎng)絡(luò)的前饋輸出動(dòng)作,同時(shí)給出其動(dòng)作對(duì)應(yīng)的reward值,在反饋至神經(jīng)網(wǎng)絡(luò),不斷迭代更新其參數(shù)。常用于畫面簡(jiǎn)單的游戲,有利于前兩層卷積層的特征提取,例如Atari或者flappy bird,都能夠在一天的時(shí)間內(nèi)收斂,Agent能玩到一個(gè)比較高的分?jǐn)?shù)。
圖2
也能用于比較復(fù)雜的3D游戲,在理論上是可以收斂的,但是其收斂速度比較慢,有可能一個(gè)月都無法收斂到一個(gè)比較滿意的結(jié)果,所以可能還需要在神經(jīng)網(wǎng)絡(luò)中間插入其他游戲數(shù)據(jù)。
這樣就能實(shí)現(xiàn)Agent自動(dòng)玩游戲,從而達(dá)到游戲自動(dòng)化測(cè)試的目的。
本文給出了強(qiáng)化學(xué)習(xí)的介紹以及DQN網(wǎng)絡(luò)模型的結(jié)構(gòu)與介紹,闡述了DQN在游戲自動(dòng)化測(cè)試中的應(yīng)用,提出了游戲自動(dòng)化測(cè)試的新技術(shù)。
[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