唐杉作者

AI+游戏:高效利用样本的强化学习

3月15日,腾讯AI Lab第二届学术论坛在深圳举行,聚焦人工智能在医疗、游戏、多媒体内容、人机交互等四大领域的跨界研究与应用。全球30位顶级AI专家出席,对多项前沿研究成果进行了深入探讨与交流。腾讯AI Lab还宣布了2018三大核心战略,以及同顶级研究与出版机构自然科研的战略合作(点击 这里 查看详情)。

腾讯AI Lab希望将论坛打造为一个具有国际影响力的顶级学术平台,推动前沿、原创、开放的研究与应用探讨与交流,让企业、行业和学界「共享AI+未来」。

彭健:美国伊利诺伊大学厄巴纳-香槟分校计算机科学系助理教授

在下午的“AI+游戏”论坛上,美国伊利诺伊大学厄巴纳-香槟分校计算机科学系助理教授彭健博士做了主题为《实现能高效利用样本的强化学习》的演讲。

彭健博士的研究方向是计算生物学和机器学习的相关领域(如基因组、系统生物学和分子生物学方面的大数据分析处理)。在计算生物学方面,他一直致力于开发高效的算法,对庞大的基因数据集以及系统生物学和分子生物学中的数据集进行分析处理整合。在机器学习方面,他的主要研究兴趣为采样、变分推理方法以及高维图模型的结构化学习算法。他曾获得CROI青年学者奖、斯隆研究奖、美国国家自然科学基金会职业生涯奖、PhRMA基金奖等多个国际著名奖项。他是ISMB、 RECOMB、 AISTATS、ACM-BCB、 AAAI 和 GLBIO等机器学习和生物信息学会议的程序委员会会员,以及PNAS、PLOS Computational Biology、 IEEE/ACM TCB等国际顶级期刊的审稿人。彭健博士为美国芝加哥大学丰田技术学院计算机科学博士,曾于美国麻省理工学院Berger Lab进行博士后研究。


演讲内容

深度强化学习的近期进展(包括深度 Q 学习和基于神经网络的策略优化)已经证明在传统人工智能方法无法解决的很多问题上是有效的。达到人类水平的游戏智能体、AlphaGo机器人操作都是其中引入注目的案例。但是,这些任务策略学习需要大量的计算资源,这使得深度强化学习算法难以实际应用于计算机游戏等更复杂的任务。

本演讲将讨论一些令现有算法难以应用的挑战(尤其是奖励传播延迟、方差估计高和探索不充分),同时介绍一些解决方案,展示它们在 Atari 游戏和机车机器人任务上的应用。

以下为演讲全文(为便于阅读进行过适当编辑整理):

大家下午好,我叫彭健,来自美国伊利诺伊大学厄巴纳-香槟分校计算机系,今天我讲一讲我们研究组对深度强化学习的一些改进。

目前的游戏 AI(特别是一些基于深度学习的 AI)的表现相比传统的基于规则的算法实现了很大的提升。而且在各种各样的游戏上都有这种现象,比如控制类游戏、物理模拟类游戏(比如《愤怒的小鸟》)、基于第一视角的探索性游戏(比如《Minecraft》)、以及更难的有大面积搜索空间的游戏(比如《王者荣耀》、《DotA》、《星际争霸》)。另外,AlphaGo 是目前最有影响力的工作。其实所有这些游戏 AI 背后的算法都有深度强化学习

在深度强化学习中目前有两种比较有效的算法。第一种算法是策略优化,也就是说我们通过一个函数定义智能体的一个行为,比如根据当前的游戏画面或围棋盘面定义接下来的操作。这个过程中有两种可能:一种是确定性的策略,也就是说知道下面需要走哪一步;还有一种是随机的,也就是说可能存在各种不同的选择,我可以根据概率来选择其中一个操作。策略优化方法是现在目前比较流行的方法,因为这是一种比较简单和直接的优化办法。目前主要的方法是通过策略梯度来进行优化,也就是通过优化策略来最大化未来得到的奖励(reward)。

第二种方法叫做 Q 学习,这是一种通过学习价值函数或价值网络的方法。这个价值函数能给出对未来奖励的预测。在 AlphaGo 中,这两种算法是交叉在一起的。策略网络学习下一步要走哪个子,价值函数对当前落子进行价值估计。

在目前的深度强化学习中,最大的一个难题是采样复杂度太高了,也就是说我们需要大量数据来训练我们的智能体。不论是策略优化方法还是 Q 学习的方法,都需要大量数据。比如这里展示的几个例子,在《Space Invader》和《Seaquest》这两个 Atari 游戏中,智能体所获得的分数会随训练数据增加而增加。可以看到,利用经典的深度强化学习算法可能需要 2 亿帧画面才能学到比较好的效果。AlphaGo 最早在 Nature 公布的版本也需要 3000 万个盘面。

