Site icon 上海志彦(SHZY)

强化学习基础概念介绍

基本概念

强化学习 (reinforcement learning,RL) 主要专注于智能体(agent)如何选择最优动作以最大化环境(environment)给出的累计折扣奖励/回报(cumulated discounted reward/return)。

首先简单描述智能体与环境交互 (interaction) 的过程,智能体从环境中接收观察到的状态 (state/observation),然后根据接收到的状态选择动作 (action),这个动作会在环境之中被执行,环境会根据智能体采取的动作,转移到下一个状态并给予智能体动作的反馈奖励 (reward)。这个过程循环发生,智能体/强化学习的目标是学会一种最优策略 (policy), 能够最大化积累智能体接收到的奖励。

我们首先形式化定义以下强化学习的基础概念:

然后会进一步解释以下强化学习的方法概念:

最后还回答了一些强化学习领域中常见的概念性问题,以供参考。

马尔可夫决策过程/MDP

在强化学习领域,我们通过将智能体与环境交互的过程建模为一个马尔可夫决策过程 (Markov Decision Processes, MDP) ,可以说马尔可夫决策过程是强化学习的基本框架。

状态空间/State Spaces

状态 state,一般用s表示,是对环境的全局性描述,观测 observation 一般用o表示,是对环境的局部性描述。一般环境会使用实值向量、矩阵或高阶张量来表示状态和观察的结果。例如,Atari 游戏中使用 RGB 图片来表示游戏环境的信息,MuJoCo 控制任务中使用向量来表示智能体的状态。

当智能体能够接收到环境全部的状态信息s 时,我们称环境为完全可观测的 (fully observable),当智能体只能接收部分环境信息o时,我们称这个过程为部分可观测的(partial observable) 的,对应的决策过程即称为部分可观测马尔可夫决策过程 (Partially Observable Markov Decision Processes,POMDP), 部分可观测马尔可夫决策过程是马尔可夫决策过程的一种泛化。部分可观测马尔可夫决策过程依然具有马尔可夫性质,但是假设智能体无法感知环境的状态,只能知道部分观测值。通常用一个七元组描述 (S,Ω,O,A,P,R,γ),其中O为观测空间,Ω(o|s,a)为观测概率函数,其他与MDP的定义类似。

动作空间/Action Spaces

不同的环境对应的动作空间一般是不同的。一般将环境中所有有效动作a 的集合称之为动作空间 (Action Space)。其中,动作空间又分为离散 (discrete) 动作空间与连续 (continuous) 动作空间。

例如在Atari游戏与SMAC星际游戏中为离散的动作空间,只可以从有限数量的动作中进行选择,而 MuJoCo 等一些机器人连续控制任务中为连续动作空间,动作空间一般为实值向量区间。

奖励与回报/Reward and Return

奖励 (reward) 是智能体所处的环境给强化学习方法的一个学习信号 (signal),当环境发生变化时,奖励函数也会发生变化。奖励函数由当前的状态与智能体的动作决定,表示为rt=R(st,at)。

回报(Return), 又称为累积折扣奖励,定义为在一个马尔可夫决策过程中从t时刻开始往后所有奖励的加权和:Gt=∑k=0∞γkrt+k+1。其中γ 表示折扣因子(衰减因子)体现的是未来的奖励在当前时刻的相对重要性,如果接近0,则表明趋向于只评估当前时刻的奖励,接近于1时表明同时考虑长期的奖励。一般情况下,γ∈[0,1)。在很多现实任务对应环境中的奖励函数可能是稀疏的,即并不是每一个状态下环境都会给予奖励,只有在一段轨迹过后才会给出一个奖励。因此在强化学习中,对奖励函数的设计与学习也是一个重要的方向,对强化学习方法的效果有很大的影响。

策略/Policy

