强化学习之图解PPO算法和TD3算法

0. 引言

关于on-policy和off-policy的定义,网上有很多不同的讨论,我认为,on-policy和off-policy的差异在于训练目标策略 所用到的数据 ( s , a , r , s ′ ) (s,a,r,s')

### TD3算法网络结构图及其解释 TD3(Twin Delayed Deep Deterministic Policy Gradient)是一种改进版的深度强化学习算法,在继承DDPG的基础上进行了多项优化。以下是关于其网络结构的相关说明: #### 1. **双批评家网络的设计** TD3引入了两个独立的批评家网络来估计Q值,从而减少高估偏差的影响。这种设计通过取两个Q值预测中的较小值作为最终的目标值,有效降低了过高的价值评估风险[^2]。 #### 2. **延迟策略更新机制** 为了进一步提高稳定性并降低方差,TD3采用了延迟策略更新的方法。具体来说,行动者网络不会在每次迭代中都进行更新,而是每隔一定次数才调整一次参数。这种方法有助于缓解因频繁更新而导致的学习过程波动问题。 #### 3. **目标平滑正则化技术** TD3还加入了目标平滑正则化的概念,在生成目标动作时向其中加入噪声项以增加探索能力。这一步骤可以防止过度拟合特定的动作空间区域,并促进更广泛的环境交互。 下面是基于上述描述的一个典型TD3架构示意代码实现片段: ```python import torch.nn as nn class CriticNetwork(nn.Module): def __init__(self, state_dim, action_dim): super(CriticNetwork, self).__init__() # 定义第一个批评家网络 self.critic_1 = nn.Sequential( nn.Linear(state_dim + action_dim, 256), nn.ReLU(), nn.Linear(256, 256), nn.ReLU(), nn.Linear(256, 1) ) # 定义第二个批评家网络 self.critic_2 = nn.Sequential( nn.Linear(state_dim + action_dim, 256), nn.ReLU(), nn.Linear(256, 256), nn.ReLU(), nn.Linear(256, 1) ) def forward(self, state, action): xu = torch.cat([state, action], dim=1) q_value_1 = self.critic_1(xu) q_value_2 = self.critic_2(xu) return q_value_1, q_value_2 class ActorNetwork(nn.Module): def __init__(self, state_dim, action_dim, max_action): super(ActorNetwork, self).__init__() self.actor = nn.Sequential( nn.Linear(state_dim, 256), nn.ReLU(), nn.Linear(256, 256), nn.ReLU(), nn.Linear(256, action_dim), nn.Tanh() ) self.max_action = max_action def forward(self, state): return self.max_action * self.actor(state) ``` 以上代码展示了如何构建TD3所需的行动者双重批评家神经网络模型。 #### 图形化展示建议 虽然无法直接提供图片形式的具体图表,但可以根据前述理论绘制如下逻辑框架: - 输入层接收状态`S`与可能的行为`A`; - 经过多层感知机处理后分别输出两组不同的Q值估计结果; - 行动者部分负责依据当前观测选择最优操作方案。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值