不等式视角下的策略梯度算法

本文首发于:行者AI

强化学习(Reinforcement Learning,RL),也叫增强学习,是指一类从(与环境)交互中不断学习的问题以及解决这类问题的方法。强化学习问题可以描述为一个智能体从与环境的交互中不断学习以完成特定目标(比如取得最大奖励值)。 和深度学习类似,强化学习中的关键问题也是贡献度分配问题[1],每一个动作并不能直接得到监督信息,需要通过整个模型的最终监督信息(奖励)得到,并且有一定的延时性。

本文首先通过简介强化学习基于策略函数的学习方法引出策略梯度,接着通过一般化的公式推论得到策略梯度的最优表达式,最后在排序不等式的视角下解读策略梯度的最优表达式。主要概括为以下两个部分:

  • 策略梯度的最优表达式推导
  • 排序不等式下的策略梯度

1. 策略梯度

智能体的策略(Policy)就是智能体如何根据环境状态 ? 来决定下一步的动作 ?,通常可以分为确定性策略(Deterministic Policy)和随机性策略(Stochastic Policy)两种:

  • 确定性策略是从状态空间到动作空间的映射函数:

    \[\pi: \mathcal{S} \rightarrow \mathcal{A} \]

  • 随机性策略表示在给定环境状态时,智能体选择某个动作的概率分布:

    \[\pi(a \mid s) \triangleq p(a \mid s) \]

    \[\sum_{a \in \mathcal{A}} \pi(a \mid s)=1 \]

通常情况下,强化学习一般使用随机性策略。随机性策略可以有很多优点:一是在学习时可以通过引入一定随机性更好地探索环境;二是随机性策略的动作具有多样性,这一点在多个智能体博弈时也非常重要。采用确定性策略的智能体总是对同样的环境做出相同的动作,会导致它的策略很容易被对手预测。

一般来讲,基于值函数的学习方法本质是一种确定性策略;而学习一个策略\(\pi_{\theta}(a \mid s)\)来最大化期望回报的方法本质是一种随机性策略。这种方法也称为策略搜索(Policy Search)。策略搜索本质是一个优化问题,可以分为基于梯度优化无梯度优化。策略搜索和基于值函数的方法相比,策略搜索可以不需要值函数,直接优化策略。参数化的策略能够处理连续状态和动作,可以直接学出随机性策略。

策略梯度Policy Gradient)就是一种基于梯度优化的强化学习方法。假设\(\pi_{\theta}(a \mid s)\)是一个关于\(\theta\)的连续可微函数,我们可以用梯度上升的方法来优化参数\(\theta\)使得目标函数\(\mathcal{J}(\theta)\)最大。

目标函数\(\mathcal{J}(\theta)\)关于策略参数\(\theta\)的导数为:

\[\begin{aligned} \frac{\partial \mathcal{J}(\theta)}{\partial \theta} &=\frac{\partial}{\partial \theta} \int p_{\theta}(\tau) G(\tau) \mathrm{d} \tau \\ &=\int\left(\frac{\partial}{\partial \theta} p_{\theta}(\tau)\right) G(\tau) \mathrm{d} \tau \\ &=\int p_{\theta}(\tau)\left(\frac{1}{p_{\theta}(\tau)} \frac{\partial}{\partial \theta} p_{\theta}(\tau)\right) G(\tau) \mathrm{d} \tau \\ &=\int p_{\theta}(\tau)\left(\frac{\partial}{\partial \theta} \log p_{\theta}(\tau)\right) G(\tau) \mathrm{d} \tau \\ &=\mathbb{E}_{\tau \sim p_{\theta}(\tau)}\left[\frac{\partial}{\partial \theta} \log p_{\theta}(\tau) G(\tau)\right] \end{aligned} \]

其中\(\frac{\partial}{\partial \theta} \log p_{\theta}(\tau)\)为函数\(\log p_{\theta}(\tau)\)关于\(\theta\)的偏导数。从最终的式子中可以看出,参数\(\theta\)优化的方向是使得总回报\(G(\tau)\)越大的轨迹\(\tau\)的概率\(p_{\theta}(\tau)\)也越大。

其中,\(\frac{\partial}{\partial \theta} \log p_{\theta}(\tau)\)可以进一步分解为:

\[\begin{aligned} \frac{\partial}{\partial \theta} & \log p_{\theta}(\tau)=\frac{\partial}{\partial \theta} \log \left(p\left(s_{0}\right) \prod_{t=0}^{T-1} \pi_{\theta}\left(a_{t} \mid s_{t}\right) p\left(s_{t+1} \mid s_{t}, a_{t}\right)\right) \\ &=\frac{\partial}{\partial \theta}\left(\log p\left(s_{0}\right)+\sum_{t=0}^{T-1} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right)+\sum_{t=0}^{T-1} \log p\left(s_{t+1} \mid s_{t}, a_{t}\right)\right) \\ &=\sum_{t=0}^{T-1} \frac{\partial}{\partial \theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right) \end{aligned} \]

