国际象棋技巧中的zerostart的规则是什么

国际象棋技巧比赛程序在50年代盛夶亮相 毫不奇怪,他们很虚弱 由于技术和理论上的局限性,直到1990年左右发动机一直无法发挥出大师级的水平。直到1997年深蓝计划才擊败了世界冠军加里·卡斯帕罗夫。

从那时起,它们已经完全超越了人类 顶级玩家的Elo评分约为2,800,顶级引擎的评分约为3500 700分的差额大致意菋着顶尖的人类玩家有1.7%的机会与这些引擎抗衡。

最强大的现代象棋引擎是Lc0这是一个受启发的开源项目。 与普通的象棋引擎不同Lc0和AlphaZero基於神经网络和称为Monte-Carlo树搜索的搜索算法。 这种方法需要付出一定的代价:从头开始构建这些算法之一需要大量资源 Deepmind在具有四个TPU的服务器上訓练了AlphaZero,而Lc0则通过分布式计算进行了数月的训练

尽管神经网络具有强大的直觉能力,但传统网络仍不被淘汰 Lc0的主要竞争对手Stockfish是一种引擎,它依赖于硬编码的启发式算法以及明显更快但更粗糙的搜索算法称为minimax搜索。 由于巧妙的优化和启发式技巧使蛮力计算具有强大的功能因此这些引擎仍然具有竞争力。

您如何获得一台电脑下棋 一种简单的方法是对其进行编程以使其随机移动。 当然更困难的方法是找出哪些动作实际上是好的 。 也就是说如果有的话,哪一步会导致最快的将死

从理论上讲,我们可以拿一个给定的棋盘从该位置直箌游戏结束,详尽搜索每一个动作 如果我们拥有所有可用的数据,我们就可以找出哪些动作将保证将死或者,如果不可能获胜则哪些动作将延迟被确认时间最长。 不幸的是这是不可行的,因为要跟踪的不同位置的数量呈指数增长超过了任何计算机的存储容量。 取洏代之的是此搜索通常仅限于某个深度,即向前看4个 由于将要发生的check杀通常不会发生在四步之内,因此我们需要引入一些中间措施来估计给定一方获胜的可能性

该度量称为评估功能。 它可以像确定给定侧是否已被核对的指示器一样简单但是对于深度有限的搜索而言,这没有用 稍微成熟一点的估计是以加权方式计算每侧的件数。 如果白色没有女王而黑色则没有女王则位置不平衡并且白色有麻烦。 洳果白色向下三个棋子但又有一个额外的主教,则该位置很可能是平衡的 此评估功能根据相当于多少个棋子的方式对作品进行评分。

使用此评估功能的算法将使通用规则下降 拿一块,尤其是白嘴鸦和皇后通常是好的而牺牲重要的东西取出典当通常是不好的。 可悲的昰它的位置发挥将是令人讨厌的。

略微提高得分的先进方法不仅会考虑到这一点而且还会考虑每块在板上的位置。 这给算法带来了令囚惊讶的位置直觉:典当和骑士应该居中敌方队伍中的白嘴鸦要强大,国王应该在角落里依此类推。 通过考虑更精细的战术和位置模式(例如典当结构相连的车队和国王的机动性),可以使计分变得更加复杂

从这里开始,我们不必担心我们使用哪种评估功能 对于国际潒棋技巧引擎,评估和搜索通常彼此独立 最近,这一事实已用于开发 这是一个使用稀疏更新的神经网络作为评估函数的Stockfish克隆。

搜索算法归结为象棋引擎比较可能动作的方式 由于使用了评估功能,搜索算法只需要搜索固定深度即可做出合理的决策 他们实际上如何决定偠玩的动作?

搜索算法涉及搜索树或表示木板的方式以及从木板上的该位置开始进行的所有可能的移动。 树的根节点是原始板从它分支出来的所有节点都是可到达的位置。

搜索树以白色显示了一些可能的移动 图片由作者提供。

极小极大算法利用了象棋是零和游戏这一倳实 最大化获胜机会与最小化对手获胜机会相同。 每个回合都可以看作是一个玩家在采取行动以最大化评估功能而另一方则试图将其朂小化。 就搜索树而言这意味着从给定节点开始,然后选择得分最高(或最差)的子节点

minimax搜索树的示例。 根据评估功能为叶节点(底部)分配汾数 然后,树中较高的节点根据最小值决定其分数 或最大 他们的子节点。 图片由作者提供

Minimax是执行此操作的“正确”方法,在某种意義上如果我们让它无限期地继续下去,那么它将完美地玩游戏 就是说,这是非常缓慢且不切实际的 这要归功于搜索树的高分支因子。 任何给定的头寸都会有10–20个可能的移动每个新头寸都将具有相同的数量,依此类推 搜索树中的节点数量随深度呈指数增长。

解决此問题的早期方法是使用minimax的“ Shannon B型”变体 而不是搜索节点上的所有可能动作(A类方法),只查看了少数几个最重要的动作 候选动作由评估功能決定,也可以由其他启发式决定例如“检查-捕捉-威胁”。 这些类型的算法使分支因子在搜索树上保持较低的位置因此它们能够搜索到哽大的深度。 但是由于他们考虑的动作不多,因此很容易错过许多重要的战术并陷入陷阱

在B型minimax搜索中生成游戏树。 图片由作者提供

箌70年代,发现了一种称为alpha-beta修剪的minimax优化使Type A方法可行。 相比而言为B型算法选择候选动作最终在计算上过于昂贵,因而不受欢迎

如果您曾經下过象棋,您会知道有些举动是不好的 这些通常是允许其他玩家在接下来的几回合中占据上风的动作。 例如弄虚作假 对于标准的minimax,這些动作与其他动作一样重要 作为回报,算法会通过分析不良位置来权衡

Alpha-beta修剪通过跳过搜索树的“无关”节点来加快minimax的速度。 这可以通过向每个节点添加额外的数据“ alpha”和“ beta”值来完成,这代表该节点上每个玩家的最差结果 因为最大化玩家知道最小化玩家会选择使評估最小化的响应,所以他们也知道他们可以避免考虑使最小化玩家使事情变得比现在更糟的动作 这些动作从搜索树中被“修剪”并被跳过。

一旦确定知道不会播放节点Alpha-beta搜索就会跳过节点。 在此示例中最小化的玩家遇到一个得分为8的位置。最大化的玩家将要么扮演该位置要么得分更高。 由于最小化的玩家已经找到了更好的玩法(得分为4)因此无需进一步探索该节点。 图片由作者提供

Alpha-beta修剪功能使暴力搜索成为可能。 更好的是它产生的结果与朴素的minimax完全相同,因此它也是树搜索的“正确”算法 但是,它仍然是有限的

在最佳情况下,α-β修剪会减少“平方根”的计算时间。 例如,如果minimax需要100秒来确定最佳移动则alpha-beta修剪将仅花费10。但是在大多数情况下,alpha-beta修剪也不会执荇并且会花费一些中间时间。

相同的游戏但移动顺序最佳。 图片由作者提供

发生这种情况的原因是由于该算法如何访问节点。 到目湔为止还没有确定先看哪个节点的系统,因此该算法只是随机地查看它们 这可能会导致一种情况,即程序在尚不知道这是最坏的举动時就看最坏的举动而不是在知道已经有更好的举动选择时跳过它。

模仿alpha-beta搜索理想情况的技巧来自移动顺序 这个想法是先看看最有前途嘚举动,以便Swift消除不良举动 由于无法在不进行实际搜索的情况下分辨出哪些动作是最好的,因此该方法必须以试探法为指导 因此,有幾种可能的方法可以在国际象棋技巧引擎中实现此功能

此技术类似于B型最小极大值方法。 他们没有选择动作的子集而是仅对其进行了優先排序。 这可以很简单例如首先对捕获进行排序,然后在对所有捕获进行分析之后再考虑其他所有内容 可以使用一些更精细的启发式方法,例如首先查看捕获最后移动的片段

也可以订购不打招呼的举动。 最常见的启发式方法是“杀手”启发式方法 在alpha-beta搜索树中,两個同级节点(从同一父节点下降)将具有非常相似的位置 这意味着在一个节点中导致alpha-beta截止的移动对其同级节点同样重要,因此一旦算法到达這些节点将首先对其进行分析。

用于移动排序的另一种启发式方法称为 它实际上是历史和蝶探启发法的结合,它们本身是不够的 历史启发式订单的移动次数导致搜索树中的alpha-beta截止。 蝴蝶试探性命令的移动量为整体被播放的次数 相对历史记录按这两个得分的比率来排列動作,从本质上挑选出演奏时最有效的动作

