强化学习笔记:双延时确定策略梯度 (TD3)

写在前面的话:TD3只是改进训练用的算法,并不改变神经网络的结构。

1 DPG 的高估问题

由于DPG强化学习笔记:连续控制 & 确定策略梯度DPG_UQI-LIUWJ的博客-CSDN博客中也存在自举,所以也会面临高估问题。

2 目标网络(DDPG)

为了解决自举造成的高估,我们使用目标网络来计算价值网络的TD目标。

训练中需要的两个目标网络:

他们与价值网络、策略网络的结构完全相同,只是参数不同。

TD目标是用目标网络计算得到的:

 整体流程图如下:

  •  用TD目标\hat{y_j}作为q_j=q(s_j,a_j;w) 的目标,更新价值网络w
  • 然后和DPG一样的方式,更新策略网络
  • 最后对两个目标网络进行软更新

——>这种方法可以在一定程度上缓解高估,但是实验表明高估仍然很严重。

2.1 DDPG

Deep Deterministic Policy Gradient

DPG的基础上+target network

强化学习笔记 Ornstein-Uhlenbeck 噪声和DDPG_UQI-LIUWJ的博客-CSDN博客

3 截断双Q学习clipped double Q-learning

        使用一对策略网络和目标网络的话,虽然能够在一定程度上解决高估问题,但这样也会带来高方差。        

这种方法使用两个价值网络和一个策略网络

这三个神经网络分别对应了一个目标网络 

 流程如下:

  •  用目标策略网络计算动作
  •  两个目标价值网络的结果:
  • 我们取目标价值网络中较小的作为TD目标
  • 然后用这个 TD目标来更新价值网络1和价值网络2
  • 价值网络1的q(s,a;w)继续用来更新策略网络

个人觉得,这样设置的作用是用 不参与策略网络更新的价值网络(价值网络2)来约束策略网络导致的高估:

        策略网络希望价值网络越大越好(可以近似看成取maxDQN笔记:高估问题 & target network & Double DQN_UQI-LIUWJ的博客-CSDN博客中我们知道,最大化会导致高估);但是我们用另一个价值网络来约束价值网络1,不让他特别地大

3.1 往动作中加入噪声

我们可以把目标策略网络计算动作的操作从

改造成

公式中的\xi是一个随机变量,表示噪声,它的每一个元素独立随机从截断正态分布中采样

截断正态分布记作CN(0,\sigma ^2,-c,c),表示均值为0,标准差为σ。但是在[-c,c]之外的变量概率为0

使用截断正态分布而不是正态分布,是为了防止噪声过大 

引入了噪声,是为了预估更准确,网络鲁棒性更强些。

3.2 减少更新策略网络和目标网络的频率

  • Actor-Critic 用价值网络来指导策略网络的更新。
  • 如果价值网络 q 本身不可靠,那么用价值网络 q 给动作打的分数是不准确的,无助于改进策略网络 µ
  • 在价值网络 q 还很差的时候就急于更新 µ,非但不能改进 µ,反而会由于 µ 的变化导致 q 的训练不稳定。
  • 实验表明,应当让策略网络 µ 以及三个目标网络的更新慢于价值网络 q 。传统的 Actor-Critic 的每一轮训练都对策略网络、价值网络、以及目标网络做一次更新。
  • 更好的 方法是每一轮更新一次价值网络,但是每隔 k 轮更新一次策略网络和三个目标网络。
    • k 是超参数,需要调。

4 TD3 

        使用截断双Q【缓解价值网络的高估】+噪声【平滑作用】+降低策略网络和目标网络更新频率的算法被称为双延时确定策略梯度 (Twin Delayed Deep Deterministic Policy Gradient),缩写是 TD3

        TD3 与 DPG 都属于异策略 (Offff-policy),可以用任意的行为策略收集经验,事后做经验回放训练策略网络和价值网络。

        收集经验的方式与原始的训练算法相同,用 at = µ(st; θ) + ϵ 与环境交互,把观测到的四元组 (s_t,a_t,r_t,s_{t+1})存入经验回放数组。

 4.1 训练流程

  • 1,每一次从数组中随机抽取一个四元组(s_t,a_t,r_t,s_{t+1})
  • 2,
  • 3
  • 4
  • 5
  •  6
  • 7
  • 每隔 k 轮更新一次策略网络和三个目标网络:
    •  

        

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
TD3(Twin Delayed Deep Deterministic Policy Gradient)是一种用于深度强化学习策略优化算法,采用了重延迟策略优化方法。TD3算法结合了DQN和DDPG算法的优势,能够处理连续动作空间的强化学习问题。 在TD3算法,使用Simulink建立一个强化学习环境,将其作为TD3算法的训练平台。Simulink是一个基于模型的设计和仿真环境,适用于建模和模拟各种系统。通过使用Simulink,可以构建一个仿真环境来训练和优化强化学习算法。 在Simulink,首先需要定义环境的状态空间和动作空间。状态空间是代表系统当前状态的向量,动作空间是代表可以执行的动作的向量。然后,根据TD3算法的要求,可以使用Simulink搭建一个Actor神经网络和一个Critic神经网络。 Actor神经网络负责根据当前状态生成动作,Critic神经网络则评估每个状态-动作对的价值。根据Critic神经网络的反馈,可以使用TD3算法的策略优化方法对Actor神经网络进行训练,使得生成的动作更加准确和优化。 在Simulink,可以通过连接神经网络模块、添加损失函数模块和优化器模块等,构建出一个完整的TD3强化学习模型。然后,可以使用Simulink提供的仿真功能,进行模型的训练和优化。通过不断的迭代训练,TD3算法可以在Simulink得到逐渐优化的强化学习模型。 总之,TD3 Simulink强化学习是通过在Simulink建立一个强化学习环境,并使用TD3算法进行训练和优化的方法。通过结合Simulink的建模和模拟功能,可以更有效地构建和优化强化学习模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值