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

深入理解强化学习的target network

文章目录

      • **问题所在:追逐一个移动的目标 (The Moving Target Problem)**
      • **解决方案:引入 Target Network**
      • **Target Network 如何更新?**
      • **整合到 DQN 算法流程中**
      • **总结**
      • 案例分析:cartpole

Target Network 是深度强化学习(尤其是基于价值学习的方法,如DQN)中一个里程碑式的技巧。不夸张地说,没有它,DQN 算法就很难稳定地训练起来。

要理解它,我们得先从它要解决的问题入手:训练的不稳定性

问题所在:追逐一个移动的目标 (The Moving Target Problem)

想象一下,在没有 Target Network 的普通 Q-Learning 中,我们如何更新我们的神经网络(我们称之为 Q-Network)。我们的目标是让网络的预测值 Q(S, A) 尽可能接近一个“目标值”。这个目标值通常由贝尔曼方程给出,我们称之为 TD Target (时序差分目标)

对于一个状态转移 (S, A, R, S’),TD Target 的计算公式是:
在这里插入图片描述

其中:

  • R 是我们获得的奖励。
  • γ (gamma) 是折扣因子。
  • m a x a ′ Q ( S ′ , a ′ ) max_{a'} Q(S', a') maxaQ(S,a) 是我们的网络对下一个状态 S’ 能获得的最大 Q 值的估计

然后,我们用这个 TD Target 来计算损失(通常是均方误差MSE),并更新网络权重 θ:

在这里插入图片描述

问题来了:请注意,TD target和当前预测都使用了同一个网络权重 θ。这意味着,在每一步训练中:

  1. 我们计算一个目标值,这个目标值依赖于当前的网络 Q ( S ′ , a ′ ; θ ) Q(S', a'; θ) Q(S,a;θ)
  2. 我们又用这个目标值去更新同一个网络 Q ( S , A ; θ ) Q(S, A; \theta) Q(S,A;θ)

这就像一个“自己追自己”的游戏。你每朝着目标迈出一步,目标本身也因为你的移动而改变了位置。这会导致非常严重的问题:

  • 剧烈震荡:策略可能在几个好的选择之间来回摇摆,无法稳定收敛。
  • 发散:在某些情况下,Q 值可能会被错误地不断放大,最终导致梯度爆炸,训练彻底失败。

一个绝佳的比喻是:

想象你在用相机给一个朋友拍照。你(Q-Network)正在努力调整焦距(更新权重),让朋友(TD Target)的影像变得清晰。但问题是,你的朋友非常调皮,每次你一动相机,他也跟着动一下。在这种情况下,你将很难对上焦。


解决方案:引入 Target Network

为了解决这个“移动目标”问题,DeepMind 的研究者们提出了一个非常聪明的技巧:使用两个网络

  1. 在线网络 (Online Network) Q ( S , A ; θ ) Q(S, A; \theta) Q(S,A;θ)
    • 这是我们一直在谈论的主要网络。
    • 它的权重 θ 在每一步训练中都会被更新
    • 它负责根据当前状态选择动作(执行策略),也是我们最终要得到的模型。
    • 它就像是那个正在努力调焦的摄影师
  2. 目标网络 (Target Network) Q ( S ′ , a ′ ; θ − ) Q(S', a'; \theta^-) Q(S,a;θ)
    • 这是在线网络的一个克隆体,拥有完全相同的结构。
    • 它的权重 θ − θ^- θ周期性地、延迟地从在线网络那里复制过来的,在两次复制之间保持固定
    • 只用于一件事:计算 TD Target 中的 m a x a ′ Q ( S ′ , a ′ ) max_{a'} Q(S', a') maxaQ(S,a) 部分。
    • 它就像是那个被摄影师要求保持这个姿势别动的朋友。

通过这个设计,我们的损失函数被修改为:
在这里插入图片描述

现在,TD Target 由一个权重 θ − θ^- θ 被“冻结”住的网络来计算。这个目标在一段时间内是稳定不变的。在线网络 Q ( S , A ; θ ) Q(S, A; \theta) Q(S,A;θ) 有了一个固定的目标去追赶,训练过程因此变得稳定得多。

Target Network 如何更新?

Target Network 的权重 θ − θ^- θ 不是通过梯度下降来学习的,它只是定期地从在线网络那里“同步”权重。同步主要有两种方式:

  1. 硬更新 (Hard Update):这是 DQN 论文中的原始方法。每隔 C 个训练步骤(例如 C=10000),直接把在线网络的权重完整地复制给目标网络。
http://www.dtcms.com/a/344790.html

相关文章:

  • 3.5MM防水耳机插座
  • 为什么访问HTTPS站点时,会发生SSL证书错误
  • JAVA基础代码示例
  • SpringBoot -- 集成Spring Security (二)
  • LightGBM时序预测详解:从原理到 PSO 参数优化
  • 如何理解面向过程和面向对象,举例说明一下?
  • [docker/大数据]Spark快速入门
  • 【实时Linux实战系列】实时系统中的预测性维护策略
  • 能源行业合同管理难点有哪些?企业该如何应对?
  • FIFO核心原理与机制
  • QGIS 绿色版修正
  • 基于vtkImageViewer2的MPR(二):改进
  • JavaScript 操作 DOM
  • 图论——Floyd算法
  • 四十一、【高级特性篇】API 文档驱动:OpenAPI/Swagger 一键导入测试用例
  • 上市公司能源消耗数据库
  • 【python】os.makedirs和with open
  • 密码管理中硬编码密码
  • (论文速读)并行自回归视觉生成
  • 硬件驱动---linux内核驱动 启动
  • 【LeetCode】21. 合并两个有序链表
  • 开发二手车小程序时,如何确保信息的真实性和可靠性?
  • Prometheus+Grafana监控redis
  • 【连接器专题】连接器接触界面的理解
  • Elasticsearch Rails 集成(elasticsearch-model / ActiveRecord)
  • 高速互联技术——NVLink
  • SpringBoot3集成Oauth2.1——8自定义认证模式(密码模式)
  • 第九届86358贾家庄短片周在山西汾阳贾家庄举办
  • 将博客网站完整迁移至本地虚拟机
  • 爬虫基础学习-授权认证,cookie认证,异常处理