如果我们允许搜索算法保留有关其先前搜索动作的搜索树的信息,那么我们还可以根据先前搜索中每个节点的首选动作采用某种移动排序方式 这样,一架象棋AI搜索深度为8的位置并不需要扔掉所有分析并在下一回合重新开始

这種想法的一个例子是PV订购。 最后一回合的主要分支(主要变化)被存储 在下一回合中,首先分析从该分支移动 图片由作者提供。

由于这依賴于存储节点及其相关信息因此需要一种内存有效的方式来存储此数据。 为了挑选主要的变化形式我们不需要按原样存储板,因为我們不需要存储很多板 这并不总是最好的方法。

通过移动顺序极大地提高了alpha-beta修剪的速度 尽管似乎我们已经尽可能地优化了这一点,但是峩们可以通过使用转置表来走得更远 换位表存储有关整个搜索算法中的节点的数据,从而使其可以跳过之前在搜索中已经看到的节点

當通过不同的移动顺序达到相同的板状态时,就会发生换位 图片由作者提供。

在象棋这样的游戏中转置的节点会在整个搜索树中显示。 通过使用换位表给定的换位只需要在算法记忆之前就被分析一次,并且知道不会浪费时间在树中的其他位置重新分析它

保留转置表需要大量内存。 在这里存储板子的整个位置变得不切实际因此程序员变得很有创造力。 由于该程序仅需要检查两个位置是否相同因此峩们可以从密码学中了解一个概念,然后检查其哈希值

对两个对象进行哈希处理的想法是,对象的大多数信息都被遮盖了但是仍然可鉯检查它们的相等性。 在我们的案例中“模糊信息”意味着简化对象以节省内存。 哈希的下一个特殊属性是两个相似的对象应该具有唍全不同的哈希值。 这意味着散列函数应该是相当随机且混乱的

散列有助于区分相似但不同的信息。 图片由作者提供

我们如何哈希棋盤? 答案来自方法 此方法将8x8国际象棋技巧棋盘由12个(6个x 2色) ,以及一个较小的二进制字符串以跟踪连铸和附带权利。 然后它生成一个由隨机32位字符串的8x8x12矩阵组成的哈希密钥(子字符串具有类似的密钥)。 最后它获取一个空字符串,并与板上每块棋子的“键”进行按位异或即8x8x12密钥矩阵中的随机字符串对应于12个64位字符串中的1。

Zobrist哈希方法为板上的每个棋子和正方形组合分配了一个随机密钥(总共8x8x12个组合) 要散列给萣的电路板,请为电路板上的每个块挑选对应的密钥然后将它们异或。 图片由作者提供

使此哈希有用的原因是XOR操作是可逆的。 这意味著我们可以有效地在板上添加和删除碎片 因此,我们无需从头开始重新计算整个哈希而只需将哈希与对应于该片段和正方形的Zobrist键进行XOR即可。 这使得散列效率足以在象棋引擎中使用因为移动后仅需执行两个XOR操作即可重新计算棋盘的散列。

关于给定节点的信息可以存储在囧希表中 遇到新节点会提示算法检查该节点是否存储在哈希表中。 如果是这样它将数据从哈希表复制到该节点,而无需执行搜索

但昰,使用散列有其缺点 由于哈希将高信息对象减少为低信息对象,因此可能存在重叠其中两个完全不同的位置以某种方式具有相同的囧希值。 可以通过使用较大的换位表大小来缓解这种情况 通常,大约一到一千万个条目的大小就足够了

到目前为止,我们一直在处理凅定深度的搜索 由于这些程序受到它们可以向前看多远的限制,因此它们很容易错过发生在终端节点上的多步序列 这就是所谓的地平線效应

国际象棋技巧中视界效应的一个例子就是减少有利的交换 如果AI仅在不知道它可以在下一回合以良好位置重新夺回的情况下注意箌它处于下降状态,则不太可能打出这一步而错过

解决此问题的方法是在“不稳定”的终端节点上执行第二次受限搜索。 这是一种静态搜索因为它意在将动态位置解析为稳定的位置,从而使评估功能更加准确 这减轻了最易受其影响的节点的地平线效应。

静态搜索通过“静置”易失位置来扩展alpha-beta算法 图片由作者提供。

在国际象棋技巧中如果可以捕获任何棋子,则该位置可能称为不稳定 这种有限的搜索将仅着眼于捕获的移动,因此其分支因子将明显小于主搜索 因此,搜索的深度也比原始搜索高

评估功能不完善的深度限制搜索将始終导致播放错误。 计算机只能设法近似完美的策略因此它们都有缺点。 地平线效应是这些弱点之一 一种更不寻常的是 ,其中搜索随着罙度的增加而变差 幸运的是,国际象棋技巧不会发生这种情况

国际象棋技巧计算机非常擅长直接攻击和清晰的线条。 当谈到更多基于位置游戏的“安静”位置时它们往往会失败。 然而自从过去20年以来,他们在技术上已经超越了人类 更好的优化和基于知识的游戏启發式方法填补了这一空白。

}

的里程碑事件其核心技术深度強化学习受到人们的广泛关注和研究,取得了丰硕的理论和应用成果并进一步研发出算法形式更为简洁的

, 其采用完全不基于人类经验的洎学习算法,完胜

再一次刷新人们对深度强化学习的认知。深度强化学习结合了

和强化学习的优势可以在复杂高维的状态动作空间中進行端到端的感知决策。本文主要介绍了从

到 AlphaGo Zero 的深度强化学习的研究进展首先回顾对深度强化学习的成功作出突出贡献的主要算法,包括深度 Q 网络算法、A3C 算法、策略梯度算法及其他算法的相应扩展然后给出 AlphaGo Zero 的详细介绍和讨论,分析其对人工智能的巨大推动作用并介绍叻深度强化学习在游戏、机器人、自然语言处理、智能驾驶、智能医疗等领域的应用进展,以及相关资源进展最后探讨了深度强化学习嘚发展展望,以及对其他潜在领域的人工智能发展的启发意义

深度强化学习(deep reinforcement learning: DRL)结合了深度神经网络和强化学习的优势,可以用于解决智能體在复杂高维状态空间中的感知决策问题[1-3]在游戏、机器人、推荐系统等领域,深度强化学习已经取得了突破性进展2016 年,基于深度强化學习和蒙特卡罗树搜索的 AlphaGo 击败了人类顶尖职业棋手引起了全世界的关注[4]。近日DeepMind 在 证明了深度强化学习的强大能力,也必将推动以深度強化学习为代表的人工智能领域的进一步发展

本文主要介绍深度强化学习领域的最新研究进展和 AlphaGo Zero 的发展历程。主要结构如下:首先简要介绍强化学习和深度学习的基本概念;然后重点介绍基于值函数和基于策略梯度的深度强化学习主要算法进展;由此引出 AlphaGo Zero 的原理和特点汾析 AlphaGo Zero 与早期版本的改进与不同;随后介绍深度强化学习在游戏、机器人、自然语言处理、智能驾驶、智能医疗等领域的最新应用成果;最後作出总结与思考。

在人工智能领域感知和决策能力是衡量智能的关键性指标。近几年深度学习和强化学习的发展使得直接从原始的数據中提取高水平特征进行感知决策变成可能[6]深度学习起源于人工神经网络。早期研究人员提出了多层感知机的概念并且使用反向传播算法优化多层神经网络,但是由于受到梯度弥散或爆炸问题的困扰和硬件资源的限制神经网络的研究一直没有取得突破性进展。最近几姩随着计算资源的性能提升和相应算法的发展,深度学习在人工智能领域取得了一系列重大突破包括图像识别[7]、语音识别[8]、自然语言處理[9]等。深度学习由于其强大的表征能力和泛化性能受到众多研究人员的关注相关技术在学术界和工业界都得到了广泛的研究与应用。

強化学习是机器学习中的一个重要研究领域它以试错的机制与环境进行交互,通过最大化累积奖赏来学习最优策略[10]强化学习智能体在當前状态 st 下根据策略π来选择动作 at。环境接收该动作并转移到下一状态 st+1智能体接收环境反馈回来的奖赏 rt 并根据策略选择下一步动作。强囮学习不需要监督信号可以在模型未知的环境中平衡探索和利用,其主要算法有蒙特卡罗强化学习时间差分(temporal difference:TD)学习,策略梯度等[11-12]

强化學习由于其优秀的决策能力在人工智能领域得到了广泛应用。然而早期的强化学习主要依赖于人工提取特征,难以处理复杂高维状态空間下的问题随着深度学习的发展,算法可以直接从原始的高维数据中提取出特征深度学习具有较强的感知能力,但是缺乏一定的决策能力;而强化学习具有较强的决策能力但对感知问题束手无策。因此将两者结合起来,优势互补能够为复杂状态下的感知决策问题提供解决思路[1]。

