让AI做个人吧!探究游戏AI的拟人性问题( 四 )


文章图片
, 并且引入一个回报函数
让AI做个人吧!探究游戏AI的拟人性问题
文章图片
来刻画这个表现程度(比如游戏的技巧得分、游戏的竞技得分等的综合表现) 。 那么模仿人类行为的学习目标就可以表示为找到一个AI策略
让AI做个人吧!探究游戏AI的拟人性问题
文章图片
, 使得它尽量能够取得和人类接近的回报 , 即:
让AI做个人吧!探究游戏AI的拟人性问题
文章图片

行为克隆
如何求解这个问题呢?一种直接的想法是通过人类的示例数据集
让AI做个人吧!探究游戏AI的拟人性问题
文章图片
来估计人类的行为策略
让AI做个人吧!探究游戏AI的拟人性问题
文章图片
, 这种方式也被称为行为克隆(BehaviorCloning)[4] 。 一种常用的估计方法就是最大似然估计(MaximumLikelihoodEstimation) 。 假设要求解的策略模型表示为
让AI做个人吧!探究游戏AI的拟人性问题
文章图片

让AI做个人吧!探究游戏AI的拟人性问题
文章图片
是描述模型的参数) , 那么它产生一个数据样本
让AI做个人吧!探究游戏AI的拟人性问题
文章图片
的似然即可以表示为
让AI做个人吧!探究游戏AI的拟人性问题
文章图片
。 最大似然估计可以转换为最大化对数似然 , 即
让AI做个人吧!探究游戏AI的拟人性问题
文章图片
这是一个凸优化问题 , 我们可以直接使用一些强大的机器学习学习方法来求解 。 比如 , 近几年飞速发展的深度学习 , 由于非常强的学习拟合能力而被广泛应用到图像、自然语言处理等领域 。 它同样可以帮助我们来拟合人类的行为 。
不过值得注意的是 , 在进行机器学习的时候 , 每个样本都是作为独立的样本去对待的(机器学习的样本独立同分布假设) , 但是样本实际上都是从序列数据中收集而来 , 并不满足独立同分布的假设 。 这就会导致策略模型如果在某一步发生了一丁点儿的错误预测 , 那么这个错误会被一直累积下去 , 导致AI遇到一些人类从来没有遇到过 , 并且AI也没有被训练过的场景 。 这时候AI的表现就会非常糟糕 。
如下图所示 , 我们可以很直观地从一个赛车游戏的例子中明白 , 假如在学习人类的赛车轨迹的时候 , 在弯道的控制上出现了一定的误差 , 那么这个误差会被一直延续下去 , 直到赛车撞出赛道 。 但是如果没有人类撞出赛道之后的补救行为数据 , 行为克隆将很难帮助我们得到一个满意的行为策略 。
让AI做个人吧!探究游戏AI的拟人性问题
文章图片
[失败的行为克隆]
不难看出 , 行为克隆虽然简单并且高效 , 但是决策序列越长行为克隆就越可能累积很大的误差 , 导致后续的决策越来越离谱 。 如果能够获取足以应付各种意外情况的海量人类示例数据 , 那么这个累积误差问题才能得到缓解 , 但是这一点在游戏研发阶段通常都很难满足 。 不然我们只能寄希望于这些累积误差不会导致对游戏致命的影响 。
为了解决这个问题 , 也有学者提出名为DAgger(DatasetAggregation)[5]的方法 。 这个方法的基本思想是不断利用人类来纠正行为克隆中出现的错误 。 具体算法可以描述为:
首先将行为克隆得到的策略继续与环境交互 , 来产生新的数据然后将这些数据提供给人类 , 以获得人类在这些数据上的行为 , 从而得到一个增广的数据在增广后的数据集上 , 重新进行行为克隆 , 以得到新的策略重复上述过程由于在不停和环境交互的过程中利用人类的知识对数据进行了增广 , DAgger算法会大大增加数据对状态空间的覆盖度 , 从而减少学习时候的误差 。

相关经验推荐