那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

街機游戲《街頭霸王 3》中進行模擬來訓(xùn)練改進強化學(xué)習(xí)算法的工具包

電子工程師 ? 來源:未知 ? 作者:李倩 ? 2018-11-13 09:30 ? 次閱讀

從世界矚目的圍棋游戲 AlphaGo,近年來,強化學(xué)習(xí)在游戲領(lǐng)域里不斷取得十分引人注目的成績。自此之后,棋牌游戲、射擊游戲、電子競技游戲,如 Atari、超級馬里奧、星際爭霸到 DOTA 都不斷取得了突破和進展,成為熱門的研究領(lǐng)域。

突然襲來的回憶殺~

今天為大家介紹一個在街機游戲《街頭霸王 3》中進行模擬來訓(xùn)練改進強化學(xué)習(xí)算法的工具包。不僅在 MAME 游戲模擬器中可以使用,這個 Python庫可以在絕大多數(shù)的街機游戲中都可以訓(xùn)練你的算法。

下面營長就從安裝、設(shè)置到測試分步為大家介紹一下。

目前這個工具包支持在Linux系統(tǒng),作為MAME的包裝器來使用。通過這個工具包,你可以定制算法逐步完成游戲過程,同時接收每一幀的數(shù)據(jù)和內(nèi)部存儲器的地址值來跟蹤游戲狀態(tài),以及發(fā)送與游戲交互的動作。

首先你需要準(zhǔn)備的是:

操作系統(tǒng):Linux

Python 版本:3.6+

▌安裝

你可以使用 pip來安裝該庫,運行下面的代碼:

▌《街頭霸王3》示例

這個工具包目前已用于游戲《街頭霸王 3》(Street Fighter III Third Strike: Fight for the Future), 還可以用于MAME上的任何游戲。下面的代碼演示了如何在街頭霸王的環(huán)境下編寫一個隨機智能體。

此外,這個工具包還支持hogwild訓(xùn)練:

▌游戲環(huán)境設(shè)置

游戲 ID

在創(chuàng)建一個模擬環(huán)境之前,大家需要先加載游戲的 ROM,并獲取 MAME所使用的游戲 ID。比如,這個版本街頭霸王的游戲 ID是“sfiii3n”,你可以通過運行以下代碼來查看游戲ID:

該命令會打開 MAME模擬器,你可以從游戲列表中選擇你所要的那款游戲。游戲的 ID通常位于標(biāo)題后面的括號中。

內(nèi)存地址

實際上該工具包與模擬器本身不需要太多的交互,只需要查找和內(nèi)部狀態(tài)相關(guān)聯(lián)的內(nèi)存地址,同時用所選取的環(huán)境對狀態(tài)進行跟蹤。你可以使用 MAME Cheat Debugger 來觀察隨著時間的變化,內(nèi)存地址值發(fā)生了怎樣的改變。

可以使用以下命令運行Debugger:

更多關(guān)于該調(diào)試工具的使用說明請參考此教程

https://www.dorkbotpdx.org/blog/skinny/use_mames_debugger_to_reverse_engineer_and_extend_old_games

當(dāng)你確定了所要跟蹤的內(nèi)存地址后可以執(zhí)行以下命令進行模擬:

該命令會啟動模擬器,并在工具包導(dǎo)入到模擬器進程時暫停。

分步模擬

在工具包導(dǎo)入完成后,你可以使用 step 函數(shù)分步進行模擬:

step 函數(shù)將以 Numpy 矩陣的形式返回 frame 和 data 的值,同時也會返回總時間步長的所有內(nèi)存地址整數(shù)值。

發(fā)送輸入

如果要向仿真器輸入動作,你還需要確定游戲支持的輸入端口和字段。例如,在街頭霸王游戲中需要執(zhí)行以下代碼進行投幣:

可以使用 list actions命令查看所支持的輸入端口,代碼如下:

以下返回的列表就包含了街頭霸王游戲環(huán)境中可用于向 step 函數(shù)發(fā)送動作的所有端口和字段:

模擬器還有一個 frame_ratio參數(shù),可以用來調(diào)整你的算法幀率。在默認(rèn)設(shè)置下,NAME每秒能生成 60幀。當(dāng)然,如果你覺得這樣太多了,你也能通過以下代碼將其改為每秒 20幀:

▌性能基準(zhǔn)測試

目前該工具包的開發(fā)和測試已經(jīng)在8核AMD FX-8300 3.3GHz CPU以及3GB GeForce GTX 1060 GPU上完成。在使用單個隨機智能體的情況下,街頭霸王游戲環(huán)境可以以正常游戲速度的600%+運行。而如果用8個隨機智能體進行hogwild訓(xùn)練的話,街頭霸王游戲環(huán)境能以正常游戲速度的300%+運行。

