李宏毅的强化学习视频用于梳理翻阅

本文主要是整理策略迭代的部分,重在阐明原理。李宏毅的视频,见网上。

最终说明OpenAI的默认强化学习算法PPO的部分。(Proximal Policy Optimization)

蓝色标记为有待查阅具体代码。不同于强化学习的值迭代的容易理解和表达,策略迭代更需要耐心、细心、思考。

 

优化目标

策略 𝜋 是可以用,带着训练参数𝜃的神经网络表示。策略𝜋网络,输入当前观察值observation(state),输出action的概率。

该网络的输出action,如果是连续的,每个动作用一个神经元表示,大小可以为连续值。动作是离散行为,则每个神经元输出一个概率。该概率表示为,该行为可能采取的可能性。在实际行为过程中,从该概率中进行采样。

下图,当输入状态S,则输出的三个离散动作的概率。

 

强化学习中,Agent的目标是,在MDP(马尔科夫决策过程)模型中,最大化累积奖励R。如下:在每一幕的运行过程中,最大化累积奖励R,为所有r的和。

 

在一条马尔科夫链中,其每一条轨迹的表达使用 𝜏 表示。𝑝_𝜃 (𝜏)表示为该条轨迹 𝜏 出现的概率。𝑝(𝑠_1 )为初始时,出现𝑠_1的概率。𝑝_𝜃 (𝑎_1 |𝑠_1 )等,为在𝑠_1下选择𝑎_1的概率。之后的𝑝(𝑠_2 |𝑠_1,𝑎_1 )等类似,表示在𝑠_1,𝑎_1下,能到达𝑠_2的概率(转移概率)。

 

 

在每个轨迹 𝜏 中,每一对s与a,产生一个奖励r。最终,在每一个轨迹中,产生一个累积奖励R。

 

针对同一个策略模型 𝜋 ,其每次交互的环境、每次的行为等,都是不确定的,最终有不同的轨迹 𝜏 。

但是,轨迹都是由该策略模型 𝜋 得到的,并得到不同的累积奖励R。强化学习的优化目标,则是优化该模型,使得平均累积(期望奖励)奖励最大化。

如下的表达中,平均奖励(奖励期望)为,在每条轨迹 下产生的累积奖励,和该轨迹产生的概率𝑝_𝜃 (𝜏),的乘积和。

使用期望的表达中,为,在概率𝑝_𝜃 (𝜏)下,采样轨迹 𝜏 ,在所有轨迹 𝜏 下的,平均奖励R。

 

策略梯度(Policy Gradient)

优化目标为奖励期望,使得其最大化,则直接通过求梯度方式,对其求梯度,使用梯度上升的方法,得到最大化期望奖励。

实质上,对奖励R求梯度,作为自变量的为𝜃。𝜃为策略模型 𝜋 的参数(神经网络的权值、训练参数),实质上也就是,通过训练模型 𝜋 ,最终获得最大的期望奖励R。

通过蓝色方框的公式调用,得到第二行,通过期望的表示变换,得到第三行左。

在执行足够多的N次轨迹后,首先,该N个轨迹,仍然是由策略 𝜋 中的𝜃决定的。在足够多的N下,基本服从期望下标𝜏~𝑝_𝜃 (𝜏)中的轨迹分布,所以可以约等。

第四行对第三行右,进行了进一步推导,将𝑝_𝜃的时间线进行了展开。但是是不是少了一个转移概率。

不过很明显的是,转移概率在轨迹中,是由环境Environment确定的,因此使用𝜃作为自变量求梯度,其为常数表示,不影响最终梯度方向。

因此,策略梯度的训练表示如下:其中的梯度在上图中已经得到计算。

 

 

 在实际实现过程中,如使用TensorFlow计算梯度,其计算过程可以和交叉熵有关

 

 

 

策略梯度的实现过程与修正

策略梯度的计算流程上:

1 根据Agent和环境的交互,通过策略模型 𝜋 得到一条轨迹𝜏 。在该轨迹结束后,得到累积奖励R。

2 使用梯度上升的方法,最大化R。在梯度上升的计算过程中,𝑙𝑜𝑔𝑝_𝜃其实就是策略网络 𝜋 输出的概率,实质上也就是梯度上升,改变 𝜋,从而最大化R。

重复以上步骤,使得R越来越大即可。

策略梯度在应用过程中发现有两个问题:

1 在一些强化学习环境中,轨迹𝜏下的所有行为奖励,都是正的奖励值,则根据公式,每次都是梯度上升。

   那么,使得R最大化的过程中,即,策略网络 𝜋 被训练时,采样的影响导致,针对同一个状态observation(state)时,输出的行为概率分布更倾向于采样更多的地方训练。

   在同一状态下,abc三个行为的概率和为1,理想情况是b的动作最优。但是a采样次数更多而b更少,则根据梯度上升时R都是大于0,策略网络对a的行为强度增强,导致了相对于b行为的强度减少。同理图中第二行,当a没有被采样一定数量多,则a会相对于理想情况下减少。

 

 

 

 因此应用过程中,对R增加baseline,使得R可以出现负值,只增加哪些高于平均奖励的R对应的轨迹策略。出现了负值,则表示该轨迹不够优秀,应该降低,采样越多,则降低越多。

 

 

 

 

