概述
1 on-policy与off-policy
之前一直搞不清楚on-policy和off-policy是什么区别,在查阅了各种公众号和博客、论坛之后,决定总结一下on-policy和off-policy的区别。
首先,如下图所示,on-policy和off-policy都是on-line强化学习策略更新中的一种。on-line和off-line最明显的区别就是,在一次policy.learn()之后,即在一次参数更新之后,on-line方法一定要去再次与环境交互获得新数据,而off-line则选择继续吃老本训练。
其次,关于on-policy和off-policy的区别,sutton的书中说“on-policy就是agent的目标策略与行为策略一致,反之就是off-policy”,这一句话乍一听很好理解,但是具体到算法上又会让人很难区分。
具体到代码层面的理解:
on-policy: 选择动作的策略与即将更新的策略网络是一致的,注意需要是完全一致的。换句话理解,更新策略自己的网络,得靠策略自己生成的数据去更新,不能靠其他时刻的策略。
off-policy: 选择动作的策略与即将更新的策略网络是不一致的,注意这个不一致可能有很多方面,比如在原始策略上加一个
ϵ
epsilon
ϵ-greedy,那就是两个策略了;还比如用好几个learn()之前的策略采集的数据,更新现在的策略,也是off-policy。
2 确定性策略和随机性策略
确定性策略为一个将状态空间映射到动作空间的函数。它本身没有随机性质,因此通常会结合 ϵ epsilon ϵ-greey或往动作值中加入高斯噪声的方法来增加策略的随机性。一般都存在于基于值的算法中。
随机性策略是条件为 π ( a ∣ s ) pi(a|s) π(a∣s)情况下,动作a的条件概率分布。它本身带有随机性,获取动作时只需对概率分布进行采样即可。一般存在于基于策略的算法中。
最后
以上就是清新自行车为你收集整理的on-policy与off-policy;确定性策略与随机策略1 on-policy与off-policy2 确定性策略和随机性策略的全部内容,希望文章能够帮你解决on-policy与off-policy;确定性策略与随机策略1 on-policy与off-policy2 确定性策略和随机性策略所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复