在本节中,我们讨论一种策略优化方法,该方法将其转化为概率推断问题。这被称为控制即推断或强化学习即推断,并且在众多研究中已有讨论(例如见[Att03; TS06; Tou09; ZABD10; RTV12; BT12; KGO12; HR17; Lev18; Wat+21])。由此产生的框架也是3.5.4节中讨论的软演员 - 评论家(SAC)方法、3.4.4节中讨论的最大后验策略优化(MPO)方法以及4.1.5节中讨论的模型预测控制(MPC)方法的基础。
图1.7:最优控制的图形模型。
图1.7给出了一个概率模型,它不仅像标准马尔可夫决策过程(MDP)那样描述了状态转移,还引入了一个新变量\(\mathcal{O}_t\)。这个变量是二元的,用于指示在时刻\(t\)的动作是否为最优动作,其概率分布如下:
\[p(\mathcal{O}_t = 1\vert s_t, a_t) = \exp(R(s_t, a_t)) \tag{1.46}\]在上述内容中,我们假设了\(R(s, a) < 0\),这样公式(1.46)就能给出有效的概率。不过,这一假设并非必要,因为我们可以简单地用一个未归一化的势函数\(\phi_t(s_t, a_t)\)来替代似然项\(p(\mathcal{O}_t = 1\vert s_t, a_t)\),这不会影响推断结果。为简洁起见,我们将只写\(p(\mathcal{O}_t)\),而不是\(p(\mathcal{O}_t = 1)\),因为\(1\)只是一个虚拟值。
为简化符号,我们假设动作的先验分布是均匀的,\(p(a_t\vert s_t) = 1/\vert \mathcal{A}\vert\),这不失一般性,因为我们总是可以将一个包含信息的动作先验\(p(a_t\vert s_t)\)纳入势函数\(\phi_t(s_t, a_t)\)中。(我们称其为 “动作先验” 而非策略,因为正如我们下面要解释的,我们将使用后验推断来推导策略。)在这些假设下,当每一步都达到最优时,观察到长度为\(T\)的轨迹\(\boldsymbol{\tau}\)的后验概率为:
\[\begin{align*} p(\boldsymbol{\tau}\vert \mathcal{O}_{1:T}) &\propto p(\boldsymbol{\tau}, \mathcal{O}_{1:T}) \propto \left[p(s_1) \prod_{t = 1}^{T - 1} p_S(s_{t + 1}\vert s_t, a_t) \right] \left[\prod_{t = 1}^{T} p(\mathcal{O}_t\vert s_t, a_t) \right] \\ &= p(s_1) \prod_{t = 1}^{T - 1} p_S(s_{t + 1}\vert s_t, a_t) \exp\left(\sum_{t = 1}^{T} R(s_t, a_t) \right) \tag{1.47} \end{align*}\](通常\(p(s_1)\)是在观测到的初始状态\(s_1\)处的狄拉克函数。)当状态转移是确定性的时候,公式(1.47)的含义最为清晰。在这种情况下,\(p_S(s_{t + 1}\vert s_t, a_t)\)要么是\(1\),要么是\(0\),取决于转移在动态上是否可行。因此我们有:
\[p(\boldsymbol{\tau}\vert \mathcal{O}_{1:T}) \propto \mathbb{I}(p(\boldsymbol{\tau}) \neq 0) \exp\left(\sum_{t = 1}^{T} R(s_t, a_t) \right) \tag{1.48}\]其中第一项决定了\(\boldsymbol{\tau}\)是否可行。在这种情况下,找到使奖励总和最大化的动作序列,等同于推断动作的最大后验(MAP)序列,我们将其记为\(\hat{\boldsymbol{a}}_{1:T}(s_1)\)。(随机转移的情况更为复杂,我们将在后面讨论。)
对于确定性环境,最优策略是开环策略,对应于遵循最优动作序列\(\hat{\boldsymbol{a}}_{1:T}(s_1)\)。(这类似于最短路径规划问题。)然而,在随机环境中,我们需要计算一个闭环策略\(\pi(a_t\vert s_t)\),它基于观测到的状态。为了计算该策略,我们定义以下量:
\[\begin{align} \beta_t(s_t, a_t) &\triangleq p(\mathcal{O}_{t:T}\vert s_t, a_t) \tag{1.49}\\ \beta_t(s_t) &\triangleq p(\mathcal{O}_{t:T}\vert s_t) \tag{1.50} \end{align}\](这些量类似于隐马尔可夫模型(HMM)的前向后向算法中的后向消息 [Rab89]。)使用这些符号,我们可以用以下方式写出最优策略:
\[p(a_t\vert s_t, \mathcal{O}_{t:T}) = \frac{p(s_t, a_t\vert \mathcal{O}_{t:T})}{p(s_t\vert \mathcal{O}_{t:T})} = \frac{p(\mathcal{O}_{t:T}\vert s_t, a_t)p(a_t\vert s_t)p(s_t)}{p(\mathcal{O}_{t:T}\vert s_t)p(s_t)} \propto \frac{\beta_t(s_t, a_t)}{\beta_t(s_t)} \tag{1.51}\]我们可以按如下方式计算后向消息:
\[\begin{align} \beta_t(s_t, a_t) &= \int_{\mathcal{S}} \beta_{t + 1}(s_{t + 1})p_S(s_{t + 1}\vert s_t, a_t)p(\mathcal{O}_t\vert s_t, a_t)ds_{t + 1} \tag{1.52}\\ \beta_s(s_t) &= \int_{\mathcal{A}} \beta_t(s_t, a_t)p(a_t\vert s_t)da_t \propto \int_{\mathcal{A}} \beta_t(s_t, a_t)da_t \tag{1.53} \end{align}\]为简化符号,这里我们假设动作先验\(p(a_t\vert s_t) = 1/\vert \mathcal{A}\vert\) 。(请记住,动作先验与由\(p(a_t\vert s_t, \mathcal{O}_{t:T})\)给出的最优策略是不同的。)
通过在对数空间中进行分析,我们能更深入地理解其中的原理。我们定义:
\[\begin{align} Q(s_t, a_t) &= \log \beta_t(s_t, a_t) \tag{1.54}\\ V(s_t) &= \log \beta_t(s_t) \tag{1.55} \end{align}\]\(V\)的更新公式变为:
\[V(s_t) = \log \sum_{a_t} \exp(Q(s_t, a_t)) \tag{1.56}\]这是一个标准的对数和指数计算,类似于softmax操作。因此我们称它为软价值函数。当\(Q(s_t, a_t)\)的值较大时(可以通过放大所有奖励来确保),这个计算近似于标准的硬最大化操作:
\[V(s_t) = \log \sum_{a_t} \exp(Q(s_t, a_t)) \approx \max_{a_t} Q(s_t, a_t) \tag{1.57}\]对于确定性情况,\(Q\)的更新公式变为常见的形式:
\[Q(s_t, a_t) = \log p(\mathcal{O}_t\vert s_t, a_t) + \log \beta_{t + 1}(s_{t + 1}) = r(s_t, a_t) + V(s_{t + 1}) \tag{1.58}\]其中\(s_{t + 1} = f(s_t, a_t)\)是下一状态。然而,对于随机情况,我们得到:
\[Q(s_t, a_t) = r(s_t, a_t) + \log \mathbb{E}_{p_S(s_{t + 1}\vert s_t, a_t)}[\exp(V(s_{t + 1}))] \tag{1.59}\]这用softmax操作替代了对下一状态的标准期望。这可能导致\(Q\)函数具有乐观性,因为如果存在一个奖励特别高的下一状态(例如中彩票),即使平均来看这种情况不太可能发生,它也会在更新中占据主导地位。这可能导致寻求风险的行为,这被称为乐观偏差(例如见[Mad+17; Cha+21]中的讨论)。我们将在下面讨论针对这个问题的解决方案。
回顾一下,真实的后验概率由下式给出:
\[p(\boldsymbol{\tau}\vert \mathcal{O}_{1:T}) \triangleq p^{*}(\boldsymbol{\tau}) \propto p(s_1) \prod_{t = 1}^{T - 1} p_S(s_{t + 1}\vert s_t, a_t) \exp \left( \sum_{t = 1}^{T} R(s_t, a_t) \right) \tag{1.60}\]在前面的章节中,我们推导了基于最优性变量条件下,关于状态和动作的精确后验概率。然而,一般情况下我们必须对其进行近似。
我们用\(q(\boldsymbol{\tau})\)表示近似后验概率。变分推断对应于(关于\(q\))最小化以下目标函数:
\[D_{\text{KL}} (q(\boldsymbol{\tau}) \| p^{*}(\boldsymbol{\tau})) = - \mathbb{E}_{q(\boldsymbol{\tau})} [\log p^{*}(\boldsymbol{\tau}) - \log q(\boldsymbol{\tau})] \tag{1.61}\]通过进行精确推断,即令\(q(\boldsymbol{\tau}) = p^{*}(\boldsymbol{\tau})\),我们可以将这个损失函数驱动至最小值\(0\),此时\(p^{*}(\boldsymbol{\tau})\)由下式给出:
\[p^{*}(\boldsymbol{\tau}) = p(s_1\vert \mathcal{O}_{1:T}) \prod_{t = 1}^{T - 1} p_S(s_{t + 1}\vert s_t, a_t, \mathcal{O}_{1:T})p(a_t\vert s_t, \mathcal{O}_{1:T})) \tag{1.62}\]不幸的是,这里使用了一种乐观形式的动态模型\(p_S(s_{t + 1}\vert s_t, a_t, \mathcal{O}_{1:T})\),在这种模型中,智能体假设自己直接控制状态分布,而不仅仅是动作分布。我们可以通过使用以下形式的 “因果” 变分后验概率来解决这种乐观偏差问题:
\[q(\boldsymbol{\tau}) = p(s_1) \prod_{t = 1}^{T - 1} p_S(s_{t + 1}\vert s_t, a_t)p(a_t\vert s_t, \mathcal{O}_{1:T}) = p(s_1) \prod_{t = 1}^{T - 1} p_S(s_{t + 1}\vert s_t, a_t)\pi(a_t\vert s_t) \tag{1.63}\]其中\(\pi(a_t\vert s_t)\)是我们希望学习的策略。在确定性转移的情况下,\(p_S(s_{t + 1}\vert s_t, a_t) = \delta(s_{t + 1} - f(s_t, a_t))\) ,我们不需要这种简化,因为\(p_S(s_{t + 1}\vert s_t, a_t, \mathcal{O}_{1:T}) = p_S(s_{t + 1}\vert s_t, a_t)\) 。(并且在这两种情况下,\(p(s_1\vert \mathcal{O}_{1:T}) = p(s_1)\),假设其为狄拉克函数。)现在我们可以将(取负后的)目标函数写为如下形式:
\[\begin{align} -D_{\text{KL}} (q(\boldsymbol{\tau}) \| p^{*}(\boldsymbol{\tau})) &= \mathbb{E}_{q(\boldsymbol{\tau})} \left[ \log p(s_1) + \sum_{t = 1}^{T} (\log p_S(s_{t + 1}\vert s_t, a_t) + R(s_t, a_t)) -\right. \tag{1.64}\\ & \left. - \log p(s_1) - \sum_{t = 1}^{T} (\log p_S(s_{t + 1}\vert s_t, a_t) + \log \pi(a_t\vert s_t)) \right] \tag{1.65}\\ &= \mathbb{E}_{q(\boldsymbol{\tau})} \left[ \sum_{t = 1}^{T} R(s_t, a_t) - \log \pi(a_t\vert s_t) \right] \tag{1.66}\\ &= \sum_{t = 1}^{T} \mathbb{E}_{q(s_t, a_t)}[R(s_t, a_t)] + \mathbb{E}_{q(s_t)} \mathbb{H}(\pi(\cdot\vert s_t)) \tag{1.67} \end{align}\]这就是所谓的最大熵强化学习目标函数 [ZABD10]。我们可以使用3.5.4节中讨论的软演员 - 评论家算法来优化它。
请注意,我们可以通过使用\(p(\mathcal{O}_t = 1\vert s_t, a_t) = \exp(\frac{1}{\alpha}R(s_t, a_t))\)定义最优性变量来调整熵正则化项的大小。这就得到了目标函数:
\[J(\pi) = \sum_{t = 1}^{T} \mathbb{E}_{q(s_t, a_t)}[R(s_t, a_t)] + \alpha\mathbb{E}_{q(s_t)} \mathbb{H}(\pi(\cdot\vert s_t)) \tag{1.68}\]当\(\alpha \to 0\)时(相当于放大奖励),这个目标函数趋近于标准的(未正则化的)强化学习目标函数。
控制即推断与一种称为主动推断的技术密切相关,下面我们将进行解释。有关这种联系的更多细节,见[Mil+20; WIP20; LÖW21; Saj+21; Tsc+20]。
主动推断技术是在神经科学领域发展起来的,该领域对标准的机器学习概念有自己的一套术语。我们从自由能原理开始[Fri09; Buc+17; SKM18; Ger19; Maz+22]。自由能原理等同于在隐变量模型中使用变分推断来进行状态估计(感知)和参数估计(学习)。具体来说,考虑一个隐变量模型\(p(\boldsymbol{z}, \boldsymbol{o}\vert \boldsymbol{\theta})\),其中有隐藏状态\(\boldsymbol{z}\)、观测值\(\boldsymbol{o}\)和参数\(\boldsymbol{\theta}\)。我们将变分自由能定义为:
\[\begin{align} \mathcal{F}(\boldsymbol{o}\vert \boldsymbol{\theta}) = D_{\text{KL}} (q(\boldsymbol{z}\vert \boldsymbol{o}, \boldsymbol{\theta}) \| p(\boldsymbol{z}\vert \boldsymbol{o}, \boldsymbol{\theta})) - \log p(\boldsymbol{o}\vert \boldsymbol{\theta}) = \mathbb{E}_{q(\boldsymbol{z}\vert \boldsymbol{o}, \boldsymbol{\theta})} [\log q(\boldsymbol{z}\vert \boldsymbol{o}, \boldsymbol{\theta}) - \log p(\boldsymbol{o}, \boldsymbol{z}\vert \boldsymbol{\theta})] \geq - \log p(\boldsymbol{o}\vert \boldsymbol{\theta}) \tag{1.69} \end{align}\]它是近似变分后验\(q\)与真实后验\(p\)之间的KL散度,减去一个归一化常数\(\log p(\boldsymbol{o}\vert \boldsymbol{\theta})\),这个常数被称为自由能。状态估计(感知)对应于求解\(\min_{q(\boldsymbol{z}\vert \boldsymbol{o}, \boldsymbol{\theta})} \mathcal{F}(\boldsymbol{o}\vert \boldsymbol{\theta})\),参数估计(模型拟合)对应于求解\(\min_{\boldsymbol{\theta}} \mathcal{F}(\boldsymbol{o}\vert \boldsymbol{\theta})\),就像在期望最大化(EM)算法中一样。(我们也可以像在变分贝叶斯EM中那样,对\(\boldsymbol{\theta}\)进行贝叶斯推断,而不仅仅是计算一个点估计值。)这个EM过程将最小化变分自由能,它是数据的负对数边际似然的上界。换句话说,它调整模型(信念状态和参数),以便更好地预测观测值,这样智能体就会减少意外(最小化预测误差)。
为了将上述自由能原理扩展到决策问题,我们将期望自由能定义如下:
\[\begin{align} \mathcal{G}(\boldsymbol{a}) = \mathbb{E}_{q(\boldsymbol{o}\vert \boldsymbol{a})} [\mathcal{F}(\boldsymbol{o})] = \mathbb{E}_{q(\boldsymbol{o}, \boldsymbol{z}\vert \boldsymbol{a})} [\log q(\boldsymbol{z}\vert \boldsymbol{o}) - \log p(\boldsymbol{o}, \boldsymbol{z})] \tag{1.70} \end{align}\]其中\(q(\boldsymbol{o}\vert \boldsymbol{a})\)是在给定动作序列\(\boldsymbol{a}\)的情况下,对未来观测值的后验预测分布。(我们也可以基于任何观测历史或智能体状态\(\boldsymbol{h}\)进行条件设定,但为简洁起见,我们在符号中省略了这些(以及模型参数\(\boldsymbol{\theta}\))。)我们可以将期望自由能(智能体希望最小化它)分解为两项。首先是内在价值,也称为认知驱动力:
\[\begin{align} \mathcal{G}_{\text{epistemic}}(\boldsymbol{a}) = \mathbb{E}_{q(\boldsymbol{o}, \boldsymbol{z}\vert \boldsymbol{a})} [\log q(\boldsymbol{z}\vert \boldsymbol{o}) - \log q(\boldsymbol{z})] \tag{1.71} \end{align}\]最小化认知驱动力会促使智能体选择能最大化观测值\(\boldsymbol{o}\)和隐藏状态\(\boldsymbol{z}\)之间互信息的动作,从而减少关于隐藏状态的不确定性。(这被称为认知探索。)外在价值,也称为利用项,由下式给出:
\[\begin{align} \mathcal{G}_{\text{extrinsic}}(\boldsymbol{a}) = - \mathbb{E}_{q(\boldsymbol{o}\vert \boldsymbol{a})} [\log p(\boldsymbol{o})] \tag{1.72} \end{align}\]最小化外在价值会促使智能体选择能产生与先验相符观测结果的动作。例如,如果智能体预测当它按下开关时环境会变亮,那么它可以采取按下开关的动作来验证这一预测。通过定义\(p(\boldsymbol{o}) \propto e^{R(\boldsymbol{o})}\),这个先验可以与奖励函数相关联,就像在控制即推断中一样,从而鼓励智能体采取有目标导向的行为。然而,主动推断方法提供了一种无需指定奖励就能选择动作的方式。由于在每一步求解最优动作可能比较慢,因此可以通过训练一个策略网络来计算\(\pi(\boldsymbol{a}\vert \boldsymbol{h}) = \underset{\boldsymbol{a}}{\text{argmin}} \mathcal{G}(\boldsymbol{a}\vert \boldsymbol{h})\),其中\(\boldsymbol{h}\)是观测历史(或当前状态),如[Mil20; HL20]中所示,这被称为 “深度主动推断”。
总体而言,我们看到这个框架为感知和行动提供了一个统一的理论,两者都试图最小化某种形式的自由能。具体来说,最小化期望自由能会使智能体选择动作来减少其对隐藏状态的不确定性,进而可用于改进其对观测值的预测模型\(p_{\boldsymbol{\theta}}\);这反过来又将通过更新内部信念状态\(q(\boldsymbol{z}\vert \boldsymbol{o}, \boldsymbol{\theta})\)来解释观测值,从而有助于最小化未来观测值的变分自由能。换句话说,智能体的行动是为了学习,这样它对所看到的事物就不会那么惊讶。这确保了智能体与环境处于动态平衡状态。
需要注意的是,主动推断通常在预测编码的背景下进行讨论。这相当于自由能原理的一种特殊情况,其中做了两个假设:(1)生成模型\(p(\boldsymbol{z}, \boldsymbol{o}\vert \boldsymbol{\theta})\)是非线性层次高斯模型(类似于变分自编码器(VAE)的解码器);(2)变分后验近似使用对角拉普拉斯近似,\(q(\boldsymbol{z}\vert \boldsymbol{o}, \boldsymbol{\theta}) = \mathcal{N}(\boldsymbol{z}\vert \tilde{\boldsymbol{z}}, \mathbf{H})\),其中众数\(\tilde{\boldsymbol{z}}\)通过梯度下降计算,\(\mathbf{H}\)是众数处的海森矩阵。这可以被视为变分自编码器的非摊销版本,其中推断(E步)通过迭代梯度下降完成,参数估计(M步)也通过梯度下降完成。([Sal+24]中最近提出了一种更高效的预测编码的增量EM版本,它并行更新\(\{\tilde{\boldsymbol{z}}_n : n = 1 : N\}\)和\(\boldsymbol{\theta}\),[Tsc+23]中提出了一种摊销版本。)有关预测编码的更多细节,见[RB99; Fri03; Spr17; HM20; MSB21; Mar21; OK22; Sal+23; Sal+24]。
评论