RL策略梯度方法之(十五):SAC with Automatically Adjusted Temperature

本文解析了SAC算法中如何通过加入自动调整的温度参数解决策略熵变化难题,提出一种带约束的优化问题求解策略,通过拉格朗日乘子法迭代更新策略和热度参数。核心步骤包括构建拉格朗日表达式并利用对偶问题进行求解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本专栏按照 https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html 顺序进行总结 。



带有自动热度调整的软演员-评论家算法

S A C   w i t h   A u t o m a t i c a l l y   A d j u s t e d   T e m p e r a t u r e \color{red}SAC \ with \ Automatically \ Adjusted \ Temperature SAC with Automatically Adjusted Temperature :[ paper:Soft Actor-Critic Algorithms and Applications | code ]


原理解析

SAC算法对于热度参数十分敏感。不幸的是,调整热度参数是一件很困难的事情。因为在随着策略由于训练变得更优的过程中或者在不同任务中进行训练时熵都会出现不可预测的变化。在SAC算法针对上述问题的改进可以建模为如下带约束的优化问题:在最大化期望累积回报的同时,策略应满足最小熵约束:
max ⁡ π 0 , … , π T E [ ∑ t = 0 T r ( s t , a t ) ]  s.t.  ∀ t , H ( π t ) ≥ H 0 \max _{\pi_{0}, \ldots, \pi_{T}} \mathbb{E}\left[\sum_{t=0}^{T} r\left(s_{t}, a_{t}\right)\right] \text { s.t. } \forall t, \mathcal{H}\left(\pi_{t}\right) \geq \mathcal{H}_{0} π0,,πTmaxE[t=0Tr(st,at)] s.t. t,H(πt)H0

其中 H 0 \mathcal{H}_{0} H0 表示预定义的最小策略熵阈值。

其中期望收益 E [ ∑ t = 0 T r ( s t , a t ) ] \mathbb{E}\left[\sum_{t=0}^{T} r\left(s_{t}, a_{t}\right)\right] E[t=0Tr(st,at)] 可以分解为每一时间步回报的和。因为在时刻 t t t 的策略 π t π_t πt 不会影响到之前时刻的策略 π t − 1 π_{t−1} πt1,我们可以从后往前逐步最大化收益——这其实就是动态规划了。
max ⁡ π 0 ( E [ r ( s 0 , a 0 ) ] + max ⁡ π 1 ( E [ … ] + max ⁡ π T E [ r ( s T , a T ) ] ⏟ 第一步最大化 ) ⏟ 第二步但也是最后一步最大化 ) ⏟ 最后一步最大化 \underbrace{\max_{\pi_0} \Big( \mathbb{E}[r(s_0, a_0)]+ \underbrace{\max_{\pi_1} \Big(\mathbb{E}[…] + \underbrace{\max_{\pi_T} \mathbb{E}[r(s_T, a_T)]}_\text{第一步最大化} \Big)}_\text{第二步但也是最后一步最大化} \Big)}_\text{最后一步最大化} 最后一步最大化 π0max(E[r(s0,a0)]+第二步但也是最后一步最大化 π1max(E[]+第一步最大化 πTmaxE[r(sT,aT)]))

其中 γ = 1 γ=1 γ=1

