写点什么

游戏中应用强化学习技术,目的就是要打败人类玩家?

  • 2021-08-31
  • 本文字数:3819 字

    阅读完需:约 13 分钟

游戏中应用强化学习技术,目的就是要打败人类玩家?

2016 年,DeepMind 公司开发的 AlphaGo 4:1 大胜韩国著名棋手李世石,成为第一个战胜围棋世界冠军的人工智能机器人,一时风头无两。AlphaGo 的巨大成功开启了“人工智能元年”,也让强化学习渐为大众熟悉。

 

5 年后,强化学习技术发展如何?最大的瓶颈是没法用?理想的强化学习策略是什么样?……带着这些疑问,InfoQ 采访到了西山居人工智能领域专家黄鸿波,和他聊了聊强化学习技术在西山居的应用与实践经验。

“依靠经验可以解决的问题,理论上强化学习都能解决”

 

强化学习(Reinforcement learning,RL)是人工智能算法的一个特殊分支,由环境、代理、奖励、动作、状态五大关键要素组成。

 

维基百科对强化学习的定义为:强化学习强调如何基于环境而行动,以取得最大化的预期利益。与机器学习下的另外两种训练方法监督学习和无监督学习不同,强化学习不需要大量的“数据喂养”,而是通过不断尝试使自己获得最大奖励。

 

DeepMind 研究人员在一篇名为《奖励就够了》的论文中提到,奖励最大化和试错经验足以培养出可表现与智力相关能力的行为。由此他们得出结论,强化学习这一基于奖励最大化理念的人工智能分支,可以引领通用人工智能的发展。

 

而在此之前,“强化学习教父”Richard Sutton 更是直言:“我相信,从某种意义上讲,强化学习是人工智能的未来。”

 

强化学习到底能解决什么问题?它是否真的无所不能?

 

在黄鸿波看来,依靠人类经验可以解决的问题,理论上,强化学习都能解决。“强化学习利用的是经验,而不仅仅是数据。在游戏领域,如果我可以通过经验告诉你怎么在游戏中走位会更好,那么强化学习也能够做到。在交通领域,依靠人类经验可以知道哪个时间段哪里车多,哪里车少,通过强化学习技术也可以做到这一点。”

 

虽然强化学习很强大,但在当前还难以实现通用人工智能。“如果你想用一个强化学习模型去解决所有的问题,我认为至少在现阶段是不太现实的。强化学习技术非常依赖算力,它对 CPU 的核数、集群的数量、GPU 的数量要求比较高。目前,强化学习技术所面临的最大一个问题就是算力。也许在未来,随着算力越来越强,算力成本越来越低,那么强化学习能解决的问题也会越来越多。”

 

事实上,关于强化学习发展困境的讨论一直存在。今年 7 月,知乎上一个题为“强化学习领域目前遇到的瓶颈是什么?”的话题讨论热度颇高,南大人工智能学院教授俞扬给出了“没法用”的答案,并随后作出进一步解释说明:

 

实际上强化学习这个古老的研究领域 2016 前在国内一直比较冷的根源就是没法用。研究领域大家也都清楚强化学习算法样本利用率低,然后做出了很多改进,但是要改进到什么程度才能有用呢,其实根据我们的经验有一个标准:

零试错:一次试错不能有,上线即能发挥效果,还要明显优于基线。

offline RL 是个正确的方向,但是目前的主流研究也有很多明显的弯路,可能发论文与做落地本身就是不同的事,大家的关心点不可能完全一致吧。说没法用只是吐个槽,要想发论文,就只能沿着所谓的 SOTA 来改进,即使是看起来没有希望的方向。

另外就是我们的落地越来越多,不再想着去说服别人 RL 可以用了。

 

黄鸿波认为,之所以在一些领域存在强化学习没法用的情况,原因在于当前无法保证强化学习模型所产生的结论是百分百正确的。

 

“很多领域都要求百分百精准,比如医疗领域、精密仪器制造领域等等。如果达不到完全精准,那我们就不能相信 AI,最后可能还需要人工进行复审。这意味着,AI 只是起到了一个辅助性的作用,并不能起到决定性作用,因此确实没法用。但在另外一些领域,比如游戏,即便 AI 出现了一点小的失误也没有关系。所以说,强化学习能不能落地,怎么落地,具体还是要看领域。目前来看,游戏无疑是强化学习技术最成功的一个落地场景。”

强化学习技术的落地秘笈

 

