对于Actor-Critic算法,主要是on-policy,因此样本效率较低。同时,off-policy与深度神经网络结合往往会导致训练的不稳定。根据soft Q-learning,可知,最大化熵能够提升RL的探索和鲁棒性,即最大化熵策略能够对模型的误差和估计误差更具有鲁棒性,且通过获取多样的行为提升探索。SAC作者们设计了一个off-policy的最大化熵actor-critic算法,拥有样本高效学习和稳定训练的特性,可用于连续状态和动作空间。

最大熵RL

标准RL的学习目标为最大化奖励和的期望$\sum_{t}\mathbb{E}_{(s_t,a_t)\sim\rho_{\pi}}[r(s_t,a_t)]$

最大熵RL在最大化奖励和期望的同时,最大化策略的损失,从而支持策略的随机性
$$
\begin{aligned}
J(\pi)=\sum_{t=0}^T\mathbb{E}_{(s_t,a_t)\sim\rho_{\pi}}[r(s_t,a_t)+\alpha\mathcal{H}(\pi(\cdot\vert s_t))]
\end{aligned}\tag{1}
$$
其中,$\alpha$可被省略,这是因为奖励可被缩放为原来的$\frac{1}{\alpha}$

该目标函数有以下优点:

  • 策略被鼓励广泛探索,且放弃显著无收益的策略。
  • 在近似最优行为区域,策略可捕获多种模式。
  • 显著提高了学习速度。

从Soft策略迭代到SAC

Soft策略迭代

在soft策略迭代步骤的策略评估中,期望根据式(1)中最大熵目标计算策略$\pi$的价值。对于一个固定的策略,soft Q函数-价值函数可被迭代的估计,即从任何函数$Q:\mathcal{S}\times\mathcal{A}\to\mathbb{R}$开始,基于改进版的Bellman运算

$$
\begin{aligned}
\mathcal{T}^{\pi}Q(s_t,a_t)=r(s_t,a_t)+\gamma\mathbb{E}_{s_{t+1}\sim p}[V(s_{t+1})]
\end{aligned}\tag{2}
$$

$$
\begin{aligned}
V(s_t)=\mathbb{E}_{a_t\sim\pi}[Q(s_t,a_t)-log\pi(a_t\vert s_t)]
\end{aligned}\tag{3}
$$
进行迭代计算。作者们也证明了,基于式(2)和式(3)迭代计算,$Q^k$序列可拟合到soft $Q$值。

策略提升步骤中,策略的更新方向为新Q函数的指数。这种更新的特殊选择,被保证在soft价值中提升策略。这是因为实践中策略应偏向于可行的,因此往往把策略限制在策略集合$\Pi$,即参数化为分布族,例如:高斯分布。为了考虑约束$\pi\in\Pi$,把提升策略投射到期望的策略集合。原则上,虽然可选择任何投射,但是利用信息投射被证明最方便,即KL-Divergence,可见式(4)
$$
\begin{aligned}
\pi_{new}=\underset{{\pi}'\in\Pi}{argmin}D_{KL}({\pi}'(\cdot\vert s_t)\Vert\frac{exp(Q^{\pi_{old}}(s_t,\cdot))}{Z^{\pi_{old}}(s_t)})
\end{aligned}\tag{4}
$$
$Z^{{\pi}_{old}}(s_t)$正则化分布,虽然计算它往往是不可行的,但是该项对新策略的梯度无贡献,即可被忽略。同时,作者们证明基于式(1)为目标函数,投射策略的价值高于旧策略,即策略提升。

以上策略评估与策略提升均在表格情形下,才能寻找到最优解决方案。因此,对于连续领域,作者们需要近似该算法。

SAC

对于连续领域,需要推导soft策略迭代的实际近似。对于Q函数和策略,作者们利用函数近似器,且利用随机梯度下降优化神经网络近似器代替运行策略评估与策略提升。

