探索与决策的完美结合:Actor-Critic 方法及其衍生算法

引言

在强化学习领域,如何让智能体学会做出最优决策是一个关键问题。Actor-Critic 方法提供了一种高效的解决方案,它结合了策略梯度(Actor)和值函数(Critic)的优点,使智能体能够在复杂的环境中快速学习和优化行为策略。本文将详细介绍这一方法及其几种重要的衍生算法,并探讨它们在不同应用场景中的优势和挑战。


1. Actor-Critic 方法的基本原理

1.1 分工合作的智慧

Actor-Critic 方法的核心思想是将决策过程分为两部分:

  • Actor 负责选择动作,根据当前状态 s s s 选择一个动作 a a a,其目标是最大化预期奖励。
  • Critic 负责评估这些动作的好坏,估计采取某个动作后的价值(通常使用状态价值函数 V ( s ) V(s) V(s) 或状态-动作价值函数 Q ( s , a ) Q(s, a) Q(s,a))。

通过这种分工合作的方式,Actor-Critic 方法能够在提高性能的同时保持训练的稳定性。接下来,我们将介绍几种基于这一框架的重要衍生方法。


2. A2C (Advantage Actor-Critic)

2.1 同步更新的力量

A2C 是一种同步的Actor-Critic 方法,它使用多个环境副本并行运行,从而加速训练过程。每个环境的数据一起用于更新Actor和Critic,确保模型参数一致。A2C 使用优势函数 A ( s , a ) = Q ( s , a ) − V ( s ) A(s, a) = Q(s, a) - V(s) A(s,a)=Q(s,a)V(s) 来评估动作的好坏,减少了方差。

公式
  • 策略梯度更新
    θ ← θ + α ∇ θ log ⁡ π θ ( a t ∣ s t ) A ( s t , a t ) \theta \leftarrow \theta + \alpha \nabla_\theta \log \pi_\theta(a_t | s_t) A(s_t, a_t) θθ+αθlogπθ(atst)A(st,at)
  • Critic 更新
    L ( ϕ ) = E t [ ( G t − V ϕ ( s t ) ) 2 ] L(\phi) = \mathbb{E}_t \left[ (G_t - V_\phi(s_t))^2 \right] L(ϕ)=Et[(GtVϕ(st))2]

这种方法适用于需要高效利用数据的任务,如大规模游戏AI和机器人操控。


3. A3C (Asynchronous Advantage Actor-Critic)

3.1 异步更新的优势

A3C 是 A2C 的异步版本,允许多个代理(agents)在不同环境中独立运行,并异步更新共享的模型参数。每个代理独立运行并在自己的环境中收集数据,然后异步更新全局模型,避免了等待时间。这种方法可以充分利用多核CPU或分布式计算资源,加快训练速度,适用于复杂环境中的任务,如大型游戏AI和复杂模拟环境。

公式
  • 策略梯度更新
    Δ θ i = α ∑ t = 0 T ∇ θ log ⁡ π θ ( a t ∣ s t ) A ( s t , a t ) \Delta \theta_i = \alpha \sum_{t=0}^{T} \nabla_\theta \log \pi_\theta(a_t | s_t) A(s_t, a_t) Δθi=αt=0Tθlogπθ(atst)A(st,at)
  • Critic 更新
    Δ ϕ i = β ∑ t = 0 T ∇ ϕ ( G t − V ϕ ( s t ) ) 2 \Delta \phi_i = \beta \sum_{t=0}^{T} \nabla_\phi \left( G_t - V_\phi(s_t) \right)^2 Δϕi=βt=0Tϕ(GtVϕ(st))2

其中, i i i 表示不同的代理,每个代理独立更新,然后异步地应用于全局模型。


4. DDPG (Deep Deterministic Policy Gradient)

4.1 连续动作空间的突破

DDPG 是一种针对连续动作空间的Actor-Critic 方法,它结合了深度学习和确定性策略梯度。DDPG 引入目标网络(Target Network)来稳定训练过程,减少参数更新带来的波动,并使用经验回放缓冲区(Replay Buffer)存储历史数据,随机采样进行训练,进一步提高数据利用效率。

