论文笔记之Soft Q-learning

论文地址,点这里
源码地址,点这里
参考:
soft Q-learning-v1
soft Q-learning-v2
soft Q-learning-v3

本人阅读目的:
这篇文章是Soft Actor-Critic的基础,建议在阅读SAC之前,先读懂这篇文章。(2017年发表于顶会ICML)
文章核心:证明Energy-based policyMaximum-entropy强化目标函数的最优解

这篇文章在我们通常的强化目标的基础上,增了一项Entropy项,优化期望累计奖励的同时优化熵项。

以下是我第一次看到这个算法简介的时候心中的疑惑
Q 1 Q1 Q1:为什么要增加Entropy项呢?
见 Abstract第4点。

Q 2 Q2 Q2:什么是能量模型(Energy-based model)?
参考:
能量模型:EBM

Q 3 Q3 Q3:什么是麦克斯韦-玻尔兹曼分布
参考:
PDF推导过程
百度百科

Abstract

  1. 作者提出了本文的核心算法——Soft Q-Learning算法。这是一种在最大化期望累计奖励的基础上,最大化熵项的算法,也就是说该算法的优化目标是累计奖励和熵(Entropy)的和(针对每一个step)。
  2. 我们旨在通过这个算法去学习一种可以在连续状态和动作空间下的目标策略函数——基于能量模型的策略,这个策略满足玻尔兹曼分布,我们在这个分布下对连续动作进行采样,然后输出这个动作。
  3. 但是这个分布下很难采样,因此作者通过变分梯度下降SVGD去训练一个和本文这个分布相同的神经网络,这样采样就变成了神经网络的输出,这样就容易多了。
  4. SQL的好处在于①探索性强:可以在多模态任务重找到最佳的方案,multimode就是Agents要去规划多个目标,比如既要走得快,又要找到宝藏。②更加鲁棒:目标中加入熵项会让Agent学习到所有动作,当环境中加入干扰噪声,那么之前规划好的动作可能就不能用了,那么此时就可以用其余动作。③组合性更强:通过最大熵,policy不仅仅学到一种解决任务的方法,而是所有all。因此这样的policy就更有利于去学习新的任务。比如我们一开始是学走,然后之后要学朝某一个特定方向走,意味着当前task训练的结果可以和其他task连接组合起来。

1.Introduce

作者指出先前一些算法的随机策略进行探索主要有2种形式:

  1. 启发式:比如DDPG的Actor输出,然后加上一个一维高斯噪声(OU噪声)。
  2. 高熵的探索策略:熵越大,体系不确定性越大,典型的比如uniform策略,每一种动作的概率都是相同的。

本文的强化学习算法最后优化出的策略也是随机策略,但是不同于上述2种,这种策略的得出需要修改经典的RL目标函数——最大化期望累计奖励。该随机策略如下图所示:
在这里插入图片描述

如上图所示:不同于确定性策略,那种输出是使得 Q Q Q值最大对应的策略,输出的每个策略都是唯一确定的(即贪婪且确定)。SQL则不同,他的输出是一个玻尔兹曼分布,包括了每个动作的可能性,当然不同动作采样概率有高有低,概率大容易被采到并输出,概率小的较难被输出
Note:
这里的随机策略和我们之前接触的随机策略,比如softmax策略、一维高斯策略、多维高斯策略不一样,这三种虽然都是随机策略,但是通过训练,在某个状态输出的动作都是一个确定性动作,或者是在确定性动作基础上有个小的噪声加成变动。而SQL的这种随机策略通过训练最后输出的是一个分布!

这样做的好处就是:

  1. 某个任务输出的这种策略可以作为下个任务的初始化策略。比如Agent第一个任务是学会向前走,然后就可以用学会的这种策略作为下个任务:跑和跳的初始策略分布,通过进一步微调来达到学会跑跳任务的目标。
  2. 这种较好的探索机制可以在多模式任务(比如既要Agents走得好,又要节约能源)中寻找出
  3. 抗干扰性更强,最典型的例子就是迷宫了,如下图示:在这里插入图片描述
    本来已经找到最佳路径了,但是突然出现干扰,如果是Q-learning这种输出靠着最大 Q Q Q对应的动作,那就完蛋了,Agent就会一直在干扰出徘徊。但是SQL就不一样了,它的策略是个概率分布,对于所有动作都会有被选择到的,只不过概率有高有低罢了。那么当遇到干扰,Agent就有机会找到下面这条路径,这就是SQL的一大优势。

Note:

  1. 对以上3个好处的详细解释参考:伯克利提出强化学习新方法,可让智能体同时学习多个解决方案

先前也有很多算法已经尝试过训练出这种随机策略(通过最大化熵目标),但要么就是无法应用于连续状态动作空间、高维空间,要么就是用一个简单的参数表示策略网络,比如高斯策略。因此本文将提出一种可以训练处应用于连续状态动作高维空间的随机策略

