强化学习中同策略和异策略的定义和区分

on-policy和off-policy定义

On-policy定义:在on-policy方法中,智能体从当前策略中学习,并根据从该策略中采样的数据更新策略。换句话说,它学习并改进的是“正在使用中”的策略。其行动策略和目标策略是同一个策略

Off-policy定义:在off-policy方法中,智能体可以从与当前执行策略不同的策略中学习。这意味着智能体可以利用由其他策略产生的数据来改进其策略。行动策略和目标策略不是同一个策略

on-policy和off-policy各自优劣

(1)on-policy

1)优点:

- 策略一致性:由于学习过程中使用的是和执行相同的策略,因此策略的评估更加准确。

- 简单直接:策略的更新直接依赖于经验,算法结构相对简单。

2)缺点:

- 效率较低:只能使用当前策略产生的数据,无法利用之前旧策略或其他策略的数据,导致学习速度可能较慢。

- 探索问题:需要一个好的探索机制以确保策略评估的全面性和准确性。

2)off-policy

1)优点:

- 数据利用效率高:可以利用由其他策略生成的旧数据,甚至是随机数据,这提高了数据的利用效率和学习速度。

- 灵活性高:由于不依赖于一定要从当前策略采样,因此可以在探索和利用之间更灵活地权衡。

2)缺点:

- 策略偏差问题:使用非目标策略产生的数据进行学习可能导致估计出现偏差,算法实现时需要精心设计以减少这种偏差。

- 算法复杂性:通常需要额外的校正机制(如重要性采样),使得算法实现更加复杂。

on-policy和off-policy典型算法

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

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

特别提示

在强化学习中,on-policy 算法理论上只能使用当前正在优化的策略生成的数据进行训练。这是因为在更新策略网络的参数时,策略会发生变化,因此在每次生成新数据时,都需要使用更新后的策略。然而,这种方法在实际应用中可能会显得低效,因为每生成一条数据后就需要立即更新策略,可能会导致训练过程非常缓慢。

为了提高效率,实践中常常采用每收集到 N条数据后才更新一次策略网络的方式。这种方法虽然看似使用了“过时”的数据,但实际上在数学上和实际效果上,它与逐条数据更新策略的效果差异并不大。使用固定批量的数据进行更新,仍然能够保证策略优化的有效性。

因此,即使在实践中使用固定批量的数据更新策略看起来更像是 off-policy 方法,这种方式仍然被视为 on-policy 方法。因为在 on-policy 设定中,更新过程依赖于当前策略生成的数据,而实践中的批量更新技术能够有效地兼顾效率与策略更新的有效性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值