策略 (policy) 决定了智能体面对不同的环境状态时采取的动作,是智能体的动作模型。它本质上是一个函数,用于把输入的状态变成动作。策略可分为两种:随机性策略和确定性策略。当策略为确定的 (deterministic),一般用 at=μ(st) 来表示,当策略为随机的 (stochastic),一般表示为 π(at|st) 。一般情况下,强化学习使用随机性策略,通过引入一定的随机性可以更好地探索环境。

在强化学习中,基于策略梯度的方法显式地需要学习一个参数化表示的策略 (Parameterized policy),用神经网络拟合策略函数,经常使用θ 表示神经网络的参数。但基于价值函数的方法则不一定需要显式地学习策略函数,而是通过学习得到的最优动作值函数中推导出策略,即a∗=π∗(a|s)=arg⁡maxaQ∗(s,a)。

价值函数/Value Functions

状态价值函数 (state value function) 是指智能体在状态 st以及以后的所有时刻都采用策略π 得到的累计折扣奖励(回报)的期望值:

Vπ(s)=Eπ[Gt|st=s]

动作价值函数 (action value function) 是指智能体在状态 st采取动作at, 以后的所有时刻都采用策略π 得到的累计折扣奖励(回报)的期望值:

Qπ(s,a)=Eπ[Gt|st=s,at=a]

状态价值函数和行为价值函数的关系:Vπ(s)=∑a∈Aπ(a|s)Qπ(s,a)

我们定义最优策略π∗对应的最优状态值函数与最优动作价值函数分别为V∗(s),Q∗(s,a)。

最优的状态价值函数与最优的行为价值函数的关系:V∗(s)=maxaQ∗(s,a)

贝尔曼方程 (Bellman Equations)是强化学习方法的基础,描述的是当前时刻状态的值(动作值)与下一时刻状态的值(动作值)之间的递推关系。

Vπ(s)=Eπ,P[rt+1+γ∗Vπ(st+1)|St=s]

Qπ(s,a)=Eπ,P[rt+1+γ∗Qπ(st+1,at+1)|St=s,At=a]

进一步如果将期望展开,可以写成下面的形式:

vπ(s)=∑a∈Aπ(a∣s)(Rsa+γ∑s′∈SPss′avπ(s′))

qπ(s,a)=Rsa+γ∑s′∈SPss′a∑a′∈Aπ(a′∣s′)qπ(s′,a′)

其中Rsa=E[Rt+1∣St=s,At=a], Pss′a=P[St+1=s′∣St=s,At=a]

贝尔曼最优方程(Bellman Optimality Equations),描述的是当前时刻状态的最优值(最优动作值)与下一时刻状态的最优值(最优动作值)之间的递推关系。

V∗(s)=maxa(E[rt+1+γ∗V∗(st+1)|st=s])

Q∗(s,a)=E[rt+1+γ∗maxa′Q∗(st+1,a′)|st=s,at=a]

进一步如果将期望展开,可以写成下面的形式:

v∗(s)=maxaRsa+γ∑s′∈SPss′av∗(s′)

q∗(s,a)=Rsa+γ∑s′∈SPss′amaxa′q∗(s′,a′)

同样的,其中Rsa=E[Rt+1∣St=s,At=a], Pss′a=P[St+1=s′∣St=s,At=a]。

对于模型已知 (即知道状态转移概率函数和奖励函数) 的系统,值函数可以利用动态规划的方法得到;对于模型未知的系统,可以利用蒙特卡洛的方法或者时间差分的方法得到。

下面分别简介这3类方法:

对于表格型的强化学习方法,我们通过迭代更新值函数的表格即可完成对值函数的估计。而很多情况下,如状态空间或动作空间不为离散空间时,值函数无法用一张表格来表示。此时,我们需要利用函数逼近的方法对值函数进行表示。

关于基于值函数(又称为 value-based)的强化学习算法的细节,请参考 DQN, Rainbow 等具体算法文档。

策略梯度/Policy Gradients

在基于值函数的方法中,我们希望迭代计算得到最优值函数,然后根据最优值函数得到最优动作;RL 方法中还有另外一大类基于策略梯度的方法,直接学习参数化的最优策略。

