王者又连跪了?快让 AI 帮你上分!
去年 5 月初,王者荣耀上线了一个挑战 AI 「绝悟」的限时活动,当时打开游戏界面,就能看到 「挑战·绝悟」的入口,活动出来,我就去体验了一下。
这个挑战一共五关,一关比一关难,像我这样的农药大神前几关随便过,最后一关就只能推塔了,正面硬刚肯定刚不过。
这种不敢正面怼的感觉「似曾相识」,我在英雄联盟的末日人机中也体会过,拉克丝的天女散花我至今还有阴影。
腾讯的「绝悟」在世界冠军杯半决赛中打败了职业选手,随后又在面向顶级业余玩家开放的体验测试中拿下 99.8% 的胜率。
虽然输了一场,但这个出道没多久的 AI 玩家在电竞圈也算打出了名气,当然这个战绩和王校长比还差点,校长在 100% 胜率时宣布退役,是 LOL 电竞圈唯一一位主动放弃 S 赛名额的选手 。
话说回来,训练出像「绝悟」这样吊的 AI,需要腾讯掌握的海量数据和强大的财力,平民也只能体会挨打的快乐,普通玩家要想训练出一个这样的人工智能不太现实。
不过,今天,我给大家带来一个「平民版」的王者农药 AI。这个项目已经在 GitHub 开源,作者是 FengQuanLi。下面是 AI 自己玩王者的视频,先睹为快:
视频来自公众号「Jack Cui」
该视频是两倍速播放,开源项目作者只训练了一个「后裔」英雄,如果想用其他英雄,可以自己训练。
实现原理
这个开源项目的实现原理是怎样的 ?下图是这个模型的核心代码,不算难,我一步步的拆解,我尽量用通俗的语言描述这些技术。
让电脑帮我们玩游戏可以分为如下几步,当然这种方式是比较容易实现的方式,并不会用到「强化学习」的东西,而屠杀围棋圈的 AlphaGo 算法是基于强化学习。
1. 获取当前游戏界面。既英雄现在是什么状态、周围有没有敌方英雄、小兵等等。
2. 根据当前游戏界面状态生成操作指令,是应该前进、攻击还是释放技能。
3. 根据生成的操作指令去控制手机,英雄做出相应的动作。
对于训练一个平民版的人工智能模型,大体流程就是这样。其中获取当前游戏界面、根据指令去控制手机都有成熟的技术。
比如这个项目中使用 scrcpy 获取安卓手机的投屏,这款安卓投屏神器可以将游戏画面投屏到电脑桌面上。
有了游戏画面,就得到了这时战局的状况。游戏画面是图片的形式,至于这个图片包含什么内容,人能看明白,但是电脑不懂。
这就需要我们自己去提取图片中的特征,这里便会用到深度学习算法的东西。基于卷积神经网络(CNN)来提取图片的特征,项目中使用的是 ResNet 101 分类网络。
通过训练这个卷积神经网络,该网络就会具备提取游戏画面特征的能量,有了这些,算法才能进行下一步操作指令的生成。
根据图片生成操作指令是开源项目的关键点,这里用的就是大名鼎鼎的 Transformer。
Transformer 是 2017 年的一篇论文《Attention is All You Need》提出的一种模型架构,其开创性的思想像一颗重磅炸弹,震惊了整个 NLP 领域。
目前在 NLP 各业务全面开花的语言模型如 GPT, BERT 等,都是基于这个模型,搞 Java 的读者可能没听说过这个东西,但是搞算法的小伙伴对这个技术肯定不陌生。
生成一系列操作指令,说白了就是生成序列数据,而 Transformer 的 Decoder 就是干这个的,该项目也是使用基于 Transformer 的技术 GPT 构建的。
当然图片特征提取和生成操作指令是一起进行「端到端」训练的,为了方便大家理解,我拆开说的。
能够生成操作指令了,下一步就就是使用这些指令控制英雄。minitouch 便可完成这一目的,它提供了一个 socket 接口,用于在 Android 设备上触发多点触控事件和手势。
总结来说:用 scrcpy 获取当前游戏画面,使用 Transformer 根据图片生成操作指令,然后利用 minitouch 执行这些操作指令,这时游戏中的英雄就会按照指令进行动作了。
至于会进行什么样的动作得看你喂给模型什么样的数据了。目前这个模型是使用「后裔」 100 多局对战数据下训练的,对局会表现出送人头之类的问题。
这是因为数据量少并且场景简单,有一些复杂场景的数据没有覆盖到,遇到这种不确定因素,英雄也不知道怎么办了。
如何使用
使用前,你需要安装好环境和依赖,比如:torch,scrcpy, minitouch 等。还得需要一部安卓手机,如果需要训练自己的英雄还需一块 6GB 显存的显卡。
一、首先下载模型
你可以关注微信公众号「逛逛GitHub」回复「王者」下载训练过的模型,然后后放入weights 文件夹下
二、修改配置
先运行 「启动和结束进程.py”」启动 scrcpy 把「训练数据截取_A.py”」中的两项改成你设备的参数,_DEVICE_ID 是 adb devices后显示的那个id。
三、运行
这时启动王者荣耀进入 5v5 人机对战 运行 「训练数据截取_A.py”」即可。
如下想训练自己的英雄,项目描述中也有方法,如果需要可以去移步项目地址,不过该项目还只是一个雏形,如果有能力可以自己完善。
参考链接:
[1] 用自己训练的AI玩王者荣耀是什么体验?
[2] www.bilibili.com/video/BV1UK411g7sF
点分享点收藏点点赞点在看
王者又连跪了?快让 AI 帮你上分!相关推荐
- 理性讨论:甄姬是不是《王者荣耀》S16赛季钻石星耀段位上分首选?
<王者荣耀> S16已经到了赛季末了,预计十月中旬四周年之际将会迎来全新的S17赛季.不少玩家都进入了最后的上分阶段,我们都知道"QQ区ban辅助,WX区ban刺客"是 ...
- 搜狗输入法 rpm包_搜狗输入法手把手交你怎么聊天,斗图王者、AI帮写统统都有!...
现代人是怎么来表达内心深处真实情感的?是丰富的辞藻和冗长的文字吗?No No No!答案必然是表情包啊,无需任何言语,一个表情包足以将丰富的内心活动展露无余. 但奈何收藏里只能添加300个表情包,人类 ...
- 搜狗输入法 rpm包_搜狗输入法手把手交你怎么聊天,斗图王者、AI帮写统统都有...
现代人是怎么来表达内心深处真实情感的?是丰富的辞藻和冗长的文字吗?No No No!答案必然是表情包啊,无需任何言语,一个表情包足以将丰富的内心活动展露无余. 但奈何收藏里只能添加300个表情包,人类 ...
- 用python AI脚本自动打王者荣耀?小学生快出来挨打
一.前言 大家好,我是 Jack . 「王者荣耀」想必大家就算没有玩过,也都听过. 腾讯 AI Lab 开发的策略协作型"绝悟",最强 AI 分分教你做人. 但那个是像 Alpha ...
- AI 玩王者荣耀狂上分!1 天训练强度达人类 440 年,网友:已卸载
你造吗?人工智能继进军围棋之后,又来我"王者峡谷"了. 腾讯AI LAB与王者荣耀合作开发的AI[绝悟],在近期的最高规格赛事中获胜,宣布已达到"电竞职业水平" ...
- copilot 让AI帮你编程(人工智能自动完成)
copilot 让AI帮你编程(人工智能自动完成) 官方地址 前不久,GitHub和OpenAI联合为程序员们送上了编程神器--GitHub Copilot. 但是,Copilot目前不提供公开使用, ...
- 小米商城推出新功能:AI 帮你挑手机;Stack Overflow 临时封杀 ChatGPT;Meta 裁员再生事端|极客头条
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...
- AI 玩王者荣耀狂上分!打了六局,心态崩了
你造吗?人工智能继进军围棋之后,又来我"王者峡谷"了. 腾讯AI LAB与王者荣耀合作开发的AI[绝悟],在最高规格赛事中获胜,宣布已达到"电竞职业水平"!据称 ...
- 苏宁回应股权质押给淘宝;日本政府用 AI 帮民众找对象;魅族回应 “暗中给手机植入木马” | EA周报...
EA周报 2020年12月11日 每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事.掌握IT核心技术. 周报看点 1.阿里云发布冷链食品追溯系统解决方案,食品用上"电子身份证&qu ...
最新文章
- 匹配滤波器的物理解释
- mysql自动分区partition_Mysql分区表及自动创建分区Partition
- VMWARE workstation导致母机反应变慢的现象
- 在SLES-11-SP1-i586上搭建apache+php环境
- python控制步进电机代码tx2_步进电机C语言控制,高手请进来指点一下!
- 暗黑破坏神不朽:诅咒宝箱不能开?玩家果断打开后,赚到了
- 史上最权威的 Activiti 框架学习
- 计算机系统的3t性能目标是什么,计算机系统结构习题.doc
- java if ( 常量==变量)_Java常量、变量和运算符
- 【笔记】排列组合公式、二项式定理
- shell遍历ip执行特定功能
- 公司规章制度制度(受不了)
- 想在社会上混 就记住这20句
- iphone mysql壁纸,壁纸图片动态
- 机器学习实战教程(三):决策树实战篇
- python数据类型的应用
- RxJava 过滤操作符(Filtering Observables Operators)
- python统计文本字数_Python 简单应用--文章字数统计
- 啥叫工程?啥叫工程师?
- Magic Leap开发指南(9)-- 6 DOF(Unity)