在过去,游戏 AI 一般倾向于采用行为树作为决策结构,通过引入逻辑节点减少转换条件,迅速地组织较复杂的行为决策,此外它的重用性很高,可以通过重组不同的节点来实现不同的行为树。但与此同时,行为树的缺点也显而易见,比如它会让游戏内置的机器人看起来非常死板,灵活性不强。

 

而强化学习技术恰巧能弥补这个缺点,让机器人更加拟人、智能,提高游戏的可玩性,同时也能提高游戏的制作效率。

 

2020 年,西山居开始在游戏中应用强化学习技术,并组建了强化学习团队。目前经过一年多的积累,西山居已经建立了强化学习集群,并搭建了强化学习开发平台和开发体系。在算法设计思路上,西山居在成熟的算法模型基础上,加入游戏特定的 Trick,让游戏整体在效果呈现上更加智能。“接下来,我们有一款对战类型的游戏即将上线,游戏中的 AI 就是利用强化学习技术来做的。”

 

在实践的过程中,黄鸿波发现游戏领域的强化学习和其他领域有本质上的区别。“目前市面上的算法、模型、框架基本都不是单独针对游戏领域的,而是一个通用的强化学习框架,它们的特点是运行环境要与框架进行强结合,并整体打包在一起进行模型训练。

 

但在游戏领域却是完全相反的,尤其现在大多数游戏都是网络游戏,有战斗系统或房间匹配系统,可能战斗系统单独跑在一个服务器上,训练系统跑在另一个服务器上。也就是说,训练环境和战斗环境实际上是一个分离的状态。这种情况下,就需要开发一个中转的平台来进行交互,需要考虑的问题包括怎么获取环境信息、状态信息,这个过程中还涉及到传输效率的问题。”

 

在黄鸿波看来,强化学习技术的落地秘笈并不在于要把算法改得多牛,而是要将强化学习技术与深度学习、游戏策划相结合,形成一套完备的解决方案,并将其实现

 

“很多人认为我们用强化学习技术就是要把游戏变成非常强,其实并不是。通过强化学习技术去打败人类玩家其实是一件非常简单的事情,并且早已得到实现。但这是在研究阶段做的事情,真正落地的时候,AI 的目的并不是要打败玩家,而是要陪玩家玩游戏。这也是我们游戏制作的一个核心思想。”

 

至于理想的强化学习策略是什么样,黄鸿波认为在游戏领域中,要让用户有更加丰富的游戏体验,而在其他领域如工业制造等,要足够智能、灵活。“理想的强化学习能够让玩家在玩游戏的过程中更加开心。在非游戏领域,理想的强化学习能够做出更加精准的决策。”

人工智能跨过“人工智障”只是时间问题

 

谈到对人工智能的理解,黄鸿波认为人工智能首先是人工战胜智能,让计算机学到人类已有的知识或经验,然后再辅助人类去完成繁杂或是需要脑力计算的工作。

 

近几年,人工智能发展迅速,并逐步从学术研究过渡到产业落地。Appen Limited 发布的第七份《人工智能与机器学习现状年度报告》显示,各企业 AI 预算金额较去年大幅增长 55%;同时,企业更加关注 AI 项目的实际实施。

 

但与此同时,关于人工智能的质疑声也此起彼伏,有观点认为当前的人工智能远没达到智能,甚至有些是“人工智障”。

 

对于这些质疑,黄鸿波认为背后主要有两方面原因:一方面,要想把人工智能做得更智能,需要有一个非常庞大的数据云来做训练;另一方面,需要有强大的算力来做支撑。比如一些智能客服、陪聊 AI 很容易出现答非所问的情况,原因就在于训练过程中并没有给它们喂入足够大的语料,归根结底,还是模型数据和算力有限。

 

“人工智能跨过人工智障,我认为只是一个时间的问题。随着时间的推移,模型逐渐强大,算力足够廉价,数据足够多。这三个问题解决之后,人工智能就会逐渐成为人们理想中的样子。”黄鸿波说道。

 

最后,对于想在人工智能领域发展的年轻人,黄鸿波也分享了一点成长建议。

 

在他看来,无论是做人工智能方向的研究还是方案策划,一定要关注它的应用价值,关注如何才能将研究真正落地到生产中。而对于还未毕业的人工智能方向人才来说,一定要提前明确自己未来的发展方向。

 

“如果未来想进入企业里,就需要知道企业需要的是什么样的人才,企业需要的是工程能力强、算法能力强的人才,要能够解决实际的问题。如果未来想进入高校或研究机构,就要提高自己的学术水平。当你明确了从事的方向目标之后,再去根据目标一步步倒推,自己应该往哪个方向积累。”