这种随机策略是怎么来的呢?作者借鉴了基于能量的模型,也就是说将我们的策略刻画成能量模型(EBM)的样子,其中能量模型中的能量函数 E E E相当于我们的soft-Q函数,这个软Q是最大化目标函数(含熵项)得来的。这个策略分布在高维下进行采样是很麻烦的一件事,因此作者提出训练一个近似EBM策略分布的神经网络,将采样近似等效成网络的输出,这样就不怕维度问题了!和之前的算法一样,这个采样网络可被更新,即EBM得到更新,另一方面用于动作选择。因为在基于AC算法中,这个采样网络就相当于Actor网络(policy-based算法中我们常用网络来表示策略 π \pi π)。
因此作者指出了一个AC与Q-learning算法的关联:将熵作为正则化项的AC算法可以看成是一种近似的Q-learning算法,其中Actor网络相当于采样器。

2.Preliminaries

2.1.Maximum Entropy Reinforcement Learning

从这里开始慢慢引入正题了
我们之前的RL优化目标:
π s t d ∗ = arg max ⁡ π ∑ t E ( s t , a t ) ∼ ρ π [ r ( s t , a t ) ] (1) \pi_{std}^* = \argmax_\pi \mathop{\sum}\limits_t \mathbb{E}_{(s_t,a_t)\sim\rho^\pi}[r(s_t,a_t)] \tag{1} πstd=πargmaxtE(st,at)ρπ[r(st,at)](1)Note:

  1. ρ \rho ρ是遵循目标策略 π \pi π下所产生的轨迹分布,是已经访问过的状态,即同轨策略分布
  2. 个人认为RL的目标(objective)应该是最大化期望累计奖励(先期望再累加),也就是最大化 Q Q Q值: π s t d ∗ = arg max ⁡ π E ( s t , a t ) ∼ ρ π [ ∑ t r ( s t , a t ) ] \pi_{std}^* = \argmax_\pi \mathbb{E}_{(s_t,a_t)\sim\rho^\pi}[\mathop{\sum}\limits_t r(s_t,a_t)] πstd=πargmaxE(st,at)ρπ[tr(st,at)]

含熵优化目标
π M a x E n t ∗ = arg max ⁡ π ∑ t E ( s t , a t ) ∼ ρ π [ r ( s t , a t ) + α H ( π ( ⋅ ∣ s t ) ) ] (2) \pi_{MaxEnt}^* = \argmax_\pi \mathop{\sum}\limits_t \mathbb{E}_{(s_t,a_t)\sim\rho^\pi}[r(s_t,a_t) + \alpha \mathcal{H}(\pi(\cdot|s_t))] \tag{2} πMaxEnt=πargmaxtE(st,at)ρπ[r(st,at)+αH(π(st))](2)Note:

  1. 超参数 α \alpha α用来决定单步奖励 r r r相对熵项的重要性。当 α → 0 \alpha\to0 α0,就变成了标准的RL目标。
  2. 同理,个人认为最大化含熵目标也应该是先期望后累加: π M a x E n t ∗ = arg max ⁡ π E ( s t , a t ) ∼ ρ π [ ∑ t r ( s t , a t ) + α H ( π ( ⋅ ∣ s t ) ) ] \pi_{MaxEnt}^* = \argmax_\pi \mathbb{E}_{(s_t,a_t)\sim\rho^\pi}[\mathop{\sum}\limits_t r(s_t,a_t)+\alpha\mathcal{H}(\pi(\cdot|s_t))] πMaxEnt=πargmaxE(st,at)ρπ[tr(st,at)+αH(π(st))]
  3. 这么做的意义在于,增加信息熵项,那么优化的时候,就会使得输出的每一个动作的概率尽量分散,因为在一个集合中,体系越混乱,种类越趋于平均,熵值越大。比如Uniform策略就是一个高熵值策略。
  4. 上述公式(1)(2)是没有设置折扣因子的,可通过增加折扣因子 γ \gamma γ来完善上述公式(2),详见附录A,并且之后的讨论都是有折扣因子的。但个人认为附录A中的一些表达式似乎是有些问题,以下是我的见解,可以和附录A中的对比:
    对于含折扣因子的最优策略: π M a x E n t ∗ = arg max ⁡ π ∑ t E ( s t , a t ) ∼ ρ π [ ∑ l = t ∞ γ l − t E ( s l , a l ) [ r ( s l , a l ) + α H ( π ( ⋅ ∣ s l ) ) ∣ s t , a t ] ] 同 理 : π M a x E n t ∗ = arg max ⁡ π E ( s t , a t ) ∼ ρ π [ ∑ l = t ∞ γ l − t ( r ( s l , a l ) + α H ( π ( ⋅ ∣ s l ) ) ) ∣ ( s t , a t ) ] \pi^*_{MaxEnt}=\argmax_\pi\sum_t\mathbb{E}_{(s_t,a_t)\sim\rho^\pi}[\sum^\infty_{l=t}\gamma^{l-t}\mathbb{E}_{(s_l,a_l)}[r(s_l,a_l)+\alpha\mathcal{H}(\pi(\cdot|s_l))|s_t,a_t]]\\同理:\pi^*_{MaxEnt}=\argmax_\pi\mathbb{E}_{(s_t,a_t)\sim\rho^\pi}[\sum^\infty_{l=t}\gamma^{l-t}(r(s_l,a_l)+\alpha\mathcal{H}(\pi(\cdot|s_l)))|(s_t,a_t)] πMaxEnt=πargmaxtE(st,at)ρπ[l=tγltE(sl,al)[r(sl,al)+αH(π(sl))st,at]]πMaxEnt=πargmaxE(st,at)ρπ[l=tγlt(r(sl,al)+αH(π(sl)))(st,at)]然后是软 Q Q Q,这个倒是没啥问题,和经典的贝尔曼等式差不多: Q s o f t π ( s , a ) = r 0 + E τ ∼ π , s 0 = s , a o = a [ ∑ t = 1 ∞ γ t ( r t + H ( π ( ⋅ ∣ s t ) ) ) ] τ = ( s 0 , a 0 , s 1 , a 1 ⋯   ) Q^\pi_{soft}(s,a)=r_0+\mathbb{E}_{\tau\sim\pi,s_0=s,a_o=a}[\sum^\infty_{t=1}\gamma^t(r_t+\mathcal{H}(\pi(\cdot|s_t)))]\\\tau=(s_0,a_0,s_1,a_1\cdots) Qsoftπ(s,a)=r0+Eτπ,s0=s,ao=a[t=1γt(rt+H(π(st)))]τ=(s0,a0,s1,a1)然后是性能度量(和原论文有出入): J ( π ) = ∑ t E ( a t , a t ) ∼ ρ π [ r ( s t , a t ) + α H ( π ( ⋅ ∣ s t ) ) ] 同 理 : J ( π ) = E ( s t , a t ) ∼ ρ π [ ∑ t r ( s t , a t ) + α H ( π ( ⋅ ∣ s t ) ) ] \mathbf{J}(\pi)=\sum_t\mathbb{E}_{(a_t,a_t)\sim\rho^\pi}[r(s_t,a_t)+\alpha\mathcal{H}(\pi(\cdot|s_t))]\\同理:\mathbf{J}(\pi)=\mathbb{E}_{(s_t,a_t)\sim\rho^\pi}[\mathop{\sum}\limits_t r(s_t,a_t)+\alpha\mathcal{H}(\pi(\cdot|s_t))] J(π)=tE(at,at)ρπ[r(st,at)+αH(π(st))]J(π)=E(st,at)ρπ[tr(st,at)+αH(π(st))]

