Chain 1: Policy Gradient
考虑时刻agent可以由状态和行为描述(),在执行来源于策略,得到奖励,我们的目的在于最大化奖励在不同的trajectory的期望,考虑一个trajectory 是一个链条,对于MDP:
这里是受到环境控制的,因此能被优化的只有。因此最终优化目标为:
让我们考虑策略带参数,因此,直接优化策略,利用log-derivative trick可以严格得到:
直接的思路是,进行蒙特卡洛采样,即用跑一个trajectory,进行SDE,这就是REINFORCE,无偏估计,On-policy,方差很大。
为了减少方差,利用因果性得到:
这里,方差减小了一些。从期望上看可以证明,再减去一个只和有关的量也不影响均值,即:
可以显式写出最优bias为:
为了简便取为,称为策略下的state value,意味着从出发按照走各个trajectory能够获得的奖励期望,因此得到:
意义很清楚,通过减去均线来减小方差,但是,由于state value是奖励的跨trajectory期望,使用MC进行估计时,需要采集多个时刻状态再的trajectory,这就要求系统必须能够不断重置到,这对环境提出了过于严苛的要求。
我们考虑使用推断分布近似分布:
通过采集同一策略下不同轨迹的的数据,可以拟合出一个,非常关键的问题是,一个trajectory的通常不是独立同分布的,这样训练出来的将会出现很大的Bias,因此还需要通过对一个trajectory的数据进行Replay Buffer,打乱排序的技巧,以减小方差。
更有效的方法要求我们重新审视,Bellman公式给出:
这个公式给出了不动点是最优点,利用Temporal Difference技巧,TD误差为,因此可以通过
进行更新。TD方法的好处是,不需要完整轨迹,只要即可更新,并且,相对于直接拟合,此处相关性造成的影响更弱。但是,这样更新之需要一个4元组,但是更新仍然要采集整个trajectory,怎么办呢?
考虑定义action state:
因此是其无偏估计,考虑更换为:
其中是优势函数:
同样利用Bellman公式:
发现,是的无偏估计,考虑使用作为的有偏估计量,因此得到:
但是,和有偏差,这从两个方向引来了双重偏差,首先本身估计不准,导致梯度不准,并且TD的靶子一直在移动中,导致训练不稳定。后者利用Target Network技巧可以缓解,即:
对于前者,我们考虑同时结合MC和TD,引入:
但是还需要人为选择,考虑直接按照加权求和,得到:
实际中根据的衰减情况截断到某个T,最终梯度为:
使得我们必须获得部分的trajectory。同时,这仍然是一个On-policy算法。一切的问题在于,当我们取平均时,我们要求样本是利用作为策略采样出的,旧样本来源于旧参数的,因此分布是偏移的,考虑:
这样利用旧数据是严格的,但是引入了重要性权重:
进一步由于因果性,未来重要性不会干扰现在的训练,因此:
这里的连乘会导致爆炸,考虑近似:
反向使用log-derivative trick:
这一结构的问题是,考虑一个采样的,是确定值,当,梯度上升会使得不断变大,但,梯度上升会使得不断趋于0,这都意味着变得越来越不同,这导致训练极端的不稳定,因此必须约束两个分布的距离,在这里就是约束,方法是截断错误的梯度流:
所以最后的损失为:
Chain 2: Q-learning
刚才我们引入了,定义为:
注意到它的含义,在策略下,的奖励期望,我们还引入了,我们定义的最优策略使得奖励期望最大化,在这里,则可以直接考虑为,使得最大化的策略,我们得到最优state value和policy:
第二个表达式所呈现的优化问题是不可直接遍历求解的,这就是为什么我们使用Policy Gradient去做这件事。还有一种思路是,考虑Bellman公式
对于这个,在动作空间有限的情况下,可以直接给出policy:
但总之我们之需要学习一个Q函数就可以了。现在Bellman公式的,利用条件概率得到:
因此得到Bellman最优公式:
这是一个不动点方程,利用Temporal Difference技巧得到:
但是实际中很难对每一个状态每一个动作都储存一个,因此实际中我们必须利用推断分布近似真实分布,从而更新写为:
注意到的是,整个一套方法都是Off-policy的。但是,TD方法的靶动问题,同样需要考虑使用Target Network,同时,数据通常不满足i.i.d,需要利用shuffle replay buffer来缓解优化上的问题。
更进一步的问题发生在取max上,由于Target Network 的有偏性,叠加上max偏差会进一步放大:
一种减小方法是考虑:
即选取动作使用实时网络,最大值使用target network。除此之外Q-learning还有各种正则化技巧,此处不再赘述。
Chain 3: Determined
考虑标准AC:
考虑交换,逆向log-derivative trick
这里是状态分布。考虑输出分布为正态分布族,利用Reparameterization trick技巧得到:
考虑,并且考虑输出为确定值:
注意到,从表达式中消失了,因此应当学习的是,即:
学习方法直接使用Q-learning的结果:
这里没有使用max而是直接使用学到的。DDPG一方面是学习State Value的AC,另一方面是有Actor的Q-learning。DDPG在实践中同样需要大量正则化方法。
Chain 4: Variance Inference
最后我们需要考虑,通常的RL求最优策略,但是人类行为中有很多的随机性,因此传统RL在接触有噪音数据时不能有效接受,这是SAC解决的问题。考虑虚变量定义:
这些虚变量代表一种更Soft的reward,因此考虑:
考虑Variance Inference,用逼近,利用KL散度:
这里第三项是常数,第二项为最优RL的原始损失,第一项为熵项,损失为:
在这个框架下考虑Q-learning思路,可以发现
考虑AC思路,由于Bellman公式有熵项,并且SAC从Q出发,因此学习,target为:
actor损失为:
这里的熵在高斯输出下都有显式解。
Chain 4: Inverse RL
我们之前讨论的一切都依赖于显式,密集的奖励信号,但是在现实过程这种条件往往是不满足的,一种思路是利用专家数据,返回训练出奖励函数。基本思路是,考虑最大似然:
从而最大化:
第三项和无关,梯度为:
第二项:
从而:
可以看到梯度内包含两相,前者是提高专家数据的奖励,后者是降低模型生成数据的奖励,这和GAN非常相似(一种改进方法就是从GAN启发得到)。
- 作者:向思齐
- 链接:https://blog.xiangsiqi.site/learning/Simple_RL
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。