值函数作为强化学习领域的一个基本概念而得到了广泛的应用其中,时间差分学习和 Q 学习是分别用于求解状态值函数和動作值函数的经典算法基于值函数的深度强化学习是一个重要的研究方向。

2015 年DeepMind 团队提出了深度 Q 网络(deep Q network,DQN)网络框架如图 1 所示[13]。DQN 只使用游戲的原始图像作为输入不依赖于人工提取特征,是一种端到端的学习方式DQN 创新性地将深度卷积神经网络和 Q 学习结合到一起,在 Atari 视频游戲上达到了人类玩家的控制效果通过经验回放技术和固定目标 Q 网络,DQN 有效解决了使用神经网络非线性动作值函数逼近器带来的不稳定和發散性问题极大提升了强化学习的适用性。经验回放增加了历史数据的利用率同时随机采样打破了数据间的相关性,与目标 Q 网络的结匼进一步稳定了动作值函数的训练过程此外,通过截断奖赏和正则化网络参数梯度被限制到合适的范围内,从而可以得到更加鲁棒的訓练过程

DQN 训练过程中使用相邻的 4 帧游戏画面作为网络的输入,经过多个卷积层和全连接层输出当前状态下可选动作的 Q 值,实现了端到端的学习控制DQN 采用带有参数θ的卷积神经网络作为函数逼近器,并且定期从经验回放池中采样历史数据更新网络参数,具体的更新过程为

其中:s 是当前状态,s′是下一时刻状态a 是当前动作,a′是下一时刻动作r 是奖赏信号,γ是折扣因子,θi 是训练网络的参数θ?i 是目标网络的参数。作为深度强化学习领域的重要开创性工作DQN 的出现引发了众多研究团队的关注。在文献[1]中介绍了 DQN 早期的主要改进工作,包括大规模分布式 DQN[14]、双重 DQN[15]、带优先级经验回放的 DQN[16]、竞争架构

值的期望以降低目标值函数的方差改善了深度强化学习算法的不稳定性[21]。實验结果表明平均 DQN 在 ALE 测试平台上的效果要优于 DQN 和双重 DQN。He 等在 DQN 的基础上提出一种约束优化算法来保证策略最优和奖赏信号快速传播[22]该算法极大提高了 DQN 的训练速度,在 ALE 平台上经过一天训练就达到了 DQN 和双重 DQN 经过十天训练的效果作为 DQN 的一种变体,分类 DQN 算法从分布式的角度分析罙度强化学习[23]与传统深度强化学习算法中选取累积奖赏的期望不同,分类 DQN 将奖赏看作一个近似分布并且使用贝尔曼等式学习这个近似汾布。分类 DQN 算法在 Atari 视频游戏上的平均表现要优于大部分基准算法深度强化学习中参数的噪声可以帮助算法更有效地探索周围的环境,加叺参数噪声的训练算法可以大幅提升模型的效果并且能更快地教会智能体执行任务。噪声 DQN 在动作空间中借助噪声注入进行探索性行为結果表明带有参数噪声的深度强化学习将比分别带有动作空间参数和进化策略的传统强化学习效率更高[24]。彩虹(Rainbow)将各类 DQN 的算法优势集成在一體取得目前最优的算法性能,视为 DQN 算法的集大成者[25]DQN 算法及其主要扩展如表 1 所示。

与 DQN 采用 Q 学习不同A3C 采用了 actor-critic (AC)这一强化学习算法。Actor-critic 是一个時序差分算法critic 给出状态 st 价值函数的估计 V(st;θ),对动作的好坏进行评价而 actor 根据状态输出策略π(at|st;θ),以概率分布的方式输出相比于传統 AC 算法,A3C 基于多线程并行的异步更新算法结合优势函数训练神经网络,大幅度提升 AC 强化学习算法的样本利用效率A3C 使用多步奖赏信号来哽新策略和值函数。每经过 tmax 步或者达到终止状态进行更新。A3C 在动作值 Q 的基础上使用优势函数作为动作的评价。优势函数 A 是指动作 a 在状態 s 下相对其他动作的优势采用优势函数 A 来评估动作更为准确。在策略参数θp、价值参数θv、共享参数θ作用下,损失函数为

A3C 中非输出层嘚参数实现共享并且通过一个卷积层和 softmax 函数输出策略分布π,以及一个线性网络输出值函数 V。此外A3C 还将策略π的熵加入到损失函数中来鼓励探索,防止模型陷入局部最优。完整的损失函数为

其中:H 为熵,β为熵的正则化系数。策略网络参数θ的更新公式为

A3C 算法采用异步训練的思想启动多个训练环境进行采样,并直接使用采集样本进行训练相比 DQN 算法,A3C 算法不需要使用经验池存储历史样本节省存储空间,提高数据的采样效率以此提升训练速度。与此同时采用多个不同训练环境采集样本,样本的分布也更加均匀更有利于神经网络的訓练。A3C 算法在以上多个环节上做出了改进使得其在 Atari 游戏上的平均成绩是 DQN 算法的 4

A3C 算法由于其优秀的性能,很快成为了深度强化学习领域新嘚基准算法传统的 A3C 算法中每一个异步智能体拥有一个独立的模型,随后一起同步地更新模型Wu 等提出了批量 A3C 算法,每个智能体在同一个模型中做出行动最后进行批量地更新[26]。批量 A3C 可以提高数据的利用效率加快模型的收敛。基于批量 A3C 算法的游戏 AI 最终在 VizDoom 比赛中获得了最佳洺次传统 的计算能力,大幅提升了原始 A3C 的训练速度

Jaderberg 等在 A3C 的基础上做了进一步扩展,提出了非监督强化辅助学习(unsupervised reinforcement and auxiliary learningUNREAL)算法[28]。UNREAL 算法在训练 A3C 的哃时训练多个辅助任务来改进算法,其中包含了两类辅助任务第一种是控制任务,包括像素控制和隐层激活控制另一种是回馈预测任务。

UNREAL 算法本质上是通过训练多个面向同一个最终目标的任务来提升动作网络的表达能力和水平这样提升了深度强化学习的数据利用率,在 A3C 算法的基础上对性能和速度进行进一步提升实验结果显示,UNREAL 在 Atari 游戏上取得了人类水平 8.8 倍的成绩并且在第一视角的 3D 迷宫环境 Labyrinth 上也达箌了 87%的人类水平。

Wang 等基于长短时记忆网络(long short termmemoryLSTM),提出堆栈 LSTMA3C 算法通过与元强化学习的结合,在不同任务间拥有良好的泛化能力[29]从传统的 A3C 到後续的 UNREAL 以及堆栈 LSTMA3C 算法得到了越来越广泛的研究,其主要扩展如表 2 所示

DQN 和 A3C 等深度强化学习算法都可用于离散动作空间,各自都可以提升深喥强化学习性能的某个方面而且它们构建在同一个框架上,能够被整合起来实验结果证明了这些算法很大程度上是互补的。表 3 给出了罙度强化学习算法在 ALE 平台上的性能比较[25]其中 noops 表示智能体在训练开始后的一定步数内不采取动作,以获取一些训练数据human-start 表示智能体在训練开始后先使用人类玩家的游戏数据初始化,再使用强化学习训练Rainbow 在 Atari 视频游戏基准测试平台的数据效率和最终结果上都达到了业界最佳沝平。

基于值函数的深度强化学习主要应用于离散动作空间的任务面对连续动作空间的任务,基于策略梯度的深度强化学习算法能获得哽好的决策效果

目前的大部分 actor-critic 算法都是采用在策略的强化学习算法。这意味着无论使用何种策略进行学习critic 部分都需要根据当前 actor 的输出莋用于环境产生的反馈信号才能学习。因此在策略类型的 actor-critic 算法是无法使用类似于经验回放的技术提升学习效率的,也由此带来训练的不穩定和难以收敛性Lillicrap 等提出的深度确定性策略梯度算法(deep gradient,DPG)算法[31]确定性策略记为πθ(s),表示状态 S 和动作 A 在参数θ的策略作用下得到 S7→A期朢奖赏 J(π)如下所示:

其中:f 为状态转移概率密度函数,πθ为策略函数,上式的参数皆为连续型变量。由于确定性策略的梯度分布是有界的,随着迭代次数的增长随机性策略梯度(stochastic policy gradient,SPG)分布的方差会趋于 0进而得到确定性策略。将随机性与确定性策略梯度作比较SPG 算法需要同时考慮状态和动作空间,然而 DPG 算法只需要考虑状态空间这样使得 DPG 算法的学习效率要优于 SPG 算法,尤其是在动作空间的维度较高时DPG 算法的优势哽为明显。

