Bourne强化学习笔记1:用简单例子说明Off-policy的思想与使用方法

本着ADEPT(Analogy / Diagram / Example / Plain / Technical Definition)的学习规律,本人给出直观理解、数学方法、图形表达、简单例子和文字解释,来介绍off-policy,而on-policy也将在本讲解过程中获得理解。( 在此假设大家已了解Markov Process Decision,动作概率,转移概率,Monte Carlo Method, \varepsilon-greedy 策略。想了解的童鞋也可在本文最后Reference中获得相关知识

一、直观理解

古时候,优秀的皇帝都秉持着“水能载舟 亦能覆舟”的思想,希望能多了解民间百姓的生活。皇帝可以选择通过微服出巡,亲自下凡了解百姓生活(On-policy),虽然眼见为实,但毕竟皇帝本人分身乏术,掌握情况不全;因此也可以派多个官员去了解情况,而皇帝本人则躺在酒池肉林里收听百官情报即可(Off-policy)。

(坏皇帝则派出“锦衣卫”_(´ཀ`」 ∠)_)

二、文字解释

首先,我们搞清楚一个问题:什么是行为策略(Behavior Policy)和目标策略(Target Policy):行为策略是用来与环境互动产生数据的策略,即在训练过程中做决策;而目标策略在行为策略产生的数据中不断学习、优化,即学习训练完毕后拿去应用的策略。上面的例子中百官(锦衣卫)就是行为策略,去收集情况或情报,给皇帝(目标策略)做参考来学习,当皇帝收集到的情报越多,能做的决策就越优。

咦,为什么会有两个策略呢?

因为从人类的直观上来看,为了解决强化学习问题中的exploitation(利用) 和 exploration (探索),我们可以利用一个策略(行为策略)来保持探索性,提供多样化的数据,而不断的优化另一个策略(目标策略)。

On-policy 的目标策略和行为策略是同一个策略,其好处就是简单粗暴,直接利用数据就可以优化其策略,但这样的处理会导致策略其实是在学习一个局部最优,因为On-policy的策略没办法很好的同时保持即探索又利用;而Off-policy将目标策略和行为策略分开,可以在保持探索的同时,更能求到全局最优值。但其难点在于:如何在一个策略下产生的数据来优化另外一个策略?

三、数学方法

为了能从行为策略 b 产生的样本回合(Episode)中评估(学习)策略 \pi ,我们要求当执行 b策略时, \pi 中的每个动作都有一定概率发生,也就是 \pi(a|s)>0 时,必有 b(a|s)>0(逆命题不一定成立)。这种要求称为“包含”(Coverage)。在求最优策略的过程中,目标策略 \pi 通常都是基于当前评估的价值函数 V 的贪婪策略(策略 \pi的函数 V 的学习数据来源于策略 b ,但并非直接利用 b 的 V 函数,后面会详细解释)。因此目标策略最终能收敛为最优策略,而行为策略 b 则保持随机因而具有探索性。

几乎所有的off-policy都利用到一种技巧“Important Sampling”,这种技巧可以解决:求解一个概率分布(Distribution)的期望值(Expect)时,用来求解该期望值的样本数据是由另一个概率分布所产生。具体做法是:根据目标策略 \pi 和行为策略 b 分别所产生的相同某段序列(在本文Episode中某一段称为Trajectory)的概率的比值来加权求和return(Return是MC法中的一个样本序列(整个Episode)的总奖励),这个比值称为importance-sampling ratio。(也就是把一段又一段的序列总价值根据importance-sampling ratio加权求和,得到某个state的价值期望)

\rho _{t:T-1} = \frac{\prod _{k=t}^{T-1}\pi(A_k|S_k)p(S_{k+1}|S_k,A_k)}{\prod _{k=t}^{T-1}b(A_k|S_k)p(S_{k+1}|S_k,A_k)}= \frac{\prod _{k=t}^{T-1}\pi(A_k|S_k)}{\prod _{k=t}^{T-1}b(A_k|S_k)}                                    (1)

【注意,上式只有当两个策略产生的由t到T-1的序列完全一样时,才能消掉转移概率。(实际上排列顺序不一致但出现的转移情况一致也可以消掉转移概率)】

式中 \pi(A_k|S_k) 为策略 \pi 时的动作概率分布, b(A_k|S_k)为策略 b 时的动作概率分布。

虽然一个trajectory的发生可能性与环境的动态(即转移概率p)有关,但是通过比值可以消掉环境的动态因素。因此importance-sampling ratio只由策略 b 、策略 \pi 和 相应的序列所决定,与MDP无关。

因此,当我们评估(Estimate)在目标策略 \pi 下的奖励期望(Expected Return)时,不能直接使用来自行为策略 b 产生的样本数据所计算得到的奖励期望 E[Gt|St] ,因为这样将不能对样本数据进行平均求和而得到目标策略的价值函数。

三、一个栗子

本例子基于Monte Carlo过程,环境的动态情况未知(既状态转移概率未知)。并采用first-visit方法,即指定计算某一个状态(State)的价值时,只计算每个回合第一次出现该状态(State)之后到结束的总奖励(Return)。

有五个状态:黄、红、绿、蓝、黑。其中黑状态为终止状态(Terminal)。在第一个框中每个状态下面为即时奖励(Reward)。在此为了简化例子不具体列出动作,用一个空心环代替动作集合的任一动作。当遇到黑色时就结束当前回合(Episode)。我们用 t 表示第一次遇到指定状态的时间步,在本例子中指定计算红色状态的价值(Red State Value), T(t) 表示一个回合中的终点的时间步。

1. 采样

基于行为策略 b 与环境互动,经过采样后,我们得到五个回合(省略部分为动作-状态序列)。

2.计算每个样本回合的Return

在这里取第三个回合(Episode 3)分析,假设在其省略序列部分没有出现红色,第一次遇到红色在第60时间步(Time Step),则从此时开始计算后面的奖励。第61步为黄色,可得奖励19,第62步为黑色,可得奖励0,并终止回合。经计算后该回合从第一个红色状态开始后得到的总奖励G3(Return)为19。

其他回合也是这样处理算出每个回合的Return。(假设其他回合的省略部分随机出现除了黑色以外的所有状态)

3.计算行为策略b的红色状态的价值期望

由Monte Carlo计算方法可知

v_b(S_t = Red) = E[G_t|S_t = Red]

=(G_1+G_2+G_3+G_4+G_5) /5=11.6

11.6为在行为策略 b 下时,红色状态的价值(即Return的期望值)。在实际应用中,根据大数定理,采样回合(Episode)的数量一般需要成千上万个,才能保证所计算的结果接近期望值。On-policy中就是应用这个价值来进行学习、改善策略的,也即基于贪婪思想选取最大值的动作,然后作为新的On-policy的策略。

4. 计算目标策略 \pi的红色状态的价值期望

由于importance-sampling ratio 均可由公式(1)计算得到,所以本人未给出具体的动作及其在相应策略下的概率以简化问题,因此在这里假设 \rho_{1:T(1)-1} 、 \rho_{2:T(2)-1} 、 \rho_{60:T(60)-1} 、 \rho_{0:T(0)-1} 、 \rho_{51:T(51)-1} 分别为0.91,0.92 , 0.93 , 0.94 ,0.95 。有以下运算:

v_t(S_t = Red) = E[\rho_{t:T-1}G_t|S_t = Red]

=(\rho_{1:T(1)-1}G_1+\rho_{2:T(2)-1}G_2+\rho_{60:T(60)-1}G_3+\rho_{0:T(0)-1}G_4+\rho_{51:T(51)-1}G_5) /5

=(0.91*20+092*17+0.93*19+0.94*2+0.95*0)/5 = 10.678

因此10.678为我们从由行为策略 b 产生的五个Episode中,所得到的目标策略 \pi 下的红色状态的价值(即目标策略下的红色状态的Returne期望值)。然后根据该价值来学习,也即基于贪婪思想选取最大值的动作,然后作为新的目标策略 \pi 。

四、总结

最后引用知乎中@三笠 童鞋相关回答的第一句话:On-policy-与Off-policy的区别在于:更新价值所使用的方法是沿着既定的策略(on-policy)抑或是新策略(off-policy)。

Reference

  1. R. S. Sutton and A. G. Barto. Reinforcement learning: An introduction. IEEE Transactions on Neural Networks, 9(5):1054–1054, 2018.

声明:本图文未经作者允许谢绝转载。

知乎:https://www.zhihu.com/question/57159315/answer/465865135

猜你喜欢

转载自blog.csdn.net/linyijiong/article/details/81584889