漫谈
前段时间朋友圈和微博里频繁的被阿尔法狗击败柯洁的新闻刷屏,由于我对于围棋知之甚少,也都没感兴趣点进去看。在我对未来的预见里,老头老太太们在公园里下象棋和在棋牌室里打麻将的场景逐渐退去,我只看到人们退休以后选择在小区凉亭里凑上一波开黑王者农药。
直到我看到了一段由DeepMind(阿尔法狗开发方)公布的星际争霸2的视频,我才想起来去了解一下阿尔法狗背后的技术细节。在视频中能够看到他们的算法分层提取出了兵种、玩家控制的单位、生命值和视野等信息,有了初步的进展:
于是想象到阿尔法狗有可能在不久的将来和人类打星际,或者是在撸啊撸里挑战SKT,我才开始真正兴奋起来,兴奋的脑洞大开。
放下强人工智能统治世界这样的担忧,另一个略为现实的想法是为什么不能用同样的技术来开发游戏中的人工智能呢?假设这样的系统能够为游戏开发者所用,就像阿尔法狗为每个围棋爱好者提供了一个能够胜任任何水平的棋手,想象一下如果能够为游戏添加这样的人工智能对手,所带来的挑战性是多么令人激动。
深度强化学习
我们先大致梳理一下这里面涉及到的方法。战胜柯洁的阿尔法狗由DeepMind公司所开发,所用到的关键方法之一叫做深度强化学习(Deep Reinforcement Learning),正如其名,它是深度学习和强化学习的结合。其中深度学习负责的是如何表达复杂的函数、特征或是模型,是为了使强化学习能够应用到高复杂度问题上的一种手段,我们暂且不说。我们要说的是强化学习的部分,它的本质十分容易理解,因为强化学习想要达到的目标即是像人类一样解决问题。
强化学习
大家一定都听过巴甫洛夫的狗的实验,他在给狗喂食之前先摇摇铃铛,然后再把好吃的喂给狗狗,因为太好吃了,所以狗狗的口水流了一地。在经过一段时间之后,他发现只要他开始摇铃铛,还没拿出来好吃的,狗狗的口水就先流了一地。在这个故事中,好吃的东西是狗狗获得的奖励,而听见铃声只是和奖励相关的一个状态,是因为所获得的奖励强化了这个状态的价值,导致狗狗的行为变成在听见铃声的时候就流着口水跑过来了。
关于强化学习的例子同样可以在各个方面找到,在游戏里打怪虽然很无聊,但是因为升级以后能够获得一把闪闪的武器,所以我们还是每天开心的在游戏里刷刷刷。
奖励和价值
在上面的两个例子中,奖励是狗粮,奖励是闪闪的武器,而价值是智能体(Agent,前一个例子是狗,后一个例子是玩家)对于一个状态能获得奖励的期望。我们做出当前行为的依据是追求价值最大化,即使这个行为本身不能带来任何直接奖励,比如听到铃声就流着口水跑过来和刷怪。
那么转到游戏中的人工智能来说,我们通常很容易在游戏环境中实现某种奖励,但却难以直接定义每个状态的价值,因此就很难去指导AI的行动。例如AI寻路,我们创建了一个迷宫,可以设定AI从入口出发,如果走到了终点,我们就给AI一个奖励。但具体当AI走到每个路口的时候,AI需要知道的是这时应该向左转还是向右转,哪边更容易到达终点。这个到达终点的难易程度,就是下一个可走状态的价值。如果能够计算出迷宫中每一个位置的价值,AI的行为就非常容易实现了,就是选择下一步可选状态中价值最高的那一个。
一个例子
下面这个例子里,我们人类只需一眼就能向上的路是到达终点最快的途径。但对于一种AI算法来说,则需要找到一种方式让它知道,在入口处进来后,往上方的那个格子具有较高的价值,而右方的格子价值较低,基于这个准则来让AI做出向上走的选择。
理想中的价值函数,如果用白色代表最高的价值,黑色代表没有没有价值,那么它的分布应该是像这样:
在得到这样的一张价值函数分布以后,就能在任意一点指导AI的行动了。
暂无关于此日志的评论。