2.2.Soft Value Functions and Energy-based Models

最大化含熵目标函数给我们训练出随机策略提供了框架,接下来需要设计出一个策略模型来表示这个随机策略。作者选用了能量模型而非高斯模型,因为能量模型更加适用于复杂、多模式的任务。
基于能量模型的策略定义为:
π ( a t ∣ s t ) ∝ exp ⁡ ( − E ( s t , a t ) ) (3) \pi(a_t|s_t) \propto \exp(-\mathcal{E}(s_t,a_t))\tag{3} π(atst)exp(E(st,at))(3)
Note:

  1. 其中 E \mathcal{E} E是能量模型的能量函数。作者将其设置为软Q函数,即 E = − 1 α Q s o f t ( s t , a t ) \mathcal{E}= -\frac{1}{\alpha}Q_{soft}(s_t,a_t) E=α1Qsoft(st,at)。因此,软 Q Q Q函数在SQL中也叫负能量函数
  2. EBM模型有个特点,就是 e x e^x ex单调函数,也就是说, π \pi π的概率密度函数的大体趋势完全是跟着 E \mathcal{E} E来的,即:在这里插入图片描述
  3. 这里 ∝ \propto 的处理往往是除以一个归一化常量 ∫ exp ⁡ ( E ( s t , a ) ) d a \int \exp(\mathcal{E}(s_t,a))\mathrm{d}a exp(E(st,a))da