公式
  • 策略梯度更新
    θ ← θ + α ∇ a Q ( s , a ∣ ϕ ) ∣ s = s t , a = μ ( s t ∣ θ ) ∇ θ μ ( s ∣ θ ) \theta \leftarrow \theta + \alpha \nabla_a Q(s, a|\phi) \bigg|_{s=s_t, a=\mu(s_t|\theta)} \nabla_\theta \mu(s|\theta) θθ+αaQ(s,aϕ) s=st,a=μ(stθ)θμ(sθ)
  • Critic 更新
    L ( ϕ ) = E ( s , a , r , s ′ ) ∼ D [ ( r + γ Q ( s ′ , μ ( s ′ ∣ θ ) ∣ ϕ ′ ) − Q ( s , a ∣ ϕ ) ) 2 ] L(\phi) = \mathbb{E}_{(s,a,r,s') \sim \mathcal{D}} \left[ \left( r + \gamma Q(s', \mu(s'|\theta)|\phi') - Q(s, a|\phi) \right)^2 \right] L(ϕ)=E(s,a,r,s)D[(r+γQ(s,μ(sθ)ϕ)Q(s,aϕ))2]

这种方法适用于连续动作空间的任务,如机器人操控和自动驾驶。


5. PPO (Proximal Policy Optimization)

5.1 稳定性的保障

PPO 是一种改进的策略梯度方法,通过限制更新步长来提高训练的稳定性。PPO 通过剪切策略比值 r t ( θ ) r_t(\theta) rt(θ),确保每次更新不会过度偏离当前策略,并引入信任区域的概念,确保渐进性的更新方式。PPO 通常与Critic结合使用,形成完整的Actor-Critic 框架,适用于需要高效利用数据和灵活探索的任务,如模拟训练环境和大型游戏AI。

公式
  • 策略梯度更新
    L C L I P ( θ ) = E t [ min ⁡ ( r t ( θ ) A t , clip ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) A t ) ] L^{CLIP}(\theta) = \mathbb{E}_t \left[ \min \left( r_t(\theta) A_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) A_t \right) \right] LCLIP(θ)=Et[min(rt(θ)At,clip(rt(θ),1ϵ,1+ϵ)At)]
  • Critic 更新
    L V ( ϕ ) = E t [ ( G t − V ϕ ( s t ) ) 2 ] L_V(\phi) = \mathbb{E}_t \left[ (G_t - V_\phi(s_t))^2 \right] LV(ϕ)=Et[(GtVϕ(st))2]

6. SAC (Soft Actor-Critic)

6.1 探索与利用的平衡

SAC 是一种基于最大熵强化学习的Actor-Critic 方法,旨在最大化预期奖励的同时最小化熵(即增加探索)。SAC 通过最大化预期奖励和熵,鼓励智能体在探索和利用之间找到平衡,并使用两个Critic网络来估计Q值,提高估计的准确性。

公式
  • 策略梯度更新
    J ( θ ) = E s ∼ ρ β [ E a ∼ π θ ( ⋅ ∣ s ) [ Q ( s , a ) − α log ⁡ π θ ( a ∣ s ) ] ] J(\theta) = \mathbb{E}_{s \sim \rho^\beta} \left[ \mathbb{E}_{a \sim \pi_\theta(\cdot|s)} \left[ Q(s, a) - \alpha \log \pi_\theta(a|s) \right] \right] J(θ)=Esρβ[Eaπθ(s)[Q(s,a)αlogπθ(as)]]
  • Critic 更新
    L Q ( ϕ ) = E ( s , a , r , s ′ ) ∼ D [ ( r + γ E a ′ ∼ π θ ( ⋅ ∣ s ′ ) [ Q ′ ( s ′ , a ′ ) − α log ⁡ π θ ( a ′ ∣ s ′ ) ] − Q ( s , a ) ) 2 ] L_Q(\phi) = \mathbb{E}_{(s,a,r,s') \sim \mathcal{D}} \left[ \left( r + \gamma \mathbb{E}_{a' \sim \pi_\theta(\cdot|s')} \left[ Q'(s', a') - \alpha \log \pi_\theta(a'|s') \right] - Q(s, a) \right)^2 \right] LQ(ϕ)=E(s,a,r,s)D[(r+γEaπθ(s)[Q(s,a)αlogπθ(as)]Q(s,a))2]

7. TD3 (Twin Delayed Deep Deterministic Policy Gradient)

7.1 避免过拟合的技巧

TD3 是DDPG的改进版本,旨在解决过拟合问题和提高训练的稳定性。TD3 使用两个Critic网络来估计Q值,选择较小的估计值,减少过拟合,并每隔几步才更新一次Actor,确保Critic有足够的时间收敛。此外,TD3 对目标策略添加噪声,防止过拟合。

