- AI自動化測試:技術原理、平臺搭建與工程實踐
- 騰訊TuringLab團隊
- 759字
- 2020-08-13 13:47:07
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訓練過程,利用分布式結構提高樣本的采集速度,縮短強化學習模型的訓練時間。當訓練完成后,就可以使用訓練好的強化學習模型在游戲關卡中進行自動化測試了。
- Microsoft Exchange Server PowerShell Cookbook(Third Edition)
- Instant 960 Grid System
- C++程序設計基礎教程
- 精通網絡視頻核心開發技術
- 量化金融R語言高級教程
- Julia高性能科學計算(第2版)
- 軟件測試綜合技術
- 零基礎學Python編程(少兒趣味版)
- HTML5+CSS3+JavaScript 從入門到項目實踐(超值版)
- CodeIgniter Web Application Blueprints
- JQuery風暴:完美用戶體驗
- jQuery Mobile Web Development Essentials(Second Edition)
- Android熱門應用開發詳解
- R語言:邁向大數據之路
- A/B 測試:創新始于試驗