0 引言
从封面的伪代码可以看到Q-leading算法的实现细节。要理解Q-learning算法,首先要理解什么是同策略,什么是异策略?
我对同异策略经过了两个阶段:
- 同策略就是评估和提升的是同一个策略,异策略就是评估和提升的不是同一个策略;
- 同策略就是产生学习数据的策略和提升的策略是同一个策略,异策略就是产生数据和提升的策略是同一个策略。
可以通过比较sarsa(同策略)和q-learning(异策略)算法来总结两者的不同,下图是sarsa算法的伪代码:
可以看到,sarsa算法需要同样的策略产生$A^{\prime}$,也就是“实践派”,利用亲自尝试的结果来作为target,必须是在线学习;而q-learning算法使用的是估计最好的动作,是“想象派“,可以离线学习,也就是可以把走过的经验或者别人的经验拿来,自己学习。
1 实现代码
q-learning的代码实现$^{[2]}$:
参考文献
[1] Sutton, Richard S., and Andrew G. Barto. Reinforcement learning: An introduction.
[2] Morvan 强化学习教程 Q-learning