0 论文信息
1 对于 SAC 的逐步解析
传统的强化学习可以简单认为其是最大化奖励的预期总和 : ∑tE(st,at)∼ρπ[r(st,at)],如同之前在《DBC 论文阅读补充》中所写,作者补充了熵来让让强化学习取得更好的效果 (采用拉格朗日乘子法) :
J(π)=t=0∑TE(st,at)∼ρπ[r(st,at)+αH(π(⋅∣st))]
α 即拉格朗日参数也被称为温度参数,一般会选一个较为合适的后续进行整体优化。接下来就是看如何在此基础上推出 Soft Actor-Critic (SAC) 的算法。
Bellman 方程回顾 在之前的《从马尔可夫决策到 DQN 算法族(上)》中,我们提到过 Bellman 方程,其表述如下 :
在马尔可夫奖励过程中,一个状态的期望回报 (即从这个状态出发的未来累积奖励的期望) 被称为这个状态的价值 (value)。所有状态的价值就组成了价值函数 (value function),价值函数的输入为某个状态,输出为这个状态的价值。我们将价值函数写成 V(s)=E[Gt∣St=s],展开为 :
V(s)=E[Gt∣St=s]=E[Rt+γRt+1+γ2Rt+2+…∣St=s]=E[Rt+γ(Rt+1+γRt+2+…)∣St=s]=E[Rt+γGt+1∣St=s]=E[Rt+γV(St+1)∣St=s]
在上式的最后一个等号中,一方面,即时奖励的期望正是奖励函数的输出,即 E[Rt∣St=s]=r(s);另一方面,等式中剩余部分 E[γV(St+1)∣St=s] 可以根据从状态 s 出发的转移概率得到,即可以得到
V(s)=r(s)+γs′∈S∑p(s′∣s)V(s′)
式 (2) 即被称为 Bellman 方程。
在软策略迭代的策略评估步骤中,作者希望根据公式 (1) 中的最大熵目标计算策略 π 的值。对于固定策略,soft-Q value 可以使用迭代计算,从任意函数 Q:S×A→R 开始,反复应用修正的 Bellman 备份算子 Tπ :
TπQ(st,at)≜r(st,at)+γEst+1∼p[V(st+1)]
其中 :
V(st)=Eat∼π[Q(st,at)−logπ(at∣st)]
其中 V(st) 是软状态值函数。通过重复应用 Tπ,可以得到任意策略 π 的软值函数,有如下引力 :
引理 1 (软策略评估) 考虑方程 (3) 中的软 Bellman 备份算子 Tπ 和 ∣A∣<∞ 的映射 Q0:S×A→R,定义 Qk+1=TπQk。当 k→∞ 时,序列 Qk 收敛于 π 的 soft-Q value。
在策略改进步骤中,向新 Q 函数的指数方向更新策略。这种特定的更新选择可以保证在其软价值方面产生改进的策略。由于在实践中更喜欢易于处理的策略,因此将额外地将策略限制为一些策略集 Π,这些策略可以对应于一些实例,参数化的分布族,高斯分布。为了考虑 π∈Π 的约束,将改进的策略投影到期望的策略集合中。虽然原则上可以选择任何投影,在此直接使用 KL 散度定义的信息投影。换句话说,在策略改进步骤中,对于每个状态,根据更新策略 :
πnew =argπ′∈ΠminDKL(π′(⋅∣st)∥Zπold (st)exp(Qπold (st,⋅)))
根据 KL 散度的思想,即希望策略 π′(⋅∣st) 的分布更接近 Zπold (st)exp(Qπold (st,⋅)) 的分布。其中配分函数 Zπold(st) 将分布归一化,虽然它通常是难以处理的,但它对新策略的梯度没有贡献,因此可以忽略。对于这个投影,可以证明,相对于方程 (1) 中的目标,新的投影策略比旧策略具有更高的值。在引理 2 中将这个结果形式化 :
引理 2 (软策略的改善) 设 πold∈Π,设 πold 为式 (5) 定义的最小化问题的优化器。则对于所有 (st,at)∈S×A 且 ∣A∣<∞,都有 Qπnew (st,at)≥Qπold (st,at)。
完整的软策略迭代算法在软策略评估和软策略改进步骤之间交替,可证明在 Π 的策略中收敛到最优最大熵策略 (定理 1)。尽管该算法可以证明找到了最优解,但目前只能在表格情况下以其精确形式执行它。因此,作者接下来将近似连续域的算法,需要依靠函数逼近器来表示 Q 值,并运行这两个步骤,直到收敛至边际效应。该近似产生了一种新的实用算法,称为 soft Actor-Critic (SAC)。
定理 1 (软策略迭代) 从任意 π∈Π 重复应用软策略评估和软策略改进收敛于策略 π∗,使得对于所有 π∈Π 和 (st,at)∈S×A,假设 ∣A∣<∞,Qπ∗(st,at)≥Qπ(st,at)。
如上所述,大型连续域要求推导出软策略迭代的实用近似 (因为实际情况多是连续的)。为此,作者将对 Q 函数和策略使用函数逼近器,而不是运行评估和改进收敛,而是在使用随机梯度下降优化两个网络之间交替。作者考虑一个参数化状态值函数 Vψ(st)、soft−Q 函数 Qθ(st,at) 和一个易于处理的策略 πϕ(at∣st)。这些网络的参数是 ψ,θ,ϕ。例如,价值函数可以建模为表征神经网络,策略被建模为具有神经网络给出的均值和协方差的高斯分布。接下来,对于这些参数向量的更新规则进行推导。
状态值函数近似于软值。原则上不需要为状态值构建一个单独的函数逼近器,因为它与根据公式 (4) 的 Q 函数和策略有关。这个量可以从当前策略的单个动作样本中估计,而不引入偏差,但在实践中,包括软值的单独函数逼近器可以稳定训练,便于与其他网络同时训练。训练软值函数以最小化平方残差
JV(ψ)=Est∼D[21(Vψ(st)−Eat∼πϕ[Qθ(st,at)−logπϕ(at∣st)])2]
其中 D 是先前采样状态和动作的分布,或重放缓冲区。公式 (6) 的梯度可以用无偏估计量估计
∇^ψJV(ψ)=∇ψVψ(st)(Vψ(st)−Qθ(st,at)+logπϕ(at∣st))
其中动作根据当前策略进行采样,而不是重放缓冲区。可以训练软 Q 函数参数以最小化软 Bellman 残差
JQ(θ)=E(st,at)∼D[21(Qθ(st,at)−Q^(st,at))2]
其中
Q^(st,at)=r(st,at)+γEst+1∼p[Vψˉ(st+1)]
可以再次用随机梯度进行优化
∇^θJQ(θ)=∇θQθ(at,st)(Qθ(st,at)−r(st,at)−γVψˉ(st+1))
该更新利用了目标值网络 Vψˉ,其 ψˉ 可以是值网络权重的指数移动平均值。或者可以更新目标权重以定期匹配当前值函数权重。最后,可以通过直接最小化公式 (5) 中预期的 KL 散度来学习策略参数
Jπ(ϕ)=Est∼D[DKL(πϕ(⋅∣st)∥Zθ(st)exp(Qθ(st,⋅)))]
有几个选项可以最小化 Jπ。策略梯度方法的典型解决方案是使用似然比梯度估计器,它不需要通过策略和目标密度网络反向传播梯度。然而在例子中,目标密度是 Q 函数,它由神经网络表示,可以区分,因此应用重新参数化技巧很方便,从而导致方差估计器较低。为此,使用神经网络变换重新参数化策略
at=fϕ(ϵt;st)
其中 ϵt 是一个输入噪声向量,从一些固定分布中采样,例如球形高斯分布。我们现在可以将公式 (11) 中的目标重写为
Jπ(ϕ)=Est∼D,ϵt∼N[logπϕ(fϕ(ϵt;st)∣st)−Qθ(st,fϕ(ϵt;st))]
其中 πϕ 是根据 fϕ 隐式定义的,注意到分区函数独立于 ϕ,因此可以省略。同时对于公式 (13) 借助以下估计
∇^ϕJπ(ϕ)=∇ϕlogπϕ(at∣st)+(∇atlogπϕ(at∣st)−∇atQ(st,at))∇ϕfϕ(ϵt;st)
其中 at 在 fϕ(ϵt;st) 上进行评估。这种无偏梯度估计器将 DDPG 风格策略梯度扩展到任何易于处理的随机策略。
Algorithm 1 Soft Actor-Critic
- Initialize parameter vectors ψ,ψˉ,θ,ϕ.
- for each iteration do
- for each environment step do
- at∼πϕ(at∣st)
- st+1∼p(st+1∣st,at)
- D←D∪{(st,at,r(st,at),st+1)}
- end for
- for each gradient step do
- ψ←ψ−λV∇^ψJV(ψ)
- θi←θi−λQ∇^θiJQ(θi) for i∈{1,2}
- ϕ←ϕ−λπ∇^ϕJπ(ϕ)
- ψˉ←τψ+(1−τ)ψˉ
- end for
- end for
2 感想
感觉即使想法并不难理解,还是使用了很多的小技巧,整体的推导看下来并没有一种直观的理解,后续我会继续努力理解的。之后会把后续的理解进行更新。
参考资料 (References)