RL中的on-policy与off-policy的一点理解

笔者在刚开始学习RL的时候,对on-policy和off-policy的理解也一直不是很清晰。

我用q-leaening和Sarsa作对比来介绍这两者的区别:

Q-learning伪代码:


Sarsa伪代码

可以看出这两个的不同:

1: q-learning在选择动作 A 的时候用的是\varepsilon贪婪策略,这是算法对于环境做交互用的策略。但是在更新Q值的时候,并没有用到\varepsilon贪婪策略,而是一个新的策略,我把他称之为b策略。b策略是在状态 S' 下,选择Q最大的那个值,这个值对应的动作A* 可能相等于\varepsilon贪婪策略选择的动作A,也有可能不等。这是用两个策略完成agent对环境的交互和Q的更新,称之为  off-policy策略。

2: Sarsa在选择动作A 的时候用的策略也是\varepsilon贪婪策略,但是在看更新Q的时候,所用的是基于\varepsilon贪婪策略 选出的  A‘ 来更新Q值,用同一个策略完成agent对环境的交互和对Q值的更新,称之为on-policy策略。

放几个英文解释:

猜你喜欢

转载自blog.csdn.net/qq_48191249/article/details/130325036