深度确定性策略梯度 DDPG

news2024/10/7 14:31:05

深度确定性策略梯度 DDPG

    • 深度确定性策略梯度 DDPG
      • 模型结构
      • 目标函数
      • 算法步骤
      • 适合场景

 


深度确定性策略梯度 DDPG

A2C、A3C 都是在线策略,在与环境交互时,样本参数更新效率低,所以主要是应用在离散空间,计算量没那么大。

DDPG 专用于解决连续空间的问题。

设计思路结合了确定性策略(给定状态下,策略会产生一个特定动作,而不是动作的概率分布)和 演员-评论家 框架。

  • DDPG 类似 DQN(用神经网络去近似Q函数),再用一个 演员-评论家框架 去弥补 DQN 不能处理连续控制性问题的缺点。

适用于处理需要精细控制的问题,例如跑车的运动控制,它在连续动作空间中的确表现更好。

模型结构

DDPG 有 4 个神经网络。

  • 两个神经网络(Actor和Critic)
  • 及它们的对应目标网络(Target Actor和Target Critic)

四个网络可用一个舞台剧的比喻来解释:

  1. 演员(Actor网络):

    • 就像舞台上的主角,这个演员(Actor网络)需要决定在每个场景中应该做什么动作。比如,他可能需要决定是走向左边还是右边,或者是跳起来还是蹲下。
    • 这个网络就像一个深思熟虑的演员,通过学习和实践,慢慢找到在每个场景中的最佳表现方法。
  2. 评论家(Critic网络):

    • 然后有一个评论家坐在观众席中,观看演员的每一个动作,并评价这个动作的好坏。这个评论家(Critic网络)会告诉演员他的表演是否能帮助整个剧情的发展。
    • 这个网络就像一个专业的剧评人,它帮助演员理解哪些动作对整个剧情最有帮助。
  3. 备用演员(Target Actor网络):

    • 还有一个备用演员,他在幕后观察主演员的表演。这个备用演员(Target Actor网络)不会立刻模仿主演员的每一个新动作,而是慢慢地、稳定地学习他的风格。
    • 这个网络确保了学习过程不会因为主演员突然的改变而变得混乱。
  4. 备用评论家(Target Critic网络):

    • 最后,还有一个备用评论家,他也在评价演出,但更多地是基于过去的表演,而不仅仅是当前的表演。这个备用评论家(Target Critic网络)确保评价标准不会因为短期的变化而频繁变动。
    • 这个网络帮助保持评价的一致性和稳定性,确保演员不会因为短期的波动而偏离长期的学习目标。

