深度强化学习中的策略梯度方法与蒙特卡罗树搜索
策略梯度方法
在强化学习中,策略梯度方法有着独特的优势。具有更大特定状态影响的动作在单局游戏中会被赋予更高的优势,这意味着学习所需的游戏局数会减少。
结合监督学习与策略梯度
监督学习在应用强化学习之前初始化策略网络的权重方面非常有用。例如在国际象棋中,我们可能有一些已知的专家走法示例。在这种情况下,我们对同一个策略网络进行梯度上升,不过对于每个专家走法,根据公式 9.24 评估梯度时会赋予固定的信用值 1。这就类似于 softmax 分类问题,策略网络的目标是预测出与专家相同的走法。我们还可以通过计算机评估获取一些负信用值的坏走法示例,来提高训练数据的质量。这种方法属于监督学习而非强化学习,因为我们只是使用了先验数据,而不是像强化学习中常见的那样生成或模拟我们学习的数据。这种通用的思想可以扩展到任何有一些动作和相关奖励先验示例的强化学习场景中。由于在过程早期难以获取高质量数据,监督学习在这些场景中用于初始化非常常见。许多已发表的工作还会交替使用监督学习和强化学习,以提高数据效率。
演员 - 评论家方法
之前讨论的方法可以分为以评论家为主导或以演员为主导的两类:
1.
评论家主导方法
:Q 学习和 TD(λ) 方法基于优化值函数的概念。这个值函数就是评论家,而演员的策略(如 ϵ - 贪心策略)直接从这个评论家推导而来。因此,演员从属于评论家,这类方法被视为仅评论家方法。
2.
演员主导方法
:策略梯度方法完全不使用值函数,而是直接学习策略动作的概率。这些值通常使用蒙特卡罗采样来估计。因此,这些方法被视为仅演员方法。不过,策略梯度方法需要评估中间动作的优势,到目前为止,这种估计是通过蒙特卡罗模拟完成的。蒙特卡罗模拟的主要问题是其复杂度高,并且无法在在线环境中使用。
不过,我们可以使用值函数方法来学习中间动作的优势。我们用 Qp(st, a) 表示当策略网络遵循策略 p 时动作 a 的值。这样,我们就有了两个相互耦合的神经网络:一个策略网络和一个 Q 网络。策略网络学习动作的概率,Q 网络学习各种动作的值 Qp(st, a),以便为策略网络提供优势估计。因此,策略网络使用 Qp(st, a)(经过基线调整)来加权其梯度上升更新。Q 网络使用类似于 SARSA 的在线策略更新,其中策略由策略网络控制(而不是 ϵ - 贪心策略)。但 Q 网络不像 Q 学习那样直接决定动作,因为策略决策超出了它的控制范围(除了作为评论家的角色)。所以,策略网络是演员,值网络是评论家。为了区分策略网络和 Q 网络,我们用 Θ 表示策略网络的参数向量,用 W 表示 Q 网络的参数向量。
假设时间戳 t 的状态用 st 表示,输入到神经网络的状态的可观察特征用 Xt 表示。在第 t 个时间戳,观察到状态 st 后执行动作 at 并获得奖励 rt,那么第 (t + 1) 步的操作步骤如下:
1. 使用策略网络当前的参数状态采样动作 at+1。注意,由于已经观察到动作 at,当前状态是 st+1。
2. 令 F(Xt, W, at) = ˆQp(st, at) 表示 Q 网络使用观察到的状态表示 Xt 和参数 W 对 Qp(st, at) 的估计值。使用 Q 网络估计 Qp(st, at) 和 Qp(st+1, at+1),并计算 TD 误差 δt:
- δt = rt + γ ˆQp(st+1, at+1) − ˆQp(st, at)
- = rt + γF(Xt+1, W, at+1) − F(Xt, W, at)
3.
更新策略网络参数
:令 P(Xt, Θ, at) 是策略网络预测动作 at 的概率。更新策略网络的参数如下:
- Θ ← Θ + α ˆQp(st, at)∇Θ log(P(Xt, Θ, at))
这里,α 是策略网络的学习率,ˆQp(st, at) = F(Xt, W, at) 的值从 Q 网络获得。
4.
更新 Q 网络参数
:更新 Q 网络的参数如下:
- W ⇐ W + βδt∇W F(Xt, W, at)
这里,β 是 Q 网络的学习率。需要注意的是,Q 网络的学习率通常比策略网络的学习率高。
执行动作 at+1 以观察状态 st+2,并将 t 的值加 1。重复上述步骤进行下一次迭代,直到收敛。如果我们使用 ˆV p(st) 作为基线,优势 ˆAp(st, at) 定义如下:
- ˆAp(st, at) = ˆQp(st, at) − ˆV p(st)
这会改变更新公式为:
- Θ ← Θ + α ˆAp(st, at)∇Θ log(P(Xt, Θ, at))
为了估计 ˆV p(st) 的值,一种可能是维护另一组代表值网络的参数(与 Q 网络不同),可以使用 TD 算法更新值网络的参数。但实际上,一个值网络就足够了,因为我们可以用 rt + γ ˆV p(st+1) 代替 ˆQ(st, at),这样得到的优势函数与 TD 误差相同:
- ˆAp(st, at) = rt + γ ˆV p(st+1) − ˆV p(st)
也就是说,我们只需要一个值网络作为评论家。上述方法也可以推广到使用任意 λ 值的 TD(λ) 算法。
连续动作空间
之前讨论的方法都与离散动作空间相关。例如在视频游戏中,我们可能有离散的选择,如光标向上、向下、向左或向右移动。但在机器人应用中,可能存在连续动作空间,比如我们希望机器人手臂移动一定的距离。
一种方法是将动作离散化为一组细粒度的区间,并使用区间的中点作为代表值,然后将问题视为离散选择问题。但这种方法并不理想。首先,将本质上有序的(数值)值视为分类值会丢失不同选择之间的顺序信息。其次,如果动作空间是多维的(例如,机器人手臂和腿部移动的距离分别作为不同维度),会极大地扩展可能动作的空间。这种方法可能导致过拟合,并大大增加学习所需的数据量。
常用的方法是让神经网络输出连续分布的参数(例如,高斯分布的均值和标准差),然后从该分布的参数中采样,以计算下一步动作的值。因此,神经网络会输出机器人手臂移动距离的均值 μ 和标准差 σ,实际动作 a 将从具有这些参数的高斯分布 N(μ, σ) 中采样:
- a ∼ N(μ, σ)
在这种情况下,动作 a 代表机器人手臂移动的距离。μ 和 σ 的值可以通过反向传播学习。在一些变体中,σ 预先固定为超参数,只需要学习均值 μ。似然比技巧也适用于这种情况,只是我们使用动作 a 处的密度对数,而不是动作 a 的离散概率。
策略梯度的优缺点
策略梯度方法在具有连续状态和动作序列的应用(如机器人技术)中是最自然的选择。对于具有多维和连续动作空间的情况,可能的动作组合数量非常大。由于 Q 学习方法需要计算所有这些动作的最大 Q 值,这一步在计算上可能变得难以处理。此外,策略梯度方法往往比较稳定,具有良好的收敛特性。然而,策略梯度方法容易陷入局部最小值。虽然 Q 学习方法在收敛行为方面不如策略梯度方法稳定,有时会在特定解附近振荡,但它们有更好的能力接近全局最优解。
策略梯度方法还有一个额外的优势,即它们可以学习随机策略。在确定性策略已知是次优的场景(如猜谜游戏)中,由于确定性策略可能被对手利用,策略梯度方法可以提供更好的性能。Q 学习提供确定性策略,因此在这些场景中,策略梯度方法更可取,因为它们在可能的动作上提供了一个概率分布,动作从中采样。
蒙特卡罗树搜索
蒙特卡罗树搜索是一种在推理时通过结合前瞻探索来提高学习到的策略和值的强度的方法。这种改进也为像时间差分学习这样的前瞻引导的自举方法提供了基础。它还可以作为传统游戏软件中使用的确定性极小极大树的概率替代方法(尽管其应用不限于游戏)。树中的每个节点对应一个状态,每个分支对应一个可能的动作。在搜索过程中,随着新状态的出现,树会不断生长。树搜索的目标是选择最佳分支,以推荐代理的预测动作。每个分支都有一个基于该分支在树搜索中的先前结果的值,以及一个随着探索增加而减少的“上限奖励”。这个值用于在探索过程中设置分支的优先级。每次探索后,会调整分支的学习质量,以便在后续探索中更倾向于导致积极结果的分支。
以 AlphaGo 中使用的蒙特卡罗树搜索为例,假设可以使用策略网络估计在状态(棋盘位置)s 下每个动作(走法)a 的概率 P(s, a)。同时,对于每个走法,我们有一个量 Q(s, a),它表示在状态 s 下走法 a 的质量。例如,在模拟中,从状态 s 执行动作 a 后获胜的次数越多,Q(s, a) 的值就越大。AlphaGo 系统使用了一种更复杂的算法,还结合了对棋盘位置进行几步移动后的一些神经网络评估。
在每次迭代中,状态 s 下走法 a 的质量的“上限”u(s, a) 由以下公式给出:
- u(s, a) = Q(s, a) + K · P(s, a) √(∑b N(s, b) / (N(s, a) + 1))
这里,N(s, a) 是在蒙特卡罗树搜索过程中从状态 s 执行动作 a 的次数。也就是说,上限是从质量 Q(s, a) 开始,加上一个取决于 P(s, a) 和该分支被执行次数的“奖励”。用访问次数对 P(s, a) 进行缩放的想法是为了抑制频繁访问的分支,鼓励更多的探索。蒙特卡罗方法基于选择上限最大的分支的策略,类似于多臂老虎机方法。公式中的第二项用于计算上限的置信区间。随着分支被执行的次数越来越多,该分支的探索“奖励”会减少,因为其置信区间的宽度会减小。超参数 K 控制探索的程度。
在任何给定状态下,选择 u(s, a) 值最大的动作 a。这个过程会递归应用,直到执行最优动作不会到达现有节点。这个新状态 s′ 会作为叶节点添加到树中,每个 N(s′, a) 和 Q(s′, a) 的初始值都设置为 0。需要注意的是,到叶节点的模拟是完全确定的,不涉及随机化,因为 P(s, a) 和 Q(s, a) 是可以确定计算的。蒙特卡罗模拟用于估计新添加的叶节点 s′ 的值。具体来说,从策略网络进行蒙特卡罗滚动(例如,使用 P(s, a) 采样动作)根据输赢返回 +1 或 -1。评估叶节点后,会更新从当前状态 s 到叶节点 s′ 的路径上所有边 (s′′, a′′) 上的 Q(s′′, a′′) 和 N(s′′, a′′) 的值。Q(s′′, a′′) 的值会保持为在蒙特卡罗树搜索过程中从该分支到达的所有叶节点评估的平均值。在从 s 进行多次搜索后,选择访问次数最多的边作为相关边,并将其报告为所需的动作。
蒙特卡罗树搜索在自举中的应用
传统上,蒙特卡罗树搜索用于推理而不是训练。然而,由于蒙特卡罗树搜索提供了对状态 - 动作对值的改进估计 Q(s, a)(由于前瞻),它也可以用于自举。蒙特卡罗树搜索为 n 步时间差分方法提供了一个很好的替代方案。基于在线策略的 n 步时间差分方法使用 ϵ - 贪心策略探索一个 n 步的单一序列,因此往往比较弱(探索深度增加但宽度不足)。一种加强它们的方法是检查所有可能的 n 序列,并使用离线策略技术选择最优的一个(即推广贝尔曼的一步方法)。实际上,这是塞缪尔的跳棋程序所采用的方法,它使用极小极大树中的最佳选项进行自举(后来称为 TD - Leaf),但这会增加探索所有可能的 n 序列的复杂性。蒙特卡罗树搜索可以为自举提供一个强大的替代方案,因为它可以从一个节点探索多个分支,以生成平均目标值。例如,基于前瞻的真实值可以使用从给定节点开始的所有探索的平均性能。
AlphaGo Zero 自举的是策略而不是状态值,这非常罕见。AlphaGo Zero 使用每个节点分支的相对访问概率作为该状态下动作的后验概率。这些后验概率比策略网络的概率输出更优,因为访问决策利用了关于未来的知识(即蒙特卡罗树中更深节点的评估)。因此,后验概率相对于策略网络概率作为真实值进行自举,并用于更新权重参数。
AlphaGo:围棋冠军级别的表现
围棋是一种类似于国际象棋的两人棋盘游戏。两人棋盘游戏的复杂度在很大程度上取决于棋盘的大小和每个位置的有效走法数量。最简单的棋盘游戏是井字棋,棋盘为 3×3,大多数人无需计算机就能最优地解决这个游戏。国际象棋的棋盘为 8×8,是一个更复杂的游戏,尽管选择性地探索走法的极小极大树到一定深度的巧妙变体可以比当今最优秀的人类棋手表现得更好。而围棋由于其 19×19 的棋盘,处于复杂度的极端。
玩家使用白色或黑色的棋子,棋子放在围棋棋盘旁边的碗里。游戏从空棋盘开始,随着玩家在棋盘上放置棋子,棋盘逐渐填满。黑方先走,碗里有 181 个棋子,而白方碗里有 180 个棋子。棋盘上的交叉点总数等于两个玩家碗里棋子的总数。玩家每一步从碗里取出一个自己颜色的棋子放在特定位置,一旦放置就不能移动。玩家可以通过包围对手的棋子来吃掉它。游戏的目标是玩家通过用自己的棋子包围棋盘的一部分,控制比对手更大的棋盘区域。
在国际象棋中,特定位置大约有 35 种可能的走法(即树分支因子),而围棋中特定位置的平均可能走法约为 250 种,几乎是国际象棋的一个数量级。此外,围棋游戏的平均连续走法数量(即树深度)约为 150 步,大约是国际象棋的两倍。所有这些因素使得从自动游戏的角度来看,围棋是一个更难的挑战。国际象棋软件的典型策略是构建一个包含玩家在一定深度内可以做出的所有走法组合的极小极大树,然后使用特定于国际象棋的启发式方法(如剩余棋子数量和各个棋子的安全性)评估最终的棋盘位置。次优的树部分会以启发式方式进行剪枝。这种方法实际上是一种改进的暴力策略,即在给定深度内探索所有可能的位置。即使在适度的分析深度(每个玩家走 20 步)下,围棋的极小极大树中的节点数量也比可观测宇宙中的原子数量还多。由于在这些场景中空间直觉很重要,人类在围棋中总是比暴力策略表现得更好。在围棋中使用强化学习更接近人类的做法,我们很少尝试探索所有可能的走法组合,而是在棋盘上直观地学习能够预测有利位置的模式,并尝试朝着预期能提高优势的方向走棋。
通过卷积神经网络可以自动学习对良好表现具有预测性的空间模式。系统的状态编码在特定时刻的棋盘位置中,不过 AlphaGo 中的棋盘表示还包括一些关于交叉点状态或自放置棋子以来的走法数量等额外特征。为了提供对状态的全面了解,需要多个这样的空间地图。例如,一个特征图可以表示每个交叉点的状态,另一个可以编码自放置棋子以来的回合数等。整数特征图被编码为多个单热平面。总的来说,游戏棋盘可以用 48 个 19×19 像素的二进制平面表示。
AlphaGo 使用其在重复游戏中的输赢经验(包括使用专家玩家的走法和与自己对弈的游戏),通过策略网络学习在各种位置走棋的良好策略。此外,通过值网络对围棋棋盘上的每个位置进行评估。随后,使用蒙特卡罗树搜索进行最终推理。因此,AlphaGo 是一个多阶段模型,其组件如下:
策略网络
策略网络以棋盘的上述视觉表示作为输入,输出在状态 s 下动作 a 的概率,用 p(s, a) 表示。注意,围棋中的动作对应于在棋盘上每个合法位置放置棋子的概率,因此输出层使用 softmax 激活函数。有两个单独的策略网络通过不同的方法进行训练,这两个网络结构相同,都包含具有 ReLU 非线性的卷积层,每个网络有 13 层。大多数卷积层使用 3×3 的滤波器,除了第一层和最后一层卷积,第一层和最后一层分别使用 5×5 和 1×1 的滤波器。卷积层进行零填充以保持其大小,使用 192 个滤波器,使用 ReLU 非线性,并且不使用最大池化以保持空间信息。
两个网络的训练方式如下:
-
监督学习
:从专家玩家中随机选择的样本用作训练数据。输入是网络的状态,输出是专家玩家执行的动作。这种走法的分数(优势)始终为 +1,因为目标是训练网络模仿专家走法,这也称为模仿学习。因此,神经网络使用所选走法概率的对数似然作为增益进行反向传播。这个网络被称为 SL - 策略网络。值得注意的是,这些监督形式的模仿学习在强化学习中很常见,用于避免冷启动问题。然而,后续的工作表明,不进行这部分学习可能是更好的选择。
-
强化学习
:在这种情况下,使用强化学习来训练网络。由于围棋需要两个对手,网络与自己对弈以生成走法。当前网络总是与几个迭代前随机选择的网络对弈,以便强化学习有一组随机化的对手。游戏一直进行到结束,然后根据输赢为每个走法赋予 +1 或 -1 的优势。这些数据随后用于训练策略网络,这个网络被称为 RL - 策略网络。
需要注意的是,与现有技术的软件相比,这些网络已经是相当强大的围棋玩家,并且它们与蒙特卡罗树搜索结合使用以进一步增强实力。
综上所述,策略梯度方法和蒙特卡罗树搜索在深度强化学习中都有着重要的作用,尤其是在复杂的游戏场景如围棋中,它们的结合使得计算机能够达到冠军级别的表现。未来,这些方法有望在更多领域得到应用和发展。
深度强化学习中的策略梯度方法与蒙特卡罗树搜索
策略梯度方法的应用拓展
策略梯度方法的应用场景极为广泛,除了前面提到的机器人技术和游戏领域,在金融投资、资源分配等领域也展现出了巨大的潜力。
在金融投资中,投资者需要根据市场的实时情况做出买卖决策,而市场状态和投资决策之间存在着复杂的动态关系。策略梯度方法可以学习到在不同市场状态下的最优投资策略,通过对历史数据的学习和实时市场信息的反馈,不断调整投资组合,以实现收益的最大化。
在资源分配问题中,例如云计算中的资源调度、物流中的车辆路径规划等,策略梯度方法可以根据系统的实时状态和任务需求,动态地分配资源,提高资源的利用效率。
蒙特卡罗树搜索的优化策略
虽然蒙特卡罗树搜索在很多领域都取得了很好的效果,但它也存在一些局限性,例如搜索效率低、对计算资源的要求高等。为了克服这些局限性,研究人员提出了许多优化策略。
并行搜索
可以利用多核处理器或分布式计算平台,并行地进行蒙特卡罗树搜索。在并行搜索中,多个线程或节点可以同时对不同的分支进行搜索,大大提高了搜索效率。例如,在 AlphaGo 中,就采用了并行搜索的策略,加速了决策过程。
剪枝策略
在搜索过程中,可以根据一些启发式规则,提前剪去一些明显不可能是最优解的分支,减少搜索空间。例如,可以根据历史数据和经验,判断某些分支的价值较低,直接跳过这些分支的搜索。
自适应调整参数
蒙特卡罗树搜索中的一些参数,如探索系数 K,对搜索结果有很大的影响。可以根据搜索的进展情况,自适应地调整这些参数,以平衡探索和利用的关系。例如,在搜索初期,可以增大探索系数,鼓励更多的探索;在搜索后期,可以减小探索系数,更加注重利用已经获得的信息。
强化学习与其他技术的融合
为了进一步提高强化学习的性能,研究人员开始尝试将强化学习与其他技术进行融合。
与深度学习的融合
深度学习可以自动提取数据中的特征,而强化学习可以根据这些特征进行决策。将深度学习与强化学习相结合,可以充分发挥两者的优势。例如,在 AlphaGo 中,就使用了卷积神经网络来提取围棋棋盘的特征,然后将这些特征输入到策略网络和值网络中进行学习和决策。
与进化算法的融合
进化算法可以通过模拟生物进化的过程,搜索最优解。将进化算法与强化学习相结合,可以提高强化学习的搜索能力和收敛速度。例如,可以使用进化算法来优化策略网络的参数,使策略网络更快地收敛到最优解。
未来发展趋势
随着人工智能技术的不断发展,深度强化学习在未来将有更广阔的应用前景。
多智能体系统
在现实世界中,很多问题都涉及到多个智能体之间的交互和协作。例如,在自动驾驶中,多个车辆需要相互协作,以避免碰撞和提高交通效率;在机器人团队中,多个机器人需要共同完成任务。未来,深度强化学习将在多智能体系统中发挥重要作用,研究人员需要解决多智能体之间的通信、协作和竞争等问题。
实时决策
在很多应用场景中,需要智能体能够实时做出决策。例如,在金融交易中,需要根据市场的实时变化做出买卖决策;在游戏中,需要根据对手的实时行动做出反应。未来,深度强化学习需要提高决策的实时性,以满足这些应用场景的需求。
可解释性
深度强化学习模型通常是一个黑盒模型,很难解释其决策过程和原因。在一些对安全性和可靠性要求较高的应用场景中,如医疗、交通等,需要模型具有可解释性。未来,研究人员需要开发出具有可解释性的深度强化学习模型,以提高模型的可信度和可用性。
总结
本文介绍了深度强化学习中的策略梯度方法和蒙特卡罗树搜索,以及它们在围棋等领域的应用。策略梯度方法在处理连续动作空间和随机策略方面具有优势,但容易陷入局部最小值;蒙特卡罗树搜索可以通过前瞻探索提高学习到的策略和值的强度,但搜索效率较低。为了克服这些局限性,研究人员提出了许多优化策略,并将强化学习与其他技术进行融合。未来,深度强化学习将在多智能体系统、实时决策和可解释性等方面取得更大的发展。
以下是一个简单的流程图,展示了蒙特卡罗树搜索的基本流程:
graph TD;
A[开始] --> B[初始化树];
B --> C[选择分支];
C --> D{是否到达叶节点};
D -- 是 --> E[评估叶节点];
D -- 否 --> C;
E --> F[更新树节点信息];
F --> G{是否满足终止条件};
G -- 否 --> C;
G -- 是 --> H[选择最佳动作];
H --> I[结束];
同时,为了更清晰地对比策略梯度方法和 Q 学习方法的优缺点,我们可以列出以下表格:
| 方法 | 优点 | 缺点 |
| ---- | ---- | ---- |
| 策略梯度方法 | 适用于连续动作空间,可学习随机策略,稳定性好,收敛特性佳 | 易陷入局部最小值 |
| Q 学习方法 | 有更好的能力接近全局最优解 | 收敛行为不稳定,可能在特定解附近振荡 |
通过以上的介绍和分析,我们可以看到深度强化学习在解决复杂问题方面具有巨大的潜力,未来的研究和应用将不断推动这一领域的发展。
超级会员免费看
16

被折叠的 条评论
为什么被折叠?



