陳明陽 劉 博 茆意風(fēng)
(美國賓夕法尼亞大學(xué),美國 賓夕法尼亞州19019)
本文采用一個通用的強(qiáng)化學(xué)習(xí)算法,并通過自我發(fā)揮和學(xué)習(xí),不斷優(yōu)化算法,研究在AlphaGo 中應(yīng)用的自我游戲策略和AlphaZero 的變化。由于AlphaZero 不會增加訓(xùn)練數(shù)據(jù),也不會在MCTS 期間變換板的位置。因此,使用蒙特卡羅樹搜索代替beta搜索,采用通過改變其他對稱方面來訓(xùn)練非對稱情況下的策略,研究這種方法,找到一種通用的自我游戲強(qiáng)化學(xué)習(xí)方法。
本文主要是將深度強(qiáng)化學(xué)習(xí)應(yīng)用于街機(jī)學(xué)習(xí)環(huán)境中訓(xùn)練7款A(yù)tari 游戲,該方法采用Q 函數(shù)的神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型,模型的輸入為像素,輸出為評估未來回報的價值函數(shù)。本文的關(guān)鍵點是Actor-Critic 算法,它是提出并分析一類基于隨機(jī)平穩(wěn)策略的馬爾可夫決策過程優(yōu)化的算法,也是兩個時間尺度的算法,其中,Critic 使用具有線性近似結(jié)構(gòu)的時域?qū)W習(xí),并且基于Critic提供的信息,在近似梯度方向上更新Actor。通過研究表明,Critic 的特征應(yīng)該跨越由Actor 的選擇所規(guī)定的子空間,提出收斂性和有待解決的問題。
PyGame 是一個基于python 的虛擬格斗游戲環(huán)境,在此過程中接收來自鍵盤和鼠標(biāo)的輸入,一組應(yīng)用編程接口和預(yù)定義的類降低了虛擬環(huán)境創(chuàng)建的難度。ICRA 挑戰(zhàn)賽的真實環(huán)境為8 米*5 米的場地,兩個機(jī)器人的出場地位于左上角和右下角,補充場地位于黃色十字區(qū)域。機(jī)器人在補給區(qū)被修復(fù),當(dāng)它們站在補給區(qū)時,它們的生命值會持續(xù)上升,ICRA 的真實現(xiàn)場環(huán)境如圖1 所示。
圖1 ICRA 的真實現(xiàn)場環(huán)境
在圖1 中,機(jī)器人無法通過的障礙物被顯示為深灰色矩形。通過研究決定,采用重新創(chuàng)建ICRA AI 挑戰(zhàn)賽的新戰(zhàn)斗環(huán)境,如圖2 所示,其中,障礙物和補給區(qū)域與原來的位置相同。為了增加決策的復(fù)雜性,增設(shè)彈藥重裝區(qū),圖中的彈藥重裝區(qū)域顯示為綠色區(qū)域,機(jī)器人可以在此區(qū)域進(jìn)行重新裝彈,以避免子彈耗盡。
獎勵規(guī)則設(shè)置如下:在所有迭代開始時,獎勵被初始化為零。如果敵人被擊中,那么射手的獎勵將增加10 點,而敵人將減少20 點。如果敵人被摧毀,獎勵會激增到100 點,如果玩家被摧毀,獎勵本身會下降到200 點。彈藥和生命點不會影響?yīng)剟?,而生存時間將以對數(shù)形式加入獎勵。
實現(xiàn)的深度Q 學(xué)習(xí)是基于Pytorch 的卷積神經(jīng)網(wǎng)絡(luò)。網(wǎng)絡(luò)的輸入是模型訓(xùn)練過程中PyGame 環(huán)境的一個截圖,輸出是給定輸入環(huán)境下的一個預(yù)測動作。該動作包括四個方向的移動(上、下、左、打),兩個槍操作方向(順時針、逆時針)和射擊。該神經(jīng)網(wǎng)絡(luò)為三層卷積神經(jīng)網(wǎng)絡(luò),具有不同大小的核和漏項。激活層被分配給非線性ReLU 層,我們選擇時間差異誤差作為損失函數(shù),兩者具有相同的損失函數(shù)。把具有相同的最佳點作為傳統(tǒng)的Q-learning 函數(shù)。下面列出了這個損失函數(shù)的梯度下降:
因此,Q-learning 的目標(biāo)函數(shù)為:
本模型的目標(biāo)是利用神經(jīng)網(wǎng)絡(luò)的非線性特性來模擬這個函數(shù),該模型產(chǎn)生Q-learning 函數(shù)的估計,而TD 誤差在Q-learning 中找到相同的最優(yōu)值。
實現(xiàn)角色評論設(shè)模型設(shè)定在pytorch 中完成,模型的輸入是抽象的狀態(tài)元組,狀態(tài)元組代表在某一時刻坦克的狀態(tài),包括:坦克中的位置、速度、運行狀況和子彈數(shù)量等。Critic 模型采用價值函數(shù)進(jìn)行估計,其中,選擇Q 值作為估計的目標(biāo)值。而Actor模型是決策制定的,該模型按照Critic 建議的方向更新政策分配,其中,Critic 函數(shù)和Actor 函數(shù)都屬于神經(jīng)網(wǎng)絡(luò)模擬。
上述模型設(shè)計是在單人游戲環(huán)境中實現(xiàn)的,通過計算機(jī)自動控制敵人,電腦玩家可以忽略障礙物的封鎖,并且擁有無限數(shù)量的彈藥。優(yōu)化后的虛擬環(huán)境中可以實現(xiàn)2 人戰(zhàn)斗,兩個玩家在后端由兩個獨立的模型控制,通過重新部署AlphaGo 戰(zhàn)略,試圖找出讓機(jī)器人從零開始學(xué)習(xí)規(guī)則的策略。
通過采用DQN 模型仿真結(jié)果對比,DQN 的訓(xùn)練效果明顯優(yōu)于Actor-Critic 的訓(xùn)練效果,并且convolutional neural network在決策過程中更能有效的找到合適的動作,這是因為圖像的復(fù)雜性使得模型更容易判斷游戲情況,優(yōu)化后的圖像包含許多有用信息,如封鎖區(qū)域和不同的供電區(qū)域位置。然而,有時這種模式會以錯誤的方式表現(xiàn),比如向空中射擊和在進(jìn)入近距離戰(zhàn)斗前浪費彈藥,采用的DQN 模型獎勵功能如圖3 所示。
圖3 DQN 模型獎勵功能圖
由于選擇有限維數(shù)的狀態(tài)元組,模型只能感知坦克的當(dāng)前狀態(tài),而無法告訴模型上電區(qū)域和障礙物的位置。此外,這種方法的訓(xùn)練難度大于前一種方法,這意味著訓(xùn)練時間較短,可能會導(dǎo)致模型無法收斂到更大的期望回報。從圖4 中可以看出,該模型在提高獎勵期望方面并不有效。
圖4 演員評論模型獎勵功能圖
從獎勵情節(jié)中可以看到,有時玩家能夠找到消滅敵人的策略,而有時兩名玩家在空白區(qū)域徘徊。這是因為訓(xùn)練時間有限,這導(dǎo)致模型無法探索虛擬環(huán)境中的所有可能性,圖5 和圖6 列出了兩個玩家的獎勵結(jié)果。
圖5 Player1 獎勵功能情節(jié)
圖6 Player2 獎勵功能情節(jié)
在后續(xù)的工作中,需要更多的時間和更先進(jìn)的設(shè)備來完善本模型,pygame 環(huán)境每次都需要截屏,這會浪費大量的計算資源,因此以后選擇更加簡練的環(huán)境,以此來提高效率。未來,可以通過調(diào)整該模型的神經(jīng)網(wǎng)絡(luò)和學(xué)習(xí)策略來實施進(jìn)一步優(yōu)化。