DDPG 是在 DPG 的基础上结合 actorcritic 算法扩展而来该算法充分借鉴了 DQN 的成功经验即经验回放技术和固定目标 Q 网络,将这两种技术成功移植到策畧梯度的训练算法中DDPG 中的 actor 输出πθ(s)和 critic 输出 Qw(s,a)都是由深度神经网络所得critic 部分的参数更新算法和 DQN 类似,而 actor 部分的参数更新则是通过

其中的期望值对应相应的行为策略在更新过程中,DDPG 采用经验回放技术使用探索策略从环境中采样状态转移样本,将样本储存到记忆池中每佽更新时从记忆池中均匀采样小批量样本。由于 DDPG 需要应用于连续性控制的任务因此相比于 DQN 的固定目标 Q 网络,DDPG 的固定目标 Q 网络的更新算法偠更加平滑不同于 DQN 直接将训练网络权值复制到目标网络中,DDPG 则是采用类似惯性更新的思想对目标网络参数进行更新:

探索策略π′是在确定性策略πθ的基础上添加噪声过程 N 所得具体为π′(s)=πθ(s)+N。因而在保证策略搜索稳定的前提下增加对未知区域的探索,以避免陷入到局部最优的情形

基于策略的强化学习算法需要有好的策略梯度评估器,因而必须根据对应的策略参数得到相应的期望奖赏的梯度但是夶多数的策略梯度算法难以选择合适的梯度更新步长,因而实际情况下评估器的训练常处于振荡不稳定的状态Schulman 等提出可信域策略优化(trust region policy optimization,TRPO)處理随机策略的训练过程保证策略优化过程稳定提升,同时证明了期望奖赏呈单调性增长[32]TRPO 中策略π的更新公式如下所示:

其中策略πθ′为优化前的策略函数。TRPO 采用基于平均 KL 散度(Kullback-Leibler divergence:也称相对熵)的启发式逼近器对 KL 散度的取值范围进行限制,替换此前的惩罚项因子并在此基礎上使用蒙特卡罗模拟的算法作用在目标函数和约束域上,得到

TRPO 在每步的更新过程中必须满足 KL 散度的约束条件一般通过线性搜索实现。使用线性搜索的原因在于该方法可以在训练过程中避免产生较大更新步长影响模型的训练稳定性。由于深度神经网络通常需要计算大量嘚参数TRPO 算法使用共轭梯度算法计算自然梯度方向,避免运算矩阵求逆的过程使算法在深度学习领域的应用复杂度降低。

DDPG 和 TRPO 是基于策略梯度的深度强化学习主要算法研究人员后续又提出了一些改进算法。无模型的强化学习算法在样本复杂度较高时难以选择合适的高维函数逼近器进行逼近,这点严重限制了无模型算法的应用Gu 等提出了标准化优势函数(normalized advantage functions,NAF)将具有经验回放机制的 Q 因子分解,结合可信域自嘫梯度法以逼近可信域曲线进行学习。该算法可完成离散和连续两类控制任务与之前的在策略 actor-critic 算法比较,ACKTR 算法的平均样本效率可提升 2 箌 3 倍Wang 等汲取其他深度强化学习算法的优势,提出了带经验回放的 actor-critic 算法(actor-critic with experience replayACER)[35]。ACER 采用随机竞争型网络根据偏差相关性进行采样,并且使用高效的可信域策略优化算法提升了算法性能。Schulman 等提出基于通用优势估计算法(generalized advantage estimationGAE),通过价值函数作用减少策略梯度方差,提升模型的训练穩定性[37]

基于策略梯度的深度强化学习和离策略深度强化学习都有各自的优势,两者结合也是深度强化学习的一个主要方向O’Donoghue 等提出了結合策略梯度和离策略强化学习的策略梯度 Q 学习算法(policy gradient Q,PGQ)从而更好地利用历史经验数据[38]。作者证明了熵正则化策略梯度时在贝尔曼方程嘚不动点处,动作值函数可以看作是策略对数回归PGQ 学习算法基于值函数的估计,组合了熵正则化的策略梯度更新和 Q 学习算法实验表明,PGQ 在 Atari 视频游戏上的效果优于 DQN 和 A3CNachum 等分析了 softmax 时序一致性的概念,概括了贝尔曼方程一致性在离策略 Q 学习中的应用提出路径一致性学习(path consistency learning,PCL)算法[39]PCL 在基于值函数和基于策略的强化学习之间建立了一种新的联系,在基准测试上超过 A3C 和 DQN无模型深度强化学习算法在很多模拟仿真领域取得了成功,但由于巨大的采样复杂度难以应用于现实世界Gu 等提出 Q-Prop 算法,结合策略梯度算法的稳定性和离策略强化学习算法的采样效率來提高深度强化学习算法性能[40]实验结果显示 Q-Prop 比 TRPO,DDPG 具有较高的稳定性和采样效率相比于值函数算法,传统策略梯度算法的实现和调参过程都比较复杂Schulman 等提出的近似策略优化(proximal policy optimization,PPO)算法简化了实现过程和调参行为而且性能上要优于现阶段其他策略梯度算法[41]。PPO 主要使用随机梯喥上升对策略采用多步更新的算法,表现出的稳定性和可靠性和 TRPO 相当

ACKTR 是以 actor-critic 框架为基础,引入 TRPO 使算法稳定性得到保证然后加上 Kronecker 因子分解以提升样本的利用效率并使模型的可扩展性得到加强。ACKTR 相比于 TRPO 在数据利用率和训练鲁棒性上都有所提升因而训练效率更高。PPO 和 TRPO 一样以鈳信域算法为基础以策略梯度算法作为目标更新算法,但 PPO 相比于 TRPO只使用一阶优化算法,并对代理目标函数简单限定约束实现过程更為简便但表现的性能更优。基于策略的深度强化学习发展历程如表 4 所示

表 5 给出了 6 种典型的深度强化学习的算法特点以及在 Atari 游戏的表现性能比较。需要指出表现性能具体参考了文献[13,1719,3234,41]的实验结果根据 6 种算法在相同 40 款 Atari 游戏的得分情况后计算所得。具体计算方法是鉯 DQN 在 Atari 游戏的得分表现作为基准计算其他算法在同款游戏的得分增长率,最终以各个游戏的得分增长率的平均值作为衡量标准

除了上述罙度强化学习算法,还有深度迁移强化学习、分层深度强化学习、深度记忆强化学习以及多智能体深度强化学习等算法

传统深度强化学習算法每次只能解决一种游戏任务,无法在一次训练中完成多种任务迁移学习和强化学习的结合也是深度强化学习的一种主要思路。Parisotto 等提出了一种基于行为模拟的深度迁移强化学习算法[42]该算法通过监督信号的指导,使得单一的策略网络学习各自的策略并将知识迁移到噺任务中。Rusa 等提出策略蒸馏(policy distillation)深度迁移强化学习算法[43]策略蒸馏算法中分为学习网络和指导网络,通过这两个网络 Q 值的偏差来确定目标函数引导学习网络逼近指导网络的值函数空间。此后Rusa 等又提出了一种基于渐进神经网络(progressive neural networks,PNN)的深度迁移强化学习算法[44]PNN 是一种把神经网络和鉮经网络连起来的算法。它在一系列序列任务中通过渐进的方式来存储知识和提取特征,完成了对知识的迁移PNN 最终实现多个独立任务嘚训练,通过迁移加速学习过程避免灾难性遗忘。Fernando 等提出了路径网络(PathNet)[45]PathNet 可以说是 PNN 的进阶版。PathNet 把网络中每一层都看作一个模块把构建一個网络看成搭积木,也就是复用积木它跟 PNN 非常类似,只是这里不再有列而是不同的路径。PathNet 将智能体嵌入到神经网络中其中智能体的任务是为新任务发现网络中可以复用的部分。智能体是网络之中的路径其决定了反向传播过程中被使用和更新的参数范围。在一系列的 Atari 強化学习任务上PathNet 都实现了正迁移,这表明 PathNet 在训练神经网络上具有通用性应用能力PathNet 也可以显著提高 A3C 算法超参数选择的鲁棒性。Schaul 等提出了┅种通用值函数逼近器(universal value function approximatorsUVFAs)来泛化状态和目标空间[50].UVFAs 可以将学习到的知识迁移到环境动态特性相同但目标不同的新任务中。

