难得的元旦小假期,没有什么比得上在慵懒的冬日艳阳下放松自己,拿起手机,叫上了许久未一起作战的小伙伴,到王者荣耀中激战了一番,仿佛又回到了当年那个年轻的自己。

厉害不,毕竟当年DD也是王者五十星的水平,哈哈。

不过哪怕是我这样的王者,在去年也被腾讯上线的超强电脑AI绝悟虐的不轻。记得当时有朋友来找我,说是腾讯上线了一个绝悟挑战模式,里面的电脑AI和以往被我们拿来练熟练度的电脑相比,简直就是云泥之别,一关比一关难,据说连一些职业选手组成的车队都翻车了。

听的那么玄乎,头硬的我自然不会轻信,然后随后的几天中,果不其然被绝悟虐的生活不可自理,最后还是灰溜溜的靠着网上流传的“大乔-米莱蒂”传送偷家套路才勉强过关。

一边回忆着被绝悟惨虐的经历一边浏览着最近的新闻,突然眼中爆射出一道惊芒,中国足球世界杯夺冠了!

你没有看错,的确是中国足球世界杯夺冠了,但是夺冠的并非传统意义上的男足女足,而是由我们曾经熟悉的绝悟进化之后重生的足球AI-WeKick!

WeKick夺冠的是首届谷歌足球Kaggle竞赛,参赛队伍多达1138支,可以说是代表了目前地球上最顶尖的足球AI比赛,称之为足球AI世界杯也不为过。

而在所有参赛队伍中,WeKick的得分高达1785.8分,占据绝对优势地位,就像96年的公牛、02年的巴西一样,势不可挡!

不可置信?再给你看下精彩集锦!

快、准、直!一记完美的长传后,直射球门!

连续突破重围,轻松传球 4 次。

有些人可能不以为然,觉得之前绝悟在王者荣耀的表现,用去踢足球,也是很简单的。

其实不然,首先王者荣耀是一个5V5的游戏,而足球是一个11v11的运动,就是说AI需要控制的智能体(球员)个数多了一倍以上,其次足球赛虽也属于即时策略型游戏,但也需要AI具备长线思考、快速决策、处理复杂环境的能力。AI需要考虑到每个球员的速度、加速度、射门、头球、传球、防守等各种指数,同时还需要操控球员之间进行频繁的相互配合,也需要时刻观察对手球员的行为,防范于未然,做出最好的选择!

针对这些不同的情况,WeKick团队发挥想象,主要运用了以下三个创新进行针对性的模型训练。

Self-Play强化学习框架

WeKick团队采用Self-Play(自博弈)强化学习来从零开始训练模型,并以此部署到异步分布式的强化学习框架中。异步架构牺牲了一部分训练的实时性能,但是相应的,得到了更高的灵活性,同时可以支持在训练过程中按实际需要调整整个计算资源,使其能快速完美的适应智能体人数更多的足球游戏训练环境。

GAIL生成对抗模拟学习

王者荣耀是一款对抗类的MOBA游戏,其最终目的和足球游戏迥然不同,WeKick团队采用了GAIL(生成对抗模拟学习)与人工设计的奖励结合的方式,在特征与奖励设计上进行了扩展和创新。

运用这个方案,WeKick可以从其它球队学习,拟合专家行为的状态和动作分布,再将GAIL训练的模型作为固定对手进行进一步Self-Play训练,进一步提升策略的稳健性。

League多风格强化学习

上述的Self-Play强化学习方案,有一个尚未解决的缺憾,就是通过这个方案得到的模型很容易形成单一的风格。用足球比赛的说法就是打法一成不变,很容易被针对或遇上天生克制的阵型就不知所措。为了解决这个问题,WeKick团队采用了针对多智能体学习任务的 League(若干策略池)多风格强化学习训练方案,提升策略的多样性。