▌簡單的 ConvNet 智能

為了確保該工具包能夠訓(xùn)練算法,我們還設(shè)置了一個包含 5 層 ConvNet 的架構(gòu),只需進行微調(diào),你就能用它來進行測試。在街頭霸王的實驗中,這個算法能夠成功學(xué)習(xí)到游戲中的一些簡單技巧如:連招 (combo) 和 格擋 (blocking)。街頭霸王的游戲機制是由易到難設(shè)置了 10 個關(guān)卡,玩家在每個關(guān)卡都要與不同的對手對戰(zhàn)。剛開始時,智能體平均只能打到第二關(guān),而當(dāng)經(jīng)過了 2200 次訓(xùn)練后,它平均能打到第 5 關(guān)。學(xué)習(xí)率的設(shè)置是通過每一局中智能體所造成的凈傷害和所承受的傷害來計算的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7528

    瀏覽量

    164340
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    85037
  • 強化學(xué)習(xí)
    +關(guān)注

    關(guān)注

    4

    文章

    268

    瀏覽量

    11298

原文標(biāo)題:用這個Python庫,訓(xùn)練你的模型成為下一個街頭霸王!

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Facebook推出ReAgent AI強化學(xué)習(xí)工具包

    Facebook近日推出ReAgent強化學(xué)習(xí)(reinforcement learning)工具包,首次通過收集離線反饋(offline feedback)實現(xiàn)策略評估(policy evaluation)。
    發(fā)表于 10-19 09:38 ?1603次閱讀

    樹莓派街機

    ` 本帖最后由 goyuqinghua 于 2016-3-1 16:24 編輯 還記得小時候的街頭游戲機嗎?一毛錢一個游戲幣,投到機器里就可以操作搖桿玩的那種,《核金彈頭》、《
    發(fā)表于 02-22 15:30

    深度強化學(xué)習(xí)實戰(zhàn)

    內(nèi)容2:課程一: TensoRFlow入門到熟練:課程二:圖像分類:課程三:物體檢測:課程四:人臉識別:課程五:算法實現(xiàn):1、卷積神經(jīng)網(wǎng)絡(luò)CNN2、循環(huán)神經(jīng)網(wǎng)絡(luò)RNN3強化學(xué)習(xí)DRL4、對抗性生成
    發(fā)表于 01-10 13:42

    什么是強化學(xué)習(xí)?純強化學(xué)習(xí)有意義嗎?強化學(xué)習(xí)有什么的致命缺陷?

    強化學(xué)習(xí)是人工智能基本的子領(lǐng)域之一,在強化學(xué)習(xí)的框架中,智能體通過與環(huán)境互動,學(xué)習(xí)采取何種動作能使其在給定環(huán)境中的長期獎勵最大化,就像在上述的棋盤
    的頭像 發(fā)表于 07-15 10:56 ?1.8w次閱讀
    什么是<b class='flag-5'>強化學(xué)習(xí)</b>?純<b class='flag-5'>強化學(xué)習(xí)</b>有意義嗎?<b class='flag-5'>強化學(xué)習(xí)</b>有什么的致命缺陷?

    基于強化學(xué)習(xí)的MADDPG算法原理及實現(xiàn)

    之前接觸的強化學(xué)習(xí)算法都是單個智能體的強化學(xué)習(xí)算法,但是也有很多重要的應(yīng)用場景牽涉到多個智能體之間的交互。
    的頭像 發(fā)表于 11-02 16:18 ?2.2w次閱讀

    如何構(gòu)建強化學(xué)習(xí)模型訓(xùn)練無人車算法

    本文作者通過簡單的方式構(gòu)建了強化學(xué)習(xí)模型訓(xùn)練無人車算法,可以為初學(xué)者提供快速入門的經(jīng)驗。
    的頭像 發(fā)表于 11-12 14:47 ?4924次閱讀

    NVIDIA遷移學(xué)習(xí)工具包 :用于特定領(lǐng)域深度學(xué)習(xí)模型快速訓(xùn)練的高級SDK

    對于設(shè)計和集成智能視頻分析(IVA)端應(yīng)用程序(如停車管理、安全基礎(chǔ)設(shè)施、零售分析、物流管理和訪問控制等)的開發(fā)人員,NVIDIA 的遷移學(xué)習(xí)工具包提供了端到端的深度學(xué)習(xí)工作流,可以加速深度學(xué)
    的頭像 發(fā)表于 12-07 14:45 ?3192次閱讀

    谷歌AI發(fā)布足球游戲強化學(xué)習(xí)訓(xùn)練環(huán)境“足球引擎”

    強化學(xué)習(xí)環(huán)境的核心是一種先進的足球游戲模擬,稱為“足球引擎”,它基于一個足球游戲版本經(jīng)大量修改而成。根據(jù)兩支對方球隊的輸入動作,模擬了足球
    的頭像 發(fā)表于 06-15 10:33 ?4221次閱讀

    基于PPO強化學(xué)習(xí)算法的AI應(yīng)用案例

    Viet Nguyen就是其中一個。這位來自德國的程序員表示自己只玩到了第9個關(guān)卡。因此,他決定利用強化學(xué)習(xí)AI算法幫他完成未通關(guān)的遺憾。
    發(fā)表于 07-29 09:30 ?2842次閱讀

    機器學(xué)習(xí)中的無模型強化學(xué)習(xí)算法及研究綜述

    強化學(xué)習(xí)( Reinforcement learning,RL)作為機器學(xué)習(xí)領(lǐng)域中與監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)并列的第三種學(xué)習(xí)范式,通過與環(huán)境
    發(fā)表于 04-08 11:41 ?11次下載
    機器<b class='flag-5'>學(xué)習(xí)</b>中的無模型<b class='flag-5'>強化學(xué)習(xí)</b><b class='flag-5'>算法</b>及研究綜述

    基于強化學(xué)習(xí)的虛擬場景角色乒乓球訓(xùn)練

    基于強化學(xué)習(xí)的虛擬場景角色乒乓球訓(xùn)練
    發(fā)表于 06-27 11:34 ?62次下載

    7個流行的強化學(xué)習(xí)算法及代碼實現(xiàn)

    作者:Siddhartha Pramanik 來源:DeepHub IMBA 目前流行的強化學(xué)習(xí)算法包括 Q-learning、SARSA、DDPG、A2C、PPO、DQN 和 TRPO。這些算法
    的頭像 發(fā)表于 02-03 20:15 ?1161次閱讀

    7個流行的強化學(xué)習(xí)算法及代碼實現(xiàn)

    作者:SiddharthaPramanik來源:DeepHubIMBA目前流行的強化學(xué)習(xí)算法包括Q-learning、SARSA、DDPG、A2C、PPO、DQN和TRPO。這些算法已被用于在
    的頭像 發(fā)表于 02-06 15:06 ?1602次閱讀
    7個流行的<b class='flag-5'>強化學(xué)習(xí)</b><b class='flag-5'>算法</b>及代碼實現(xiàn)

    模擬矩陣在深度強化學(xué)習(xí)智能控制系統(tǒng)中的應(yīng)用

    訊維模擬矩陣在深度強化學(xué)習(xí)智能控制系統(tǒng)中的應(yīng)用主要是通過構(gòu)建一個包含多種環(huán)境信息和動作空間的模擬矩陣,模擬和預(yù)測深度
    的頭像 發(fā)表于 09-04 14:26 ?617次閱讀
    <b class='flag-5'>模擬</b>矩陣在深度<b class='flag-5'>強化學(xué)習(xí)</b>智能控制系統(tǒng)中的應(yīng)用

    如何使用 PyTorch 進行強化學(xué)習(xí)

    強化學(xué)習(xí)(Reinforcement Learning, RL)是一種機器學(xué)習(xí)方法,它通過與環(huán)境的交互學(xué)習(xí)如何做出決策,以最大化累積獎勵。PyTorch 是一個流行的開源機器
    的頭像 發(fā)表于 11-05 17:34 ?393次閱讀
    马牌百家乐官网现金网| 百家乐官网技巧心得| 娱乐城设计| 竞咪百家乐的玩法技巧和规则| 百家乐高手投注法| 网上百家乐官网赌博出| 凯旋门百家乐官网技巧| 明升国际网址| 皇冠现金网安全吗| 百家乐软件| 澳门百家乐哪家信誉最好| 寅午戌 24山图| 电玩城百家乐官网技巧| 百家乐官网模拟投注器| 百乐彩博彩| 17pk棋牌游戏| 大发888下载大发888娱乐城| 连环百家乐的玩法技巧和规则| 百家乐桌子北京| 百家乐路纸表格| 海港城百家乐官网的玩法技巧和规则 | 佳木斯市| 战神国际娱乐平| 六合彩开奖日期| 大发888亚洲城娱乐城| 永利高足球网| 网上百家乐游戏哪家信誉度最好| 百家乐路单走势图| 百家乐翻天粤qvod| 百家乐长龙有几个| 博士百家乐现金网| 免费百家乐奥秘| 百家乐官网套利| 玩百家乐官网的玩法技巧和规则| 百家乐官网佣金计算| 隆德县| 志丹县| 真人百家乐赌场娱乐网规则| 网络百家乐网站| 百家乐汝河路| 澳门百家乐几副牌|