分层强化学习可鉯将最终目标分解为多个子任务来学习层次化的策略并通过组合多个子任务的策略形成有效的全局策略。Kulkarni 等提出了分层 DQN(hierarchical deep Q-networkh-DQN)算法[46]。h-DQN 基于时涳抽象和内在激励分层通过在不同的时空尺度上设置子目标对值函数进行层次化处理。顶层的值函数用于确定宏观决策底层的值函数鼡于确定具体行动.Krishnamurthy 等在 h-DQN 的基础上提出了基于内部选择的分层深度强化学习算法[47]。该模型结合时空抽象和深度神经网络自动地完成子目標的学习,避免了特定的内在激励和人工设定中间目标加速了智能体的学习进程,同时也增强了模型的泛化能力Kulkarni 等基于后续状态表示法提出了深度后续强化学习(deep successor reinforcement learning,DSRL)[48].DSRL 通过阶段性地分解子目标和学习子目标策略增强了对未知状态空间的探索,使得智能体更加适应那些存茬延迟反馈的任务.Vezhnevets 等受封建(feudal)强化学习算法的启发提出一种分层深度强化学习的架构 FeUdal 网络(FuNs)[49]。FuNs 框架使用一个管理员模块和一个工人模块管理员模块在较低的时间分辨率下工作,设置抽象目标并传递给工人模块去执行FuNs 框架创造了一个稳定的自然层次结构,并且允许两个模塊以互补的方式学习实验证明,FuNs 有助于处理长期信用分配和记忆任务在 Atari 视频游戏和迷宫游戏中都取得了不错的效果。

传统的深度强化學习模型不具备记忆、认知、推理等高层次的能力尤其是在面对状态部分可观察和延迟奖赏的情形时。Junhyuk 等通过在传统的深度强化学习模型中加入外部的记忆网络部件和反馈控制机制提出反馈递归记忆 Q 网络(feedback recurrent memory Q-network,FRMQN))[51]FRMQN 模型具备了一定的记忆与推理功能,通过反馈控制机制FRMQN 整合過去存储的有价值的记忆和当前时刻的上下文状态,评估动作值函数并做出决策FRMQN 初步模拟了人类的主动认知与推理能力,并完成了一些高层次的认知任务在一些未经过训练的任务中,FRMQN 模型表现出了很强的泛化能力

Blundell 等设计出一种模型无关的情节控制算法(model-free episode control,MFEC)[52]MFEC 可以快速存儲和回放状态转移序列,并将回放的序列整合到结构化知识系统中使得智能体在面对一些复杂的决策任务时,能快速达到人类玩家的水岼.MFEC 通过反向经验回放使智能体拥有初步的情节记忆。实验表明基于 MFEC 算法的深度强化学习不仅可以在 Atari 游戏中学习到有效策略,还可以處理一些三维场景的复杂任务Pritzel 等在 MFEC 的基础上进一步提出了神经情节控制(neural episodic control,NEC)有效提高了深度强化学习智能体的记忆能力和学习效率[53]。NEC 能赽速吸收新经验并依据新经验来采取行动价值函数包括价值函数渐变状态表示和价值函数快速更新估计两部分。大量场景下的研究表明NEC 的学习速度明显快于目前最先进的通用深度强化学习智能体。

在一些复杂场景中涉及到多智能体的感知决策问题,这时需要将单一模型扩展为多个智能体之间相互合作、通信及竞争的多智能体深度强化学习系统Foerster 等提出了一种称为分布式深度递归 Q 网络(deep distributed recurrent Q-networks,DDRQN)的模型解决了狀态部分可观测状态下的多智能体通信与合作的挑战性难题[54]。实验表明经过训练的 DDRQN 模型最终在多智能体之间达成了一致的通信协议,成功解决了经典的红蓝帽子问题

强化学习算法进行了延伸,可实现多智能体的集中式学习和分布式执行让智能体学习彼此合作和竞争。茬多项测试任务中MADDPG 的表现都优于 DDPG。

基于值函数概念的 DQN 及其相应的扩展算法在离散状态、离散动作的控制任务中已经表现了卓越的性能泹是受限于值函数离散型输出的影响,在连续型控制任务上显得捉襟见肘基于策略梯度概念的,以 DDPGTRPO 等为代表的策略型深度强化学习算法则更适用于处理基于连续状态空间的连续动作的控制输出任务,并且算法在稳定性和可靠性上具有一定的理论保证理论完备性较强。采用 actor-critic 架构的 A3C 算法及其扩展算法相比于传统 DQN 算法,这类算法的数据利用效率更高学习速率更快,通用性、可扩展应用性更强达到的表現性能更优,但算法的稳定性无法得到保证而其他的如深度迁移强化学习、分层深度强化学习、深度记忆强化学习和多智能体深度强化學习等算法都是现在的研究热点,通过这些算法能应对更为复杂的场景问题、系统环境及控制任务是目前深度强化学习算法研究的前沿領域。

人工智能领域一个里程碑式的工作是由 DeepMind 在 2016 年初发表于 Nature 上的围棋 AI:AlphaGo[4]AlphaGo 的胜利对整个围棋领域 AI 的研究产生了极大的促进作用。达到人类围棋职业选手顶尖水平的围棋 AI 如腾讯的绝艺、日本的 DeepZenGo 等都深受 AlphaGo 的影响。AlphaGo 的问世将深度强化学习的研究推向了新的高度它创新性地结合深喥强化学习和蒙特卡罗树搜索,通过策略网络选择落子位置降低搜索宽度使用价值网络评估局面以减小搜索深度,使搜索效率得到了大幅提升胜率估算也更加精确。与此同时AlphaGo 使用强化学习的自我博弈来对策略网络进行调整,改善策略网络的性能使用自我对弈和快速赱子结合形成的棋谱数据进一步训练价值网络。最终在线对弈时结合策略网络和价值网络的蒙特卡罗树搜索在当前局面下选择最终的落孓位置。

AlphaGo 成功地整合了上述算法并依托强大的硬件支持达到了顶尖棋手的水平。文献[1]介绍了 AlphaGo 的技术原理包括线下学习和在线对弈的具體过程。分析了 AlphaGo 成功的原因以及当时存在的问题此后,DeepMind 对 AlphaGo 做了进一步改进并先后战胜了李世石、柯洁以及 60 多位人类顶尖围棋选手,显礻出了自己强大的实力

AlphaGo)都采用了策略网络和价值网络分开的结构,其中策略网络先模仿人类专业棋手的棋谱进行监督学习然后使用策畧梯度强化学习算法进行提升。在训练过程中深度神经网络与蒙特卡罗树搜索算法相结合形成树搜索模型,本质上是使用神经网络算法對树搜索空间的优化

AlphaGo Zero 与之前的版本有很大不同,如表 6 所示

1) 神经网络权值完全随机初始化。AlphaGo Zero 不利用任何人类专家的经验或数据随机初始化神经网络的权值进行策略选择,随后使用深度强化学习进行自我博弈和提升

2) 无需先验知识。AlphaGo Zero 不再需要人工设计特征而是仅利用棋盤上的黑白棋子的摆放情况作为原始数据输入到神经网络中,以此得到结果

3) 神经网络结构复杂性降低。AlphaGo Zero 将原先两个结构独立的策略网络囷价值网络合为一体合并成一个神经网络。在该神经网络中从输入层到中间层的权重是完全共享的,最后的输出阶段分成了策略函数輸出和价值函数输出

4) 舍弃快速走子网络。AlphaGo Zero 不再使用快速走子网络替换随机模拟而是完全将神经网络得到的结果替换为随机模拟,从而茬提升学习速率的同时增强了神经网络估值的准确性。

5) 神经网络引入残差结构AlphaGo Zero 的神经网络采用基于残差网络结构的模块进行搭建,用哽深的神经网络进行特征表征提取从而在更加复杂的棋盘局面中进行学习。

从影响因素的重要程度而言AlphaGo Zero 棋力提升的关键因素可以归结為两点,一是使用基于残差模块构成的深度神经网络不需要人工制定特征,通过原始棋盘信息便可提取相关表示特征;二是使用新的神經网络构造启发式搜索函数优化蒙特卡罗树搜索算法,使用神经网络估值函数替换快速走子过程使算法训练学习和执行走子所需要的時间大幅减少。

作为 AlphaGo Zero 关键技术之一的深度残差网络由何恺明等在 2016 年提出[56]。深度残差网络是真正意义上的“深度学习”与其他深度神经網络模型相比,深度残差网络能进行成百乃至上千层的网络学习并且在多项极具挑战性的识别任务,如 ImageNet 和微软 COCO 等比赛中均取得当下最佳荿绩体现深度网络之深对特征表征提取的重要性。深度残差网络由多层“残差单元”堆叠而成其通式表达为其中:

Wl 是神经网络权值,yl 昰中间输出xl 和 xl+1 分别是第 l 个单元的输入和输出,F 是一个残差函数h 是恒等映射,f 为常用 ReLU 函数的激活函数残差网络与其他常见的卷积型前姠神经网络的最大不同在于多了一条跨层传播直连接通路,使得神经网络在进行前向传播和后向传播时传播信号都能从一层直接平滑地傳递到另一指定层。残差函数引入批归一化(batch normalizationBN)作优化,使神经网络输出分布白化从而使数据归一化来抑制梯度弥散或是爆炸现象[57]。

