引用来自ShangtongZhang的代码chapter05/infinite_variance.py
通过一个例子论证了ordinary importance sampling的不稳定性
问题描述
这个程序通过一个简单的例子证明了ordinary importance sampling 的方差经常会发生不收敛的问题。
本例使用了一个只有一个状态s和两个状态left和right,以及一个terminate state的MDP问题,详细的Reward和转移概率如下所示:
选择的target_policy是:π(left|s)=1,π(right|s)=0;
选择生成episode的behavior policy是:b(left|s)=b(right|s)=0.5
满足π cover b的要求,并根据target_policy可以估计出v_π(s)=1,接下来看看代码运行结果,看看通过behavior policy预测出来的可以收敛到什么情况。
引入模块并定义常量,其中action_back=left,action_end=right
1 | import numpy as np |
定义behavior-policy和target-policy并开始训练
1 | # behavior policy |
100%|██████████| 10/10 [00:06<00:00, 1.59it/s]