这样高的采样复杂度,就导致我们没法在各种复杂游戏中使用深度强化学习。有两个可能的原因。第一个原因是游戏中的奖励信号通常是稀疏的或会延迟到来,也就是说我们在相当长的时间内都不会得到游戏的反馈。另一个原因可能是没有足够的探索,也就是说我们当前学习的策略可能会被困在局部最优。

下面我讲一下针对这两个问题我提出来的可能解决方案。

第一,考虑到奖励的稀疏性和延迟性问题,我们就想有没有办法可以使奖励传递得更快?

现在我们考虑一个很简单的游戏——第一视角的迷宫探索类游戏。在这个游戏中,我们只能观察到前方视野中的数据。我们的任务是从迷宫的某处出发,到达某个点。这种情况下,我们就只有一个非零奖励,也就是迷宫的出口。在探索过程中,我们不能得到任何反馈。在围棋中也是一样,我们一直要到最后一步才能知道我们是输还是赢。

在这样的情况下,我们自然会想能不能让奖励信号传播得更快一点。经典的 Q 学习算法是每次传播一步,也就是采取了一个动作就立即会有一个奖励反馈。我们很自然就会想:也许能把很多步的奖励积累起来,跨越多个时间点一次性传播回当前时间点。

下面我给大家介绍一下我的一个简单想法。假设在 Q 学习中有一个时间线,在一局游戏中不同的时间点上有不同的动作,对应不同的奖励。每个时间点都有一个价值函数 Q(sj,aj),表示在当前状态 s 时采取动作 a 的价值。经典的 Q 学习算法就是这样的,我们向下走一步,然后看能不能通过这一步的操作来更新 Q。

如果我们想实现更快的奖励传播,我们就需要向前多看若干步。这是一个很自然的想法。如果我们知道整个时间线,在当前状态,我可能对未来有一个规划和估计;如果我知道我的未来,我就可以知道当前可能会有更好的选择,我就可以得到一个对未来比较乐观的估计。我知道如果我选择一个其它动作,我能在当前时间线上得到更好的价值。这是一种展望未来式(looking forward)的算法。利用贝尔曼方程(Bellman Equation),我们可以得到当前估计的下限。

我们也可以向回看,进行一下反省。如果我们知道这样一个时间线,我们可以回到过去,我可以知道在过去的时候我可能有更好的选择。我们同样可以用贝尔曼方程展开,得到当前估计的上限。这个算法比较简单。

如图所示,上面是经典深度 Q 学习的算法,这是每一步的算法。现在我只需要对这个算法修改一点点,加两个约束——一个是基于未来的下限,一个基于过去的上限。这样我们就能大大减小价值函数的搜索空间,从而能实现更好的采样效率。

我们做了一些简单的实验。在 DeepMind 用来评价自己的算法的 64 个 Atari 游戏基准上,我们评估我们的方法的采样效率。在一个 GPU 上,经典的 DQN 算法需要 10 天以上时间才能达到与人类相当的游戏水平,而我们的算法只需要一天,而且得到的结果还更好。这个方向可能还有其它做法,这只是我们的一个尝试。

第二个问题是没有足够的探索,也就是说游戏智能体可能会困在局部最优。

比如,这是我们之前尝试的一个游戏。智能体需要探索一个迷宫,然后救出人质或达到一些其它目的。这个游戏的场景很简单,所以很容易训练。但很快在这个状态就会卡住,就无法得到一个很好的策略。

其它一些强化学习算法也会陷入类似的问题。比如在机器人学的研究中,人们利用了 A2C和 PPO 等一些其它算法。可以看到,如果用同样的算法训练同样的游戏若干次,不同的次数可能就会得到非常不同的训练结果。这是因为策略优化和 DQN 算法很容易陷入局部最优,而且我们不知道它们什么时候能跳出来。

所以我们就想,如果只训练一个模型容易陷入局部最优,那么我们就训练多个模型。这个算法与自然界采用的一些方法很像,比如蚁群算法和其它一些组合优化算法。我们可以同时采取多个不同的模型,同时进行训练。我们的目标是同时优化这些模型的表现,同时让这些模型看起来不太一样。基于这一思考,我们首先提出一种名叫非参数变分推理(SVPG)的算法,这个工作发表在 UAI 2017 会议上。

另一个比较直观的想法是用遗传算法。我们通过经典的遗传算法,同时维护若干个模型,然后让这些模型分别自己进化并进行杂交。之后我们选取其中更好的后代进行优化。针对深度强化学习,我们设计了一个新的基于神经网络的 crossover 优化器。也就是说,当我们有一个父亲模型和一个母亲模型的时候,我们可以怎样得到一个比较好的后代模型?

