摘要:在飛車類游戲中,開始狀態和結束狀態的標志如圖所示。動作設計我們目前在設計飛車類游戲動作時,使用離散的動作,包括三種動作左轉右轉和。圖訓練過程中激勵的趨勢圖總結本文介紹了如何使用在分鐘內讓玩飛車類游戲。
作者:WeTest小編
商業轉載請聯系騰訊WeTest獲得授權,非商業轉載請注明出處。
原文鏈接:https://wetest.qq.com/lab/view/440.html
本文主要介紹如何讓AI在24分鐘內學會玩飛車類游戲。我們使用Distributed PPO訓練AI,在短時間內可以取得不錯的訓練效果。
_
本方法的特點:
純游戲圖像作為輸入
不使用游戲內部接口
可靠的強化學習方法
簡單易行的并行訓練
1. PPO簡介PPO(Proximal Policy Optimization)是OpenAI在2016年NIPS上提出的一個基于Actor-Critic框架的強化學習方法。該方法主要的創新點是在更新Actor時借鑒了TRPO,確保在每次優化策略時,在一個可信任的范圍內進行,從而保證策略可以單調改進。在2017年,DeepMind提出了Distributed PPO,將PPO進行類似于A3C的分布式部署,提高了訓練速度。之后,OpenAI又優化了PPO中的代理損失函數,提高了PPO的訓練效果。
本文不介紹PPO的算法細節,想學習的同學可以參考以下三篇論文:
【1】Schulman J, Levine S, Abbeel P, et al. Trust region policy optimization[C]//International Conference on Machine Learning. 2015: 1889-1897.
【2】Heess N, Sriram S, Lemmon J, et al. Emergence of locomotion behaviours in rich environments[J]. arXiv preprint arXiv:1707.02286, 2017.
【3】Schulman J, Wolski F, Dhariwal P, et al. Proximal policy optimization algorithms[J]. arXiv preprint arXiv:1707.06347, 2017.
2. 圖像識別 2.1 游戲狀態識別游戲狀態識別是識別每一局游戲關卡的開始狀態和結束狀態。在飛車類游戲中,開始狀態和結束狀態的標志如圖1所示。因為紅色框中的標志位置都固定,因此我們使用模板匹配的方法來識別這些游戲狀態。
圖1 游戲狀態標志
從開始狀態到結束狀態之間的圖像是游戲關卡內的圖像,此時進行強化學習的訓練過程。當識別到結束狀態后,暫停訓練過程。結束狀態之后的圖像都是UI圖像,我們使用UI自動化的方案,識別不同的UI,點擊相應的按鈕再次進入游戲關卡,開始下一輪的訓練過程,如圖2所示。
圖2 游戲流程
我們對游戲關卡中的圖像識別了速度的數值,作為強化學習中計算激勵(Reward)的依據,如圖3所示。速度識別包括三個步驟:
第一步,圖像分割,將每一位數字從識別區域中分割出來。
第二步,數字識別,用卷積神經網絡或者模板匹配識別每一位圖像中的數字類別。
第三步,數字拼接,根據圖像分割的位置,將識別的數字拼接起來。
圖3 圖像各個區域示意圖
我們使用的網絡結構如圖4所示。輸入為游戲圖像中小地圖的圖像,Actor輸出當前時刻需要執行的動作,Critic輸出當前時刻運行狀態的評價。AlexNet使用從輸入層到全連接層之前的結構,包含5個卷積層和3個池化層。Actor和Critic都有兩個全連接層,神經元數量分別為1024和512。Actor輸出層使用softmax激活函數,有三個神經元,輸出動作策略。Critic輸出層不使用激活函數,只有一個神經元,輸出評價數值。
圖4 網絡結構示意圖
我們將小地圖圖像的尺寸變為121X121,輸入到AlexNet網絡后,在第三個池化層可以獲得2304維的特征向量(57622=2304)。將這個特征向量作為Actor和Critic的輸入。我們使用在ImageNet上訓練后的AlexNet提取圖像特征,并且在強化學習的過程中沒有更新AlexNet的網絡參數。
3.3 動作設計我們目前在設計飛車類游戲動作時,使用離散的動作,包括三種動作:左轉、右轉和NO Action。每種動作的持續時間為80ms,即模擬觸屏的點擊時間為80ms。這樣的動作設計方式比較簡單,便于AI快速地訓練出效果。如果將動作修改為連續的動作,就可以將漂移添加到動作中,讓AI學習左轉、右轉、漂移和NO Action的執行時刻和執行時長。
3.4 激勵計算如果將游戲的勝負作為激勵來訓練AI,勢必會花費相當長的時間。在本文中,我們根據游戲圖像中的速度數值,計算當前時刻的激勵。假定當前時刻的速度為Vp,前一時刻的速度為Vq,那么激勵R按照以下方式計算:
If Vp ≥ Vq , R = 0.25X(Vp - Vq)
If Vp < Vq , R = -0.25X(Vq - Vp)
If Vp > 250 , R = R + 5.0
If Vp < 50 , R = R - 5.0
這樣的激勵計算方式可以使AI減少撞墻的概率,并且鼓勵AI尋找加速點。
4. 訓練環境 4.1 硬件我們搭建了一個簡單的分布式強化學習環境,可以提高采樣效率和訓練速度,硬件部署方式如圖5所示。
圖5 硬件部署方式
主要包含以下硬件:
1)3部相同分辨率的手機,用于生成數據和執行動作。
2)2臺帶有顯卡的電腦,一臺電腦Proxy用于收集數據、圖像識別以及特征提取,另一臺電腦Server用于訓練AI。
3)1個交換機,連接兩臺電腦,用于交換數據。
4.2 軟件Ubuntu 14.04 + TensorFlow 1.2 + Cuda 7.0
5. 分布式部署我們使用的分布式部署方式如圖6所示。
圖6 分布式部署方式
在Proxy端設置三個proxy進程,分別與三部手機相連接。
在Server端設置一個master進程和三個worker線程。master進程和三個worker線程通過內存交換網絡參數。master進程主要用于保存最新的網絡參數。三個proxy進程分別和三個worker線程通過交換機傳輸數據。
proxy進程有6個功能:
1)從手機接收圖像數據;
2)識別當前游戲狀態;
3)識別速度計算激勵;
4)利用AlexNet提取圖像特征;
5)發送圖像特征和激勵到worker線程,等待worker線程返回動作;
6)發送動作到手機;
worker線程有5個功能:
1)從proxy進程接收圖像特征和激勵;
2)從master進程拷貝最新的網絡參數;
3)將Actor輸出的動作發送到proxy進程;
4)利用PPO更新網絡參數;
5)將更新后的網絡參數傳輸到master進程;
6. 實驗 6.1 參數設置PPO的訓練參數很多,這里介紹幾個重要參數的設置:
1)學習速率:Actor和Critic的學習率都設置為1e-5
2)優化器:Adam優化器
3)Batch Size: 20
4)采樣幀率:10幀/秒
5)更新次數:15次
6)激勵折扣率:0.9
6.2 AI效果視頻鏈接:https://v.qq.com/x/page/q1356...
6.3 數據分析表1和表2分別對比了不同并行數量和不同輸入數據情況下AI跑完賽道和取得名次的訓練數據。最快的訓練過程是在并行數量為3和輸入數據為小地圖的情況下,利用PPO訓練24分鐘就可以讓AI跑完賽道,訓練7.5小時就可以讓AI取得第一名(和內置AI比賽)。并且在減少一部手機采樣的情況下,也可以達到相同的訓練效果,只是訓練過程耗時更長一點。另外,如果將輸入數據從小地圖換成全圖,AI的訓練難度會有一定程度的增加,不一定能達到相同的訓練效果。
表1 AI跑完賽道的數據對比
輸入數據 并行數量 訓練時間 訓練次數 訓練局數
全圖 2 100分鐘 4200次 78局
小地圖 2 40分鐘 1700次 32局
全圖 3 78分鐘 3900次 72局
小地圖 3 24分鐘 1400次 25局
表2 AI取得名次的數據對比
輸入數據 并行數量 訓練時間 訓練次數 訓練局數 名次
小地圖 2 9小時 19000次 354局 1
全圖 3 60小時 98000次 180局 4-6
小地圖 3 7.5小時 17800次 343局 1
如7展示了利用PPO訓練AI過程中激勵的趨勢圖,曲線上每一個點表示一局累計的總激勵。訓練開始時,AI經常撞墻,總激勵為負值。隨著訓練次數的增加,總激勵快速增長,AI撞墻的幾率很快降低。當訓練到1400多次時,總激勵值超過400,此時AI剛好可以跑完賽道。之后的訓練過程,總激勵的趨勢是緩慢增長,AI開始尋找更好的動作策略。
圖7 AI訓練過程中激勵的趨勢圖
本文介紹了如何使用Distributed PPO在24分鐘內讓AI玩飛車類游戲。當前的方法有一定訓練效果,但是也存在很多不足。
目前,我們想到以下幾個改進點,以后會逐一驗證:
1)將AlexNet替換為其他卷積神經網絡,如VGG、Inception-V3等等,提高特征提取的表達能力。
2)提高并行數量,添加更多手機和電腦,提高采樣速度和計算速度。
3)增加Batch Size,使用較長的時間序列數據訓練AI。
4)將離散動作替換為連續動作,增加漂移的學習。
5)多個關卡同時訓練,提高AI的泛化能力。
參考文獻:
【1】Schulman J, Levine S, Abbeel P, et al. Trust region policy optimization[C]//International Conference on Machine Learning. 2015: 1889-1897.
【2】Heess N, Sriram S, Lemmon J, et al. Emergence of locomotion behaviours in rich environments[J]. arXiv preprint arXiv:1707.02286, 2017.
【3】Schulman J, Wolski F, Dhariwal P, et al. Proximal policy optimization algorithms[J]. arXiv preprint arXiv:1707.06347, 2017.
【4】https://morvanzhou.github.io/...
_
**“深度兼容測試”現已對外,騰訊專家為您定制自動化測試腳本,覆蓋應用核心場景,對上百款主流機型進行適配兼容測試,提供詳細測試報告,并且首度使用AI能力助力測試。
點擊http://wetest.qq.com/cloud/deepcompatibilitytesting#/ 即可體驗。**
如果使用當中有任何疑問,歡迎聯系騰訊WeTest企業QQ:2852350015
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19925.html
摘要:為什么未來可能是我們最糟糕的噩夢我想要了解人工智能的原因之一是壞機器人的主題總是讓我感到困惑。沒有那個人工智能系統會像電影描述的那樣變的邪惡。意識盒子他還觸及了另一個與人工智能意識相關的大話題。這并不是說人工智能不可能發生。 為什么未來可能是我們最糟糕的噩夢 我想要了解人工智能的原因之一是壞機器人的主題總是讓我感到困惑。關于邪惡機器人的所有電影看起來都是不切實際的,我無法真正理解人工智...
摘要:今天我們來說一個非常實用的例子,小菜接到組長老王的一個任務,安排一個新的活,這個活是這樣的老王小菜啊,你幫我寫一個登入腳本,跑十幾條命令到服務器上,然后存一下日志。這個時候,小菜偷偷的瞄了一眼組長老王,常舒一口氣,總于寫完了。 Python學了好幾年,發現功力還是那樣,很多同學經常這樣抱...
摘要:對此,聶頌首先表示,在游戲解決方案上,華為云不做游戲產品,不與游戲企業爭利,堅持做游戲企業的發動機和生產力。華為云游戲解決方案目前已經構建了游戲研發游戲部署游戲運營游戲創新等全產業鏈條的能力。2018年4月2日,在GMGC北京2018第七屆全球游戲大會現場,賽迪網記者有幸采訪到了華為消費互聯網解決方案總經理聶頌,他分享了游戲行業創新發展的技術基石,以及作為游戲創新要素的AI、5G、區塊鏈等技...
摘要:為啥你天天刷抖音一點都不煩,因為你覺得視頻好看你有興趣啊。比如我們說你玩是不是要開始搭建一個自己的網站,是不是可以自己寫一個小的腳本來自動發消息給你的女朋友等等,通過這樣的小例子來慢慢的培養自己的學習的興趣。學習,切勿貪快貪多。 大家好,我是菜鳥哥! 周末啦,跟大家聊一下我們粉絲團的情況...
閱讀 3025·2023-04-25 18:00
閱讀 2229·2021-11-23 10:07
閱讀 4076·2021-11-22 09:34
閱讀 1252·2021-10-08 10:05
閱讀 1576·2019-08-30 15:55
閱讀 3442·2019-08-30 11:21
閱讀 3349·2019-08-29 13:01
閱讀 1384·2019-08-26 18:26