时间差分方法(TD方法)
在蒙特卡洛方法中,状态的价值是通过以下公式求出:
其中
这种方法有一个缺点,就是在一次试验中需要等到终止状态出现才会结束,所以在这里借鉴动态规划的”自举“思想将其改写,使试验还未结束时就能估计出当前的值函数。
根据前面的知识,我们知道
以上就是时间差分方法的值函数更新公式,其中
时间差分方法分为同策略Sarsa方法和异策略Q-learning方法。
异策略Q-learning方法的伪代码如下[1]:
![760d5763bd33492069ca396e8e1c7120.png](https://i-blog.csdnimg.cn/blog_migrate/00e27be6d29ec13a83b4ff2e9747613d.jpeg)
首先需要随机选取一个状态
直到值函数收敛,然后根据策略:
![a500624f2c40416aa3494f9284990622.png](https://i-blog.csdnimg.cn/blog_migrate/42078fa02f99a64b0c7d670a6449d8b3.jpeg)
中的例子,由matlab实现代码如下:
1.异策略-Q-learning
function
![7408aa2be7266ab21bb71f8c78cb0178.png](https://i-blog.csdnimg.cn/blog_migrate/9eabe0d0424c3be3b651925afb2f2958.jpeg)
同策略Sarsa算法和异策略Q-learning算法的主要区别是评估策略的确定方式不同,在Q-learning算法中,评估策略是通过贪心算法的思想得到的,即在求解动作值函数时使用公式:
由公式可以看出下一状态的动作值函数是选取最大的(
2.同策略-sarsa算法[3]
function
参考
- ^ab蒙特卡洛方法 https://zhuanlan.zhihu.com/p/25743759
- ^Q-learning实现 https://zhuanlan.zhihu.com/p/29213893
- ^sarsa算法 https://zhuanlan.zhihu.com/p/29283927