这种League多风格强化学习训练方案的主要流程,用一句话解释就是 由简入繁!

  • 首先训练某一方面的基础模型,例如过人、盘带、传球、射门等。
  • 根据基础模型训练出多个风格化模型,每个模型专注一种风格打法,训练过程中加入主模型作为训练对手,避免训练效果死板不变通。
  • 再基于多个基础模型训练一个主模型,主模型可以将自己的历史版本作为训练对手,还可以加入所有风格化的模型作为不同的训练对商铺,使主模型遇上任何对手都有解决方案。

根据其内部能力评分系统显示,这种算法下的主模型,可以在基础模型的基础上提高200分,比最强的风格化打法高80分!

最后介绍下谷歌足球Kaggle竞赛

Kaggle创立于2010年,是全球最大的数据科学社区和数据科学竞赛平台。本届比赛是Kaggle首次针对足球AI领域发布的赛题。

由于足球运动团队策略要求在瞬息万变的赛场上,做出最正确的团队协作、实时决策和竞争策略,其中的难点,一直是困扰世界顶尖AI研究团队的难题。就像前文提到的,从绝悟进化到WeKick,控制的智能体各数从5v5提高到11v11,这中间强化学习的难度将随着智能体个数的增长呈现指数级的爆炸增长。

其实早在参加这个比赛之前,绝悟的开发团队早已经从足球比赛中的单个智能体控制转向多智能体同时控制、协同作战深入的研究方向。在先前参加的5v5形式的谷歌天梯比赛 Google Research Football League 中,绝悟已经赢得过冠军,这次可以说是再度升级版的夺冠。

从最早的围棋AI绝艺,到王者荣耀的MOBA游戏AI绝悟,再到如今的足球AI-WeKick,腾讯在人工智能的深度强化学习程度正在步步进化,未来很有可能运用于其他更广泛的行业中,真正做到人工智能为人类服务。

而此刻的我,只想什么时候能有机会和这个WeKick踢上(被虐)几场比赛,你也想和他过过招吗?

欢迎关注我的公众号:程序猿DD,获得独家整理的免费学习资源助力你的Java学习之路!另每周赠书不停哦~

当会打王者荣耀的AI学会踢足球,一不小心拿下世界冠军!的更多相关文章

  1. 王者荣耀是怎样炼成的(一)《王者荣耀》用什么开发,游戏入门,unity3D介绍

    在国内,如果你没有听说过<王者荣耀>,那你一定是古董级的人物了. <王者荣耀>(以下简称“农药”),专注于移动端(Android.IOS)的MOBA游戏.笔者看到这么火爆,就萌 ...

  2. 《王者荣耀》技术总监复盘回炉历程:没跨过这三座大山,就是另一款MOBA霸占市场了

    如今已经大获市场成功的<王者荣耀>一直是业内各方关注的对象,而我们也知道这款产品在成为国民级游戏之前,也遇到过一段鲜有人知的调优期.也就是在2015年8月18号正式不删档测试版本推出之后, ...

  3. 【转】《王者荣耀》技术总监复盘回炉历程:没跨过这三座大山,就是另一款MOBA霸占市场了

    如今已经大获市场成功的<王者荣耀>一直是业内各方关注的对象,而我们也知道这款产品在成为国民级游戏之前,也遇到过一段鲜有人知的调优期.也就是在2015年8月18号正式不删档测试版本推出之后, ...

  4. python 爬取王者荣耀高清壁纸

    代码地址如下:http://www.demodashi.com/demo/13104.html 一.前言 打过王者的童鞋一般都会喜欢里边设计出来的英雄吧,特别想把王者荣耀的英雄的高清图片当成电脑桌面 ...

  5. Unity制作王者荣耀商业级手游

    <王者荣耀>这种现象级手机游戏是如何制作出来的呢?本文以<王者荣耀>MOBO类型的多人在线战术竞技游戏为入口,覆盖Unity游戏制作开发前端与Node.js服务器端的开发必备知 ...

  6. CyclicBarrier的使用之王者荣耀打大龙

    最近一直整并发这块东西,顺便写点Java并发的例子,给大家做个分享,也强化下自己记忆,如果有什么错误或者不当的地方,欢迎大家斧正. LOL和王者荣耀的玩家很多,许多人应该都有打大龙的经历,话说前期大家 ...

  7. Unity 使用 陀螺仪 实现 《王者荣耀》 登入界面 背景动态效果

    在 <王者荣耀> 登入界面 左右上下晃动手机(有些手机不支持)可以看到背景在变化 我使用的是iPhone SE 效果如下: 对比两张图片的左下角 可以看到差异 至于为什么要这么做: 1.使 ...

  8. CNN网络介绍与实践:王者荣耀英雄图片识别

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者介绍:高成才,腾讯Android开发工程师,2016.4月校招加入腾讯,主要负责企鹅电竞推流SDK.企鹅电竞APP的功能开发和技术优化工作 ...

  9. 浅谈canvas绘画王者荣耀--雷达图

    背景: 一日晚上下班的我静静的靠在角落上听着歌,这时"滴!滴!"手机上传来一阵qq消息.原来我人在问王者荣耀的雷达图在页面上如何做出来的,有人回答用canvas绘画.那么问题来了, ...