下面首先阐述策略梯度定理:

令 τ 表示一条轨迹,初始状态分布为 μ,如果动作是按照策略π选择的,那么轨迹 τ的概率分布为::math:` {Pr}_{mu}^{pi}(tau)=muleft(s_{0}right) pileft(a_{0} mid s_{0}right) Pleft(s_{1} mid s_{0}, a_{0}right) pileft(a_{1} mid s_{1}right) cdots`

这条轨迹的累计折扣奖励为:R(τ):=∑t=0∞γtr(st,at)

策略πθ期望最大化的目标为:Vπθ(μ)=Eτ∼Prμπθ[R(τ)]

3种形式的策略梯度公式为:

∇Vπθ(μ)=Eτ∼Prμπθ[R(τ)∑t=0∞∇log⁡πθ(at∣st)]

∇Vπθ(μ)=Eτ∼Prμπθ[∑t=0∞γtQπθ(st,at)∇log⁡πθ(at∣st)]=11−γEs∼dπθEa∼πθ(⋅∣s)[Qπθ(s,a)∇log⁡πθ(a∣s)]

∇Vπθ(μ)=11−γEs∼dπθEa∼πθ(⋅∣s)[Aπθ(s,a)∇log⁡πθ(a∣s)]

利用策略梯度定理,我们便可以利用采样的样本近似计算策略梯度,直接更新策略网络对应的参数,使策略逐步得到改进。

与基于值函数的RL方法相比,基于策略梯度的方法更加容易收敛到局部最小值,评估单个策略时并不充分,方差较大。

关于基于策略梯度(又称为 policy-based)的强化学习算法的细节,请参考PPO等具体算法文档。

演员-评论家/Actor Critic

Critic,参数化动作值函数,进行策略的价值评估。

Actor,参数化的策略函数,按照 Critic 部分得到的价值,利用策略梯度指导策略函数参数的更新。

总结来说,Actor Critic是一种既学习价值函数也学习策略函数的方法,结合了以上两种方法的优点。

基于这个框架下的各种算法,既可以去适应不同的动作空间与状态空间的问题,也可以对不同的策略空间中找到最优策略。

关于基于 Actor Critic 的强化学习算法的细节,请参考 A2C, DDPG, TD3, SAC 等具体算法文档。

基于模型/Model-based RL

在 model-free 的 RL 方法中,value-based方法先学习值函数(利用 MC 或 TD 方法),再从最优值函数中提取最优策略,policy-based 方法直接优化策略。

而 model-based 方法的重点在于如何学习环境模型 (environment model) 和如何利用学习好的模型来学习值函数或策略。通过学习环境模型,可以帮助我们提高强化学习方法的样本效率 (sample efficiency)。

环境模型可以定义为状态转移分布和奖励函数组成的元组: 其中表示状态转移函数M=(P,R),其中P(st+1|st,at)表示状态转移函数,R(rt+1|st,at)表示奖励函数。

根据模型学习方法和使用方法的不同,可以有各种各样的 model-based RL算法。

在学习好环境模型后,主要有两种使用方法,一种是通过学到的模型生成一些仿真轨迹,在这些仿真轨迹上学习最优值函数进而得到最优策略;另一种是在学到的模型上直接优化策略。

Q&A

  1. 强化学习 (Reinforcement Learning) 与监督学习 (Supervised Learning) 的本质区别在于?
  1. 什么是exploration and exploitation?我们通常使用哪些方法平衡exploration and exploitation?
  1. 什么是 model based RL 和 model free RL,两者区别是什么?
  1. value-based, policy-based,actor-critic,三者分别是什么含义?
  1. 什么是 on-policy 和 off-policy,两者区别是什么?
  1. 什么是 online training 和 offline training?我们通常如何实现 offline training?
  1. 为什么要使用replay buffer?experience replay作用在哪里?
  1. 强化学习目前的应用场景有哪些?

参考文献

Exit mobile version