根据式(3),价值函数与Q函数和策略有关,根据原则没必要包含一个独立的状态价值函数近似器。在实践中,作者们发现,独立的价值函数近似器可稳定化训练,且很方便与其它网络同时训练。soft价值函数的目标函数为
$$
\begin{aligned}
J_{V}(\psi)=\mathbb{E}_{s_t\sim\mathcal{D}}[\frac{1}{2}(V_{\psi}(s_t)-\mathbb{E}_{a_t\sim\pi_{\phi}}[Q_{\theta}(s_t,a_t)-log\pi_{\phi}(a_t\vert s_t)])^2]
\end{aligned}\tag{5}
$$
其中,$\mathcal{D}$为replay buffer中状态和动作的分布。式(5)的梯度可被无偏估计器估计
$$
\begin{aligned}
\hat{\nabla}_{\psi}J_{V}(\psi)=\nabla_{\psi}V_{\psi}(s_t)(V_{\psi}(s_t)-Q_{\theta}(s_t,a_t)+log\pi_{\phi}(a_t\vert s_t))
\end{aligned}\tag{6}
$$
式(6)中动作根据当前策略采样,代替replay buffer。

Q函数的目标函数为
$$
\begin{aligned}
J_{Q}(\theta)=\mathbb{E}_{(s_t,a_t)\sim\mathcal{D}}[\frac{1}{2}(Q_{\theta}(s_t,a_t)-\hat{Q}(s_t,a_t))^2]
\end{aligned}\tag{7}
$$
式(7)中$\hat{Q}(s_t,a_t)$为
$$
\begin{aligned}
\hat{Q}(s_t,a_t)=r(s_t,a_t)+\gamma\mathbb{E}_{s_{t+1}\sim p}[V_{\bar{\psi}}(s_{t+1})]
\end{aligned}\tag{8}
$$
式(7)的梯度估计器为
$$
\begin{aligned}
\hat{\nabla}_{\theta}J_{Q}(\theta)=\nabla_{\theta}Q_{\theta}(a_t,s_t)(Q_{\theta}(s_t,a_t)-r(s_t,a_t)-\gamma V_{\bar{\psi}}(s_{t+1}))
\end{aligned}\tag{9}
$$
式(9)中价值网络$V_{\bar{\psi}}$的参数$\bar{\psi}$为价值网络权重的指数移动平均,该更新方式有利于稳定化训练。

策略参数的可直接根据式(4)优化
$$
\begin{aligned}
J_{\pi}(\phi)=\mathbb{E}_{s_t\sim\mathcal{D}}[D_{KL}(\pi_{\phi}(\cdot\vert s_t)\Vert\frac{exp(Q_{\theta}(s_t,\cdot))}{Z_{\theta}(s_t)})]
\end{aligned}\tag{10}
$$
由于Q函数和策略函数均被神经网络表达,因此均可计算梯度,那么可利用重参数化技巧,得到一个低方差估计器。策略被重参数化为
$$
\begin{aligned}
a_t=f_{\phi}(\epsilon_t;s_t)
\end{aligned}\tag{11}
$$
式(11)中$\epsilon_t$为输入噪音向量,该噪音向量采样于固定的分布,例如:球面高斯。那么,式(10)可写为
$$
\begin{aligned}
J_{\pi}(\phi)=\mathbb{E}_{s_t\sim\mathcal{D},\epsilon_t\sim\mathcal{N}}[log\pi_{\phi}(f_{\phi}(\epsilon_t;s_t)\vert s_t)-Q_{\theta}(s_t,f_{\phi}(\epsilon_t;s_t))]
\end{aligned}\tag{12}
$$
式(12)的梯度估计器为
$$
\begin{aligned}
\hat{\nabla}_{\phi}J_{\pi}(\phi)=\nabla_{\phi}log\pi_{\phi}(a_t\vert s_t)+(\nabla_{a_t}log\pi_{\phi}(a_t\vert s_t)-\nabla_{a_t}Q(s_t,a_t))\nabla_{\phi}f_{\phi}(\epsilon_t;s_t)
\end{aligned}\tag{13}
$$
SAC完整算法,可见算法1

引用方法

请参考:

            
                li,wanye. "SAC:Off-Policy最大化熵深度强化学习". wyli'Blog (Jun 2024). https://www.robotech.ink/index.php/archives/525.html            
        

或BibTex方式引用:

            
                @online{eaiStar-525,
   title={SAC:Off-Policy最大化熵深度强化学习},
   author={li,wanye},
   year={2024},
   month={Jun},
   url="https://www.robotech.ink/index.php/archives/525.html"
}

标签: RL样本高效

添加新评论