随机推荐

  1. 针对五款IPA文件安装工具的深度评测

    IPA是Apple程序应用文件iPhoneApplication的缩写,在日常中我们可以通过把IPA文件直接安装到iPhone手机来使用,故此笔者针对目前几种比较认可的方式做了对比,评测一下到底那款工 ...

  2. 转:Cookie详解

    没怎么坐过客户端相关的工作,所以写爬虫的时候,很多概念都很模糊,学习起来很困难.现在想攻坚一下,所以找了一下cookies相关的内容. HTTP cookies,通常又称作"cookies& ...

  3. 第11.4节 Python正则表达式搜索字符集匹配功能及元字符”[]”介绍

    Python正则表达式字符集匹配表示是指搜索一个字符,该字符在给定的一个字符的集合中.元字符'['和']'是用于组合起来定义匹配字符集,匹配模式中使用 '['开头,并使用']'结尾来穷举搜索的字符可能 ...

  4. PyQt(Python+Qt)学习随笔:Qt中的部分类型QString、QList和指针、引用在PyQt中的实现方式

    老猿Python博文目录 老猿Python博客地址 在我们查阅Qt的文档资料时,可以看到Qt中的链表使用的是QList,字符串使用的是QString,但老猿在测试时发现这两个类型PyQt不支持,无法找 ...

  5. 关于RequestParam在不同的Spring版本上,接口在controller重载时注解可能失效的踩坑记录

    先抛背景: 我项目中的Spring版本是2.0.3.RELEASE. api-demo负责暴露接口,service-demo负责实现功能.接口参数的@RequestParam和@RequestBody ...

  6. (转)MySQL优化原理

    原文:https://mp.weixin.qq.com/s__biz=MzI4NTA1MDEwNg==&mid=2650763421&idx=1&sn=2515421f09c1 ...

  7. 沪苏浙皖共同打造区块链数字经济发展高地,Panda Global表示区块链真的来了!

    近日,在长三角一体化发展重大合作事项签约仪式上,沪苏浙皖经信部门共同签约,推进长三角区块链数字经济一体化发展,共同打造数字经济发展高地.从此次签约活动也能看出来,区块链数字现金的发展已经得到了认可,早 ...

  8. AcWing 328. 芯片 (二进制写法)

    题目链接 我自闭了,调了一下午,我居然认为 \(2, 3\) 凑不出 \(7\),我怕是个孤儿. 这是一位非要用二进制写的勇士. 首先定义状态 \(S\),若 \(S\) 的二进制第 \(k\) 位为 ...

  9. 谷歌SameSite策略

    当我新下载谷歌80.x版本的时候,访问一个系统(内嵌跳转到其他系统的iframe),跳转过去没有携带cookie,以前版本的谷歌浏览器是可以的,控制台提示SameSite策略,给阻止了cookie携带 ...

  10. Jmeter之登录接口参数化实战

    为了纪念我走过的坑(为什么有些简单的问题就是绊住我了,还是不够细啊) Jmeter之接口登录参数化实战 因为想要在登录时使用不同的数据进行测试,所以我选择了将数据进行参数化.因为涉及到新建一个接口的功 ...