大家好,今天不讲点云,来聊一个目前热门的话题,但真的不是足球:)
这两天人工智能界一个比较热门的话题当属“OpenAI Five击败Dota2业余玩家队伍”了。去年的阿尔法Go在围棋方面战胜人类最顶尖的棋手,让人工智能着实升温不少,难不成今年又要借助Dota再火一把?让我们拭目以待。
先来说说OpenAI Five到底是何方神圣?它是由谷歌一家名叫OpenAI的人工智能公司开发的应用,由5个相互独立的网络构成,专门用来打5v5 Dota2,在游戏时,每个网络会独立地控制一个英雄。
所以说OpenAI是公司名字,OpenAI Five是产品名字。
提起OpenAI这家公司,来头可不小,它是一个由诸多硅谷大亨联合建立的人工智能非营利组织。2015年马斯克与其他硅谷科技大亨进行连续对话后,决定共同创建OpenAI,希望能够预防人工智能的灾难性影响,推动人工智能发挥积极作用。他们做OpenAI Five的目标是在8月份击败Dota2国际顶级职业团队(不过只限于一组有限的英雄)。
与围棋比起来,Dota2就复杂多了。比如人类在玩这款游戏时,需要通过电脑屏幕看清局势,再做出决策,再通过鼠标键盘发出指令。这一串动作对人类是很自然的,但是人工智能如何进行呢?
首先要解决的是信息摄取问题,说白了就是OpenAI Five怎么知道现在的游戏局势。
可能有一些小伙伴想说,可以借助目前成熟的机器视觉研究成果,对电脑屏幕进行识别、检测,从而了解游戏局势……这么想可就大错特错了。
因为,这种做法几乎是无法实现的。由于游戏场景非常复杂,且帧频高,在这么大的数据中,不仅要识别出屏幕中的10个英雄,还要对场景进行语义级别的识别,这个运算量可想而知极其巨大。即便计算机能够分析完,后期的决策阶段也是需要花费时间的,因此怎么想都是不可能完成的任务。笔者一开始也对这个问题非常困惑,直到我去OpenAI官网认证看了说明,才解开了疑惑。
原来,OpenAI Five是通过一个机器人脚本(Bot scripting)来获取当前局势的。这个脚本会检查游戏状态并直接发送指令到各部件,脚本可以完全访问所有的实体位置、冷却时间、法力值等等队伍中的玩家所期望的内容。当然,为了防止作弊,有些操作脚本是不能执行的——例如战争迷雾中的单位不能被查寻,对非脚本控制的对象不能下达指令,等等。
好了,现在OpenAI Five已经可以实时掌握游戏当前局势了,那么它怎么做出决策呢?原来,每个 OpenAI Five 网络包含一个单层、1024 个单元的 LSTM 网络,它的所有决策就是由LSTM网络算出来的。当然了,决策空间也是相当巨大,毕竟要考虑各种走位、使用技能等。
目前OpenAI Five已经初步取得一些进展,水平达到了中等玩家级别。现在这5个网络也在“刻苦训练”,积极备战8月份的比赛。有多刻苦呢?官网给出的说法是OpenAI Five一天的训练量相当于人类180年的量,用了128000个CPU核+256个P100GPU。在如此“高强度”的训练中,希望OpenAI Five能进步神速吧。
这里把官网的连接附上,感兴趣的同学可以看看:
https://blog.openai.com/openai-five/
以及一篇雷锋网写得介绍文章,信息量还是很大的,值得一读:
https://www.leiphone.com/news/201806/7WhbRNKQMn5VqEEi.html
最后,祝OpenAI Five好运,不管输赢,都已经为人工智能又开拓了一条路。
领取专属 10元无门槛券
私享最新 技术干货