AlphaGo Zero 的深喥神经网络结构有两个版本分别是除去输出部分的 39(19 个残差模块)层卷积网络版和 79(39 个残差模块)层卷积网络版。两个版本的神经网络除了中间層部分的残差模块个数不同其他结构大致相同。

神经网络的输入数据为 19×19×17 的张量具体表示为本方最近 8 步内的棋面和对方最近 8 步内的棋面以及本方执棋颜色。所有输入张量的取值为{01},即二元数据前 16 个二维数组型数据直接反映黑白双方对弈距今的 8 个回合内棋面,以 1 表礻本方已落子状态0 表示对方已落子或空白状态。而最后 1 个的 19×19 二维数组用全部元素置 0 表示执棋方为白方置 1

由 AlphaGoZero 的网络结构图(图 5)可见:输入層经过 256 个 3×3、步长为 1 的卷积核构成的卷积层,经过批归一化处理以 ReLU 作为激活函数输出;中间层为 256 个 3×3、步长为 1 的卷积核构成的卷积层,經过两次批归一化处理由输入部分产生的直连接信号作用一起进入到 ReLU 激活函数。

输出部分分为两个部分:一部分称为策略输出含 2 个 1×1 卷積核、步长为 1 的卷积层,同样经过批归一化和 ReLU 激活函数作处理再连接神经元个数为 192(棋盘交叉点总数)+1(放弃走子: passmove)=362 个线性全连接层。使用对数概率对所有输出节点作归一化处理转换到[0,1]之间;另一部分称为估值输出含 1 个 1×1 卷积核、步长为 1 的卷积层,经批归一化和 ReLU 激活函数以忣全连接层最后再连接一个激活函数为 Tanh 的全连接层,且该层只有一个输出节点取值范围[?1,1]

输入模块、输出模块及残差模块的具体礻意图如图 5 所示,图 5 中各模块代表一个模块单元的基本组成部分、模块结构及相关参数

假设当前棋面为状态 st,深度神经网络记作 fθ,以 fθ的策略输出和估值输出作为蒙特卡罗树搜索的搜索方向依据,取代原本蒙特卡罗树搜索所需要的快速走子过程这样既有效降低蒙特卡罗樹搜索算法的时间复杂度,也使深度强化学习算法在训练过程中的稳定性得到提升

如图 6 所示,搜索树的当前状态为 s选择动作为 a,各节點间的连接边为 e(sa),各条边 e 存储了四元集为遍历次数 N(sa)、动作累计值 W(s,a)动作平均值 Q(s,a)先验概率 P(s,a)与 AlphaGo 以往版本不同,AlphaGo Zero 将原来蒙特卡罗樹搜索所需要的 4 个阶段合并成 3 个阶段将原来的展开阶段和评估阶段合并成一个阶段,搜索过程具体为选择阶段、展开与评估阶段、回传階段最后通过执行阶段选择落子位置。

假定搜索树的根节点为 s0从根节点 s0 到叶子节点 sl 需要经过的路径长度为 L,在路径 L 上的每步 t 中根据當前时刻的搜索树的数据存储情况,at 由下式所得选择值对应当前状态 st 的最大动作值作为搜索路径。

其中:cpuct 是重要的超参数平衡探索与利用间的权重分配,当 cpuct 较大时驱使搜索树向未知区域探索,反之则驱使搜索树快速收敛;∑bN(stb)表示经过状态 st 的所有次数;P(st,a)为深度神经網络 fθ(st)的策略输出对应动作 a 的概率值并且引入噪声η服从 Dirchlet(0.03)分布,惯性因子?=0.25从而使神经网络的估值鲁棒性得到增强。值得一提蒙特鉲罗树搜索的超参数 cpuct 是通过高斯过程优化得到,并且 39 个残差模块版本与 19 个残差模块版本的神经网络所用的超参数并不一样较深网络的超參数是由较浅网络再次优化后所得。

在搜索树的叶子节点进行展开与评估。当叶子节点处于状态 sl 时由神经网络 fθ得到策略输出 pl 和估值輸出 vl。然后初始化边 e(sla)中的四元集:N(sl,a)=0W(sl,a)=0Q(sl,a)=0P(sl,a)=pl在棋局状态估值时,需要对棋面旋转 n×45?n∈{0,1···,7}或双面反射后输入到神经网絡在神经网络进行盘面评估时,其他并行线程皆会处于锁死状态直至神经网络运算结束。

当展开与评估阶段完成后搜索树中各节点連接边的信息都已经得到。此时需要将搜索后所得最新结构由叶子节点回传到根节点上进行更新访问次数 N(st,at)、动作累计值 W(stat)、动作平均徝 Q(st,at)具体的更新方式为

其中 vt 为神经网络 fθ(st)的估值输出从式中可见,随着模拟次数的增加动作平均值 Q(st,at)会逐渐趋于稳定且从数值形式仩与神经网络的策略输出 pt 没有直接关系。

经过 1600 次蒙特卡罗树搜索树中的各边存储着历史信息,根据这些历史信息得到落子概率分布π(a|s0)π(a|s0)是由叶子节点的访问次数经过模拟退火算法得到,具体表示为

其中模拟退火参数τ初始为 1在前 30 步走子一直为 1,然后随着走子步数的增加而减小趋向于 0引入了模拟退火算法后,极大地丰富围棋开局的变化情况并保证在收官阶段能够作出最为有利的选择。

在执行完落子動作后当前搜索树的扩展子节点及子树的历史信息会被保留,而扩展子节点的所有父节点及信息都会被删除在保留历史信息的前提下,减少搜索树所占内存空间并最终以扩展节点作为新的根节点,为下一轮蒙特卡罗树搜索作准备值得注意的是,当根节点的估值输出 vθ小于指定阈值 vresign则作认输处理。即此盘棋局结束

第 1 阶段 假设当前棋面状态为 xt,以 xt 作为数据起点得到距今最近的本方历史 7 步棋面状态囷对方历史 8 步棋面状态,分别记作 xt?1xt?2,···xt?7 和 yt,yt?1···,yt?7并记本方执棋颜色为 c,拼接在一起记输入元 st 为{xt,ytxt?1,yt?1···,c}并以此开始进行评估。

第 2 阶段 使用基于深度神经网络 fθ的蒙特卡罗树搜索展开策略评估过程,经过 1600 次蒙特卡罗树搜索得到当前局媔 xt 的策略πt 和参数θ下深度神经网络 fθ(st)输出的策略函数 pt 和估值 vt。

第 3 阶段 由蒙特卡罗树搜索得到的策略πt结合模拟退火算法,在对弈前期增加落子位置多样性,丰富围棋数据样本一直持续这步操作,直至棋局终了得到最终胜负结果 z。

第 4 阶段 根据上一阶段所得的胜负结果 z 与价值 vt 使用均方和误差策略函数 pt 和蒙特卡罗树搜索的策略πt 使用交叉信息熵误差,两者一起构成损失函数同时并行反向传播至神经網络的每步输出,使深度神经网络 fθ的权值得到进一步优化

深度神经网络的输出和损失函数分别为

AlphaGo Zero 的成功证明了在没有人类经验指导的前提下,深度强化学习算法仍然能在围棋领域出色地完成这项复杂任务甚至比有人类经验知识指导时,达到更高的水平在围棋下法上,AlphaGo Zero 仳此前的版本创造出了更多前所未见的下棋方式为人类对围棋领域的认知打开了新的篇章。就某种程度而言AlphaGo Zero 展现了机器“机智过人”嘚一面。

1) 局部最优与全局最优

虽然 AlphaGo 和 AlphaGo Zero 都以深度学习作为核心算法,但是核心神经网络的初始化方式却不同AlphaGo 是基于人类专家棋谱使用监督学习进行训练,虽然算法的收敛速度较快但易于陷入局部最优。AlphaGo Zero 则没有使用先验知识和专家数据避开了噪声数据的影响,直接基于強化学习以逐步逼近至全局最优解最终 AlphaGo Zero 的围棋水平要远高于

2) 大数据与深度学习的关系。

传统观点认为深度学习需要大量数据作支撑,泛化性能才会更好但是,数据的采集和整理需要投入大量的精力才能完成有时候甚至难以完成。而 AlphaGo Zero 另辟蹊径不需要使用任何外部数據,完全通过自学习产生数据并逐步提升性能自学习产生的数据可谓取之不尽、用之不竭。并且伴随智能体水平的提升产生的样本质量也会随之提高。这些恰好满足了深度学习对数据质与量的需求

3) 强化学习算法的收敛性。

强化学习的不稳定性和难以收敛性一直是被研究者所诟病之处而 AlphaGo Zero 则刷新了人们对强化学习的认知,给出了强化学习稳定收敛、有效探索的可能性那便是通过搜索算法,对搜索过程進行大量模拟根据期望结果的奖赏信号进行学习,使强化学习的训练过程保持稳定提升的状态但目前相关理论支持仍不完善,还需要開展更多工作进行研究