接下来给出了2个Theorem:(证明见原论文附录
Theorem 1
定义软 Q Q Q和软 V V V函数为
Q s o f t ∗ ( s t , a t ) = r t + E ( s t + 1... ) ∼ ρ π [ ∑ ∞ l = 1 γ l ( r t + l + α H ( π M a x E n t ∗ ( ⋅ ∣ s t + l ) ) ) ] (4) Q_{soft}^*(s_t, a_t) = r_t + \mathbb{E}_{(s_{t+1...})\sim\rho^\pi}[\mathop{\sum^\infty}\limits_{l=1}\gamma^l(r_{t+l}+\alpha\mathcal{H}(\pi^*_{MaxEnt}(\cdot|s_{t+l})))]\tag{4} Qsoft(st,at)=rt+E(st+1...)ρπ[l=1γl(rt+l+αH(πMaxEnt(st+l)))](4) V s o f t ∗ ( s t ) = α log ⁡ ∫ A exp ⁡ ( 1 α Q s o f t ∗ ( s t , a ′ ) ) d a ′ (5) V^*_{soft}(s_t)= \alpha\log\int_{\mathcal{A}}\exp(\frac{1}{\alpha}Q^*_{soft}(s_t, a'))\mathrm{d}a' \tag{5} Vsoft(st)=αlogAexp(α1Qsoft(st,a))da(5)那么最大化含熵目标的最优策略:
π M a x E n t ∗ ( a t ∣ s t ) = exp ⁡ ( 1 α ( Q s o f t ∗ ( s t , a t ) − V s o f t ∗ ( s t ) ) ) (6) \pi^*_{MaxEnt}(a_t|s_t)=\exp(\frac{1}{\alpha}(Q^*_{soft}(s_t,a_t)-V^*_{soft}(s_t))) \tag{6} πMaxEnt(atst)=exp(α1(Qsoft(st,at)Vsoft(st)))(6)定理一证明如下:
Theorem 4(策略提升定理)
给定一个策略 π \pi π,定义新策略 π ~ \tilde{\pi} π~
π ~ ( ⋅ ∣ s ) ∝ exp ⁡ ( Q s o f t π ( s , ⋅ ) ) , \tilde{\pi}(\cdot|s)\propto\exp(Q^\pi_{soft}(s,\cdot)), π~(s)exp(Qsoftπ(s,)),那么当 Q Q Q ∫ exp ⁡ ( Q ( s , a ) ) d a \int\exp(Q(s,a))\mathrm{d}a exp(Q(s,a))da都有界时,则对于 ∀ s , a \forall s,a s,a Q s o f t π ~ ( s , a ) ≥ Q s o f t π ( s , a ) Q_{soft}^{\tilde{\pi}}(s,a)\ge Q^\pi_{soft}(s,a) Qsoftπ~(s,a)Qsoftπ(s,a)
Note:

  1. 要证明Theorem 1,需要先证明Theorem 4,在证明定理四之前,需要对式(4)做一个转换:在这里插入图片描述用公式表达如下:
    在这里插入图片描述
  2. 需要注意的是 H \mathcal{H} H其实是从下个状态 s t + 1 s_{t+1} st+1开始的。
  3. 上面是省略了温度系数 α \alpha α,如果不省略的话,如下图所示:在这里插入图片描述

定理四证明如下:(参考Sutton强化学习第四章策略提升)
在这里插入图片描述Note:

  1. V s o f t ( s ) V_{soft}(s) Vsoft(s)不含动作 a a a,所以遇到对动作 a a a的积分可以直接提出去。
  2. τ \tau τ做下标的这种写法并不是严格意义上期望下标的写法,在RL中他只是为了表达后面随机变量所需变量是哪些,是基于马尔科夫链的轨迹表示。他们并不是真正意义上的求和,而是拼在一起,因为求和对象的每一部分都是来自于不同的随机变量。或者也可以写成 E < s t , a t , r t + 1 , s t + 1 > ∼ ρ π ~ \mathbb{E}_{<s_t,a_t,r_{t+1},s_{t+1}>\sim\rho^{\tilde{\pi}}} E<st,at,rt+1,st+1>ρπ~

紧接着定理一的证明也就出来了:
在这里插入图片描述下面省略温度系数 α \alpha α
在这里插入图片描述

Note:

  1. 结合公式(2),这个定理1揭示了:基于能量模型的最优策略是最大化含熵目标的最优解。
  2. 基于能量模型的策略 π ( ⋅ ∣ s ) ∝ exp ⁡ ( Q s o f t π ( s , ⋅ ) ) \pi(\cdot|s)\propto\exp(Q^\pi_{soft}(s,\cdot)) π(s)exp(Qsoftπ(s,))和之前的greedy、 ϵ \epsilon ϵ-greedy策略一样的,都是可以促进策略提升的好策略。
  3. 证明过程中,为了简便,省略了 α \alpha α
  4. 新策略 π ~ \tilde{\pi} π~对值函数的提升与之前的 g r e e d y 、 ϵ − g r e e d y greedy、\epsilon-greedy greedyϵgreedy策略效果一模一样,证明过程也类似,可参考《Sutton强化学习》第四章。
  5. 定理一实质上是SQL的核心之一,它揭示了从Soft Value Function定义(公式(5))出发,去连接Energy-based(公式(6)),如下图所示:在这里插入图片描述

Theorem 2:
作者提出了一个软贝尔曼等式,并且揭示了软 Q Q Q满足软贝尔曼等式:(证明见附录):
Q s o f t ∗ ( s t , a t ) = r t + γ E s t + 1 ∼ ρ π [ V s o f t ∗ ( s t + 1 ) ] (7) Q^*_{soft}(s_t,a_t) = r_t + \gamma\mathbb{E}_{s_{t+1}\sim \rho^\pi}[V^*_{soft}(s_{t+1})]\tag{7} Qsoft(st,at)=rt+γEst+1ρπ[Vsoft(st+1)](7)
Note:

  1. 软贝尔曼等式其实和经典贝尔曼等式形式一模一样,说直白点,只是值函数们加了个“soft”下标,就像最优值函数只是比普通值函数多了个“*”。
  2. 公式(7)是Soft Q-learning的核心之一,它揭示了从值函数定义(公式(4)(5))出发,连接了Maximum Entropy Objective(公式(7))和Energy-based(公式(6)),如下图所示:在这里插入图片描述

证明如下:(忽略 α \alpha α)
在这里插入图片描述

3.Training Expressive Energy-Based Models via Soft Q-Learning

  1. 接下来作者将会导出一种Q-Learning风格的算法:Soft Q-Learning(以下简称SQL)。
  2. SQL基于Soft-Q函数。
  3. 算法的采样来自于一个近似于能量模型的神经网络,这样就可以应付高维度的状态动作任务。

3.1.Soft Q-Iteration

这一小节作者给出Soft-Q和Soft-V的收敛定理

Soft Q-iteration
Theorem 3:(证明见附录A.2)
当满足:

  1. Q s o f t , V s o f t Q_{soft},V_{soft} Qsoft,Vsoft有界。
  2. ∫ A exp ⁡ ( 1 α Q s o f t ( ⋅ , a ′ ) ) d a ′ < ∞ \int_{\mathcal{A}}\exp(\frac{1}{\alpha}Q_{soft}(\cdot,a'))\mathrm{d}a' < \infty Aexp(α1Qsoft(,a))da<
  3. Q s o f t ∗ < ∞ Q^*_{soft}<\infty Qsoft<

对 ∀ s t , a t , Q s o f t ( s t , a t ) = r t + γ E s t + 1 ∼ ρ π [ V s o f t ( s t + 1 ) ] (8) 对\forall s_t,a_t,Q_{soft}(s_t,a_t) = r_t + \gamma\mathbb{E}_{s_{t+1}\sim \rho^\pi}[V_{soft}(s_{t+1})]\tag{8} st,at,Qsoft(st,at)=rt+γEst+1ρπ[Vsoft(st+1)](8)
对 ∀ s t , V s o f t ( s t ) = α log ⁡ ∫ A exp ⁡ ( 1 α Q s o f t ( s t , a ′ ) ) d a ′ (9) 对\forall s_t,V_{soft}(s_t)= \alpha\log\int_{\mathcal{A}}\exp(\frac{1}{\alpha}Q_{soft}(s_t, a'))\mathrm{d}a' \tag{9} st,Vsoft(st)=αlogAexp(α1Qsoft(st,a))da(9)通过不断迭代更新,最后都将收敛,并且分别至 Q s o f t ∗ Q^*_{soft} Qsoft V s o f t ∗ V^*_{soft} Vsoft

证明如下:
定义Soft值函数迭代算子为 T \mathcal{T} T,以及 T Q ( s , a ) = r ( s , a ) + γ E s ′ ∼ p s [ log ⁡ ∫ exp ⁡ Q ( s ′ , a ′ ) d a ′ ] \mathcal{T}Q(s,a)=r(s,a)+\gamma\mathbb{E}_{s'\sim p_s}[\log\int\exp Q(s',a')\mathrm{d}a'] TQ(s,a)=r(s,a)+γEsps[logexpQ(s,a)da]在这里插入图片描述
划红线的意思就是:迭代之后 Q 1 、 Q 2 Q_1、Q_2 Q1Q2之间的差距在缩小,而又因为策略提升定理告诉我们,对 ∀ s , a , Q ( s , a ) \forall s,a,Q(s,a) s,a,Q(s,a)会不断增加,也就是说随着迭代 T \mathcal{T} T次数增多,(假设 Q 2 Q_2 Q2是最优值函数) Q 1 Q^1 Q1会达到 Q 2 Q^2 Q2,也就是说 Q 1 → Q ∗ Q_1\to Q^* Q1Q,证毕。

Note:

  1. 公式(8)、(9)就是软贝尔曼等式的回溯操作。
  2. 最优策略就是公式(8)、(9)不断进行迭代直至收敛所得到的。
  3. 记Soft贝尔曼迭代算子为 T \mathcal{T} T
  4. 这种Soft Q-Iteration实际上无法用于连续且高维的状态动作空间或者连续空间,注意看期望的下标,他需要采集到所有的状态,对于公式(9)也需要状态空间的所有动作。我们实际采样的样本也是有限的。
  5. 输出的最优策略,即基于能量模型的策略 π \pi π很难被采样

3.2.Soft Q-Learning

这一节就是用来提出解决3.1节收敛定理无法用于实际的一种Q-Learning方法——Soft Q-Learning,也就是说要向Q-Learning之于经典贝尔曼一样,在有限的样本集中训练Agent,使得 ∣ T Q − Q ∣ |\mathcal{T}Q-Q| TQQ在所有动作、状态上通过随机梯度下降达到最小化。
首先对于连续高维特征的动作状态空间,最好的办法就是值函数近似,可以用神经网络 θ \theta θ实现:
Q s o f t ( s t , a t ) → Q s o f t θ ( s t , a t ) Q_{soft}(s_t,a_t)\to Q^\theta_{soft}(s_t,a_t) Qsoft(st,at)Qsoftθ(st,at)那么对于有限样本集的问题,参考Q-Learning与贝尔曼等式的关系,可以通过采样求平均,转为增量式实现,然后通过对MSE-Loss进行随机梯度下降进行优化即可:
J Q ( θ ) = E s t ∼ q s t , a t ∼ q a t [ 1 2 ( Q ^ s o f t θ ˉ ( s t , a t ) − Q s o f t θ ( s t , a t ) ) 2 ] (11) \mathbf{J}_Q(\theta) = \mathbb{E}_{s_t\sim q_{s_t}, a_t\sim q_{a_t}}[\frac{1}{2}(\hat{Q}_{soft}^{\bar{\theta}}(s_t,a_t)-Q^\theta_{soft}(s_t,a_t))^2]\tag{11} JQ(θ)=Estqst,atqat[21(Q^softθˉ(st,at)Qsoftθ(st,at))2](11)Note:

  1. q s t , q a t q_{s_t},q_{a_t} qst,qat是建立在 S , A \mathcal{S}, \mathcal{A} S,A上任意的分布。但是一般都会选择当前策略—— π ( a t ∣ s t ) ∝ exp ⁡ ( 1 α Q s o f t θ ( s t , a t ) ) \pi(a_t|s_t)\propto\exp(\frac{1}{\alpha}Q^\theta_{soft}(s_t,a_t)) π(atst)exp(α1Qsoftθ(st,at))
  2. 目标软 Q Q Q Q ^ s o f t θ ˉ ( s t , a t ) = r t + γ E s t + 1 ∼ ρ π [ V s o f t θ ˉ ( s t + 1 ) ] \hat{Q}_{soft}^{\bar{\theta}}(s_t,a_t) = r_t + \gamma \mathbb{E}_{s_{t+1}\sim\rho^\pi}[V_{soft}^{\bar{\theta}}(s_{t+1})] Q^softθˉ(st,at)=rt+γEst+1ρπ[Vsoftθˉ(st+1)]
  3. 比较麻烦的就是这个 V V V为了适应随机优化,需要通过IS技术将积分转为期望,然后通过采样取平均即可,具体做法是: V s o f t ( s t ) = α log ⁡ ∫ A exp ⁡ ( 1 α Q s o f t ( s t , a ′ ) ) d a ′ = α log ⁡ ∫ A q a ′ ( a ′ ) q a ′ ( a ′ ) exp ⁡ ( 1 α Q s o f t ( s t , a ′ ) ) d a ′ = α log ⁡ E q a ′ [ exp ⁡ ( 1 α Q s o f t θ ( s t , a ′ ) ) q a ′ ( a ′ ) ] (10) V_{soft}(s_t)= \alpha\log\int_{\mathcal{A}}\exp(\frac{1}{\alpha}Q_{soft}(s_t, a'))\mathrm{d}a'\\ = \alpha\log\int_{\mathcal{A}}\frac{q_{a'}(a')}{q_{a'}(a')}\exp(\frac{1}{\alpha}Q_{soft}(s_t, a'))\mathrm{d}a'\\ =\alpha\log \mathbb{E}_{q_{a'}}[\frac{\exp(\frac{1}{\alpha}Q_{soft}^\theta(s_t,a'))}{q_{a'}(a')}]\tag{10} Vsoft(st)=αlogAexp(α1Qsoft(st,a))da=αlogAqa(a)qa(a)exp(α1Qsoft(st,a))da=αlogEqa[qa(a)exp(α1Qsoftθ(st,a))](10)其中 q a ′ q_{a'} qa可以是任意的分布,常规是选用均一策略,作者推荐最好使用当前策略 π ( a t ∣ s t ) ∝ exp ⁡ ( 1 α Q s o f t θ ( s t , a t ) ) \pi(a_t|s_t)\propto\exp(\frac{1}{\alpha}Q^\theta_{soft}(s_t,a_t)) π(atst)exp(α1Qsoftθ(st,at))

采样网络
但是从当前策略采样并不容易,因此作者设计了一个近似这个分布的神经网络,神经网络的输出就是采样值。

3.3.Approximate Sampling and Stein Variational Gradient Descent (SVGD)

这一节就是讲如何设计这个采样网络的,这个网络相当于一个策略分布。
一般策略分布有2种方法,一种是MCMC,但这种方法计算难度大。另一种就是本文的Amortized SVGD(关于SVGD即Stein变分梯度下降可参考我的另一篇:Stein变分梯度下降),这是一种类似于SGD的优化方法。
这个采样网络基于能量模型,并使用Amortized SVGD训练,它有三个好处:

  1. 优化出来的采样网络有比较快的采集速度。
  2. SVGD是一种VI方法,对EBM的后验概率分布有准确的估计。
  3. 当我们把EBM这个策略变成网络的时候,Soft-QL算法就类似于AC算法了,而AC算法我们都知道,实现起来简单高效,也就是说,通过amortized-SVGD优化出的采集网络会使得我们整体算法可行性提升。

创建采样网络
定义采样网络: a t = f ϕ ( ξ ; s t ) a_t=f^\phi(\xi;s_t) at=fϕ(ξ;st),这是一个输入为状态,输出为动作的神经网络,用于产生SVGD所需的粒子 ξ \xi ξ为服从标准正态分布的噪声。Energy-based Policy是目标分布,用参数 θ \theta θ表示,我们的估计分布用 π ϕ ( a t ∣ s t ) \pi^\phi(a_t|s_t) πϕ(atst)表示。
Note:

  1. 粒子理解成样本即可。
  2. 这里采样网络 f f f使用了reparameterization trick(重采样)。因为如果不用该技术的话,粒子是由 π ϕ ( ⋅ ∣ s t ) \pi^\phi(\cdot|s_t) πϕ(st)产生的,那么目标函数 J J J对粒子 a t ( i ) a_t^{(i)} at(i)的求导 Δ a \Delta a Δa是没有包含 ϕ \phi ϕ的梯度的,因为 a a a π ϕ \pi^\phi πϕ中采样的话,这部分 Δ ϕ = N o n e \Delta\phi=None Δϕ=None。引入重采样技术,即引入一个积分转换 a t = f ϕ ( ξ ; s t ) a_t=f^\phi(\xi;s_t) at=fϕ(ξ;st),那么采样就变成了 ξ \xi ξ的采样 ξ ∼ N ( 0 , 1 ) \xi\sim\mathcal{N}(0,1) ξN(0,1),这样是可以保留 ϕ \phi ϕ的梯度的,为后续 ϕ \phi ϕ的更新做准备。也就是说 Δ a t ∣ a = f ϕ ( ⋅ ∣ s t ) \Delta a_t|_{a=f^\phi(\cdot|s_t)} Δata=fϕ(st)是包含 ϕ \phi ϕ的梯度的。
  3. 但个人认为引入重采样确实是必要的步骤,但是会引起一个问题,就是原来的 a t ∼ π ( ⋅ ∣ s t ) a_t\sim\pi(\cdot|s_t) atπ(st)可以是任意分布,重采样要求 π \pi π得是高斯分布 N ( μ , σ ) \mathcal{N}(\mu,\sigma) N(μ,σ),均值标准差来自于 f f f网络。也就是说最后输出的分布是一个逼近EBM的高斯分布。

我们的目的就是训练出参数 ϕ \phi ϕ,使得估计分布和目标分布一致,我们通常用KL散度来衡量2个分布之间的差异,因此最小化KL散度就是我们优化出最佳采样网络的目标函数:
J π ( ϕ ; s t ) = D K L ( π ϕ ( ⋅ ∣ s t ) ∣ ∣ exp ⁡ ( 1 α ( Q s o f t θ ( s t , ⋅ ) − V s o f t θ ) ) (12) \mathbf{J}\pi(\phi;s_t)=D_{KL}(\pi^\phi(\cdot|s_t)||\exp(\frac{1}{\alpha}(Q^\theta_{soft}(s_t,\cdot)-V^\theta_{soft}))\tag{12} Jπ(ϕ;st)=DKL(πϕ(st)exp(α1(Qsoftθ(st,)Vsoftθ))(12)Note:

  1. SVGD使得这一步不需要调用库里的函数进行一板一眼的计算,是不出现在算法里的,直接计算式(13)就好了。

接下来就是SVGD的核心
(建议不了解SVGD的先去看下论文,然后再来看这部分内容,关于SVGD我也是看了好久才入门。)
当粒子们 a t ( i ) = f ϕ ( ξ ( i ) ; s t ) a_t^{(i)}=f^\phi(\xi^{(i)};s_t) at(i)=fϕ(ξ(i);st)沿着正确的方向更新 ϕ \phi ϕ,KL散度就能以最快的速度下降,那什么才是正确的方向呢? Δ f ϕ ( ⋅ ; s t ) \Delta f^\phi(\cdot;s_t) Δfϕ(;st)就是KL散度的梯度下降方向,也就是KL散度下降最陡的方向:
Δ f ϕ ( ⋅ ; s t ) = E a t ∼ π ϕ [ κ ( a t , f ϕ ( ⋅ ; s t ) ) ∇ a ′ Q s o f t θ ( s t , a ′ ) ∣ a ′ = a t + α ∇ a ′ κ ( a ′ , f ϕ ( ⋅ ; s t ) ) ∣ a ′ = a t ] (13) \Delta f^\phi(\cdot;s_t) = \mathbb{E}_{a_t\sim\pi^\phi}[\kappa(a_t,f^\phi(\cdot;s_t))\nabla_{a'}Q^\theta_{soft}(s_t, a')|_{a'=a_t}\\+\alpha\nabla_{a'}\kappa(a',f^\phi(\cdot;s_t))|_{a'=a_t}]\tag{13} Δfϕ(;st)=Eatπϕ[κ(at,fϕ(;st))aQsoftθ(st,a)a=at+αaκ(a,fϕ(;st))a=at](13)Note:

  1. SVGD是在RKHS下的优化算法,最突出的特征就是核函数 k ( ⋅ , ⋅ ) k(\cdot,\cdot) k(,),一般都采用RBF,即高斯核。
  2. 公式(13)和SVGD论文的有所出入,主要在于 log ⁡ p ( x ) ↔ Q θ \log p(x)\leftrightarrow Q^\theta logp(x)Qθ以及多了个 α \alpha α
  3. 本来按SVGD来说,式(13)第一项应该是Stein得分函数,但为啥是 Q s o f t θ ( ⋅ ) Q^\theta_{soft}(\cdot) Qsoftθ()了呢?其实是一样的,做个化简:( V s o f t ( s ) V_{soft}(s) Vsoft(s)不含动作 a a a,所以遇到对动作 a a a的微分可以直接约掉。) s p ( a ′ ) = ∇ a ′ log ⁡ ( exp ⁡ ( 1 α ( Q s o f t θ ( s t , a ′ ) − V s o f t θ ( s t ) ) ) ) = ∇ a ′ 1 α ( Q s o f t θ ( s t , a ′ ) − V s o f t θ ( s t ) = 1 α ∇ a ′ Q s o f t θ ( s t , a ′ ) s_p(a')=\nabla_{a'}\log(\exp(\frac{1}{\alpha}(Q^\theta_{soft}(s_t,a')-V^\theta_{soft}(s_t))))\\=\nabla_{a'}\frac{1}{\alpha}(Q^\theta_{soft}(s_t,a')-V^\theta_{soft}(s_t)\\=\frac{1}{\alpha}\nabla_{a'}Q^\theta_{soft}(s_t,a') sp(a)=alog(exp(α1(Qsoftθ(st,a)Vsoftθ(st))))=aα1(Qsoftθ(st,a)Vsoftθ(st)=α1aQsoftθ(st,a)然后我们把 1 α \frac{1}{\alpha} α1提出去,因此核函数的导数项前面自然就多了个 α \alpha α。至于这个 1 α \frac{1}{\alpha} α1可以无视他,因为最后他会被包含进学习率 η \eta η中。所以我们只需要提供值函数网络的输出结果即可,这是很方便给出的。而且对 a ′ a' a的求导无论是PyTorch还是TF都是很方便的。
  4. 至于这个amortized不知道指的是什么???

但我们最终要的是 ϕ \phi ϕ的梯度,然后去做随机梯度下降去更新 ϕ \phi ϕ,也就是说我们用SVGD来优化出梯度下降的方向,然后通过一定的转换,转换到 ϕ \phi ϕ上,再用另一种我们常见的优化方式,比如SGD来更新 ϕ \phi ϕ。那么这个转换是什么呢: ∂ J π ∂ f ϕ ( ξ ; s t ) ∝ Δ f ϕ \frac{\partial J_\pi}{\partial f^\phi(\xi;s_t)}\propto\Delta f^\phi fϕ(ξ;st)JπΔfϕ,然后我们只需利用链式法则,即可把SVGD的梯度转换到 ϕ \phi ϕ的梯度上:
∂ J π ( ϕ ; s t ) ∂ ϕ ∝ E ξ [ Δ f ϕ ( ξ ; s t ) ∂ f ϕ ( ξ ; s t ) ∂ ϕ ] (14) \frac{\partial \mathbf{J}_\pi(\phi;s_t)}{\partial\phi} \propto\mathbb{E}_\xi[\Delta f^\phi(\xi;s_t)\frac{\partial f^\phi(\xi;s_t)}{\partial \phi}]\tag{14} ϕJπ(ϕ;st)Eξ[Δfϕ(ξ;st)ϕfϕ(ξ;st)](14)Note:

  1. E \mathbb{E} E代表着mini-batch。
  2. SGD或者Adam更新 ϕ \phi ϕ ϕ ← ϕ − η ⋅ ∂ J ∂ ϕ \phi\gets\phi-\eta\cdot\frac{\partial J}{\partial \phi} ϕϕηϕJ
  3. 注意到 f ϕ f^\phi fϕ是一个输入为状态,输出为动作的网络,也就相当于是AC系列算法中的策略网络。

3.4.Algorithm Summary

伪代码如下:
在这里插入图片描述
Note:

  1. 2大网络:采集网络&值函数网络。和AC算法的策略网络和Critic网络形式上很像。
  2. 2大优化算法:SVGD&Adam。对于采集网络:SVGD优化KL散度然后Adam更新参数 ϕ \phi ϕ;对于值函数网络:Adam优化MSE以及更新参数 θ \theta θ
  3. 使用了Target技术做软更新参数 ϕ 、 θ \phi、\theta ϕθ,以及经验池技术 D \mathcal{D} D
  4. 总的来说,Algorithm 1是一种最大化含熵目标随机性策略方法,策略以EBM为模型。

4.Related Work

  1. 虽然SQL基于Q-learning算法,但是他的结构和AC算法很像,比如DDPG。
  2. 后面还揭示了MAP、SQL、DDPG三者的关系。
  3. 揭示了SQL和策略梯度的关系,在附录B中有详细说明。

5.Experiments

6.Discussion and Future Work

最后总结下SQL的特点:

  1. SQL是一种随机性策略算法,不是确定性策略,他的随机性并不像DDPG或者TD3那样的启发式,而是各个动作最终都有一定概率会被选择,只不过有高有低,而不是像Smoothie那样,前期随机性但后期确定性策略。
  2. 使用了采样网络来对难以采样的分布进行动作收集。
  3. 使用IS技术将积分转为期望,从而可以将 V V V加入到随机优化中。
  4. SQL使用了2种优化算法,一种是确定性方向的SVGD,另一种是我们常用的随机性优化方法Adam。
  5. 将采样网络看成是Actor网络的话,SQL的结构和DDPG这种AC算法没什么差异。
  6. 改变了经典的期望累计奖励目标函数,增加了熵项,因此还需要改变贝尔曼等式,重新设计策略评估与策略提升过程。
  7. Theorem 1证明了波尔茨曼策略是最大化含熵目标的最优解
  8. SQL的“S”来自于其EBM模型的分布很像softmax函数,所以截取了“soft”。
  9. 最大化含熵目标的优点:抗干扰强、适用于多模式任务、某个任务输出的这种策略可以作为下个任务的初始化策略、探索性强、鲁棒性强等。缺陷在于SVGD计算复杂度高,因此也可以放弃SVGD,用随机优化来替代,比如SAC算法中就这样做了。
  • 16
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值