- AI自動化測試:技術(shù)原理、平臺搭建與工程實踐
- 騰訊TuringLab團(tuán)隊
- 1256字
- 2020-08-13 13:47:07
4.2 模仿學(xué)習(xí)研究現(xiàn)狀
4.2.1 行為克隆
行為克隆可以看作一種監(jiān)督學(xué)習(xí)的算法,其主要思路是根據(jù)玩家提供的游戲錄制的樣本,由AI通過深度網(wǎng)絡(luò)等模型從樣本集中提取玩家玩游戲的策略,當(dāng)AI與游戲環(huán)境交互時,能匹配當(dāng)前的游戲狀態(tài),然后模仿玩家的動作進(jìn)行應(yīng)對。該算法與監(jiān)督的圖像分類問題很相似:在圖像分類問題中,需要提供圖像集和每張圖像對應(yīng)的類別標(biāo)簽,然后構(gòu)建深度網(wǎng)絡(luò)結(jié)構(gòu),提取圖像中的潛在語義特征,優(yōu)化目標(biāo)要求模型預(yù)測的類別與真實的圖像類別盡量相同;而在行為克隆中,它是將圖像分類中的圖像類別標(biāo)簽轉(zhuǎn)換成玩家的動作標(biāo)簽,特征提取部分同樣基于深度網(wǎng)絡(luò),訓(xùn)練模型的目標(biāo)要求相同狀態(tài)下盡量輸出與玩家相同的動作。
與監(jiān)督的圖像分類問題相比,行為克隆訓(xùn)練的難度更高,主要有以下幾個原因。
第一,在圖像分類問題中,我們可以在構(gòu)建樣本集時便充分考慮訓(xùn)練集和樣本集的樣本分布,盡量保證兩者相似,這樣訓(xùn)練出來的模型在訓(xùn)練集和驗證集都能取得較好的效果。但是,行為克隆訓(xùn)練出來的模型要求會根據(jù)當(dāng)前的游戲畫面做動作,游戲環(huán)境會根據(jù)當(dāng)前動作更新游戲畫面。也就是說在行為克隆問題中,訓(xùn)練集是根據(jù)玩家策略錄制的圖像和動作集合,而測試集是根據(jù)模型學(xué)習(xí)的策略生成的游戲圖像,一旦模型策略和玩家策略存在偏差,訓(xùn)練集和樣本集的樣本分布會出現(xiàn)較大差異。當(dāng)AI由于動作偏差而進(jìn)入訓(xùn)練集中未出現(xiàn)的場景時,模型無法做出正確的動作。
第二,圖像分類目前有諸如ImageNet的大規(guī)模數(shù)據(jù)集,可以先在大規(guī)模數(shù)據(jù)集訓(xùn)練得到初始的網(wǎng)絡(luò)模型,由于圖像樣本覆蓋大量場景,基于其訓(xùn)練的模型不容易出現(xiàn)過擬合的情況。然后,針對特定任務(wù),在初始模型上微調(diào)模型參數(shù),這樣即使特定任務(wù)中采集的樣本圖像較少,也能提取到較為健壯的潛在特征,防止模型過擬合。但是針對游戲中的行為克隆問題,目前并沒有大規(guī)模的游戲樣本集,而且自然場景圖像與游戲圖像在外觀上存在較大差異,不同游戲風(fēng)格各異,很難提取針對游戲的通用特征,這也就導(dǎo)致行為克隆訓(xùn)練的模型容易過擬合,即訓(xùn)練過程中能獲得較好的效果,但在測試過程中難以做出與玩家類似的動作。
第三,在圖像分類問題中,圖像的類別很少會出現(xiàn)標(biāo)簽?zāi):那闆r。針對相同圖像,不同人給出的類別標(biāo)簽基本是一致的,這也意味著相同類別的圖像在外觀上有較大的相似性,不同類別的圖像在外觀上區(qū)分度高。但是在行為克隆問題中,玩家在同一個狀態(tài)下可以執(zhí)行多種動作,而不同玩家游戲策略不同,相同游戲狀態(tài)有可能會執(zhí)行完全不同的行為,這使得模型很難從同一類動作對應(yīng)的樣本集中提取判別力強(qiáng)的抽象特征,進(jìn)一步提高行為克隆的準(zhǔn)確度。
第四,在玩家錄制的樣本中,不同類別的樣本數(shù)量差異很大,采用這些樣本訓(xùn)練模型容易使網(wǎng)絡(luò)傾向于做特定動作。另外,很多游戲場景下,玩家有多種動作選擇,而且不會對游戲結(jié)果產(chǎn)生不良影響,這會導(dǎo)致同一個動作對應(yīng)的樣本集外觀差異較大,難以專注于學(xué)習(xí)關(guān)鍵時刻的動作策略。
行為克隆雖然有以上描述的問題,但其優(yōu)點也很明顯。在訓(xùn)練過程中,行為克隆不需要與真實環(huán)境進(jìn)行交互,僅需要提供玩家錄制的樣本就可以訓(xùn)練,極大地降低了使用門檻,而無須使用游戲內(nèi)部接口。
- C++面向?qū)ο蟪绦蛟O(shè)計(微課版)
- Oracle數(shù)據(jù)庫從入門到運維實戰(zhàn)
- Kali Linux Wireless Penetration Testing Beginner's Guide(Third Edition)
- Active Directory with PowerShell
- MySQL從入門到精通(軟件開發(fā)視頻大講堂)
- Mastering Unity 2D Game Development(Second Edition)
- 代碼閱讀
- Java 從入門到項目實踐(超值版)
- RESTful Web API Design with Node.js
- Android項目實戰(zhàn):博學(xué)谷
- Mastering PostgreSQL 11(Second Edition)
- Python編程零基礎(chǔ)入門
- vSphere High Performance Cookbook(Second Edition)
- 面向WebAssembly編程:應(yīng)用開發(fā)方法與實踐
- Learning Java by Building Android Games