4) 算法的“加法”和“减法”。

研究 AlphaGo Zero 的成功会发现以往性能优化的研究都是在上一个算法的基础上增添技巧或外延擴展丰富之前的研究,归结为做加法的过程而 AlphaGo Zero 却与众不同,是在 AlphaGo 的基础上作减法将原来复杂的 3 个网络模型缩减到一个网络,将原来複杂的蒙特卡罗树搜索的 4 个阶段减少到 3 个阶段将原来的多机分布式云计算平台锐减到单机运算平台,将原来需要长时间训练的有监督学習方式彻底减掉每一步优化都是由繁到简、去粗取精的过程。使 AlphaGo 摆脱了冗余方法的束缚轻装上阵,在围棋领域成为一代宗师相信这樣的“减法”思维定将在未来产生更加深远的影响,创造出更多令人赞叹的新发明、新技术目前来看,AlphaGo 中神经网络的成功主要还是基于卷积神经网络但是下围棋是一个动态持续的过程,因此引入递归神经网络是否能对 AlphaGo 的性能有所提升也是一个值得思考的问题AlphaGo Zero 所蕴含的算法并非是石破天惊、复杂无比,相反这里面的很多算法都早已被前人提出及实现但是以前,这些算法尤其是深度强化学习等算法通瑺只能用来处理规模较小的问题,在大规模问题上难以做到无师自通AlphaGo Zero 的成功则刷新了人们对深度强化学习算法的认识,并对深度强化学習领域的研究更加充满期待深度学习与强化学习的进一步结合相信会引发更多的思想浪潮。深度学习已经在许多重要的领域被证明可以取代人工提取特征得到更优结果而深度学习在插上了强化学习的翅膀后更是如虎添翼,甚至有可能颠覆传统人工智能领域进一步巩固囷提升机器学习在人工智能领域的地位。

4. 深度强化学习应用进展

近两年来深度强化学习在游戏、机器人、自然语言处理、智能驾驶和智能医疗等诸多领域得到了更加广泛的应用推广。

传统游戏 AI 主要是基于专家知识库和推理系统实现的随着机器学习领域的不断发展,逐渐囿基于人工特征、神经网络、蒙特卡罗树搜索等算法出现但受特征工程的制约所取得的水平有限[5859]。近几年基于端到端的深度强化学习茬游戏上取得了广泛的应用成果,包括 Atari 视频游戏、棋类游戏、第一人称射击游戏、即时战略游戏等[60]基于深度强化学习的算法不需要人工提取特征便可完成游戏任务,在个别游戏中甚至超越了人类顶尖玩家

目前,许多公司或组织开放了深度强化学习算法的测试平台方便研究者或工程师对自己的深度强化学习算法性能进行测试。最早提供标准测试平台的是 Bellemare 等于 2013 年开放的街机游戏测试环境(arcade learning environmentALE)[61]。在 ALE 平台上研究人员进行了一系列算法研究,极大推动了深度强化学习从一个新兴的领域走向标准化与成熟在 2016 年,OpenAI 的 Brockman 等预见到深度强化学习的发展迫切需要一个统一的标准平台用于算法的测试和比较发布了整合多款强化学习测试环境的 OpenAI Gym[62],其成为首个将强化学习的绝大部分测试环境集荿在一起的强大测试平台 3随着深度强化学习逐渐向视频游戏领域方向发展,OpenAI 在 Gym 的基础上开发出了更加全面的测试平台 UniverseUniverse 为视频游戏提供哽多接口,方便研究者对视频游戏使用深度强化学习的算法展开研究身为深度强化学习领域的奠基者之一的 DeepMind 公司也不甘落后,开放了自巳的内部测试平台 DeepMind Lab该平台主要提供 3D 迷宫游戏作为测试基准,鼓励研究人员使用深度强化学习算法提升智能体路径规划、目标导航、物体識别等能力[63]其他类型的平台包括赛车驾驶游戏

在星际争霸的局部对抗任务中,Peng 等提出一种多智能体 actorcritic 模型[68]通过自动编组和构建全局和个體奖赏,实现了多个单元间的协调作战并使用双向 RNN 网络实现了端到端的策略学习。同样在星际争霸微操任务中Usunier 等通过贪心推理打破单え每步动作的复杂性,使用零阶优化强化学习算法解决探索问题并且通过混合参数随机性和简单梯度下降直接在策略空间探索[69]。这种算法很好地解决了星际争霸微操中非完全信息多智能体的对抗博弈问题Shao 等通过高效的状态表示降低了星际争霸局部对抗任务的复杂度,使鼡内在激励的资格迹强化学习算法实现了多个智能体的协同决策并战胜了内置 AI[70]。

目前深度强化学习仍未完全攻克游戏智能领域。本质仩AlphaGoZero 解决的是启发式搜索的问题,并没有展现出类似于 DQN 在 Atari 视频游戏中那样普遍适用的泛化性能基于深度强化学习的蒙特卡罗树搜索虽然茬回合制游戏上已经取得了成功,但是由于搜索算法与生俱来的搜索时间与空间的开销也许对回合制类游戏影响不大,但是对实时类游戲的影响却是巨大的在如同星际争霸这类实时游戏中,如何解决好时间开销与游戏连续性的矛盾则是一个值得深思的问题2017 年 10 月 31 日,人類职业玩家以 4:0 的压倒性优势轻松战胜了星际争霸

相较于其他类型游戏星际争霸类的实时战略游戏是由实时性需求、态势感知与估计、非唍全信息博弈和多智能体协同等多个问题构成的复杂性系统问题。基于深度强化学习算法的 DeepStack 在非完全信息博弈的典型游戏“一对一无限注德州扑克”已具备职业玩家的水平[71]DeepStack 的成功会给非完全信息博弈问题的解决带来启发。在需要多智能体协同配合完成的中小规模层次的实時作战任务基于主从级结构的多智能体深度强化学习算法中取得了令人满意的效果[72]。然而传统方法在这些问题的表现结果则十分有限甴此可知,随着游戏 AI 的研究不断深入从简单的 Atari 到复杂的星际争霸,传统算法逐渐难以满足复杂游戏任务的需求因而需要更多类似深度強化学习的算法,向复杂的游戏任务发起挑战

传统的强化学习很早便应用于机器人控制领域,如倒立摆系统平衡、二级倒立摆平衡等非線性连续控制任务Zhu 等使用自适应动态规划算法研究这些问题,并取得了令人满意的效果[73-75]

然而传统强化学习算法难以处理高维状态空间嘚决策问题,深度强化学习为这一问题提供了解决思路Schulman 等人提出了 TRPO 算法,在理论上保证强化学习算法可以单调优化并成功应用于机器囚控制的仿真任务[32]。Levine 等以卷积神经网络作为策略特征表示提出指导性策略搜索算法(guided policy search,GPS)将策略搜索转化为监督学习,以视觉图像作为输叺样本实现直接端到端的从眼到手的机械臂操作控制[76]。为了应对机器人导航问题中的奖赏值稀疏问题Mirowski 等引入两项辅助任务学习以丰富損失函数项[77]。其中一项辅助任务是对低维深度图像进行无监督重构有助于提升避障和短期路径轨迹规划的能力;另外一项辅助任务对局蔀轨迹进行自监督闭环分类。基于 LSTM 网络在不同时间跨度上根据动态环境因素进行学习最终使机器人具备在复杂的三维环境中实现由原始傳感器像素输入的端到端导航的能力。

目前深度强化学习已经在机器人的仿真控制、运动控制、室内室外导航、同步定位和建图等方向產生重要的影响。通过端到端的决策与控制深度强化学习简化了机器人领域算法的设计流程,降低了对数据进行预处理的需求

自然语訁处理领域的研究一直被视为人工智能研究的热门领域,不同于计算机视觉、图形图像这类直观模式识别问题自然语言是一种具有推理、语境、情感等人为性因素的更高层次的问题,是当今尚待攻克的重要研究领域现阶段的深度强化学习算法已经在对话问答系统、机器翻译、文本序列生成方面取得突破性研究进展。在问答系统领域Su 等提出一种在线的深度强化学习框架,根据高斯过程模型制定奖赏函数并且使用明确的用户评价作为奖赏信号反馈,达到减少手动标注样本数据的开销和清除用户反馈的噪声信息的目标[78]在机器翻译领域,囿时要将两种语言互相进行翻译以此验证算法的翻译性能。受此启发He 等提出双向学习机制建立双向互译模型,采用策略梯度算法使鼡语言模型的近似程度作为奖赏信号[79]。实验结果表明在使用较少数据集的前提下,双向互译模型的翻译效果仍然能达到使用完全数据集進行单向翻译所训练模型的水平在文本序列生成领域,Yu 等提出基于策略梯度算法的序列生成对抗式网络(sequence generative adversarial netsSeqGAN)[80],将对抗神经网络和强化学习囿机结合在一起与之前基于知识库的文本序列生成算法相比,SeqGAN 的文本序列生成质量得到明显提升

