【百面机器学习之算法工程师读书笔记】——第十四章:人工智能的热门应用-游戏AI

目录

游戏AI发展史

从AlphaGo到AlphaGo Zero

德州扑克中的“唬人”AI

AI电子竞技

星际争霸:走向通用AI

为什么AI需要游戏?


游戏AI发展史

(1)1952年,第一款成功下棋软件诞生。是最简单的Tic-Tac-Toe游戏。

(2)1992年,名为TD-Gammon的西洋双陆棋,运用了神经网络和时间差分学习方法,达到*人类玩家的水准。

(3)1994年,乔纳森的西洋跳棋程序Chinook打败了人类冠军马里恩.汀斯雷。

在早期游戏中,AI几种在解决经典棋类游戏问题上。多用的是强化学习算法的方式。早期的AI游戏形式如下:

【百面机器学习之算法工程师读书笔记】——第十四章:人工智能的热门应用-游戏AI【百面机器学习之算法工程师读书笔记】——第十四章:人工智能的热门应用-游戏AI 【百面机器学习之算法工程师读书笔记】——第十四章:人工智能的热门应用-游戏AI

从AlphaGo到AlphaGo Zero

2016年,alphaGo在各类围棋比赛中获得惊人成绩。从算法上讲,其主要是完美的集成了有监督学习、强化学习、深度神经网络和蒙特卡洛树搜索算法。主要分为以下几个方面:

(1)强化学习提高整个学习框架,设计策略网络和价值网络来引导蒙特卡洛树搜索过程。

(2)深度神经网络提供学习两个网络的换上近视工具。

(3)策略网络的初始化权重通过人类棋谱的有监督学习获得。

具体实施

具体实施分两步走:

(1)基于有监督学习的策略网络参数,使用强化学习中的策略梯度方法,进一步优化网络。

(2)基于大量自我对弈棋局,使用蒙特卡洛策略评估方法得到价值网络。

【百面机器学习之算法工程师读书笔记】——第十四章:人工智能的热门应用-游戏AI

而alphaGo Zero,从算法角度上,只是凭借了一个神经网络,进行了千万盘的自我对弈。根本不需要人类棋谱的预先训练。

小总结:

游戏AI通常是一个搜索问题。(通常是一对一的miniMax游戏。从原理上讲,记住当前局面并向下搜索式推演,可以找到较好的策略。当搜索空间不大时,可以把各种分支情况都遍历到,然后宣传最佳方案。搜索空间过大时,可用剪枝或概率办法减少搜索的状态数。)

德州扑克中的“唬人”AI

2017年,一个名为Libratus的AI程序,在攻击12万人手的一对一无限注德州扑克比赛中,轮流击败四名顶尖人类高手,获得20万美金和177万美元筹码。该AI程序最初仅仅只知道德扑的玩法规则,并未输入人类经验数据,而是让它自己根据规则通过“左右互博”来自己摸索游戏如何能大概率的获胜。而该程序的研究者采用了反事实遗憾最小化算法,以避免错误再次发生。

遗憾最小化算法原理

该算法原理如下:

(1)先挑选一个行为A予以实施,当隐状态揭开时,计算假设选择其他非A行为可获得的奖励。

(2)类似计算机会成本,并将非A行为中的最佳收益与事实行为A的收益之差称为“遗憾”。

(3)如果遗憾大于0,则当前挑选行为非最优。知道找到最小的这个遗憾。

DeepStack是另外一个世界级水准的德扑AI程序。与Libratus不同,它采样自我对战和递归推理的方法学习策略。类似于AlphaGo,采用树搜索结合近似值函数的强化学习方法来决定每轮的行为。

 

AI电子竞技

2013年,DeepMind的一篇《用深度强化学习玩Atari》文章,利用深度神经网络,结合强化学习已有的框架,运用经验回放的采样回路,设计出深度Q-learning算法,最后在很多游戏上都战胜了人类高手,甚至在2015年,DQN仅训练一个端到端的DQN,便可在49个不同游戏场景下全面超过人类高手。(Atari2600是20世纪80年代一款家庭视频游戏机。相当于以前的小霸王。)

2016年4月,OpenAI对外发布了一款用于研发和评比强化学习算法的工具包Gym。该包包括了各种模拟环境的游戏。如倒立摆(典型控制问题)、月球登陆者(构建在Box2D模拟器上)、毁灭战士(仿3D的第一人称射击游戏)等。2016年底,OpenAI又推出一个新平台——Universe。其目标是评估和训练通用AI。让设计者开发一个单一的智能体,去完成Universe中的各类游戏和任务。(智能体需要携带经验到新任务中,而不是传统的训练步骤,初始化为全随机数,然后不断试错,重新学习参数。)

【百面机器学习之算法工程师读书笔记】——第十四章:人工智能的热门应用-游戏AI

目前最典型的任务就是基于浏览器窗口的各项任务,现在实现的主要任务是学习与各类网页元素交互,如点击按钮,下拉菜单等。

星际争霸:走向通用AI

星际争霸的三个层面

众所周知,玩星际争霸有三个不同层面的决策:

(1)最高层:战略水平的决策,要求的信息观察强度不高。

(2)最底层:操作系统水平的决策,需要考虑每隔操作单位的类型、位置以及其他动态属性。

(3)中间层:战术水平的决策,如兵团的位置和推进方向。

【百面机器学习之算法工程师读书笔记】——第十四章:人工智能的热门应用-游戏AI

因此,即时战略类游戏对AI有巨大挑战,代表着智能水平测试的最高点。被视为AI最难玩的游戏。

为什么AI需要游戏?

(1)游戏提供了定义和构建复杂AI问题的平台。

传统学术界的AI问题(如图像分类、目标检测、商品推荐等)都是单一、纯粹的,每个问题面向一个特定任务,而非解决多输入、多场景和多任务干扰的复杂场景。

(2)游戏提供了丰富的人机交互形式。

复杂人机交互方式下,AI算法做的不在是拟合数据见的相关性,而是学习一种认知、行为和情感上的人类体验。

(3)繁荣的游戏市场提供了海量的游戏内容和用户数据。

(4)游戏世界向AI全领域发出了挑战。

当下越来越多的AI研究者开始将游戏视作构建新型通用AI的超级试验场的原因:

(1)游戏提供的虚拟世界无时间流速的限制

(2)游戏提供无限次场景和无限次重生。

(3)游戏是与现实世界独立的一个世界。既可以模拟现实世界,也可打破现实世界中的物理规则。