本文内容摘录自OpenAI的深度强化学习资源Spinning Up,进入网址。
智能体与环境
强化学习(RL)主要包括智能体(agent)和环境(environment)两部分。在智能体与环境交互的每一步,智能体获取(或部分获取)环境状态的一个观测(observation),并采取一个动作(action)。环境会在智能体作用于它的时候发生变化(或者自己变化)。

智能体会从环境中获得奖励(reward),奖励代表了当前环境状态的好坏。智能体的目标是最大化累计奖励,即回报(return)。强化学习算法就是训练智能体实现这个目标的方法。
状态和观测
状态(state)是环境状态的一个完整描述,而观测(observation)是状态的一个部分描述(可能忽略了某些信息)。
比如,在视频游戏任务中,状态可以是图像的像素值矩阵;在机器人控制中,状态可以是机械臂的角度、速度等。
环境可以分为fully observed和partially observed
- fully observed:智能体可以获取环境的完整信息
- partially observed:智能体只能获取环境的部分信息
动作空间
动作空间(action space)是智能体可以执行的动作的集合,通常分为:
- 离散动作空间
- 连续动作空间
策略
策略(policy)是一个规则,智能体依据策略来决定采取什么动作。由于策略是智能体的核心,所以常把“策略”与“智能体“混用。
策略可以是确定性的:
a
t
=
μ
(
s
t
)
a_t = \mu(s_t)
at=μ(st)
μ
\mu
μ是一个确定的函数。也可以是随机的:
a
t
∼
π
(
⋅
∣
s
t
)
a_t \sim \pi(\cdot | s_t)
at∼π(⋅∣st)
π \pi π是一个概率分布。
在深度RL中,我们讨论是参数化的策略,即策略是根据一系列参数(比如神经网络的权重与偏置)计算出来的,因此策略可以写作:
a
t
=
μ
θ
(
s
t
)
a_t = \mu_{\theta}(s_t)
at=μθ(st)
a t ∼ π θ ( ⋅ ∣ s t ) a_t \sim \pi_{\theta}(\cdot | s_t) at∼πθ(⋅∣st)
1. 确定性策略
例子:假设状态空间是连续的,我们将observation作为神经网络的输入,将神经网络的输出作为确定性的动作。
2. 随机策略
深度RL中最常见的两种随机策略:分类策略和对角高斯策略。前者用于离散动作空间,后者用于连续动作空间。
训练与使用随机策略的过程中的涉及到两个关键计算:
- 从策略中抽样动作
- 计算动作的对数似然度
log
π
θ
(
a
∣
s
)
\log \pi_{\theta}(a|s)
logπθ(a∣s)
(概率 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ(a∣s)是大于0的,而 log π θ ( a ∣ s ) \log \pi_{\theta}(a|s) logπθ(a∣s)的取值范围是 ( − ∞ , + ∞ ) (-\infty, +\infty) (−∞,+∞),采用对数可以方便神经网络的训练,使我们不用关注“概率>0”这个约束)
(1)分类策略
分类策略用于离散动作空间。训练一个分类策略就类似于训练一个分类器:将observation输入到神经网络,最后一层给出每个可选动作的logit,经过softmax得到每个采取动作的概率。
(2)对角高斯策略
对角高斯策略用于连续状态空间。先解释下对角高斯分布:
多变量高斯分布由均值向量和协方差矩阵表示。对角高斯分布的协方差矩阵只在对角线取值不为0,从而可以用一个向量表示。这里的变量个数是动作的维度,对角意味着动作之间相互独立。
在对角高斯策略中,使用一个神经网络输出动作的均值向量 μ θ ( s ) \mu_{\theta}(s) μθ(s),对于协方差矩阵(方差向量)有两种生成方法:
-
方法一:使用一个与状态无关的标准差向量 log σ \log \sigma logσ
-
方法二:使用一个神经网络将状态映射到标准差向量 log σ θ ( s ) \log \sigma_{\theta}(s) logσθ(s)
注:这里使用log也是和上面一个道理。
有了均值和标准差,可以使用下式来生成动作:
a
=
μ
θ
(
s
)
+
σ
θ
(
s
)
⊙
z
a = \mu_{\theta}(s) + \sigma_{\theta}(s) \odot z
a=μθ(s)+σθ(s)⊙z
其中, ⊙ \odot ⊙表示元素对应相乘,z是噪声向量( z ∼ N ( 0 , I ) z \sim \mathcal{N}(0, I) z∼N(0,I))。
轨迹
轨迹(trajectory )是状态与动作的一个序列,也叫episode或rollout:
τ
=
(
s
0
,
a
0
,
s
1
,
a
1
,
.
.
.
)
\tau = (s_0, a_0, s_1, a_1, ...)
τ=(s0,a0,s1,a1,...)
初始状态服从某个分布: s 0 ∼ ρ 0 ( ⋅ ) s_0 \sim \rho_0(\cdot) s0∼ρ0(⋅)
状态之间的转移只与最近的动作有关(马尔科夫性)。可以是确定性的:
s t + 1 = f ( s t , a t ) s_{t+1} = f(s_t, a_t) st+1=f(st,at)
也可以是随机的:
s t + 1 ∼ P ( ⋅ ∣ s t , a t ) s_{t+1} \sim P(\cdot|s_t, a_t) st+1∼P(⋅∣st,at)
奖励与回报
奖励(reward)可以写作 r t = R ( s t , a t , s t + 1 ) r_t = R(s_t, a_t, s_{t+1}) rt=R(st,at,st+1) ,也可以简化为: r t = R ( s t ) r_t = R(s_t) rt=R(st) 或 r t = R ( s t , a t ) r_t = R(s_t,a_t) rt=R(st,at)。
智能体的目标是最大化一个轨迹中的累积奖励,即回报(return)。回报通常有两种形式:
-
有限无折扣回报:
R ( τ ) = ∑ t = 0 T r t R(\tau) = \sum_{t=0}^T r_t R(τ)=t=0∑Trt -
无限折扣回报:
R ( τ ) = ∑ t = 0 ∞ γ t r t R(\tau) = \sum_{t=0}^{\infty} \gamma^t r_t R(τ)=t=0∑∞γtrtγ ∈ ( 0 , 1 ) \gamma \in (0,1) γ∈(0,1)是折扣因子。折扣化有两方面原因:(1)直观上,未来充满不确定性,因此对未来奖励的重视程度较低;(2)数学上,引入折扣因子能够保证收敛(在一定条件下)。
RL问题
RL的目标就是选择一个能够最大化期望回报的策略。
假设环境的转移和策略都是随机的,则一个T步长的轨迹的概率为: P ( τ ∣ π ) = ρ 0 ( s 0 ) ∏ t = 0 T − 1 P ( s t + 1 ∣ s t , a t ) π ( a t ∣ s t ) P(\tau|\pi) = \rho_0 (s_0) \prod_{t=0}^{T-1} P(s_{t+1} | s_t, a_t) \pi(a_t | s_t) P(τ∣π)=ρ0(s0)t=0∏T−1P(st+1∣st,at)π(at∣st)
期望回报为:
J
(
π
)
=
∫
τ
P
(
τ
∣
π
)
R
(
τ
)
=
E
τ
∼
π
[
R
(
τ
)
]
J(\pi) = \int_{\tau} P(\tau|\pi) R(\tau) = E_{\tau\sim \pi}[{R(\tau)}]
J(π)=∫τP(τ∣π)R(τ)=Eτ∼π[R(τ)]
则RL优化问题可以写作:
π
∗
=
arg
max
π
J
(
π
)
\pi^* = \arg \max_{\pi} J(\pi)
π∗=argπmaxJ(π)
π ∗ \pi^* π∗是最优策略。
价值函数
价值是指从一个状态或者一个状态-动作对出发,遵循某个策略所得到的期望回报。它有四种形式:
-
On-Policy Value Function,从状态 s s s出发,遵循策略 π \pi π所得到的期望回报:
V π ( s ) = E τ ∼ π [ R ( τ ) ∣ s 0 = s ] V^{\pi}(s) = E_{\tau \sim \pi}[{R(\tau)\left| s_0 = s\right.]} Vπ(s)=Eτ∼π[R(τ)∣s0=s] -
On-Policy Action-Value Function, 从状态 s s s出发,采取任意动作 a a a,此后遵循策略 π \pi π所得到的期望回报,常称为Q函数:
Q π ( s , a ) = E τ ∼ π [ R ( τ ) ∣ s 0 = s , a 0 = a ] Q^{\pi}(s,a) = E_{\tau \sim \pi}[{R(\tau)\left| s_0 = s, a_0 = a\right.]} Qπ(s,a)=Eτ∼π[R(τ)∣s0=s,a0=a] -
Optimal Value Function,从状态 s s s出发,遵循最优策略所得到的期望回报:
V ∗ ( s ) = max π E τ ∼ π [ R ( τ ) ∣ s 0 = s ] V^*(s) = \max_{\pi} E_{\tau \sim \pi}[{R(\tau)\left| s_0 = s\right.}] V∗(s)=πmaxEτ∼π[R(τ)∣s0=s] -
Optimal Action-Value Function,从状态 s s s出发,采取任意动作 a a a,此后遵循最优策略所得到的期望回报:
Q ∗ ( s , a ) = max π E τ ∼ π [ R ( τ ) ∣ s 0 = s , a 0 = a ] Q^*(s,a) = \max_{\pi}E_{\tau \sim \pi}[{R(\tau)\left| s_0 = s, a_0 = a\right.}] Q∗(s,a)=πmaxEτ∼π[R(τ)∣s0=s,a0=a]
两个重要关系:
V
π
(
s
)
=
E
a
∼
π
[
Q
π
(
s
,
a
)
]
V^{\pi}(s) = E_{a\sim \pi}[{Q^{\pi}(s,a)}]
Vπ(s)=Ea∼π[Qπ(s,a)]
V ∗ ( s ) = max a Q ∗ ( s , a ) V^*(s) = \max_a Q^* (s,a) V∗(s)=amaxQ∗(s,a)
都可以由定义推导出来。
最优Q函数与最优动作
我们在状态
s
s
s下,要采取的最优动作满足:
a
∗
(
s
)
=
arg
max
a
Q
∗
(
s
,
a
)
a^*(s) = \arg \max_a Q^* (s,a)
a∗(s)=argamaxQ∗(s,a)
贝尔曼方程
上述四个价值函数都遵循特定的自洽方程,称为贝尔曼方程。
贝尔曼方程的基本思想是:起始点处的 value 等于你在那个点可以获得的 reward 加上接下来可能处于的位置的value。
V π ( s ) = E a ∼ π , s ′ ∼ P [ r ( s , a ) + γ V π ( s ′ ) ] V^{\pi}(s) = E_{a \sim \pi, s'\sim P}[{r(s,a) + \gamma V^{\pi}(s')}] Vπ(s)=Ea∼π,s′∼P[r(s,a)+γVπ(s′)]
Q π ( s , a ) = E s ′ ∼ P [ r ( s , a ) + γ E a ′ ∼ π [ Q π ( s ′ , a ′ ) ] Q^{\pi}(s,a) = E_{s'\sim P}[{r(s,a) + \gamma E_{a'\sim \pi}[{Q^{\pi}(s',a')}}] Qπ(s,a)=Es′∼P[r(s,a)+γEa′∼π[Qπ(s′,a′)]
V ∗ ( s ) = max a E s ′ ∼ P [ r ( s , a ) + γ V ∗ ( s ′ ) ] V^*(s) = \max_a E_{s'\sim P}[{r(s,a) + \gamma V^*(s')}] V∗(s)=amaxEs′∼P[r(s,a)+γV∗(s′)]
Q ∗ ( s , a ) = E s ′ ∼ P [ r ( s , a ) + γ max a ′ Q ∗ ( s ′ , a ′ ) ] Q^*(s,a) = E_{s'\sim P}[{r(s,a) + \gamma \max_{a'} Q^*(s',a')}] Q∗(s,a)=Es′∼P[r(s,a)+γa′maxQ∗(s′,a′)]
优势函数
有时候我们不需要知道一个动作的绝对好坏,只需要知道它比其他动作平均好多少。这个概念用优势(advantage)函数表示:
A
π
(
s
,
a
)
=
Q
π
(
s
,
a
)
−
V
π
(
s
)
A^{\pi}(s,a) = Q^{\pi}(s,a) - V^{\pi}(s)
Aπ(s,a)=Qπ(s,a)−Vπ(s)
形式化描述
环境的形式化描述是马尔科夫决策过程(MDP),用五元组 ⟨ S , A , R , P , ρ 0 ⟩ \langle S, A, R, P, \rho_0 \rangle ⟨S,A,R,P,ρ0⟩表示,其中,
- S S S是状态集合
- A A A是动作集合
- R : S × A × S → R R: S \times A \times S \to \mathbb{R} R:S×A×S→R是奖励函数
- P : S × A → P ( S ) P : S \times A \to \mathcal{P}(S) P:S×A→P(S)是转移概率函数
- ρ 0 \rho_0 ρ0是初始状态分布