深度强化学习中的演员 - 评论家算法详解
1. 演员 - 评论家方法的概念设计
演员 - 评论家模型,从名称上看,由演员(Actor)和评论家(Critic)组成。在强化学习的背景下,演员的作用是采取行动。而要采取行动,就需要一个策略,所以演员会实现并使用一个策略来执行任何行动。
评论家则扮演着对演员的行动进行评价的角色。它会根据演员在给定状态下所采取的行动,给出关于该行动好坏的反馈。
演员和评论家协同工作。演员积极与环境互动,对环境进行操作和改变。评论家接收环境给出的奖励,更新并修正其估计值,然后将修正后的估计值反馈给演员,帮助演员进行自我更新。环境会因演员的行动而改变,除了即时奖励外,环境还会将行动后达到的新状态发送给演员和评论家。演员利用新状态来决定下一步行动,评论家则用它来评估其价值估计。
下面是演员 - 评论家方法的工作流程:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(演员):::process -->|采取行动| B(环境):::process
B -->|奖励和新状态| C(评论家):::process
C -->|修正估计值| A
B -->|新状态| A
2. 演员 - 评论家实现的架构
在强化学习中采取行动需要一个策略,在演员 - 评论家模型中,这个策略由演员持有。演员有一个随机策略,在训练的每一步使用该策略采取行动,同时使用策略梯度方法来改进和更新其策略,这与之前讨论的类似。
演员的策略在训练过程中会持续更新,更新时会使用从评论家那里得到的状态价值估计作为基线。评论家的价值估计为演员使用策略梯度方法更新策略提供了基础。
与“带基线的 REINFORCE”算法不同,演员 - 评论家模型中的基线是自举的(bootstrapped)。在“带基线的 REINFORCE”算法中,用于基线的状态值不会像 Q - 学习那样在每次迭代中更新,因此不能称之为评论家。而真正的评论家的价值估计需要在每次迭代中更新。
评论家的状态值估计误差通过以下公式计算:
[
\delta_t = R_t + \gamma V(S_{t + 1}, W_t) - V(S_t, W_t)
]
其中,(\gamma) 是折扣因子,(V) 是由权重/参数向量 (W) 参数化的状态值估计函数。在第 (t) 步,参数向量表示为 (W_t),任何终止状态的值设为 0。
每次估计出误差 (\delta_t) 后,评论家的值估计函数会进行更新。由于值估计函数由权重向量 (W) 参数化,通过以下公式更新权重向量 (W) 可以更新值估计函数:
[
W_{t + 1} = W_t + \alpha_w \delta_t \nabla_w V(S, W_t)
]
其中,(\alpha_w) 是值估计函数的学习率。
类似地,演员的策略估计函数也会在每次迭代中更新:
[
\theta_{t + 1} = \theta_t + \alpha_{\theta} \delta_t \nabla_{\theta} \log \pi(A | S, \theta_t)
]
其中,(\pi) 是策略估计函数,由参数向量 (\theta) 参数化,(\alpha_{\theta}) 是策略估计函数的学习率。
3. 演员 - 评论家方法与(决斗)深度 Q 网络
在深度 Q 网络中,基于深度学习的动作值估计器优于传统机器学习和其他迭代估计器,特别是在处理具有大状态空间基数的应用时,如使用图像和视频流作为输入/观察的情况。
在策略近似方面,我们使用随机策略梯度方法,如“带基线的 REINFORCE”。但我们将其实现为在线深度学习模型,以真正的在线方式更新策略,而不是像 REINFORCE 那样采用蒙特卡罗模拟方法。基于卷积神经网络的模型非常适合这种情况,因为在许多实际应用中,我们可能会处理图像/视频流作为输入状态。
“带基线的 REINFORCE”算法需要一个基线,我们可以使用状态值估计来实现。同时,我们希望有一个在每次迭代中更新/自举的评论家,因此可以使用在线深度学习网络进行状态值估计。
演员 - 评论家模型需要两个基于深度学习的函数近似器,一个用于策略估计(演员),另一个用于值估计(评论家)。由于这两个近似器需要相同的状态输入,因此尽可能共享深度学习网络的架构不仅可以提高计算效率,还可以确保对输入状态的处理和解释一致,从而使演员和评论家之间的协调更好。
这与决斗深度 Q 网络的思想类似。决斗深度 Q 网络由于其独特的架构,比简单的深度 Q 网络更强大,在标准化测试中表现更优。在演员 - 评论家模型中,我们可以共享卷积层,为演员和评论家分别设置全连接层,最终连接到各自的输出层。
演员需要输出一个随机策略。对于离散动作空间,演员网络的最后一层是 SoftMax 激活层,神经元的数量与动作空间的基数相同,每个神经元的输出表示采取该动作的概率。演员网络的输出范围在 [0, 1] 之间,所有可能动作的概率之和为 1。
评论家网络需要输出输入状态/观察的价值估计,以便作为策略估计器的自举基线。由于这个估计是一个单一的实数值,也是连续的线性输出,因此评论家网络的最后一层是一个具有“线性激活”的单节点层。在实际实现中,这个值可能是状态值的缩放表示。
以下是演员 - 评论家网络结构的对比:
| 网络 | 输入 | 中间层 | 输出层 |
| ---- | ---- | ---- | ---- |
| 演员网络 | 状态 | 共享卷积层 + 全连接层 | SoftMax 激活层(动作概率) |
| 评论家网络 | 状态 | 共享卷积层 + 全连接层 | 线性激活单节点层(状态值估计) |
4. 优势演员 - 评论家模型架构
在讨论对 REINFORCE 算法的改进时,使用“优势”估计作为基线是一种理想的改进方式。通过使用“优势”作为基线,可以减少代理/演员近似函数梯度的方差,从而使学习速度更快。
在决斗深度 Q 网络中,算法发现直接估计“优势”比计算动作值更优。在演员 - 评论家模型中,我们将这两个想法结合起来,让评论家生成自举的“优势”估计,而不是状态值估计。由于评论家生成的“优势”估计是自举的,它仍然被视为真正的评论家,并且会在每次迭代中更新其近似函数。后续从评论家得到的“优势”估计会被输入到演员中,作为演员更新策略的基线。
在 REINFORCE 算法的实现中,由于实现困难且“优势”估计需要单独计算,很多时候为了简化而不使用“优势”。但在演员 - 评论家模型,特别是基于深度学习的实现中,基于“优势”的实现与基于状态的基线实现的复杂度差异不大,因此更受青睐,许多文献中的工作都采用了这种变体。
5. 异步优势演员 - 评论家实现(A3C)
当我们将深度 Q 学习中的函数近似器替换为基于深度学习的强大模型(如卷积神经网络)时,模型的性能得到了显著提升。但将价值/优势估计方法、策略近似方法和深度学习增强方法结合起来时,虽然在性能上表现出色,但在处理复杂输入状态时,算法实现的效率会较低。
幸运的是,深度学习可以在图形处理单元(GPU)上进行大规模并行化。基于深度学习模型的优势演员 - 评论家算法也是这样实现的,但每个代理的每次迭代训练仍然需要大量时间。而且,这种顺序单代理方法存在与深度 Q 网络中类似的问题,即频繁的相关顺序输入状态可能导致不稳定性和偏差问题,最终导致近似器的收敛问题。我们可以使用优先经验回放等方法来解决这个问题,但对于大型演员 - 评论家实现,需要非常大的内存缓冲区才能进行有效的训练。
DeepMind 团队提出了使用异步代理的 A3C 设计。在这种方法中,多个代理同时生成并在不同的环境实例上并行训练(跨多个 GPU 核心)。
存在一个全局集中式网络参数服务器,用于存储演员和评论家的参数。新生成的代理会从全局网络参数服务器复制当前参数值,然后在自己的环境实例中独立训练并更新其参数副本。在经过一些固定步骤或达到终止状态后,代理会将其更新合并到全局参数中,然后复制更新后的全局网络参数,继续与各自的环境实例进行交互。
由于每个代理都有自己的环境副本,每个代理处理的是不同且不相关的状态,因此后续的全局更新也是不相关的。这使得训练更加稳定,并且不需要为每个代理单独提供非常大的内存用于经验回放。
异步优势演员 - 评论家(A3C)模型的实现可以被认为是深度强化学习的先进技术。A3C 模型在 Atari 2600 游戏等许多任务中表现优于深度 Q 网络,并且在 CPU 上训练时,达到深度 Q 网络相同性能所需的时间仅为其一半。在不同的异步并行算法实现(如 SARSA (0)、Q - 学习 (n - 步) 和演员 - 评论家 (A3C))中,A3C 的效果最佳。
以下是 A3C 的工作流程:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(全局参数服务器):::process -->|复制参数| B(代理 1):::process
A -->|复制参数| C(代理 2):::process
A -->|复制参数| D(代理 3):::process
B -->|更新参数| A
C -->|更新参数| A
D -->|更新参数| A
B -->|与环境 1 交互| E(环境 1):::process
C -->|与环境 2 交互| F(环境 2):::process
D -->|与环境 3 交互| G(环境 3):::process
6. 同步优势演员 - 评论家实现(A2C)
异步优势演员 - 评论家(A3C)是之前讨论的非并行演员 - 评论家优势架构的并行实现。A3C 在 Atari 2600 和其他标准化强化学习挑战中表现出色,但存在一个缺点。由于不同的并行代理异步且独立地与全局网络参数同步,所有代理在一段时间内使用的是过时的网络参数副本。而且,当某个代理再次更新全局网络参数时,它基于的是最初同步的参数副本,而此时这些参数已经过时。这导致训练不稳定,收敛可能不平稳。
为了避免这种情况,提出了同步优势演员 - 评论家(A2C)的变体。A2C 中,所有代理同步更新全局网络参数。由于所有代理同步工作并同时进行更新,它们不需要单独直接更新全局网络。
同步并行 A2C 的工作方式类似于小批量梯度更新。由于每个代理的步数相同,可以计算所有代理梯度更新的简单平均值,然后用这个平均值更新全局网络参数。
协调所有独立代理的工作由一个称为“协调器”的系统完成。由于所有代理相似且在相同步数后同步更新,在实际实现中,不需要生成不同的代理,使用相同代理的不同环境实例即可达到预期效果。
7. 总结
基于策略的方法,特别是基于策略梯度的方法很有前景,但实现起来并不容易。基于值估计的方法易于实现,但性能不如基于策略梯度的方法。演员 - 评论家算法结合了两者的优点,为强化学习的实现带来了更好的效果。
与“带基线的 REINFORCE”算法不同,演员 - 评论家模型中的基线是自举的,因此可以作为真正的评论家。在演员 - 评论家模型中,演员和评论家协同工作形成一个代理。演员与环境积极互动,评论家为代理的更新提供基线估计,并根据环境的下一个状态更新自己。
演员 - 评论家模型需要两个函数近似器,理想情况下可以是基于深度学习的模型,并且可以共享部分网络架构,特别是从输入状态中提取特征的部分。
多个演员 - 评论家模型代理可以并行工作,与各自的环境实例交互,这样不仅可以加快训练速度,还可以减少偏差,避免大内存需求。并行方法可以以同步和异步两种方式实现。异步优势演员 - 评论家(A3C)在 Atari 2600 游戏等任务中成功超越了许多先前模型的最佳成绩。
深度强化学习中的演员 - 评论家算法详解
8. 演员 - 评论家算法的关键要点回顾
为了更好地理解演员 - 评论家算法,我们对前面提到的关键要点进行回顾:
-
核心组件
:演员和评论家是算法的核心,演员负责采取行动,评论家负责评价行动并提供反馈。
-
策略更新
:演员使用策略梯度方法更新策略,评论家的价值估计为其提供基线。
-
自举机制
:评论家的基线是自举的,即每次迭代都会更新价值估计。
-
深度学习应用
:使用基于深度学习的函数近似器,提高处理复杂状态空间的能力。
-
并行实现
:可以采用异步(A3C)或同步(A2C)的并行方式,提高训练效率和稳定性。
以下是这些要点的对比表格:
| 要点 | 描述 |
| ---- | ---- |
| 核心组件 | 演员(行动) + 评论家(反馈) |
| 策略更新 | 演员(策略梯度) + 评论家(基线) |
| 自举机制 | 评论家价值估计迭代更新 |
| 深度学习应用 | 基于卷积神经网络的函数近似器 |
| 并行实现 | 异步(A3C)或同步(A2C) |
9. 演员 - 评论家算法的应用场景
演员 - 评论家算法在许多领域都有广泛的应用,以下是一些常见的场景:
-
游戏领域
:在电子游戏中,如 Atari 2600 游戏,算法可以学习到最优的游戏策略,提高游戏得分。
-
机器人控制
:用于控制机器人的运动和决策,使机器人能够在复杂环境中完成任务,如导航、抓取等。
-
自动驾驶
:帮助自动驾驶车辆做出决策,如加速、减速、转弯等,提高行驶的安全性和效率。
-
资源管理
:在云计算、数据中心等领域,优化资源的分配和调度,提高资源利用率。
以下是这些应用场景的具体说明:
| 应用场景 | 具体任务 | 优势体现 |
| ---- | ---- | ---- |
| 游戏领域 | 学习游戏策略 | 提高游戏得分 |
| 机器人控制 | 运动和决策 | 适应复杂环境 |
| 自动驾驶 | 行驶决策 | 提高安全性和效率 |
| 资源管理 | 资源分配和调度 | 提高利用率 |
10. 演员 - 评论家算法的实现步骤
实现演员 - 评论家算法可以按照以下步骤进行:
1.
定义环境和状态空间
:确定算法要处理的环境和状态表示方式。
2.
构建演员和评论家网络
:根据环境和状态空间,设计合适的神经网络结构。
3.
初始化参数
:初始化演员和评论家网络的参数。
4.
训练过程
:
- 演员根据当前策略选择行动。
- 环境根据行动给出奖励和下一个状态。
- 评论家计算状态价值估计和误差。
- 演员和评论家根据误差更新参数。
5.
评估和优化
:在训练过程中,定期评估算法的性能,并根据评估结果进行优化。
以下是实现步骤的 mermaid 流程图:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(定义环境和状态空间):::process --> B(构建演员和评论家网络):::process
B --> C(初始化参数):::process
C --> D(训练过程):::process
D --> E(演员选行动):::process
E --> F(环境给奖励和新状态):::process
F --> G(评论家计算误差):::process
G --> H(演员和评论家更新参数):::process
H --> I{是否结束训练}:::process
I -- 否 --> E
I -- 是 --> J(评估和优化):::process
11. 演员 - 评论家算法的未来发展趋势
随着深度学习和强化学习的不断发展,演员 - 评论家算法也有一些未来的发展趋势:
-
多智能体协作
:研究多个演员 - 评论家智能体之间的协作,以解决更复杂的任务,如多机器人协作、多人游戏等。
-
结合其他技术
:与其他技术,如迁移学习、元学习等结合,提高算法的泛化能力和学习效率。
-
可解释性研究
:提高算法的可解释性,使人们能够更好地理解算法的决策过程,特别是在安全关键领域的应用。
-
硬件优化
:利用更强大的硬件,如 GPU、TPU 等,进一步加速算法的训练和推理过程。
以下是未来发展趋势的详细说明:
| 发展趋势 | 描述 | 应用前景 |
| ---- | ---- | ---- |
| 多智能体协作 | 多个智能体协同工作 | 解决复杂任务 |
| 结合其他技术 | 与迁移学习、元学习等结合 | 提高泛化和学习效率 |
| 可解释性研究 | 解释算法决策过程 | 安全关键领域应用 |
| 硬件优化 | 利用 GPU、TPU 加速 | 加快训练和推理 |
12. 总结与展望
演员 - 评论家算法结合了基于策略和基于值估计的方法,为强化学习带来了更强大的性能和更好的实现效果。通过演员和评论家的协同工作,算法能够在复杂环境中学习到最优策略。
在实现方面,基于深度学习的函数近似器和并行训练方式提高了算法的处理能力和训练效率。同时,优势演员 - 评论家模型架构进一步优化了算法的性能。
未来,演员 - 评论家算法有望在多智能体协作、结合其他技术、可解释性研究和硬件优化等方面取得更大的进展。这些发展将使算法在更多领域得到应用,为解决实际问题提供更有效的解决方案。
希望通过本文的介绍,读者能够对演员 - 评论家算法有更深入的理解,并在实际应用中发挥其优势。
超级会员免费看
1023

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



