官术网_书友最值得收藏!

3.4 強化學習在自動化測試中的應用

在游戲進入關卡后,我們可以使用3.2節和3.3節介紹的強化學習方法讓游戲自動運行起來。本節以賽車游戲為例介紹如何使用A3C進行自動化測試。

在進行自動化測試之前,我們需要訓練強化學習模型,訓練流程如圖3-7所示。在進入游戲后,通過UI自動化的方式讓游戲到達關卡開始的界面,此時開始強化學習的訓練過程。當游戲到達關卡結束的界面時,暫停強化學習的訓練過程,再次使用UI自動化的方式讓游戲返回到關卡開始的界面,如此反復進行,直到達到最大的訓練次數。

圖3-7 強化學習的訓練流程

強化學習模型將小地圖作為輸入區域,游戲的控制位置作為操作區域。并且,為了獲取強化學習訓練過程中的獎勵,我們將游戲關卡中的速度值作為計算獎勵的依據,如圖3-8所示。當速度增加時,獎勵為正值;當速度降低時,獎勵為負值。

圖3-8 強化學習使用的各個區域示意圖

強化學習模型的網絡結構如圖3-9所示。輸入為游戲圖像中小地圖的圖像,演員網絡輸出當前時刻需要執行的動作,評論家網絡輸出當前時刻運行狀態的評價。AlexNet從輸入層到全連接層,包含5個卷積層和3個池化層。演員和評論家網絡都有兩個全連接層,神經元數量分別為1024和512。演員網絡輸出層使用softmax激活函數,神經元數量等于動作數量,輸出動作策略。評論家網絡輸出層不使用激活函數,只有一個神經元,輸出評價數值。

圖3-9 A3C網絡結構示意

在設計賽車游戲動作時,可以使用離散的動作,包括:左轉、右轉和無動作。這樣的動作設計方式比較簡單,便于強化學習模型快速訓練出效果。也可以使用連續的動作,將漂移添加到動作中,讓強化學習模型學習左轉、右轉、漂移和無動作的執行時刻和執行時長。

在訓練時需要使用3.3.4節中介紹的A3C訓練過程,利用分布式結構提高樣本的采集速度,縮短強化學習模型的訓練時間。當訓練完成后,就可以使用訓練好的強化學習模型在游戲關卡中進行自動化測試了。

主站蜘蛛池模板: 平舆县| 成安县| 房山区| 温州市| 吉林省| 九江市| 安溪县| 大安市| 呼图壁县| 深圳市| 永年县| 达日县| 商丘市| 太仆寺旗| 米林县| 来安县| 宾川县| 廉江市| 泊头市| 延安市| 建平县| 龙里县| 中宁县| 长春市| 射阳县| 密山市| 新野县| 德化县| 阿拉善右旗| 鹤壁市| 竹溪县| 宁津县| 洛阳市| 临泉县| 漠河县| 凌海市| 庆安县| 临潭县| 绥江县| 缙云县| 简阳市|