强化学习概述
基本定义
强化学习(reinforcement learning,RL)讨论的问题是智能体(Agent)怎么在复杂、不确定的环境中最大化它能获得的奖励(Rewards)。在前文介绍世界模型时,我们提及过其关注的几个变量
- 环境观测量 ot
- 状态理解 ht
- 交互行为 at
具体而言,世界模型就可以被视为一个智能体,其研究目的也是让智能体学会在环境中预测并交互。很多人会把世界模型想象成一台预言机器——给它看现在的画面,它就能预测下一刻会发生什么。但世界模型真正的价值在于回答一个更有意义的问题——如果我现在这样做了,未来会变成什么样?
因此,世界模型等需要强化学习的指导。通过合适的强化学习策略,我们期望让智能体用长期回报的眼光去衡量眼前的行动,而不是只看眼前一步的得失。
RL与监督学习
监督学习对于训练数据通常有以下两个假设
- 输入数据样本之间都应该没有关联。更一般的假设是:样本空间的全体样本服从一个未知分布,获得每个样本都是独立同分布的(i.i.d)
- 需要标注样本的正确标签,以方便模型训练与修正
然而在强化学习中,监督学习的两个假设其实都不能得到满足。
- 强化学习的输入样本是序列数据,而非独立样本
- 模型不知道每一步正确的动作,需要自行学习哪些动作有最多的奖励,在不断尝试中选择奖励最多的行为
在强化学习过程中,没有非常强的监督者(Supervisor),只有奖励信号(Reward Signal),并且奖励信号是延迟的,即环境会在很久以后告诉我们之前我们采取的动作到底是不是有效的。因为我们没有得到即时反馈,所以智能体使用强化学习来学习就非常困难。
RL的应用
关注强化学习的一个重要原因在于:强化学习得到的模型可以有超人类的表现。监督学习获取的监督数据,其实是人来标注的,比如 ImageNet 的图片的标签都是人类标注的。因此我们可以确定监督学习算法的上限就是人类的表现,标注结果决定了它的表现永远不可能超越人类。
但是对于强化学习,它在环境里面自己探索,有非常大的潜力,它可以获得超越人类的能力的表现。一个最典型的例子就是 AlphaGo 在围棋界的表现,其使用强化学习算法打败了诸多人类顶尖棋手。
强化学习目前已经被应用于许多场景
RL Agent
一个强化学习智能体通常由以下三部分组成
- 策略(policy):智能体会用策略来选取下一步的动作
- 价值函数(Value Function):价值函数用于对当前状态进行评估。当智能体进入某个状态后,价值函数可以评估其对后面的奖励带来多大的影响。价值函数值越大,说明智能体进入这个状态越有利。
- 模型(Model):模型表现了智能体对环境状态的理解,它决定了环境中世界的运行方式
我们可以通过智能体到底有没有学习环境模型来对智能体进行分类。 有模型(model-based)强化学习智能体通过学习状态的转移来采取动作;免模型(model-free)强化学习智能体没有去直接估计状态的转移,也没有得到环境的具体转移变量,它通过学习价值函数和策略函数进行决策。
Markov过程
马尔科夫链
在强化学习中,智能体与环境的交互过程可以通过马尔可夫决策过程来表示,所以马尔可夫决策过程是强化学习的基本框架。在此之前,我们先介绍一些关于马尔科夫(Markov)过程的基本概念和性质。
以离散过程为例,如果随机变量 X1,⋯,XT 构成一个随机过程,且 Xt+1 对于过去状态的条件概率分布仅仅是关于 Xt 的一个函数,即有
P(Xt+1=xt+1∣X0:t=x0:t)=P(Xt+1=xt+1∣Xt=xt)
此时称该随机过程具有马尔科夫性质,对于离散时间的情况也称之为马尔科夫链(Markov Chain)。为了更好的贴近强化学习的符号规定,我们记某具有马尔科夫性质的随机变量序列为 s1,⋯,st。对于 st+1,其状态的历史记为 ht={s1,⋯,st},则马尔科夫过程可以记为
P(st+1∣st)=P(st+1∣ht)
我们一般使用状态转移矩阵 P 来描述状态的转移
P=P(s1∣s1)P(s1∣s2)⋮P(s1∣sT)P(s2∣s1)P(s2∣s2)⋮P(s2∣sT)⋯⋯⋱⋯P(sT∣s1)P(sT∣s2)⋮P(sT∣sT)=[P(sj∣si)]ij
马尔科夫奖励过程
马尔可夫奖励过程(Markov Reward Process, MRP)可以看做马尔可夫链加上奖励函数 R,后者通常是一个期望,表示当前状态可以获得多大的奖励。为了进一步表示奖励函数,定义三个新概念
- 折扣因子 γ:随时间步增加而定义的折扣系数
- 范围(Horizon):一个回合的最大时间步数
- 回报(Return):奖励的逐步叠加
假设时刻 t 的奖励序列为 rt+1,rt+2,⋯,则回报定义为
Gt=i=1∑T−tγi−1rt+i=rt+1+γrt+2+⋯+γT−t−1rT
其中 T 是最终时刻,上式表明越往后得到的奖励折扣越大。当我们有了回报之后,就可以定义状态的价值了,就是状态价值函数。对于MRP过程,状态价值函数被定义成回报的期望,即有
V(s)=E[Gt∣st=s]
贝尔曼方程
贝尔曼方程使用递归方式来表达最优决策问题,在正式介绍之前,我们做简单的推导说明。首先,根据条件期望的定义和全期望公式可以证明下式成立
E[E[Gt+1∣st+1]st]=E[Gt+1∣st]
因此将状态价值函数改写为
V(s)=E[Gt∣st=s]=E[rt+1∣st=s]+⋯+γE[Gt+1∣st=s]=R(s)+γE[E[Gt+1∣st+1]st=s]=R(s)+γE[V(st+1)∣st=s]=R(s)+γs′∈S∑V(s′)P(s′∣s)
可以看出:贝尔曼方程就是当前状态 R(s) 与未来状态 γE[V(st+1)∣st=s] 的迭代关系,表示当前状态的价值函数可以通过下个状态的价值函数来计算。对所有时间步应用贝尔曼方程,矩阵表示为
V(s1)V(s2)⋮V(sT)=R(s1)R(s2)⋮R(sT)+P(s1∣s1)P(s1∣s2)⋮P(s1∣sT)P(s2∣s1)P(s2∣s2)⋮P(s2∣sT)⋯⋯⋱⋯P(sT∣s1)P(sT∣s2)⋮P(sT∣sT)V(s1)V(s2)⋮V(sT)
简记上式为 V=R+γPV,不难得到解析解
V=(I−γP)−1R
尽管如此,使用这种方法将带来 O(T3) 的计算复杂度,这是矩阵求逆带来的代价。现实中常使用动态规划、蒙特卡洛、时序差分学习等方法简化计算复杂度。
马尔科夫决策过程
相对于MRP过程,马尔可夫决策过程(Markov Decision Process, MDP)多了决策动作,而其他的定义与马尔可夫奖励过程的是类似的。此时的状态转移方程通常描述为
P(st+1∣st,at)=P(st+1∣ht,at)
其奖励函数理所应当把动作 at 考虑进去,即有
R(s,a)=E[rt∣st=s,at=a]
现在介绍MDP中的策略,其经常用符号 π 表示
π(a∣s)=P(at=a∣st=s)
已知MDP和策略 π,我们可以把该MDP转化为MRP
Pπ(s′∣s)=a∈A∑π(a∣s)P(s′∣s,a)
奖励函数同样可以转化为如下形式
rπ(s)=a∈A∑π(a∣s)R(s,a)
引入动作价值函数 Q(又称 Q 函数),其定义为某个状态采取某个动作后,得到回报的期望
Qπ(s,a)=Eπ[Gt∣st=s,at=a]
同上小节的推导,不难得到 Q 函数的贝尔曼方程
Qπ(s,a)=R(s,a)+γs′∈S∑P(s′∣s,a)Vπ(s′)
其中的价值函数 Vπ(s) 表示对 Q 的所有动作的价值求和
Vπ(s)=a∈A∑π(a∣s)Qπ(s,a)
将两上式联立,可以得到贝尔曼方程的另外两种形式
Vπ(s)=a∈A∑π(a∣s)(R(s,a)+γs′∈S∑P(s′∣s,a)Vπ(s′))
Qπ(s,a)=R(s,a)+γs′∈S∑P(s′∣s,a)a′∈A∑π(a′∣s′)Qπ(s′,a′)
该式子将当前状态与未来状态的价值函数联系在了一起。
MDP控制
一个MDP可以被描述为多元组 <S,A,R,γ,π>,一个常见的相关问题是寻找最佳价值函数 V∗ 和最佳策略 π∗,该过程称为控制。最佳价值函数和最佳策略的定义为
V∗(s)=πmaxV(s),π∗=argπmaxV(s)
具体来说:当取得最佳价值函数后,我们可以通过对 Q 函数最大化以得到最佳策略
π∗(a∣s)={1,a=arga∈AmaxQ∗(s,a)0,else
这里的最佳 Q 函数满足贝尔曼最优方程
Vπ(s)=a∈AmaxQπ(s,a),V∗(s)=amaxQ∗(s,a)
这里大大简化了控制求解的过程,而这正是RL所研究的主要方向之一。
部分可观测MDP
在MDP的基础上,我们借助一个七元组定义部分可观测马尔科夫决策过程(POMDP)
<S,A,R,γ,π,Ω,O>
可以发现,多出来了两项
- Ω={ot}:观测空间,即智能体实际能感受到信号的集合
- O(o∣s′,a):观测函数,在执行动作 a 转移到真实状态 s′ 后,观测到 o 的概率。我们可以将其理解为真实环境 s 的某种不完整投影,也就是模型能观测到的部分环境
在MDP中,由于马尔科夫性质,策略可以具有无记忆性。然而在POMDP中,观测 ot 不满足马尔科夫性,因为观测会导致信息的丢失。这就使得POMDP的最优策略必须依赖所有的历史交互,即有策略映射
π:(o1,a1,o2,t2,⋯,ot)→at
潜空间
经典世界模型
在继续进行之前,我们非常有必要提一嘴世界模型领域的开山之作——由 David Ha, Jürgen Schmidhuber 提出的World Models。在这篇文章中,作者正式提出了世界模型这一概念,并引入了如下模型架构
[{"url":"/img/world/worldmodel.png","alt":"World Models基本架构","title":""}]
整个模型由三个模块组成:
- 视觉模型 V:一个VAE将图像信息压缩为潜空间向量 zt
- 记忆模型 M:一个RNN通过传递隐状态 ht 记忆历史信息
- 控制模型 C:一个线性层,结合 zt,ht 输出行为 at
我们着重关注记忆模型 M 的架构,其通常被表述为MDN-RNN架构。具体而言,记忆模型 M 并不直接输出一个具体值,而是一个关于潜空间向量 zt 正态分布的参数 μt,σt2。具体而言有
ht+1=RNN(ht,at,zt)
混合密度网络MDN将潜空间向量 zt 的概率分布看做多个正态分布的叠加,目的是预测
P(zt+1∣ht+1)=MDN(ht+1,τ)
其中 τ 称为温度系数,以增加采样的随机性。
环境建模
上文的世界模型架构结合了VAE和RNN,其痛点在于:它的潜空间缺乏对不确定性的建模,并且假设过于简单,导致在复杂环境中预测的未来轨迹容易失真或发散。为了解决这一问题,我们需要考虑更复杂和严谨的环境建模
智能体通常只能接收到独立的照片输入,这些被视为环境的一部分,因此我们考虑一个POMDP来描述环境演化。对于时间步 t,我们可以使用神经网络来表示这个POMDP的部分元素。特别的,我们使用 st 表示观测 ot 对应的潜空间向量,其维度较低但信息丰富。
- 状态转移 st∼p(st∣st−1,at−1)=N(s;μ,σ2I)
- 状态观测 ot∼p(ot∣st)
- 奖励函数 rt∼p(rt∣st)=N(r;μ,1)
- 策略 at∼p(at∣o1:t,a1:(t−1))
上述建模引入了随机性。为了引入确定性,我们仍然考虑一个RNN来表示隐状态 ht 的转移
ht=f(ht−1,st−1,at−1)
循环状态空间
与VAE不同的是,RSSM通过对一个时间序列样本进行处理,以获取其连续信息。但是这就引入了一个问题:VAE通过假设先验分布 p(z)=N(z;0,I) 分别对各个数据样本点进行处理,但是RSSM的连续性使得这个先验分布也是变化的。具体来说,潜变量当前状态的先验分布是由上一刻的状态和动作预测出来的。
设模型总时间步数为 T,模型的编码器 q 被近似为
q(s1:T∣o1:T,a1:T)=t=1∏Tq(st∣st−1,at−1,ot)
设真实的编码器为 p,我们的目标是找到一个最优的 q
q=argqminDKL[q∥p]
可参考VAE的变分下界推导,得到 q 对应的 ELBO 用以训练,本文略去。
因此,RSSM本质上就是把确定性状态和随机性状态结合在了一起,它把序列建模成在潜空间中的概率动态系统,并用RNN来近似这个动态系统的后验与先验分布。此时,其涉及的函数记号如下
- 确定性状态转移 ht=f(ht−1,st−1,at−1)
- 随机性状态转移 st∼p(st∣ht)
- 状态观测 ot∼p(ot∣ht,st)
- 奖励函数 rt∼p(rt∣ht,st)