公式
  • 策略梯度更新
    θ ← θ + α ∇ a Q 1 ( s , a ∣ ϕ 1 ) ∣ s = s t , a = μ ( s t ∣ θ ) ∇ θ μ ( s ∣ θ ) \theta \leftarrow \theta + \alpha \nabla_a Q_1(s, a|\phi_1) \bigg|_{s=s_t, a=\mu(s_t|\theta)} \nabla_\theta \mu(s|\theta) θθ+αaQ1(s,aϕ1) s=st,a=μ(stθ)θμ(sθ)
  • Critic 更新
    L Q ( ϕ i ) = E ( s , a , r , s ′ ) ∼ D [ ( r + γ min ⁡ i = 1 , 2 Q i ′ ( s ′ , μ ( s ′ ∣ θ ′ ) + ϵ ) − Q i ( s , a ) ) 2 ] L_Q(\phi_i) = \mathbb{E}_{(s,a,r,s') \sim \mathcal{D}} \left[ \left( r + \gamma \min_{i=1,2} Q'_i(s', \mu(s'|\theta') + \epsilon) - Q_i(s, a) \right)^2 \right] LQ(ϕi)=E(s,a,r,s)D[(r+γi=1,2minQi(s,μ(sθ)+ϵ)Qi(s,a))2]
  • 延迟更新Actor:每隔 D D D 步更新一次Actor。

结论

本文详细介绍了Actor-Critic 方法及其几种重要的衍生算法,展示了如何结合策略梯度和值函数方法来提高智能体的学习效率和稳定性。每种方法都有其独特的特点和适用场景,选择合适的方法可以帮助智能体更好地完成任务。无论是处理连续动作空间的任务,还是需要高效利用数据和灵活性的任务,Actor-Critic 方法及其衍生算法都提供了强大的工具和支持。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/64451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

未来网络技术的新征程:5G、物联网与边缘计算(10/10)

一、5G 网络:引领未来通信新潮流 (一)5G 网络的特点 高速率:5G 依托良好技术架构,提供更高的网络速度,峰值要求不低于 20Gb/s,下载速度最高达 10Gbps。相比 4G 网络,5G 的基站速度…

数据交易和联邦学习的背景下的安全属性

数据交易和联邦学习的背景下的安全属性 在数据交易和联邦学习的背景下,安全属性对于保护数据隐私、确保系统可靠性和维护交易公平性至关重要。以下将分析文章中涉及的安全属性以及分析这些属性的目的。 涉及的安全属性 双向认证:文章虽未明确提及传统意义上的双向认证机制,…

QWT 之 QwtPlotDirectPainter直接绘制

QwtPlotDirectPainter 是 Qwt 库中用于直接在 QwtPlot 的画布上绘制图形的一个类。它提供了一种高效的方法来实时更新图表,特别适合需要频繁更新的数据可视化应用,例如实时数据流的显示。 使用 QwtPlotDirectPainter 的主要优势在于它可以绕过 QwtPlot 的…

改变HTML元素的方式有哪些?如何在HTML中添加/替换或删除元素?

使用 JavaScript 的 DOM 操作 如果想要修改元素的样式,就要先获取元素之后再进行下一步操作 获取元素:可以使用等方法获取到需要操作的 HTML 元素。 document.getElementById() document.getElementsByClassName() document.getElementsByTagName() d…

SuperMap iClient3D for Cesium等高线标注

kele 前言 在三维地形分析中,等高线分析是一种非常重要的分析方法,它能直观的表达出地形的高低起伏特征,在三维系统中受到广泛应用。在SuperMap iClient3D for Cesium中,等高线分析是前端GPU分析,能够分析并渲染出等高…

从 x86 到 ARM64:CPU 架构的进化与未来

在计算机发展的历史长河中,x86、x64 和 ARM64 这三大主流 CPU 架构各自书写了辉煌的篇章。它们不仅代表了技术的进步,更承载着无数创新者的梦想与努力。 x86:从 16 位到 32 位的辉煌之路 诞生与崛起 1978 年,英特尔(…

红魔电竞PadPro平板解BL+ROOT权限-KernelSU+LSPosed框架支持

红魔Padpro设备目前官方未开放解锁BL,也阉割了很多解锁BL指令,造成大家都不能自主玩机。此规则从红魔8开始,就一直延续下来,后续的机型大概率也是一样的情况。好在依旧有开发者进行适配研究,目前红魔PadPro平板&#x…

TCP Analysis Flags 之 TCP Out-Of-Order

前言 默认情况下,Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态,并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时,会对每个 TCP 数据包进行一次分析,数据包按照它们在数据包列表中出现的顺序进行处理。可…

<数据集>风力发电机损伤识别数据集<目标检测>

数据集下载链接 <数据集>风力发电机损伤识别数据集<目标检测>https://download.csdn.net/download/qq_53332949/90187097数据集格式:VOCYOLO格式 图片数量:2527张 标注数量(xml文件个数):252…

C++ 设计模式:工厂方法(Factory Method)

链接:C 设计模式 链接:C 设计模式 - 抽象工厂 链接:C 设计模式 - 原型模式 链接:C 设计模式 - 建造者模式 工厂方法(Factory Method)是创建型设计模式之一,它提供了一种创建对象的接口&#xf…

分布式版本管理工具——Git关联远程仓库(github+gitee)

Git远程仓库(Github)的基本使用 一、前言二、Git远程仓库介绍三、演示1. 关联github远程仓库2. 关联gitee(码云)远程仓库3. 重命名远程仓库名4. 移除远程仓库 四、结束语 一、前言 古之立大事者,不惟有超世之才&#x…

在 React 项目中安装和配置 Three.js

React 与 Three.js 的结合 :通过 React 管理组件化结构和应用逻辑,利用 Three.js 实现 3D 图形的渲染与交互。使用这种方法,我们可以在保持代码清晰和结构化的同时,实现令人惊叹的 3D 效果。 在本文中,我们将以一个简…

Lucene 漏洞历险记:修复损坏的索引异常

作者:来自 Elastic Benjamin Trent 有时,一行代码需要几天的时间才能写完。在这里,我们可以看到工程师在多日内调试代码以修复潜在的 Apache Lucene 索引损坏的痛苦。 做好准备 这篇博客与往常不同。它不是对新功能或教程的解释。这是关于花…

嵌入式硬件面试题

1、请问什么是通孔、盲孔和埋孔?孔径多大可以做机械孔,孔径多小必须做激光孔?请问激光微型孔可以直接打在元件焊盘上吗,为什么? 通孔是贯穿整个PCB的过孔,盲孔是从PCB表层连接到内层的过孔,埋孔…

基础的基础之 pillow与opencv相比的特点与优缺点比较

Pillow 和 OpenCV 都是人工智能图像处理的必不可少的常用库,但它们有各自的特点和适用场景。 以下是它们的主要特点、优缺点以及适用场景的对比: 1. Pillow(Python Imaging Library) Pillow 是一个轻量级的图像处理库&#xff0…

深度学习J6周 ResNeXt-50实战解析

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 本周任务: 1.阅读ResNeXt论文,了解作者的构建思路 2.对比之前介绍的ResNet50V2、DenseNet算法 3.复现ResNeXt-50算法 一、模型结构…

Langchain Chat Model 和 Chat Prompt Template

0. 简介 Chat Model 不止是一个用于聊天对话的模型抽象,更重要的是提供了多角色提示能力(System,AI,Human,Function)。 Chat Prompt Template 则为开发者提供了便捷维护不同角色的提示模板与消息记录的接口。 1. 构造 ChatPromptTemplate from langch…

对话 Project Astra 研究主管:打造通用 AI 助理,主动视频交互和全双工对话是未来重点

Project Astra 愿景之一:「系统不仅能在你说话时做出回应,还能在持续的过程中帮助你。」 近期,Google DeepMind 的 YouTube 频道采访了 Google DeepMind 研究主管格雷格韦恩 (Greg Wayne)。 格雷格韦恩的研究工作为 DeepMind 的诸多突破性成…

全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(四)

实战训练1—最大差值 问题描述: 输入n个非负整数,找出这个n整数的最大值与最小值,并求最大值和最小值的差值。 输入格式: 共两行,第一行为整数的个数 n(1≤n≤1000)。第二行为n个整数的值(整…

纯Dart Flutter库适配HarmonyOS

纯Dart Flutter库适配HarmonyOS介绍: Flutter基本组件、Flutter布局组件、Flutter图片组件、Flutter字体、Flutter图标、Fluter路由、flutter动画、 Flutter表单、flutter异步等,纯Dart库无需任何处理,可以直接编译成HarmonyOs应用。 具体步…