深度确定性策略梯度 DDPG

深度确定性策略梯度 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算法中,这四个网络协同工作:演员决定动作,评论家评价这些动作,而备用演员和备用评论家则帮助保持整个学习过程的平稳和连续性。

 

目标函数

价值网络目标函数 = 目标值网络(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 函数的波动,从而提高训练过程的稳定性和收敛速度。

算法步骤

完整流程图:

  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学会在连续的动作空间内做出决策。

适合场景

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

  1. 连续动作空间:

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

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

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

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

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

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

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

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

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

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

相关文章

毕业设计:基于机器学习xgboost lgbm adaboost 的空气质量预测pm2.5‘, ‘so2‘, ‘no2‘ 完整代码数据-可直接运行

项目详细视频讲解介绍: 基于机器学习xgboost lgbm adaboost 的空气质量预测-完整代码数据可直接运行_哔哩哔哩_bilibili 数据展示: 运行结果展示: 项目代码: from sklearn import preprocessing import random from sklearn.model_selection import train_test_split fr…

代码分支合并git命令快速解决

问题描述 在项目开发中会存在分支代码合并的问题,一般会涉及到多个仓库的合并工作,同一个仓库下可能涉及到很多笔提交,每一笔提交都有可能产生冲突,很多时候使用compare比较去处理,也是一种方法,但是往往工…

Python + selenium 自动化测试框架详解

自动化测试框架 项目自动化测试框架设计为4层 1.基础层(通用层) 基础层: 将通用,重复性比较高的代码封装到这里。 写通用的代码的。 其他3层想要的话,就可以直接调用。 例如: 读取测试数据的代码&…

Linux Debian12安装和使用ImageMagick图像处理工具 常见图片png、jpg格式转webp格式

一、ImageMagick简介 ImageMagick是一套功能强大、稳定而且免费的工具集和开发包。可以用来读、写和图像格式转换,可以处理超过100种图像格式,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。对图片的操作,即可以通过命令行进行&am…

【源码分析】 Calcite 处理流程详解:calcite架构、处理流程以及就一个运行示例进行源码分析

文章目录 一. Calcite整体架构二. Calcite处理流程三. 处理流程样例说明1. 样例demo1.1. 样例数据1.2. 使用calcite 2. 流程源码分析Step1: SQL 解析阶段(SQL–>SqlNode)Step2: SqlNode 验证(SqlNode–>SqlNode)1. 注册元数…

未来已来,Ai原生应用与人高度结合!学习就在现在?

原生应用:OpenAI™ChatGPT、Baidu.Inc™文心一言 也可以体验CSDN的INSCODE AI,集成多个国内GPT内容。 文章目录 前言----编程语言的未来?一、编程语言的教育1.1 学校所见所闻1.2 开启我们的Ai行程~io!1.3 Ai结果评论 二、Ai编程教…

海外数据中心代理与住宅代理:优缺点全面对比

数据中心代理和住宅代理是为了匿名而开发的,通过替换网站眼中您自己的 IP 地址。然而,它们在价格、功能、性能或最佳用例方面存在一些差异。那么,这些代理类型到底有什么相似点和不同点呢? 一、什么是数据中心代理? 1…

Android Matrix剪切clipPath缩放scale图片postTranslate圆形放大镜,Kotlin(2)

Android Matrix剪切clipPath缩放scale图片postTranslate圆形放大镜,Kotlin(2) 在 Android Matrix剪切clipPath缩放scale图片postTranslate圆形放大镜,Kotlin(1) Android Matrix剪切clipPath缩放scale图片po…

计算机组成原理-输入输出系统和IO控制方式

文章目录 总览现代计算机的结构常见的IO设备主机如何与IO设备交互IO控制方式简介程序查询方式程序中断方式DMA控制方式通道控制方式 IO系统基本组成小结 总览 现代计算机的结构 常见的IO设备 主机如何与IO设备交互 IO控制方式简介 数据寄存器:存放主机要输出到外设…

全功能Python测试框架:pytest

python通用测试框架大多数人用的是unittestHTMLTestRunner,这段时间看到了pytest文档,发现这个框架和丰富的plugins很好用,所以来学习下pytest. pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点: …

接口测试基础知识总结

一、HTTP 1、http请求头和响应头包含那些内容? 请求头信息 请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。 2、常用的请求报头如下: Accept:浏览器可接受的MIME类型。 l MIME用于设定某种扩展名的文件用哪种应…

node.js安装web3.js

第一步 node.js和npm 首先你需要有node.js和npm 可参考菜鸟教程 第二步 初始化nodejs项目 在项目文件夹打开命令行,输入 npm init -y此代码意为创建一个nodejs项目,默认配置。 然后安装web3.js,命令行输入安装命令 npm install web3npm会…