写在最后

 

有句话叫做“万物皆可 AI”,在可预见的未来,AI 的触角将伸向各个领域。

 

至于未来的 AI 什么样,黄鸿波畅想道:“与其说未来 AI 会应用在哪些方向,倒不如说未来我们需要解决什么问题?在未来,哪里有问题,哪里有痛点,哪里就可以用 AI 来解决。”

 

采访嘉宾:

 

黄鸿波,珠海金山网络游戏科技有限公司(西山居)人工智能领域专家,高级算法工程师,谷歌机器学习方向开发者专家,拥有多年软件开发经验,著有《TensorFlow 进阶指南:基础、算法与应用》一书。曾在格力电器股份有限公司大数据中心担任人工智能领域专家,且在多家公司担任过高级工程师,技术经理,技术总监等职务。


活动推荐:

 

11 月 5-6 日,AICon 全球人工智能与机器学习技术大会将落地北京国际会议中心。其中,「大规模机器学习算法及应用」专场邀请到了黄鸿波现场分享《如何利用强化学习技术提高游戏可玩性和真实性》。本次演讲将从实际业务出发,讲解西山居中游戏 AI 如何与游戏相结合,碰撞出完美的火花,点击详细了解


除此之外,本次大会还设置了 NLP 技术与应用、人工智能前沿技术、通用机器学习技术、计算机视觉实践、推荐广告技术与实践、AI 工程师团队建设与管理、认知智能的前沿探索、AI 与产业互联网结合、大数据计算和分析、智能语音前沿技术应用、大规模预训练模型进展、自动驾驶技术等 14 个专题。

 

目前大会门票限时 8 折特惠中,购票欢迎联系票务小姐姐文柳:13269078023(电话同微信)

 


2021-08-31 15:483447

评论

发布
暂无评论
发现更多内容

前端js手写面试题汇总(一)

helloworld1024fd

JavaScript

前端代码规范常见错误 一

默默的成长

前端 Vue 3 11月月更

Python进阶(四十一)Python3解决“tuple parameter unpacking is not supported in python3”

No Silver Bullet

Python3 问题分析 11月月更

面试官:说说React-SSR的原理

beifeng1996

React

前端二面react面试题(附答案)

beifeng1996

React

kubernetes下的jenkins如何设置maven

程序员欣宸

maven jenkins 11月月更

主成分分析PCA与奇异值分解SVD-降维的实现方法

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

最近面试被问到的vue题

bb_xiaxia1998

Vue

Vue的computed和watch的区别是什么?

bb_xiaxia1998

Vue

React源码分析4-深度理解diff算法

goClient1992

React

拿到大厂前端offer的前端开发是怎么回答面试题的

loveX001

JavaScript

Python进阶(四十三)glob 文件路径查找

No Silver Bullet

Python 11月月更 glob 文件查找

自己手写一个redux

helloworld1024fd

JavaScript

自制操作系统日记(6):静态桌面初步

操作系统

前端面试中小型公司都考些什么

loveX001

JavaScript

前端代码规范常见错误 二

默默的成长

前端 Vue 3 11月月更

new Vue的时候到底做了什么

bb_xiaxia1998

Vue

golang 中 time 包使用教程之基础使用篇

Go学堂

golang 程序员 个人成长 time.Time 时间转换

React源码分析2-深入理解fiber

goClient1992

React

通宵整理的react面试题并附上自己的答案

beifeng1996

React

Python进阶(四十)应用matplotlib绘图实战

No Silver Bullet

Python matplotlib 11月月更

面试官:能用JavaScript手写一个bind函数吗

helloworld1024fd

JavaScript

22道js输出顺序问题,你能做出几道

loveX001

JavaScript

前端js手写面试题汇总(二)

helloworld1024fd

JavaScript

React源码解读之任务调度

flyzz177

React

IO原理(二):多路复用

苏格拉格拉

reactor nio epoll IO多路复用 IO模型

React源码分析3-render阶段(穿插scheduler和reconciler)

goClient1992

React

React源码解读之更新的创建

flyzz177

React

80%的前端开发都答不上来的js异步面试题

loveX001

JavaScript

面试官:你是怎样进行react组件代码复用的

beifeng1996

React

熬夜整理的vue面试题

bb_xiaxia1998

Vue

游戏中应用强化学习技术,目的就是要打败人类玩家?_AI&大模型_凌敏_InfoQ精选文章