在DDPG算法中,这四个网络协同工作:演员决定动作,评论家评价这些动作,而备用演员和备用评论家则帮助保持整个学习过程的平稳和连续性。

 
完整流程图:

  1. 环境交互:

    • Agent(Actor和Critic)在环境中执行动作,获得新的状态、奖励和是否结束的信息。这些信息被表示为一个四元组 ( s i , a i , r i , s i + 1 ) (s_i, a_i, r_i, s_{i+1}) (si,ai,ri,si+1)
  2. 经验回放:

    • 这些四元组被存储在经验回放内存中。这样做可以帮助算法学习更稳定,因为它减少了样本间的相关性,并且可以重复使用旧的经验来训练。
  3. 批样本抽取:

    • 从经验回放内存中随机抽取一批四元组来进行学习。这个批量的数据用于更新 Actor 和 Critic 网络。
  4. Critic(评价家):

    • Critic网络使用抽取的样本来评估动作的价值。它有两个组件:
      • Critic网络 ( θ Q ) (θ^Q) (θQ): 上图的在线Q网络,使用当前策略和状态来估计Q值(动作的价值)。
      • 目标Critic网络 ( θ ′ Q ) (θ'^Q) (θQ): 使用相同的输入,这是Critic网络的复制品,参数更新也比在线Critic网络慢,用于生成一个稳定的目标,以便优化在线Critic网络。
  5. Actor(演员):

    • Actor网络决定给定状态下的最优动作。它也有两个组件:
      • Actor网络 ( θ μ ) (θ^μ) (θμ): 上图的在线策略网络,它直接计算当前策略下的动作。
      • 目标Actor网络 ( θ ′ μ ) (θ'^μ) (θμ): 这是Actor网络的复制品,其参数更新比在线Actor网络慢。它用于计算目标Q值,以稳定训练过程。
  6. 优化器:

    • 每个网络(Actor和Critic)都有一个优化器。优化器使用梯度下降方法来调整网络的权重,从而最小化损失函数。
      • Actor优化器:使用策略梯度来更新在线Actor网络的参数,目的是最大化Critic网络预测的Q值。
      • Critic优化器:更新在线Critic网络的参数,目的是最小化预测Q值和目标Q值之间的差异。
  7. 软更新:

    • 在线网络的权重通过软更新的方式被用来逐渐更新目标网络的权重。这样可以保证目标网络的参数变化不会太大,从而保持训练的稳定性。

整个流程是一个循环过程,Actor和Critic网络的参数通过与环境的交互和优化器的更新不断地进行调整,以此来提升策略的性能。通过这种方式,DDPG算法能够让Agent学会在连续的动作空间内做出决策。

目标函数

价值网络目标函数 = 目标值网络(Target-Q)+ 当前值网络(Current-Q),均分误差最小化俩者之间的差异。

  • J t ω = MSE ( r t + γ Q w ( s t + 1 , μ θ ( s t + 1 ) ) ⏟ Target-Q − Q w ( s t , a t ) ⏟ Current-Q ) J_{t}^{\omega}=\text{MSE}(\underbrace{r_{t}+\gamma Q^{w}\left(s_{t+1},\mu_{\theta}\left(s_{t+1}\right)\right)}_{\text{Target-Q}}-\underbrace{Q^{w}\left(s_{t},a_{t}\right)}_{\text{Current-Q}}) Jtω=MSE(Target-Q rt+γQw(st+1,μθ(st+1))Current-Q Qw(st,at))

DDPG 使用了目标策略网络

J t θ = − Q w ( s t , μ θ ( s t ) ) J_{t}^{\theta}=-Q^{w}\left(s_{t},\mu_{\theta}\left(s_{t}\right)\right) Jtθ=Qw(st,μθ(st))

  • Q w ( s t + 1 , μ θ ( s t + 1 ) ) ⏟ μ -Target \underbrace{Q^{w}\left(s_{t+1},\mu_{\theta}\left(s_{t+1}\right)\right)}_{\mu\text{-Target}} μ-Target Qw(st+1,μθ(st+1))

选 Q 函数负值为目标函数,使策略朝着增加 Q 值的方向进化

  • 策略优化的目标是使 Q 函数的值最大化,即选择能带来最高回报的动作。

使用目标策略网络,减少 Q 函数波动,提升训练稳定性和收敛性

  • 目标策略网络是一种技术,用于稳定学习过程。通过使用稍微落后于最新策略的目标策略,可以减少 Q 函数的波动,从而提高训练过程的稳定性和收敛速度。

算法步骤

DDPG的算法步骤:

  1. 初始化网络:在DDPG中,有四个主要的神经网络 - Actor网络和Critic网络及它们各自的目标网络(Target Actor和Target Critic)。Actor网络负责确定给定状态下的动作,而Critic网络则评估这个动作的好坏(即动作的价值)。

  2. 收集经验:算法通过与环境交互来收集经验。在每一步,根据当前状态和Actor网络来选择动作,然后执行这个动作,观察结果(新的状态、奖励等),并将这些信息存储在经验回放缓冲区中。

  3. 随机抽样学习:从经验回放缓冲区中随机抽取一批经验。这种随机抽样可以减少样本间的相关性,增强学习的稳定性。

  4. 更新Critic网络:使用抽样出来的经验来更新Critic网络。Critic网络通过比较预测的价值和实际获得的奖励来调整其参数,使预测更准确。

  5. 更新Actor网络:使用Critic网络的反馈来更新Actor网络。Actor网络的目标是选择能够带来最大预期回报的动作,因此它根据Critic网络的反馈调整自己的策略。

  6. 更新目标网络:为了增加学习过程的稳定性,DDPG使用了目标网络。这些网络的参数定期(而不是每步)更新为主网络的参数。这样可以保证学习过程中的目标保持一定的稳定性。

  7. 重复并迭代:重复上述过程,逐渐改善Actor和Critic网络的性能,直到算法性能达到一定的标准或者迭代次数达到预设的限制。

DDPG的核心思想是使用深度学习方法来逼近一个最优策略,同时通过经验回放和目标网络技术来解决数据相关性和学习过程中的不稳定问题,解决连续动作空间的问题。

适合场景

深度确定性策略梯度(DDPG)算法适用于以下条件:

  1. 连续动作空间:

    • DDPG非常适合于动作空间是连续的问题。例如,控制机器人的关节角度或者车辆的加速度,这些动作可以取任何在一定范围内的值。
  2. 高维状态空间:

    • DDPG可以处理具有高维状态空间的问题,尤其是当状态空间可以通过传感器数据如图像输入到深度神经网络时。
  3. 离散时间决策:

    • DDPG适用于需要在离散时间点做决策的场景,即决策步骤是离散的,虽然动作本身是连续的。
  4. 需要策略梯度的场景:

    • 当问题需要通过策略梯度方法来优化策略时,DDPG是一个适用的选择。这是因为DDPG结合了策略梯度和函数逼近的优点,可以处理高维动作空间。
  5. 长期依赖的任务:

    • 对于需要考虑长期回报的任务,DDPG通过使用时间差分(TD)学习和贝尔曼方程,可以有效地学习策略。
  6. 充分的计算资源:

    • DDPG算法需要足够的计算资源来训练深度神经网络,这通常意味着有高性能的CPU/GPU和足够的内存。
  7. 稳定的环境模型:

    • DDPG算法假设环境是固定不变的,或者变化是相对缓慢的,这样学习到的策略才能在实际环境中有效。
  8. 足够的探索机会:

    • 由于DDPG是一种基于梯度的优化算法,它需要足够的探索机会来避免陷入局部最优。这通常通过噪声添加机制来实现,如在算法中使用

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

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

相关文章

脆弱的SSL加密算法漏洞原理以及修复方法

漏洞名称:弱加密算法、脆弱的加密算法、脆弱的SSL加密算法、openssl的FREAK Attack漏洞 漏洞描述:脆弱的SSL加密算法,是一种常见的漏洞,且至今仍有大量软件支持低强度的加密协议,包括部分版本的openssl。其实&#xf…

x-cmd pkg | lazygit - git 命令的终端 UI

目录 简介首次用户功能特点类似工具与竞品进一步探索 简介 lazygit 由 Jesse Duffield 于 2018 年使用 Go 语言构建的 git 终端交互式命令行工具,旨在终端界面中便捷管理 git 存储库。 首次用户 使用 x lazygit 即可自动下载并使用 在终端运行 eval "$(curl …

栈的经典算法问题(算法村第四关白银挑战)

括号匹配问题 有效的括号 20. 有效的括号 - 力扣(LeetCode) 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类…

包围盒体积-体积计算

文章目录 环境:1.1 包围盒法介绍:2.1 python代码3.1 可视化4.1 体积Calculation 环境: Open3D 1.1 包围盒法介绍: 求解离散点最优包围空间 常用的凸包算法: AABB OOB 2.1 python代码 conda activete deeplabv3plus(…

一起读《奔跑吧Linux内核(第2版)卷1:基础架构》- 大小端字节序

关注 点赞 不错过精彩内容 大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! Hello,大家好我是硬核王同学,是一名刚刚工作一年多的Linux工程师&#xff0…

【hyperledger-fabric】将智能合约部署到通道

简介 本文主要来自于B站视频教学视频,也主要参看了官方文档中下图这一章节。针对自己开发的代码做出相应的总结。 1.启动网络 # 跳转到指定的目录 cd /root/fabric/fabric-samples/test-network# 启动docker容器并且创建通道 ./network.sh up createChannel2.打…

CMake支持的编译平台和IDE

文章目录 简介支持的IDEVisual Studio支持示例 其他编译器和生成器支持MinGW示例 IDE集成Eclipse示例 实验性和特殊平台支持总结 简介 CMake是一个非常强大的跨平台自动化构建工具,它支持生成多种类型的项目文件,覆盖了广泛的开发环境和编译器。在这篇博…

wordpress在界面将站点地址直接修改为https导致上不去问题的解决办法

wordpress在界面将站点地址直接修改为https导致上不去问题的解决办法 #修改数据库yz_options

【Matlab】基于遗传算法优化BP神经网络 (GA-BP)的数据时序预测(附代码)

资源下载: https://download.csdn.net/download/vvoennvv/88682033 一,概述 基于遗传算法优化BP神经网络 (GA-BP) 的数据时序预测是一种常用的机器学习方法,用于预测时间序列数据的趋势和未来值。 在使用这种方法之前,需要将时间序…

Nacos设置账号密码

1、控制台设置 # 开启账号密码验证 nacos.core.auth.enabledtrue# 设置账号密码 nacos.core.auth.usernamenacos nacos.core.auth.passwordnacos1232、数据库设置 密码为:nacos,对应加密信息是: $2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2k…

哨兵1号回波数据(L0级)FDBAQ压缩算法详解

本专栏目录: 全球SAR卫星大盘点与回波数据处理专栏目录-CSDN博客 1. 全球SAR卫星回波数据压缩算法统计 各国的SAR卫星的压缩算法按照时间轴排列如下: 可以看出传统的分块BAQ压缩算法(上图粉色)仍然是主流,哨兵1号其实也有传统的BAQ压缩模式。 本文介绍哨兵1号用的FDBAQ算…

图像分割-漫水填充法 floodFill (C#)

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 本文的VB版本请访问:图像分割-漫水填充法 floodFill-CSDN博客 FloodFill方法是一种图像处理算法,它的目的是…

优维科技2024战略定位:新一代运维核心系统提供商

01 经济复苏「走远路」 过去几年,全球经济持续低迷,2024会迎来转机吗? 回顾2023年,尽管经济复苏动能式微,但全球经济因有效控制通胀而展现出来的韧性,让包括中国在内的大部分经济体躲过了深度衰退的陷阱&…

(NeRF学习)NeRFStudio安装win11

参考: 【深度学习】【三维重建】windows11环境配置tiny-cuda-nn详细教程nerfstudio介绍及在windows上的配置、使用NeRFStudio官网githubRuntimeError: PytorchStreamReader failed reading zip archive: failed finding central directory原因及解决 目录 requireme…

二叉树的层序遍历,力扣

目录 题目地址: 题目: 我们直接看题解吧: 解题方法: 方法分析: 解题分析: 解题思路: 代码实现: 代码补充说明: 题目地址: 102. 二叉树的层序遍历 - 力扣&…

使用华为云鲲鹏弹性云服务器部署Discuz

本实验将在华为云鲲鹏弹性云服务器CentOS系统的实例上,部署Discuz!项目,并进行初步的安装测试。 注意:官网文档有些链接失效,本文在官方文档的基础上作出修改,具体参见Discuz安装这一步 操作前提:登录华为…

Unity中Shader的Reversed-Z(DirectX平台)

文章目录 前言一、在对裁剪坐标归一化设置NDC时,DirectX平台Z的特殊二、在图形计算器中,看一下Z值反转前后变化1、在图形计算器创建两个变量 n 和 f 分别 控制近裁剪面 和 远裁剪面2、带入公式得到齐次裁剪空间下Z值3、进行透视除法4、用 1 - Z 得出Z值反…

邮件群发称呼怎么写?写群发邮件开头技巧?

如何写外贸邮件群发称呼?外贸群发邮件开头怎么称呼? 邮件群发已成为企业、个人和组织之间沟通的重要手段。而一个恰当的称呼,不仅能够展现出礼貌和尊重,还能够拉近彼此的距离。那么,如何写好邮件群发的称呼呢&#xf…

Java 读取超大excel文件

注意&#xff1a;此参考解决方案只是针对xlsx格式的excel文件&#xff01; Maven <dependency><groupId>com.monitorjbl</groupId><artifactId>xlsx-streamer</artifactId><version>2.2.0</version> </dependency>读取方式1…

杰发科技AutoGen自动生成7801代码——PWM

1.AutoGen生成代码非常简单&#xff0c;1s输出PWM波 只需修改如下频率和占空比即可 注意Pin脚对应的通道号是否正确 2.生成的代码可以直接编译烧录 3.结果