我们用了一个不同于传统的方法。我们用模仿学习(imitation learning)方法训练一个后代,让它去模拟父亲和母亲的策略行为。然后我们在一些机器人环境中探索了这些算法的优异性。我们的算法在大多数机器人任务上都能超越之前的最佳方法。

我刚才介绍了针对探索和奖励延迟问题的一些解决方法。而深度强化学习还有很多其它问题。如果我们想利用深度强化学习设计比较复杂的游戏 AI,可能就会遇到很多难题。比如,第一个问题可能是策略梯度估计时方差比较大——我们做了一些优化这个方差的工作。第二个问题是动作空间比较大,我们需要一些抽象(abstraction)方法来缩小动作空间。第三个问题是现在的算法的数据有效性还是不够,我们需要一些更好的优化算法。

谢谢!

矽说
矽说

入门机器学习AI
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

深度强化学习技术

强化学习(Reinforcement Learning)是主体(agent)通过与周围环境的交互来进行学习。强化学习主体(RL agent)每采取一次动作(action)就会得到一个相应的数值奖励(numerical reward),这个奖励表示此次动作的好坏。通过与环境的交互,综合考虑过去的经验(exploitation)和未知的探索(exploration),强化学习主体通过试错的方式(trial and error)学会如何采取下一步的动作,而无需人类显性地告诉它该采取哪个动作。强化学习主体的目标是学习通过执行一系列的动作来最大化累积的奖励(accumulated reward)。 一般来说,真实世界中的强化学习问题包括巨大的状态空间(state spaces)和动作空间(action spaces),传统的强化学习方法会受限于维数灾难(curse of dimensionality)。借助于深度学习中的神经网络,强化学习主体可以直接从原始输入数据(如游戏图像)中提取和学习特征知识,然后根据提取出的特征信息再利用传统的强化学习算法(如TD Learning,SARSA,Q-Learnin)学习控制策略(如游戏策略),而无需人工提取或启发式学习特征。这种结合了深度学习的强化学习方法称为深度强化学习。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

阿尔法围棋技术

阿尔法围棋是于2014年开始由英国伦敦Google DeepMind公司开发的人工智能围棋程序。AlphaGo是第一个打败人类职业棋手的计算机程序,也是第一个打败围棋世界冠军的计算机程序,可以说是历史上最强的棋手。 技术上来说,AlphaGo的算法结合了机器学习(machine learning)和树搜索(tree search)技术,并使用了大量的人类、电脑的对弈来进行训练。AlphaGo使用蒙特卡洛树搜索(MCTS:Monte-Carlo Tree Search),以价值网络(value network)和策略网络(policy network)为指导,其中价值网络用于预测游戏的胜利者,策略网络用于选择下一步行动。价值网络和策略网络都是使用深度神经网络技术实现的,神经网络的输入是经过预处理的围棋面板的描述(description of Go board)。

规划技术

人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。

机器人技术技术

机器人学(Robotics)研究的是「机器人的设计、制造、运作和应用,以及控制它们的计算机系统、传感反馈和信息处理」 [25] 。 机器人可以分成两大类:固定机器人和移动机器人。固定机器人通常被用于工业生产(比如用于装配线)。常见的移动机器人应用有货运机器人、空中机器人和自动载具。机器人需要不同部件和系统的协作才能实现最优的作业。其中在硬件上包含传感器、反应器和控制器;另外还有能够实现感知能力的软件,比如定位、地图测绘和目标识别。之前章节中提及的技术都可以在机器人上得到应用和集成,这也是人工智能领域最早的终极目标之一。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

贝尔曼方程技术

“贝尔曼方程(Bellman Equation)”也被称作“动态规划方程(Dynamic Programming Equation)”,由理查·贝尔曼(Richard Bellman)发现。贝尔曼方程是动态规划(Dynamic Programming)这种数学最佳化方法能够达到最佳化的必要条件。此方程将“决策问题在特定时间点的值”以“来自初始选择的报酬 及 由初始选择衍生的决策问题的值”的形式表示。藉这个方式将动态最佳化问题变成较简单的子问题,而这些子问题遵守由贝尔曼所提出的“最佳化原理”。

模仿学习技术

模仿学习(Imitation Learning)背后的原理是是通过隐含地给学习器关于这个世界的先验信息,就能执行、学习人类行为。在模仿学习任务中,智能体(agent)为了学习到策略从而尽可能像人类专家那样执行一种行为,它会寻找一种最佳的方式来使用由该专家示范的训练集(输入-输出对)。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

人机交互技术

人机交互,是一门研究系统与用户之间的交互关系的学问。系统可以是各种各样的机器,也可以是计算机化的系统和软件。人机交互界面通常是指用户可见的部分。用户通过人机交互界面与系统交流,并进行操作。小如收音机的播放按键,大至飞机上的仪表板、或是发电厂的控制室。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

推荐文章
暂无评论
暂无评论~