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

166 阅读5分钟

本文首发于:行者AI

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

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

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

1. 策略梯度

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

  • 确定性策略是从状态空间到动作空间的映射函数: π:SA\pi: \mathcal{S} \rightarrow \mathcal{A}

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

    π(as)p(as)\pi(a \mid s) \triangleq p(a \mid s)

    aAπ(as)=1\sum_{a \in \mathcal{A}} \pi(a \mid s)=1

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

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

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

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

J(θ)θ=θpθ(τ)G(τ)dτ=(θpθ(τ))G(τ)dτ=pθ(τ)(1pθ(τ)θpθ(τ))G(τ)dτ=pθ(τ)(θlogpθ(τ))G(τ)dτ=Eτpθ(τ)[θlogpθ(τ)G(τ)]\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}

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

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

θlogpθ(τ)=θlog(p(s0)t=0T1πθ(atst)p(st+1st,at))=θ(logp(s0)+t=0T1logπθ(atst)+t=0T1logp(st+1st,at))=t=0T1θlogπθ(atst)\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}

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

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

J(θ)θ=Eτpθ(τ)[θlogπθ(atst)G(τ)]\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(τ)G(\tau)是在策略τ\tau下的总回报。

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

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

排序不等式内容为:排序不等式表述如下,设有两组数a1,a2,ana 1, a 2, \ldots \cdots \cdot a_{n}b1,b2,bn\mathrm{b}_{1}, \mathrm{b}_{2}, \ldots \ldots \mathrm{b}_{n},满足a1a2ana_{1} \leq a_{2} \leq \ldots \ldots \leq a_{n}b1b2bnb_{1} \leq b_{2} \leq \ldots \ldots \leq b_{n}c1c2cnc_{1} \leq c_{2} \leq \ldots \ldots \leq c_{n}b1,b2,bn\mathrm{b}_{1}, \mathrm{b}_{2}, \ldots \ldots \mathrm{b}_{n}的乱序排列,则有(a1bn+a2bn1++anb1a1c1+a2c2++ancna1b1+a2b2++anbn\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., 当且仅当a1=a2==ana_{1}=a_{2}=\ldots \ldots=a_{n}b1=b2==bnb_{1}=b_{2}=\ldots \ldots=b_{n}时等号成立。

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

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

J(θ)θ=Eτpθ(τ)[θlogπθ(atst)G(τ)]=Eτpθ(τ)[θlogpθ(τ)G(τ)]\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]

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

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

3. 参考

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


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