PPO理解

PPO原文链接

由于TRPO实现起来需要使用二阶近似和共轭梯度,比较复杂,Deepmind又在TRPO的基础上提出了实现较为简单的PPO算法。

TRPO

TRPO的优化目标为
1
用惩罚项代替约束项后
2

Adaptive KL Penalty Coefficient

PPO1为了避免TRPO中超参数 β \beta β的选择,采用自适应确定参数的方法
3
β \beta β由以下条件确定
4
5

Clipped Surrogate Objective

为了限制更新步长,原文还提出了PPO2,这是默认的PPO算法,因为PPO2的实验效果比PPO1更好。做法是在优化目标中加入一个clip函数
5
这里 r ( t ) r(t) r(t)代表新旧策略动作的概率比,这样对策略更新速度进行了裁剪,防止参数更新过快

### PPO 和 GAE 的概念 #### 近端策略优化 (PPO) 近端策略优化是一种用于解决连续动作空间下的强化学习问题的方法。该方法旨在通过限制每次更新时新旧策略之间的差异来提高训练稳定性[^1]。 核心思想是在保持当前策略性能的同时逐步改进它,而不是一次性大幅度调整参数。具体来说,PPO 使用了一个称为“剪切比例”的机制,在损失函数中加入了一项惩罚因子,当新的概率分布相对于旧的概率分布变化过大时会触发此惩罚。 公式表示如下: \[ L^{CLIP}(\theta) = \hat{\mathbb{E}}_t[\min(r_t(\theta)\hat{A}_t, clip(r_t(\theta), 1-\epsilon, 1+\epsilon)\hat{A}_t)] \] 其中 \( r_t(\theta)=\frac{\pi_\theta(a|s)}{\pi_{\theta_{old}}(a|s)} \),即新旧策略下采取相同行动的概率之比;\(clip\) 函数用来控制比率的变化范围不超过设定阈值 \(\epsilon\) ,从而防止过度偏离原有策略。 ```python def ppo_loss(new_policy_prob, old_policy_prob, advantage, epsilon=0.2): ratio = new_policy_prob / old_policy_prob clipped_ratio = torch.clamp(ratio, 1 - epsilon, 1 + epsilon) surrogate_objective = torch.min(ratio * advantage, clipped_ratio * advantage).mean() return -surrogate_objective ``` #### 广义优势估计 (GAE) 广义优势估计提供了一种计算状态价值与实际回报之间差别的有效方式,有助于减少方差并加速收敛过程。其基本思路是利用历史数据对未来奖励进行预测,并基于这些预测评估当前决策的好坏程度[^2]。 GAE 结合了蒙特卡洛采样和TD-learning的优点,既能够获得较为准确的价值估计又不会因为过深的时间跨度而导致高估偏差。具体的计算公式为: \[ A(s,a)=\sum_{l=0}^{\infty}\left(\gamma \lambda\right)^{l}\delta_{t+l} \] 这里 \(\delta_{t}=r(s)+\gamma V(s')-V(s)\) 表示即时奖励加上下一时刻的状态价值减去现有时态的价值,而 \(\gamma\) 是折扣系数,决定了未来收益的重要性权重;\(\lambda\) 则是一个介于0到1之间的超参,调节不同长度轨迹的影响力度。 ```python def generalized_advantage_estimation(rewards, values, gamma=0.99, lamda=0.95): advantages = [] gae = 0 for i in reversed(range(len(rewards))): delta = rewards[i] + gamma * values[i+1] - values[i] gae = delta + gamma * lamda * gae advantages.insert(0, gae) return np.array(advantages) ``` ### 应用场景 这两种技术广泛应用于各种复杂的环境模拟以及真实世界的任务规划当中。例如机器人导航、游戏AI开发等领域都可以看到它们的身影。特别是在处理具有挑战性的序列决策问题方面表现出色,比如自动驾驶汽车路径选择或者金融市场的投资组合管理等复杂多变的任务环境中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值