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

强化学习鱼书(10)——更多深度强化学习的算法

在这里插入图片描述
:是否使用环境模型(状态迁移函数P(s’|s,a)和奖
励函数r(s,a,V))。不使用环境模型的方法叫作无模型(model-free)的方法,使用环境模型的方法叫作有模型(model-based)的方法。
模型的方法可以分为两种,一种是提供了环境模型的方法,另一种是训练环境模型的方法。

  • 如果提供了环境模型,那么智能代理可以通过规划(planning)来解决问题,而不采取任何行动。
  • 如果没有提供环境模型,则可以考虑根据从环境中获得的经验来训练环境模型(行动-奖励-策略/价值优化)。训练的环境模型除了可以用于规划之外,还可以用于评估和改进策略。

策略梯度法的改进算法

A3C

A3C是 Asynchronous Advantage Actor-Critic 的缩写。
在这里插入图片描述
本地网络在各自的环境中独立进行训练。然后它们会将作为训练结果的梯度发送到全局网络。全局网络使用来自多个本地网络的梯度异步更新权重参数。这样,在更新全局网络的权重参数的同时,可以定期同步全局网络和本地网络的权重参数。
多个智能代理的并行运行,可以不依赖于经验回放而减少数据的相关性。
另外,A3C的Actor-Critic将共享神经网络的权重。(需要多个环境并行同时运行)

A2C是同步更新参数的方法,它不采取异步更新参数的方式。(多了采样过程)
在这里插入图片描述

更详细的说明
https://zhuanlan.zhihu.com/p/65068744

DDPG

DDPG 是 Deep Deterministic Policy Gradient (深度确定性策略梯度法)的缩写。从名字就能想到它的含义,它是针对连续行动空间问题而设计的算法。神经网络可以将行动作为连续值直接输出

回顾DQN:

  1. 经验回放:取出一个batch的数据
  2. 目标网络:一个表示Q函数的原始网络(这个网络叫作qnet),再准备了一个具有相同结构的网络计算TD目标的值(这个网络叫作qnet_target),定期与qnet的权重同步,在其余的时间里保持权重参数固定。

DDPG:
在这里插入图片描述在这里插入图片描述
(1)中输出的行动a是连续值,该值可直接作为Q的输入。这样就能通过两个神经网络进行反向传播了。通过反向传播可以求梯度▽q(这里的是Q函数的输出)。这样就能使用梯度▽q更新参数了。
(2)是在DQN中进行的Q学习

更详细的说明
https://zhuanlan.zhihu.com/p/111257402

TRPO 和 PPO

https://zhuanlan.zhihu.com/p/111049450

DQN的改进算法

分类 DQN

DQN在Q学习中要训练的是由Q函数这个期望值所表示
的值。进一步扩展这个思路,不要训练Q函数这个期望值,而要训练“分布”。这个思路叫:分布强化学习(distributional reinforcement learning)。分布强化学习将训练收益Zpai(s,a)的概率分布。

Noisy Network

DQN根据s-greedy算法选择行动。也就是说,DQN会以e的概率随机选择行动,以1-e的概率选择贪婪的行动(函数值最大的行动)。在实践中,我们常常要进行“调度设置” (schedule setting),即随着回合的发展,逐渐降低e的值

代替e:Noisy Network:
在输出侧的全连接层中使用有噪声的全连接层。在有噪声的全连接层中,权重会被建模为正态分布的均值和方差,并在每次前向传播时从正态分布对权重进行采样。

Rainbow

Ape-X/R2D2/NGU

在多个运行环境中进行训练的做法也被称为“分布式强化学习”

http://www.xdnf.cn/news/790849.html

相关文章:

  • Spring AI 项目实战(一):Spring AI 核心模块入门
  • 【Linux】Linux 进程基础
  • 华为港城 RAG 推理训练新突破:过程监督助力 5k 样本性能超越 90k 模型
  • 神经符号集成-三篇综述
  • COMSOL多边形骨料堆积混凝土水化热传热模拟
  • shell脚本总结13:head -c 和cut -c的区别
  • C++ 中的依赖注入(Dependency Injection)
  • Lua和JS的继承原理
  • 【PhysUnits】15.12 去Typenum库的SI 单位制词头实现(prefix.rs)
  • pycharm如何查看git历史版本变更信息
  • AI地面垃圾检测算法智能分析网关V4打造城市/公园/校园等场景环保卫生监管解决方案
  • MySQL 日志数据同步的详细教程
  • Message=“HalconDotNet.HHandleBase”的类型初始值设定项引发异常
  • JS手写代码篇---手写call函数
  • ADC接口电路设计详解
  • 动态规划-647.回文子串-力扣(LeetCode)
  • Double/Debiased Machine Learning
  • 同余的概念和基本性质
  • cursor对话
  • DPDK与网络协议栈
  • 从 Docker 到 Containerd:Kubernetes 容器运行时迁移实战指南
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月3日第97弹
  • html转md的Python程序
  • 图解深度学习 - 激活函数和损失函数
  • 数据安全中心是什么?如何做好数据安全管理?
  • [内核开发手册] ARM汇编指令速查表
  • 【Linux】linux基础指令
  • 用python制作一个消消乐游戏(限时关卡挑战版)
  • 【Linux】进程虚拟地址空间详解
  • 太阳敏感器:卫星姿态控制的“指南针