我们从最后一个时间步 T 开始最大化:
E ( s T , a T ) ∼ ρ π [ r ( s T , a T ) ]  s.t.  H ( π T ) − H 0 ≥ 0 \mathbb{E}_{\left(s_{T}, a_{T}\right) \sim \rho_{\pi}}\left[r\left(s_{T}, a_{T}\right)\right] \text { s.t. } \mathcal{H}\left(\pi_{T}\right)-\mathcal{H}_{0} \geq 0 E(sT,aT)ρπ[r(sT,aT)] s.t. H(πT)H00
首先,我们定义以下一些函数:
h ( π T ) = H ( π T ) − H 0 = E ( s T , a T ) ∼ ρ π [ − log ⁡ π T ( a T ∣ s T ) ] − H 0 f ( π T ) = { E ( s T , a T ) ∼ ρ π [ r ( s T , a T ) ] , if  h ( π T ) ≥ 0 − ∞ , otherwise \begin{aligned} h(\pi_T) &= \mathcal{H}(\pi_T) - \mathcal{H}_0 = \mathbb{E}_{(s_T, a_T) \sim \rho_{\pi}} [-\log \pi_T(a_T\vert s_T)] - \mathcal{H}_0\\ f(\pi_T) &= \begin{cases} \mathbb{E}_{(s_T, a_T) \sim \rho_{\pi}} [ r(s_T, a_T) ], & \text{if }h(\pi_T) \geq 0 \\ -\infty, & \text{otherwise} \end{cases} \end{aligned} h(πT)f(πT)=H(πT)H0=E(sT,aT)ρπ[logπT(aTsT)]H0={E(sT,aT)ρπ[r(sT,aT)],,if h(πT)0otherwise
因而优化问题就转变为如下形式:
f ( π T )  s.t.  h ( π T ) ≥ 0 f\left(\pi_{T}\right) \text { s.t. } h\left(\pi_{T}\right) \geq 0 f(πT) s.t. h(πT)0
为了解决带有不等式约束的最大化优化问题,我们可以构建一个带有拉格朗日乘子(也被称为“对偶变量”) α T α_T αT 的拉格朗日表达式:
L ( π T , α T ) = f ( π T ) + α T h ( π T ) L\left(\pi_{T}, \alpha_{T}\right)=f\left(\pi_{T}\right)+\alpha_{T} h\left(\pi_{T}\right) L(πT,αT)=f(πT)+αTh(πT)

考虑如下情况,在给定策略 π T π_T πT 的情况下,我们尝试去找到最小化 L ( π T , α T ) L(π_T,α_T) L(πT,αT) α T α_T αT 值,

  • 如果约束被满足,即 h ( π T ) ≥ 0 h\left(\pi_{T}\right) \geq 0 h(πT)0 ,那么因为我们无法通过 α T α_T αT 控制 f ( π T ) f(π_T) f(πT) 的值因此最好将其设置为0(译者注:这里我有些无法理解,如果要最小化,那么当 h ( π T ) ≥ 0 h\left(\pi_{T}\right) \geq 0 h(πT)0 α T α_T αT 为负数应该会使得目标函数更小?)。因而, L ( π T , 0 ) = f ( π T ) L\left(\pi_{T}, 0\right)=f\left(\pi_{T}\right) L(πT,0)=f(πT)
  • 如果约束被违背了,即 h ( π T ) < 0 h\left(\pi_{T}\right)<0 h(πT)<0,我们可以通过令 α T → ∞ \alpha_{T} \rightarrow \infty αT 来使得 L ( π T , α T ) → − ∞ L\left(\pi_{T}, \alpha_{T}\right) \rightarrow-\infty L(πT,αT)。因而 L ( π T , ∞ ) = − ∞ = f ( π T ) L\left(\pi_{T}, \infty\right)=-\infty=f\left(\pi_{T}\right) L(πT,)==f(πT)

无论哪种情况,我们都可以得到如下等式:
f ( π T ) = min ⁡ α T ≥ 0 L ( π T , α T ) f\left(\pi_{T}\right)=\min _{\alpha_{T} \geq 0} L\left(\pi_{T}, \alpha_{T}\right) f(πT)=αT0minL(πT,αT)
同时,我们想要去最大化 f ( π T ) f\left(\pi_{T}\right) f(πT)
max ⁡ π T f ( π T ) = min ⁡ α T ≥ 0 max ⁡ π T L ( π T , α T ) \max _{\pi_{T}} f\left(\pi_{T}\right)=\min _{\alpha_{T} \geq 0} \max _{\pi_{T}} L\left(\pi_{T}, \alpha_{T}\right) πTmaxf(πT)=αT0minπTmaxL(πT,αT)
因此,为了最大化 f ( π T ) f\left(\pi_{T}\right) f(πT) ,其对应的对偶问题罗列如下。注意为了保证 max ⁡ π T f ( π T ) \max _{\pi_{T}} f\left(\pi_{T}\right) maxπTf(πT) 是一个良定的操作(即 f ( π T ) f(π_T) f(πT) 不为 − ∞ −∞ ),约束必须要被满足。
max ⁡ π T E [ r ( s T , a T ) ] = max ⁡ π T f ( π T ) = min ⁡ α T ≥ 0 max ⁡ π T L ( π T , α T ) = min ⁡ α T ≥ 0 max ⁡ π T f ( π T ) + α T h ( π T ) = min ⁡ α T ≥ 0 max ⁡ π T E ( s T , a T ) ∼ ρ π [ r ( s T , a T ) ] + α T ( E ( s T , a T ) ∼ ρ π [ − log ⁡ π T ( a T ∣ s T ) ] − H 0 ) = min ⁡ α T ≥ 0 max ⁡ π T E ( s T , a T ) ∼ ρ π [ r ( s T , a T ) − α T log ⁡ π T ( a T ∣ s T ) ] − α T H 0 = min ⁡ α T ≥ 0 max ⁡ π T E ( s T , a T ) ∼ ρ π [ r ( s T , a T ) + α T H ( π T ) − α T H 0 ] \begin{aligned} \max_{\pi_T} \mathbb{E}[ r(s_T, a_T) ] &= \max_{\pi_T} f(\pi_T) \\ &= \min_{\alpha_T \geq 0} \max_{\pi_T} L(\pi_T, \alpha_T) \\ &= \min_{\alpha_T \geq 0} \max_{\pi_T} f(\pi_T) + \alpha_T h(\pi_T) \\ &= \min_{\alpha_T \geq 0} \max_{\pi_T} \mathbb{E}_{(s_T, a_T) \sim \rho_{\pi}} [ r(s_T, a_T) ] + \alpha_T ( \mathbb{E}_{(s_T, a_T) \sim \rho_{\pi}} [-\log \pi_T(a_T\vert s_T)] - \mathcal{H}_0) \\ &= \min_{\alpha_T \geq 0} \max_{\pi_T} \mathbb{E}_{(s_T, a_T) \sim \rho_{\pi}} [ r(s_T, a_T) - \alpha_T \log \pi_T(a_T\vert s_T)] - \alpha_T \mathcal{H}_0 \\ &= \min_{\alpha_T \geq 0} \max_{\pi_T} \mathbb{E}_{(s_T, a_T) \sim \rho_{\pi}} [ r(s_T, a_T) + \alpha_T \mathcal{H}(\pi_T) - \alpha_T \mathcal{H}_0 ] \end{aligned} πTmaxE[r(sT,aT)]=πTmaxf(πT)=αT0minπTmaxL(πT,αT)=αT0minπTmaxf(πT)+αTh(πT)=αT0minπTmaxE(sT,aT)ρπ[r(sT,aT)]+αT(E(sT,aT)ρπ[logπT(aTsT)]H0)=αT0minπTmaxE(sT,aT)ρπ[r(sT,aT)αTlogπT(aTsT)]αTH0=αT0minπTmaxE(sT,aT)ρπ[r(sT,aT)+αTH(πT)αTH0]

我们可以迭代地计算最优的 π T π_T πT 以及 α T α_T αT。首先给定目前的 α T α_T αT,通过最大化 L ( π T ⋆ , α T ) L\left(\pi_{T}^{\star}, \alpha_{T}\right) L(πT,αT) 来得到最优的策略 π T ⋆ \pi_{T}^{\star} πT。然后将 π T ⋆ \pi_{T}^{\star} πT 代入去最小化 L ( π T ⋆ , α T ) L\left(\pi_{T}^{\star}, \alpha_{T}\right) L(πT,αT) 来计算 α T ⋆ α_{T}^{\star} αT。想象一下我们用一个神经网络来表示策略,用另一个网络来表示热度参数,这个迭代过程就与训练演员-评论家算法时更新两者的网络参数比较类似了。
π T ⋆ = arg ⁡ max ⁡ π T E ( s T , a T ) ∼ ρ π [ r ( s T , a T ) + α T H ( π T ) − α T H 0 ] α T ⋆ = arg ⁡ min ⁡ α T ≥ 0 E ( s T , a T ) ∼ ρ π ⋆ [ α T H ( π T ⋆ ) − α T H 0 ] \begin{aligned} \pi^{\star}_T &= \arg\max_{\pi_T} \mathbb{E}_{(s_T, a_T) \sim \rho_{\pi}} [ r(s_T, a_T) + \alpha_T \mathcal{H}(\pi_T) - \alpha_T \mathcal{H}_0 ] \\ \color{blue}{\alpha^{\star}_T} &\color{blue}{=} \color{blue}{\arg\min_{\alpha_T \geq 0} \mathbb{E}_{(s_T, a_T) \sim \rho_{\pi^{\star}}} [\alpha_T \mathcal{H}(\pi^{\star}_T) - \alpha_T \mathcal{H}_0 ]} \end{aligned} πTαT=argπTmaxE(sT,aT)ρπ[r(sT,aT)+αTH(πT)αTH0]=argαT0minE(sT,aT)ρπ[αTH(πT)αTH0]

因而,  max ⁡ π T E [ r ( s T , a T ) ] = E ( s T , a T ) ∼ ρ π ⋆ [ r ( s T , a T ) + α T ⋆ H ( π T ⋆ ) − α T ⋆ H 0 ] \text{因而, }\max_{\pi_T} \mathbb{E} [ r(s_T, a_T) ] = \mathbb{E}_{(s_T, a_T) \sim \rho_{\pi^{\star}}} [ r(s_T, a_T) + \alpha^{\star}_T \mathcal{H}(\pi^{\star}_T) - \alpha^{\star}_T \mathcal{H}_0 ] 因而maxπTE[r(sT,aT)]=E(sT,aT)ρπ[r(sT,aT)+αTH(πT)αTH0]

现在,让我们回到软Q值函数:
Q T − 1 ( s T − 1 , a T − 1 ) = r ( s T − 1 , a T − 1 ) + E [ Q ( s T , a T ) − α T log ⁡ π ( a T ∣ s T ) ] = r ( s T − 1 , a T − 1 ) + E [ r ( s T , a T ) ] + α T H ( π T ) Q T − 1 ⋆ ( s T − 1 , a T − 1 ) = r ( s T − 1 , a T − 1 ) + max ⁡ π T E [ r ( s T , a T ) ] + α T ⋆ H ( π T ⋆ ) ; 代入最优策略  π T ⋆ \begin{aligned} Q_{T-1}(s_{T-1}, a_{T-1}) &= r(s_{T-1}, a_{T-1}) + \mathbb{E} [Q(s_T, a_T) - \alpha_T \log \pi(a_T \vert s_T)] \\ &= r(s_{T-1}, a_{T-1}) + \mathbb{E} [r(s_T, a_T)] + \alpha_T \mathcal{H}(\pi_T) \\ Q_{T-1}^{\star}(s_{T-1}, a_{T-1}) &= r(s_{T-1}, a_{T-1}) + \max_{\pi_T} \mathbb{E} [r(s_T, a_T)] + \alpha_T^{\star} \mathcal{H}(\pi^{\star}_T) & \text{; 代入最优策略 }\pi_T^{\star} \end{aligned} QT1(sT1,aT1)QT1(sT1,aT1)=r(sT1,aT1)+E[Q(sT,aT)αTlogπ(aTsT)]=r(sT1,aT1)+E[r(sT,aT)]+αTH(πT)=r(sT1,aT1)+πTmaxE[r(sT,aT)]+αTH(πT)代入最优策略 πT

因此,当我们进一步退回到 T−1 时间步时,期望收益如下:
max ⁡ π T − 1 ( E [ r ( s T − 1 , a T − 1 ) ] + max ⁡ π T E [ r ( s T , a T ] ) = max ⁡ π T − 1 ( Q T − 1 ⋆ ( s T − 1 , a T − 1 ) − α T ⋆ H ( π T ⋆ ) ) ; 需  H ( π T − 1 ) − H 0 ≥ 0 = min ⁡ α T − 1 ≥ 0 max ⁡ π T − 1 ( Q T − 1 ⋆ ( s T − 1 , a T − 1 ) − α T ⋆ H ( π T ⋆ ) + α T − 1 ( H ( π T − 1 ) − H 0 ) ) ; 对偶问题 = min ⁡ α T − 1 ≥ 0 max ⁡ π T − 1 ( Q T − 1 ⋆ ( s T − 1 , a T − 1 ) + α T − 1 H ( π T − 1 ) − α T − 1 H 0 ) − α T ⋆ H ( π T ⋆ ) \begin{aligned} &\max_{\pi_{T-1}}\Big(\mathbb{E}[r(s_{T-1}, a_{T-1})] + \max_{\pi_T} \mathbb{E}[r(s_T, a_T] \Big) \\ &= \max_{\pi_{T-1}} \Big( Q^{\star}_{T-1}(s_{T-1}, a_{T-1}) - \alpha^{\star}_T \mathcal{H}(\pi^{\star}_T) \Big) & \text{; 需 } \mathcal{H}(\pi_{T-1}) - \mathcal{H}_0 \geq 0 \\ &= \min_{\alpha_{T-1} \geq 0} \max_{\pi_{T-1}} \Big( Q^{\star}_{T-1}(s_{T-1}, a_{T-1}) - \alpha^{\star}_T \mathcal{H}(\pi^{\star}_T) + \alpha_{T-1} \big( \mathcal{H}(\pi_{T-1}) - \mathcal{H}_0 \big) \Big) & \text{; 对偶问题} \\ &= \min_{\alpha_{T-1} \geq 0} \max_{\pi_{T-1}} \Big( Q^{\star}_{T-1}(s_{T-1}, a_{T-1}) + \alpha_{T-1} \mathcal{H}(\pi_{T-1}) - \alpha_{T-1}\mathcal{H}_0 \Big) - \alpha^{\star}_T \mathcal{H}(\pi^{\star}_T) \end{aligned} πT1max(E[r(sT1,aT1)]+πTmaxE[r(sT,aT])=πT1max(QT1(sT1,aT1)αTH(πT))=αT10minπT1max(QT1(sT1,aT1)αTH(πT)+αT1(H(πT1)H0))=αT10minπT1max(QT1(sT1,aT1)+αT1H(πT1)αT1H0)αTH(πT) H(πT1)H00对偶问题
与之前类似,我们有:
π T − 1 ⋆ = arg ⁡ max ⁡ π T − 1 E ( s T − 1 , a T − 1 ) ∼ ρ π [ Q T − 1 ⋆ ( s T − 1 , a T − 1 ) + α T − 1 H ( π T − 1 ) − α T − 1 H 0 ] α T − 1 ⋆ = arg ⁡ min ⁡ α T − 1 ≥ 0 E ( s T − 1 , a T − 1 ) ∼ ρ π ⋆ [ α T − 1 H ( π T − 1 ⋆ ) − α T − 1 H 0 ] \begin{aligned} \pi^{\star}_{T-1} &= \arg\max_{\pi_{T-1}} \mathbb{E}_{(s_{T-1}, a_{T-1}) \sim \rho_\pi} [Q^{\star}_{T-1}(s_{T-1}, a_{T-1}) + \alpha_{T-1} \mathcal{H}(\pi_{T-1}) - \alpha_{T-1} \mathcal{H}_0 ] \\ \color{green}{\alpha^{\star}_{T-1}} &\color{green}{=} \color{green}{\arg\min_{\alpha_{T-1} \geq 0} \mathbb{E}_{(s_{T-1}, a_{T-1}) \sim \rho_{\pi^{\star}}} [ \alpha_{T-1} \mathcal{H}(\pi^{\star}_{T-1}) - \alpha_{T-1}\mathcal{H}_0 ]} \end{aligned} πT1αT1=argπT1maxE(sT1,aT1)ρπ[QT1(sT1,aT1)+αT1H(πT1)αT1H0]=argαT10minE(sT1,aT1)ρπ[αT1H(πT1)αT1H0]

绿色部分更新 α T − 1 ⋆ \alpha_{T-1}^{\star} αT1 的公式与上面蓝色部分更新 α T ⋆ \alpha_{T}^{\star} αT 的公式具有相同的形式。通过不断重复上述过程,我们可以通过最小化相同的目标函数(译者注:这里的目标函数中的策略不是最优的)来学习每个时间步的最优热度参数:
J ( α ) = E a t ∼ π t [ − α log ⁡ π t ( a t ∣ π t ) − α H 0 ] J(\alpha)=\mathbb{E}_{a_{t} \sim \pi_{t}}\left[-\alpha \log \pi_{t}\left(a_{t} | \pi_{t}\right)-\alpha \mathcal{H}_{0}\right] J(α)=Eatπt[αlogπt(atπt)αH0]
除了根据最小化 J ( α ) J(α) J(α) 来显式地学习 α α α 之外本部分算法与SAC算法没有任何区别(见下图)。
在这里插入图片描述

算法实现

总体流程

而SAC with Automatically Adjusted Temperature则是对SAC的延申,其认为在SAC中给定对policy和entropy的固定组合会导致reward不断变化下训练不稳定。应当引入 α \alpha α 自动调整,在policy探索到新的区域时最后的action不清楚,应调大 α \alpha α 鼓励agent去探索更多空间,而当区域探索比较充分时,最有action已经比较确定, α \alpha α 应当调小。
在这里插入图片描述

代码实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值