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

 
完整流程图:

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

aps审核-模电英文稿

模拟电子线路 Analog circuit 需要熟悉课程名,一句话简单概括课程内容,准备一些重点内容介绍。 This course mainly introduces the properties(n.性质) of semiconductors(半导体) and transistors, and then analyzes and masters amplification circ…

算法专题四:前缀和

前缀和 一.一维前缀和(模板):1.思路一:暴力解法2.思路二:前缀和思路 二. 二维前缀和(模板):1.思路一:构造前缀和数组 三.寻找数组的中心下标:1.思路一:前缀和 四.除自身以外数组的乘积&#xff…

java企业人事信息管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web企业人事信息管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境 为TOMCAT7.0,Myeclipse8.5开发,数据库为M…

DeepSpeed: 大模型训练框架

背景: 目前,大模型的发展已经非常火热,关于大模型的训练、微调也是各个公司重点关注方向。但是大模型训练的痛点是模型参数过大,动辄上百亿,如果单靠单个GPU来完成训练基本不可能。所以需要多卡或者分布式训练来完成这…

PE解释器之PE文件结构

PE文件是由许许多多的结构体组成的,程序在运行时就会通过这些结构快速定位到PE文件的各种资源,其结构大致如图所示,从上到下依次是Dos头、Nt头、节表、节区和调试信息(可选)。其中Dos头、Nt头和节表在本文中统称为PE文件头(因为SizeOfHeaders…

Nacos设置账号密码

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

文件分割合并助手

二进制文件合并分割器 时间: 2024.01.03 作者: FlameCyclone 自己写的一个能方便分割合并文件的小工具 使用说明 输出文件名 输出文件名规则前缀文件名开始固定名称序号(10/16进制显示, 宽度以输出最大序号为准)分割范围(16进制显示, 宽度以输出最大范围为准)CRC32校验码…

go语言``反引号用法归纳——多行输出和Tag标签(指定json名称、MySQL名称))

一、多行输出 示例 func main() {str1 : 反引号多行字符串str2 : "双引号" " 多行" " 字符串"//str3 : 单引号" //" 多行" //" 字符串str4 : "双引号\n" " 多行\n" &quo…

xadmin-plus

python之Xadmin-plus是什么? xadmin-plus: xadmin的django3.2版本支持。 Xadmin是一个非常优秀的Django Admin插件,可惜的是已经停止更新。Xadmin-plus对其进行了升级兼容。支持python3.10、Django3.2。 特性 Django Admin直接替换基于Twitter Boots…

Ubuntu22.04安装VTK8.2

1. 安装ccmake 和 VTK 的依赖项: sudo apt-get install cmake-curses-gui sudo apt-get install freeglut3-dev2.下载VTK-8.2.0库 VTK官方网址 自己选择合适的版本进行下载,解压到VTK文件夹下,再新建文件下名为build 3. 配置VTK 进入buil…

BIM 助力世界上最长的双层桥

Bentley 应用程序助力节省时间和成本,提前三年实现了投资回报 连通复杂的高速公路 PT. Wijaya Karya (WIKA) 是一家印度尼西亚的公司,为土建施工行业提供施工、机械和电气服务,该公司承包了印度尼西亚雅加达北部海港路二期工程的设计和建造&…

算法:岛屿的周长

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、问题描述 二、规律总结 总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、问题描述 给定一个包含 0 和 1 的二维网格地图&#x…

Elasticsearch:如何使用 Elasticsearch 进行排序

虽然你在唱这首歌时可能会想象圣诞老人,但欧洲民间传说,尤其是阿尔卑斯地区的民间传说,有两个传奇人物圣尼古拉斯和坎普斯。 象征着慷慨和善良的圣尼古拉斯,在 12 月 6 日 为乖巧的孩子们带来礼物和欢乐! 相比之下&…

【算法挨揍日记】day45——474. 一和零、879. 盈利计划

474. 一和零 474. 一和零 题目描述: 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。 解…

鸿蒙开发入门

一、开发准备 1.1 开发环境搭建 鸿蒙开发文档华为账号注册DevEco Studio 下载 二、快速入门 三、ArkUI 3.1 Image 3.2 Text 3.3 TextInput 3.4 Button 3.5 循环控制 3.6 List 3.7 自定义 3.8 状态管理 3.8.1 State 装饰器 3.8.2 Prop、Link 装饰器 // 父组件 State str: …

【每日论文阅读】生成模型篇

联邦多视图合成用于元宇宙 标题: Federated Multi-View Synthesizing for Metaverse 作者: Yiyu Guo; Zhijin Qin; Xiaoming Tao; Geoffrey Ye Li 摘要: 元宇宙有望提供沉浸式娱乐、教育和商务应用。然而,虚拟现实(VR)在无线网络上的传输是…

【Java】SpringBoot整合xxl-job学习使用详解

文章目录 介绍作用如何使用下载项目中央仓库地址环境调度中心初始化“调度数据库”配置部署“调度中心”部署项目调度中心集群(可选)其他:Docker 镜像方式搭建调度中心配置部署“执行器项目” 执行器maven依赖执行器配置执行器组件配置执行器…

人工智能_机器学习088_DBSCAN聚类案例_KMeans聚类算法效果展示---人工智能工作笔记0128

然后我们先来看一下上一节的代码首先导包 import numpy as np 导入数学计算包 import matplotlib.pyplot as plt 导入画图包 from sklearn.cluster import KMeans,DBSCAN 导入算法 from sklearn import datasets 导入数据集包 然后我们再去创建数据 X,y = datasets.make_c…

MyBatis学习一:快速入门

前言 公司要求没办法,前端也要了解一下后端知识,这里记录一下自己的学习 学习教程:黑马mybatis教程全套视频教程,2天Mybatis框架从入门到精通 文档: https://mybatis.net.cn/index.html MyBatis 快速入门&#xf…

纠删码ReedSolomon

随着大数据技术的发展,HDFS作为Hadoop的核心模块之一得到了广泛的应用。为了数据的可靠性,HDFS通过多副本机制来保证。在HDFS中的每一份数据都有两个副本,1TB的原始数据需要占用3TB的磁盘空间,存储利用率只有1/3。而且系统中大部分…