2 奖励R的度量问题。在策略网络 𝜋 下,整条轨迹的累积奖励R,不足以度量 𝜋 中每一个输出行为概率的好坏。每个输出应该对应到每个奖励,而不是整条轨迹R。

  在轨迹中,当前行为a,在一定程度上决定了,后面的状态-行为对,越往后的状态行为对,其决定性的影响越小。因此,当前行为a的奖励r,为该行为和之后所有行为的和。并使用𝛾衰减因子,模拟其决定性影响越小导致的本次行为a的奖励越小。

 

 

重要性采样

重要性采样表示为:无法得知f(x)在p分布上的期望,则使用任意的分布q,来间接得到f(x)在p分布上的期望。

具体操作如第二行,最终:f(x)在p分布上的期望,转化为了f(x)*p(x)/q(x)在分布q上的期望。

 

 

 

虽然期望相等,但是方差是不等的。下图中,第一行为重要性采样,第三行为方差展开为期望形式,第四行前者又使用了一次重要性采样,后者直接代换。

结论是,重要性采样前后使用的未知分布p和已知分布q,若比值为1(完全相同),则方差也相同。比值越偏,方差越偏。

方差越偏导致的问题是,当采样次数不够多,则导致重要性采样定理的前后期望值的偏差,出现的可能性越大。

 

 

 

 使用如下所述,前者在p分布上的期望,f(x)*p(x)的累加和,基本为负值。后者,当采样点过少时,由于q(x)集中在f(x)的正值部分,虽然p(x)*f(x)/q(x)也很小,但是其值为正。只有采样到一个另外的点,p(x)*f(x)/q(x)又对应了很大,才导致了期望为负。才使得重要性采样定理的前后期望一致性。

 

 

 

 

在线策略到离线策略

 on-policy,其过程和上述策略梯度一样:策略模型𝜋 和环境交互获得轨迹,然后使用该轨迹进行训练。重复该过程。

 off-policy,其策略模型𝜋' 和环境交互得到轨迹,策略模型𝜋 学习该轨迹,而策略模型𝜋 自身没有和环境进行交互。

 在线策略中,其学习完的轨迹,直接丢弃不能再学习了,因为模型𝜋学习了自身的轨迹以后,模型有了变化,之前的轨迹不再是由该变更过的模型𝜋产生。

 离线策略中,其使用另外的模型𝜋',获得的多条轨迹,用于策略模型𝜋的学习,学习完以后的轨迹,因为𝜋'没有改变,其生成的轨迹仍然可用。

(认为是学习的目标,本应该是一个固定的分布,而不是一个变来变去的分布)相对于在线策略,离线策略效率,因为轨迹的生成和学习过程的方便性,而变得更高。

 

 𝜃′对应于模型𝜋',使用重要性采样定理,将在线策略转化为离线策略:

其中第一行为在线策略(之前的策略梯度的大致表现形式,从𝜋中获得轨迹),第二行使用𝜋'中采样,获得轨迹,计算梯度。

在多次采样后,二者的梯度应该相等的。

 

 

 

 如下是策略梯度的详细表示形式,并使用重要性采样定理进行的变换。第一行为在线策略,第二行变为离线策略,由于离线策略的奖励部分A,为𝜋'所产生,则变为了𝐴^(𝜃′ )。变了以后和之前的式子,还能相等吗,不能吧,假设能够,继续推导

 

 

第三行中,𝑃_𝜃 (𝑠_𝑡,𝑎_𝑡 )表示的是𝑠_𝑡,𝑎_𝑡出现的概率,通过概率逻辑,变换为两项。而后项的上下两个就姑且认为相等了,比值为1。其实应该是不等的。但是不易求得,并认为相等。

最后一行,通过图中的蓝色框公式,反推得到的f(x),即离线策略下的优化目标函数J(其实和原始情况下的目标函数R的期望类似吧)。

 

 

 PPO与TRPO

 TRPO (Trust Region Policy Optimization)算法是先于Proximal Policy Optimization (PPO)算法提出的。

在TRPO中,其实使用的方法就是在线转离线的策略了,并额外要求𝜃,𝜃′有一个相似性(KL散度,数据的原始分布和近似分布之间的相似性)

在PPO中,将相似性写入了优化目标中。要求优化目标尽可能的大,则KL散度尽可能小。

 

 

 KL散度过小,则𝜋'和𝜋之间的相似度高,可能学不到什么吧?相似度过低,则因为重要性采样的问题,方差影响加之采样量不足,使得前后等式不成立。

这里的𝜃^𝑘表示有多个𝜋',用于生成轨迹。

 

 对比PPO2,其实质仍然是控制𝜃,𝜃′的相似性。但是没有使用KL散度,而是使用clip方法,限制两者的比值在一个范围内。使得当A大于0增强该策略,或者A<0压制该策略的强度,都在一个范围内。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章