强化学习中的on-policy和off-policy解释

本文介绍了强化学习中的on-policy和off-policy方法。on-policy方法评估和改进用于决策的策略,而off-policy则针对不同策略进行评估和优化。DQN、DDPG和SAC等算法属于off-policy,它们利用经验回放数据更新策略。AC、REINFORCE和A3C是典型的on-policy算法,依赖当前策略获取轨迹数据进行更新。PPO算法是一个特殊例子,其更新方式可以视为介于on-policy和off-policy之间。
摘要由CSDN通过智能技术生成

首先引经据典一番,在sutton的introduction to reinforcement中,82页(第二版,November 5, 2017)中写道:

On-policy methods attempt to evaluate or improve the policy that is used to make decisions, whereas off-policy methods evaluate or improve a policy different from that used to generate the data.
On-policy 方法试图评估和更新做决定的策略,而off-policy方法所评估和更新的策略是和生成数据的策略不相同的。

简而言之,on-policy(中文翻作同策)就是要更新的策略和与环境交互产生数据的策略是同一个策略,off-policy(中文翻作异策)就是要更新的策略和与环境交互产生数据的策略是不同的策略。

在此并不打算举强化的例子,而是用深度强化学习的例子来说明。

典型的异策算法有:DQN族、DDPG族、SAC等,凡是包含经验回放的,可以说都是异策算法。因为在更新策略的时候,会从经验回放中取出数据来对现在的策略进行更新,而这些数据是先前的策略生成的,也就是说,生成数据的策略和当前要更新的策略是不同的策略,即off-policy。

典型的同策算法有:原始AC、REINFORCE、A3C等,这些算法在更新时都需要用当前策略去获得一个trajectory,然后用这个trajectory数据来更新当前策略,即on-policy。

特别提名一个特殊的异策算法:PPO,有很多人认为PPO算法是同策算法(许多论文中也这么定义),但事实上PPO是用同策算法的套路,行异策更新的实际。看以下PPO的伪代码:
ppo伪代码
这其中包含两个循环,外循环的策略更新收敛循环,重点在于内循环,内循环是使用策略 π o l d \pi_{old} πold

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值