最大熵强化学习——从概率图模型到SAC

CS285 Lec14: Control as Inference Problem - 知乎 (zhihu.com)

这个讲得是真的好

我们最初有的设定是

对于给定的一张概率图

let $V_t(s_t)=\log \beta_t(s_t)$, $Q_t(s_t,a_t)=\log \beta_t(s_t,a_t)$

if We take $p(a_t\mid s_t)$ as uniform,

注意这里如果直接做的话,Q关于V是要log sum exp的,后面我们会看到能把这个去掉。

Then we consider if $p(a_t\mid s_t)$ as a prior distribution which is not uniform.

so let

Then

so, the policy $\pi(a_t\mid s_t)$ which is

so we have

and temperature are allow to add.

Then we consider the optimism problem, for that

我们再回过头来回顾一下这些变量都代表什么意思:

$p(O_{t:T}\mid s_t,a_t)$:现在处于状态 $s_t$,选了方法 $a_t$,接下来能获得的得分的期望

$p(at\mid s_t,O{1:T})$:为了获得最大的得分,我在当前状态的期望是什么,也就是当前的policy

$p(st\mid O{1:{t-1}})$

$p(s{t+1}\mid s_t,a_t,O{1:T})$ 是如果能获得最大的分数,那么转移的概率是什么

$p(s_{t+1}\mid s_t,a_t)$ 是转移的概率,和上面一个不一样。

下面简记 $p(\tau) = p(\tau \mid O_{1:T})$

在这里,如果我们先假设

,然后做如下推导

在给定最优变量 $O_{1:T}=1$ 的时候,整个概率图的轨迹分布可以表示为 $p(\tau)$

而给定策略 $\pi(a_t\mid s_t)$ 的时候,整条轨迹的分布表示为

最小化两者的KL散度,也就是最大化负的散度

也就是按当前策略的方法去采样能获得的reward的情况。

如果去掉 $p(s{t+1}\mid s_t,a_t,O{1:T})=p(s_{t+1}\mid s_t,a_t)$,这个假设,那么应该有

这里的 p(tau) 意味着在后验分布的情况下的,

这两项之间如果还是求 KL 散度

据说是不太好优化的,我没具体搞懂

我们考虑变分推断,用一个简单的变分函数去近似后验分布

这里用一个函数 $q$

如果我们假设 $x=O{1:T}, z=(s{1:T},a_{1:T})$,那么可以理解成我们想要的分布是 $p(z\mid x)$,我们想用分布 $q(z)$ 来逼近它。

我们在这里给 $q$ 设置一个约束条件,使得 $q(s1)=p(s_1),q(s{t+1}\mid st,a_t)=p(s{t+1}\mid s_t,a_t)$ 成立,那么就能有

于是

在上文中我们记

这里做一个补充,为什么我们需要 $\log p(x)$,考虑一个KL散度

上文中我们有

就是说如果估计分布和真实后验分布完美接近,那么这个 $L$ 就等于 $\log p(x)$。

我们型要让KL等于零,那么这里的log是多少?

所以我要优化这个KL尽可能地小,在 $\log p(x)$ 不变的情况下,我就去优化这个 $L$ 尽可能大。也就是这里的 $L$ 就变成了目标函数。天然地多出来一个 $\mathcal H(z)$

接下来我们呢继续推导 $q(a_T\mid s_T)$ 长什么样子

可以解出来

也就是说,对于最后一个步骤

这里设

同理得到对于中间的步骤

注意这里我们是从零开始的,也就是我们是有了 $q$ 的正比这个性质,从而定义了 $Q$,

这里没有logsumexp。

在这个基础上,我们试着得出 soft Q-learning

首先先看Q-learning with soft optimality,应该是这样的

这里target value

最后有

我们考虑 soft Q learning的推导

Reinforcement Learning with Deep Energy-Based Policies

如果我们引入熵的话,我们想要有

在给定一个 $\pi$ 之后定义

那么最大熵策略的目标函数是

再来一个定义是

能够证明

在这个基础上可以导出一个最优的policy

注意,这一项就是等号,不是一个正比号。

然后一个性质就是可以证明

暂且略去这个证明

总之我们也有了单调递增性。

entropy-regularized policy gradient can be viewed as performing soft Q-learning on the maximum-entropy.

漫谈Entropy, Energy and Learning. - 知乎 (zhihu.com)

这里另一种方法是是基于能量的模型 EBM

它的最优分布是玻尔兹曼分布

这里的 $\alpha$ 是一个温度的系数。

这里 $p_\phi(x)=\frac{e^{\phi(x)/\alpha}}{Z}=\frac{e^{-\mathcal E(x)}}{Z}$,其中 $\mathcal E(x)=-\phi(x)/\alpha$。

能量越低越容易保持在这样一个状态,能量越高越容易一晃而过。

从这个角度我们来看策略优化,在某个状态下去找

就有

从上文我们定义了soft的V和Q,我们有

接着我们来说一下soft Q-learning,首先是去学习(更新)Qsoft

因为希望通过当前的policy对Q更新, $V$ 要做一步重要性采样来算出来,前文提到的

但是 $\pi$ 还是不能直接通过贪心来求。

所以在 soft Q-learning 里面,通过最小化当前policy和基于价值函数构造出来的soft max分布的形式,用 SVGD 通过KL散度优化策略。(对于连续空间)

soft Actor-Critic 希望直接去优化策略

前文提到

策略迭代能保证迭代之后的价值不小于迭代之前的价值。

所以这个方法的算法的细节包括如下两种

首先通过bellman方程迭代更新Q和V,使用两个Q网络,$\bar \psi=\tau \psi +(1-\tau)\bar \psi$。

还有一个策略函数的学习目标,通过正比于 $Q+\mathcal H$ 的方法,这是我们之前用概率图方法推导出来的。

所以迭代更新。

实验:

认为它非常diverse,确实是鼓励了探索。

softQ作为预训练,对于不同的环境,也更好。

SAC认为策略用随机策略比固定策略更好,虽然一开始比较慢,但是最终会好。但是估值的时候相比于随机策略,用固定策略的更好。


我们来回顾一下这个 entropy 到底是哪里出现的。

最开始的目标函数中出现是因为我们用了变分不等式。

然后是值迭代的时候,$V$ 用 $\log \int \exp$ 来估计,这个 $\int$ 是平均意义上的,对于特定的策略的话就需要一个熵。