RL关键概念

本文内容摘录自OpenAI的深度强化学习资源Spinning Up,进入网址。

智能体与环境

强化学习(RL)主要包括智能体(agent)和环境(environment)两部分。在智能体与环境交互的每一步,智能体获取(或部分获取)环境状态的一个观测(observation),并采取一个动作(action)。环境会在智能体作用于它的时候发生变化(或者自己变化)。

RL关键概念_第1张图片

智能体会从环境中获得奖励(reward),奖励代表了当前环境状态的好坏。智能体的目标是最大化累计奖励,即回报(return)。强化学习算法就是训练智能体实现这个目标的方法。

状态和观测

状态(state)是环境状态的一个完整描述,而观测(observation)是状态的一个部分描述(可能忽略了某些信息)。
比如,在视频游戏任务中,状态可以是图像的像素值矩阵;在机器人控制中,状态可以是机械臂的角度、速度等。

环境可以分为fully observedpartially 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πθ(as)
    (概率 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ(as)是大于0的,而 log ⁡ π θ ( a ∣ s ) \log \pi_{\theta}(a|s) logπθ(as)的取值范围是 ( − ∞ , + ∞ ) (-\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) zN(0,I))。

轨迹

轨迹(trajectory )是状态与动作的一个序列,也叫episoderollout
τ = ( 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+1P(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=0Trt

  • 无限折扣回报:
    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=0T1P(st+1st,at)π(atst)

期望回报为:
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π,sP[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)=EsP[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)=amaxEsP[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)=EsP[r(s,a)+γamaxQ(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×SR是奖励函数
  • P : S × A → P ( S ) P : S \times A \to \mathcal{P}(S) P:S×AP(S)是转移概率函数
  • ρ 0 \rho_0 ρ0是初始状态分布

你可能感兴趣的:(强化学习)