可以看出,\(\frac{\partial}{\partial \theta} \log p_{\theta}(\tau)\)和状态转移概率无关,只和策略函数相关。

因此,策略梯度\(\frac{\partial \partial(\theta)}{\partial \theta}\)可以简写为:

\[\frac{\partial \mathcal{J}(\theta)}{\partial \theta}=\mathbb{E}_{\tau \sim p_{\theta}(\tau)} [\nabla_{\theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right)G(\tau)] \]

其中,\(\tau\)为策略序列,简单理解为状态和动作的上下文序列;\(\tau\)满足参数\(\theta\)下的状态转移概率;\(G(\tau)\)是在策略\(\tau\)下的总回报。

2. 排序不等式下的策略梯度

排序不等式是数学上的一种不等式。它可以推导出很多有名的不等式,例如:算术几何平均不等式(简称算几不等式)、柯西不等式、切比雪夫总和不等式。排序不等式(sequence inequality,又称排序原理)是高中数学竞赛大纲、新课标普通高中课程标准试验教科书(人民教育出版社)数学(选修4-5第三讲第三节)要求的基本不等式。[2]

排序不等式内容为:排序不等式表述如下,设有两组数\(a 1, a 2, \ldots \cdots \cdot a_{n}\)\(\mathrm{b}_{1}, \mathrm{b}_{2}, \ldots \ldots \mathrm{b}_{n}\),满足\(a_{1} \leq a_{2} \leq \ldots \ldots \leq a_{n}\)\(b_{1} \leq b_{2} \leq \ldots \ldots \leq b_{n}\)\(c_{1} \leq c_{2} \leq \ldots \ldots \leq c_{n}\)\(\mathrm{b}_{1}, \mathrm{b}_{2}, \ldots \ldots \mathrm{b}_{n}\)的乱序排列,则有\(\left(a_{1} b_{n}+a_{2} b_{n-1}+\ldots \ldots+a_{n} b_{1} \leq a_{1} c_{1}+a_{2} c_{2}+\ldots \ldots+a_{n} c_{n} \leq a_{1} b_{1}+a_{2} b_{2}+\ldots \ldots+a_{n} b_{n}\right.\)
当且仅当\(a_{1}=a_{2}=\ldots \ldots=a_{n}\)\(b_{1}=b_{2}=\ldots \ldots=b_{n}\)时等号成立。

一般为了便于记忆,常记为:反序积和 ≤ 乱序积和 ≤ 顺序积和。(证明过程见参考[2])

因此,对于策略梯度\(\frac{\partial \partial(\theta)}{\partial \theta}\)

\[\frac{\partial \mathcal{J}(\theta)}{\partial \theta}=\mathbb{E}_{\tau \sim p_{\theta}(\tau)} [\nabla_{\theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right)G(\tau)] = \mathbb{E}_{\tau \sim p_{\theta}(\tau)}\left[\frac{\partial}{\partial \theta} \log p_{\theta}(\tau) G(\tau)\right] \]

函数\(\log p_{\theta}(\tau)\)关于\(\theta\)的偏导数\(\frac{\partial}{\partial \theta} \log p_{\theta}(\tau)\)是长度为len(\(\tau\))(表示策略\(\tau\)的长度)的序列,同时\(G(\tau)\)也是同长度的序列。对于强化学习来讲,是要最大化策略梯度用以最大化回报

那么对于\(\frac{\partial}{\partial \theta} \log p_{\theta}(\tau)\)\(G(\tau)\)这两个序列的加权积和,何时才是最大的呢?根据排序不等式可得:\(\frac{\partial}{\partial \theta} \log p_{\theta}(\tau)\)\(G(\tau)\)同序时,策略梯度最大。 同序意味着:如果当前时刻策略网络\(\pi_{\theta}\left(a_{t} \mid s_{t}\right)\)的最大概率输出动作为\(a_{t}\),那么当前动作\(a_{t}\)同时能获得最大回报\(G(\tau[t])\)。这符合我们对于策略网络的期望,即我们希望策略网络输出的action每时刻都能使我们设置的reward最大。

3. 参考

[1] 邱锡鹏《NNDL
[2] 百度百科


PS:更多技术干货,快关注【公众号 | xingzhe_ai】,与行者一起讨论吧!

posted @ 2021-02-07 11:55  行者AI  阅读(178)  评论(0编辑  收藏  举报