当前位置: 首页 > news >正文

强化学习DDPG算法

DDPG(Deep Deterministic Policy Gradient)算法详解


在这里插入图片描述

1. 背景与动机

  • 问题场景:DDPG 是为解决连续动作空间的强化学习问题而设计的(如机器人控制、自动驾驶),而传统DQN仅适用于离散动作空间。
  • DQN的局限性
    • DQN通过Q-learning框架选择离散动作(如“左/右”),但无法处理连续动作(如“方向盘转动角度”)。
    • 高维连续动作空间中,DQN需要遍历所有可能的动作计算Q值,计算复杂度爆炸。
  • DPG的启发
    • Deterministic Policy Gradient(DPG)是一种直接优化确定性策略的方法(输出确定动作,而非动作的概率分布),适用于连续控制。
    • DDPG将DPG与深度神经网络结合,并引入DQN的经验回放目标网络技术,提升稳定性和样本效率。

2. DDPG核心原理

DDPG属于Actor-Critic架构,结合了策略梯度(Policy Gradient)和值函数近似(Q-learning)。

2.1 网络结构

  • Actor网络(策略网络)
    • 输入:状态(State)
    • 输出:确定性动作(Action)
    • 目标:直接输出最优动作,最大化Q值。
  • Critic网络(价值网络)
    • 输入:状态(State) + 动作(Action)
    • 输出:Q值(评估当前状态动作对的长期收益)
    • 目标:准确估计Q值,指导Actor更新。

2.2 核心思想

  • 确定性策略梯度
  • 策略函数为确定性函数: a = μ ( s ∣ θ μ ) a = \mu(s|\theta^\mu) a=μ(sθμ)
  • 策略梯度公式:
    ∇ θ μ J ≈ E s ∼ ρ β [ ∇ a Q ( s , a ∣ θ Q ) ∣ a = μ ( s ∣ θ μ ) ∇ θ μ μ ( s ∣ θ μ ) ] \nabla_{\theta^\mu} J \approx \mathbb{E}_{s \sim \rho^\beta} \left[ \nabla_a Q(s,a|\theta^Q) \big|_{a=\mu(s|\theta^\mu)} \nabla_{\theta^\mu} \mu(s|\theta^\mu) \right] θμJEsρβ[aQ(s,aθQ) a=μ(sθμ)θμμ(sθμ)]
  • 通过链式法则,Critic的Q值梯度指导Actor更新策略。
  • 目标网络与软更新
    • 使用独立的目标Actor网络(参数 θ μ ′ \theta^{\mu'} θμ)和目标Critic网络(参数 θ Q ′ \theta^{Q'} θQ),缓解训练不稳定性。
  • 软更新公式:
    θ t a r g e t ← τ θ + ( 1 − τ ) θ t a r g e t ( τ ≪ 1 , 如 0.001 ) \theta_{target} \leftarrow \tau \theta + (1-\tau)\theta_{target} \quad (\tau \ll 1, \text{如} 0.001) θtargetτθ+(1τ)θtarget(τ1,0.001)

2.3 算法流程

  1. 初始化

    • Actor当前网络 μ ( s ∣ θ μ ) \mu(s|\theta^\mu) μ(sθμ) 和 Critic当前网络 Q ( s , a ∣ θ Q ) Q(s,a|\theta^Q) Q(s,aθQ)
    • 目标网络 μ ′ ( s ∣ θ μ ′ ) \mu'(s|\theta^{\mu'}) μ(sθμ) Q ′ ( s , a ∣ θ Q ′ ) Q'(s,a|\theta^{Q'}) Q(s,aθQ)(初始参数相同)
    • 经验回放池(Replay Buffer)
  2. 交互与采样

    • Actor根据当前策略选择动作 a t = μ ( s t ∣ θ μ ) + N t a_t = \mu(s_t|\theta^\mu) + \mathcal{N}_t at=
http://www.dtcms.com/a/110054.html

相关文章:

  • 【C++进阶九】继承和虚继承
  • 【新书上市】《STM32嵌入式系统开发—基于STM32CubeMX和HAL库》,高校教学推荐,STM32入门必读书籍!
  • TVM流程及调优
  • skynet.start 的作用详细解析
  • Jira 停售一周年:国产研发管理平台能否扛起替代大旗?
  • 【补题】Xi‘an Invitational 2023 E. Merge the Rectangles
  • 【PHP】- 字符串,数组,字典常用操作
  • Cribl 脱敏mask
  • (三)机器学习---线性回归及其Python实现
  • 聚焦建筑业碳中和,楼宇自控系统应如何发挥建筑节能价值
  • 大语言模型中的嵌入模型
  • (C语言)单链表(2.0)数据结构(指针,单链表教程)
  • 栈和队列的概念
  • dfs递归回溯的两种体型
  • 水下声呐探测仪,应急救援中的高效水下定位技术|深圳鼎跃
  • Nuxt3项目的SEO优化(robots.txt,页面tdk,伪静态.html,sitemap.xml动态生成等)
  • 开源虚拟化管理平台Proxmox VE部署超融合
  • RHCSA LINUX系统文件管理
  • 市场交易策略优化与波动管理
  • 6.模型训练4-毕设篇
  • 【Prometheus】kube-state-metrics 的详细说明
  • 【学习笔记】计算机网络(七)—— 网络安全
  • Metasploit 反弹Shell
  • eplan许可证常见问题及解决方法
  • 数据结构(JAVA)单向,双向链表
  • 解析CSRF攻击
  • Transformer架构详解:从Encoder到Decoder的完整旅程
  • VSCode历史版本的下载安装
  • 破解AI编程瓶颈:上下文管理助力高效开发,以Cline为例
  • kornia,一个实用的 Python 库!