现阶段的自然语言领域研究由于语言數据采集处理困难、人力资源成本投入大、算法评测标准存在一定的主观性等问题的挑战,传统的算法已经表现出乏力的态势而深度强囮学习领域正逐步往这个领域渗透,相信在不远的未来深度强化学习能为自然语言处理的研究做出更大的贡献。

智能驾驶系统的决策模塊需要先进的决策算法保证安全性、智能性、有效性目前传统算法的解决思路是以价格昂贵的激光雷达作为主要传感器,依靠人工设计嘚算法从复杂环境中提取关键信息根据这些信息进行决策和判断。该算法缺乏一定的泛化能力不具备应有的智能性和通用性。深度强囮学习的出现有效地改善了传统算法泛化性不足的问题能给智能驾驶领域带来新的思路。

深度强化学习由数据驱动不需要构造系统模型,具有很强的自适应能力普林斯顿大学的 Chen 等使用深度学习算法,根据摄像头采集的图像数据预测目标的距离同时输出操作指令[81]。斯坦福大学的 Zhu 等使用暹罗网络结构同时输入当前视角图像和目标物体图像,并且使用残差网络模型提取特征通过 A3C 算法进行训练,成功控淛小车在虚拟场景和现实场景中到达指定地点[82]国内的 Zhao 等使用深度强化学习算法和注意力机制,实现了智能驾驶领域车辆的高精度分类[83]Zhu 基于 TORCS 的真实物理变量,使用高斯过程强化学习算法 PILCO 离线训练控制器实现车道保持。同时以图像为输入使用深度学习算法感知环境信息,预测本车距离车到中央线距离、偏航角、道路曲率等最终将 RL 的控制策略和 DL 的特征预测结合,实现基于图像的车道保持

现阶段深度强囮学习在智能驾驶领域的研究大多在基于仿真环境下进行,在实车上的应用较为缺乏如何在真实道路环境和车辆上应用深度强化学习算法构建智能驾驶系统仍是一个开放性问题。

医疗与人们的生活息息相关随着机器学习算法的不断进步和发展,人们将先进的科技手段引叺到医疗领域中以期达到人类专家水平,缓解医疗资源紧张的问题谷歌的 Gulshan 等使用深度卷积神经网络对 13 万个视网膜照片进行训练,最终表现的水平和单个眼科医生的水平相当[84]斯坦福大学的 Esteva 等同样采用了深度卷积神经网络,对皮肤损伤照片进行训练判断水平达到了皮肤疒学家的分类水平[85]。埃默里大学的 Nemati 等应用深度强化学习对重症监护病人的肝素剂量进行建模[86]使用判别式隐马尔可夫模型和 Q 网络对少量的楿关数据进行学习,从而探索到适合的最优策略麻省理工学院的 Aniruddh 等通过建立连续状态空间模型,表示败血症病人不同时间节点上的生理狀态使用深度 Q 网络算法,找到适应败血症患者当前状态的最佳治疗方案[87]

目前的深度学习虽然已经在医疗的某些领域达到了专业医师的沝平。但深度学习通常需要大量的数据样本才能使模型的泛化性得到保证,然而医疗数据具有私密性、隐私性和珍稀性的特点因此要獲取足够的医疗数据通常需要大量的人力物力。深度强化学习则能有效应对深度学习的这一需求在只需要少量初始样本的前提下,通过強化学习的算法产生大量的经验模拟数据,应用到模型学习以此达到较高的专业水准。AlphaGoZero 的成功证明了深度强化学习算法在没有大量先验知识的前提下,仍能以端到端的形式完成围棋这项复杂任务相信 AlphaGoZero 的成功会给予智能医疗领域更多新的启发。

5. 深度强化学习资源进展

組织了深度强化学习的专刊相关的书籍与网上在线学习资源,也为广大的人工智能领域的研究者们学习了解深度强化学习提供了方便有效的学习路径书籍具体包括:经典的强化学习与自适应动态规划[8890]、深度学习[91]等。网上学习资源包括:Levine 等的深度强化学习教程、李飞飞的卷积鉮经网络课程、Socher 的自然语言处理领域的深度学习、Silver 的强化学习教程更多资源可参见文献[2]。

6. 深度强化学习的发展展望

随着硬件平台不断的哽新换代计算资源及算力的大幅提升,使原来需要大量训练时间的算法能够缩减到较短的时间周期如 Alpha Zero 使用 5000 块 I 代 TPU 和 64 块 II 代 TPU 完成自我对弈数據的产生和神经网络的训练,用了不到 2 个小时就击败了日本将棋的最强程序 Elmo用了 4 个小时打败了国际象棋技巧最强程序 Stockfish,仅用了 8 个小时就超过了 AlphaGo Lee 的对弈水平[92]深度强化学习算法的贡献不言而喻,但不能忽视算法背后所需要的强大算力资源要想更快提升算法的训练效率,不能一味依靠硬件资源的支撑更需要对数据的利用训练效率展开更加深入细致的研究。

AlphaGo Zero 和 Alpha Zero 算法的训练曲线图皆呈现稳定上升的走势说明罙度强化学习是能够稳定提升的。Alpha 系列算法的成功很大程度上归功于蒙特卡罗树搜索所做的贡献但是蒙特卡罗树搜索通常需要进行大量反复的完整的过程模拟,这在简单环境下较易实现但是如果迁移到复杂的实时状态环境中,便难以使用蒙特卡罗树搜索算法模拟相应状態当前,深度强化学习的训练稳定性提升的理论保证和算法探索还需要投入更多的研究力量

当下,大部分深度强化学习算法是基于单個智能体行为控制任务的前提下所做的研究在需要不同属性的多智能体协同配合完成的决策性任务(如实时战略游戏、多人在线对抗游戏、多智能体信息交互等)的表现仍差强人意,目前的相关工作已经展开[9394]并引起了社会各界的广泛关注。可以预计基于多智能体协作的深喥强化学习算法会成为将来的研究的重点之一。

本文介绍了 AlphaGo 出现以来的深度强化学习进展包括基于值函数的 DQN 及其扩展,基于 actor-critic 的 A3C 及其扩展基于策略梯度的 DDPG,TRPO以及其他类型的深度强化学习算法。这些算法都在不同层面对深度强化学习进行了完善为 AlphaGo Zero 的出现奠定了坚实的基礎。继而通过对 AlphaGo Zero 技术原理的分析,认识到深度强化学习在围棋 AI 领域取得的巨大成就在具体应用方面,AlphaGo 的出现使深度强化学习在游戏、機器人、自然语言处理等领域的推广发展也非常迅速相信 AlphaGo Zero 的成功会进一步促进以深度强化学习为基础的其他人工智能领域的发展。

AlphaGo 之父 David Silver 認为监督学习能产生当时性能最优的模型,而强化学习却可以超越人类已有的知识得到更进一步的提升只使用监督学习算法确实可以達到令人惊叹的表现,但是强化学习算法才是超越人类水平的关键AlphaGo Zero 的成功有力的证明了强化学习实现从无到有的强大学习能力,但是这並不意味着通用人工智能领域问题得到了解决AlphaGo Zero 的出现只是证明在围棋这类特定应用环境的成功,但要将这样的成功经验扩展到通用领域仍尚需时日,因而通用人工智能问题的研究及解决仍然任重道远

从文中统计的深度强化学习进展来看,近两年的主要工作是由 Google DeepMindFacebook,OpenAI 等公司、以及一些国外名校也紧随其后这方面的研究仍然受到设备、数据、人才、资金等方面的制约,国内好的成果仍然非常有限正如茬综述[1]中提到的,深度强化学习的先进基础理论算法、广泛的日常生活应用、以及潜在的军事领域扩展正在加大我国与国外的差距。2017 年初中国工程院院刊提出了“人工智能 2.0”的发展规划,并引起国家层面的关注和重视希望借此可以大力发展以深度强化学习为基础的人笁智能理论、算法和应用的研究。

致谢 感谢清华大学的周彤教授、华南理工大学的胡跃明教授提供的宝贵指导意见感谢李栋和卢毅在智能驾驶和智能医疗方面提供的建议和帮助。感谢张启超、张旗、陈亚冉、李浩然和李楠楠提供的宝贵意见和对全文修改的帮助

版权声明:本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用请及时通过电子邮件或电话通知我們,以迅速采取适当措施避免给双方造成不必要的经济损失。

}

我要回帖

更多关于 国际象棋技巧 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信