1 RL基本建模

224 阅读6分钟

RL研究的基本问题

直观框架与基本概念

RL建模非常直观,他建模了智能体agent环境environment不断交互的过程。

  • 1 智能体agent:内部维护了一个策略policy,他能够基于对环境的观察observation,做出动作action

  • 2 环境env:内部维护了一个状态state,状态随时间变化,变化的原因一个是环境内在的因素,一是受到agent的action影响。在收到agent的action时,env会根据自己的state变化情况返回一个奖励reward

  • 3 env状态的变化导致agent对env的observation发生变化,基于这个新的observation,agent按照自己的policy进行下一轮action的选择。

强化学习的目标是对于一个给定的环境,为agent寻找一个policy,使得它最大化reward奖励总和。

基于概率的建模

强化学习建模了交互的一个过程(从agent的视角看他在不断决策,所以称之为决策过程),而且这个过程中充满不确定性。从agent的视角入手我们能够分析出来,不确定性来自两个方面。

  • agent不知道env到底是怎么变化的,在输出一个action之前也不知道到底能获得多少收益,

  • 因为对环境不确定,导致agent也不敢说在当前这个observation下采取某个特定的action就一定是最好的

上面这两个方面的不确定更正式一点可总结为:1) env导致的不确定,2) agent自身导致的不确定。

对于随机问题,自然需要用概率建模。

接下来我们考察一个具体的交互过程,用St,At,RtS_t, A_t, R_t分别表示tt时刻的state,action和reward。这里暂时不考虑observation,假设我们的observation可以把环境的state完全观察到。

τ=S0,A0,R0,S1,A1,R1,...,Sn,An,Rn,Sn+1\tau = S_0, A_0, R_0, S_1, A_1, R_1, ..., S_n, A_n, R_n, S_{n+1}

既然这个过程是随机的,那这个轨迹的每一步都是依照概率发生的,我们尝试用概率表示每一步:

  • 首先初始状态S0S_0的产生用概率P(S0)P(S_0)表示

  • 接下来动作是A0A_0是看到了S0S_0做出的,所以他的概率是P(A0S0)P(A_0|S_0)

  • 接下来,环境能够转移到S1S_1并给出reward R1R_1是在A0A_0S0S_0的情况下产生的,所以概率是P(S1,R0S0,A0)P(S_1, R_0|S_0, A_0)

再分析一轮就会出问题:

  • 对agent,如果动作是A1A_1是看到了S1S_1做出的那概率就是P(A1S1)P(A_1|S_1),但是它是不是也可以考虑A0A_0, S0S_0?那概率就是P(A1S1,A0,S0)P(A_1|S_1, A_0, S_0)

  • 对env,能够转移到S2S_2并给出reward R1R_1是在A1A_1S1S_1的情况下产生的,那概率就是P(S2,R1S1,A1)P(S_2, R_1|S_1, A_1),但他会不会受到更前面的影响呢? 这样概率就是P(S2,R1S1,A1,S0,A0)P(S_2, R_1|S_1, A_1, S_0, A_0)

这个时候就引出了经典的马尔可夫性质(Markov Property)假设。它的意思直观来说是:未来只和现在有关。即P(FutureNow)=P(FutureNow,History)P(Future|Now) = P(Future|Now, History)

另外一种等价说法是,掌握了现在,则未来和过去独立。

对于前面的分析,如果把t=0,1,2t=0, 1,2分别当作history, now和future

那对于agent和env的概率就应该分别是P(A1S1)P(A_1|S_1)P(S2,R1S1,A1)P(S_2, R_1|S_1, A_1)

Markov Property极大简化了假设,让分析和计算变得简单。

但简单的代价就是假设本身的合理性,不过抛开具体案例讨论假设的合理性没有意义,因此不做过多讨论。一般而言这个假设还是比较通用的。

现在对于一个决策过程τ\tau,我们可以分析出他的概率:

p(τ)=p(S0)p(A0S0)p(S1,R0S0,A0)...=p(S0)t=0np(St+1,RtSt,At)p(AtSt)p(\tau)=p(S_0)p(A_0|S_0)p(S_1, R_0|S_0, A_0)... = p(S_0)\prod_{t=0}^{n} p(S_{t+1}, R_t|S_t, A_t)p(A_{t}|S_{t})

我们一般不关心初始状态的概率p(S0)p(S_0),因为是env的初始状态,agent也左右不了,因此我们更关心连乘符号后面的部分,第一项p(St+1,RtSt,At)p(S_{t+1}, R_t|S_t, A_t)表征了env的不确定性,还是左右不了。第二项p(AtSt)p(A_{t}|S_{t})表征了agent的不确定性,这是我们能够控制的!

更进一步我们发现第二项其实就是agent的policy具体执行的结果,p(St)p(\cdot |S_t)其实是一个分布列,即在给定StS_t的情况下,输出每一个动作的概率。然后agent依概率采样选取了一个特定的动作AtA_t

至此,上面的大写字母St,At,RtS_t, A_t, R_t表示的是一个确定的事件,换成小写字母表示一个变量,则强化学习可以更为形式化的表述成:

给定模型p(s,rs,a)p(s', r|s, a),求策略p(s)p(\cdot|s),使得它能够最大化E[tRt]\mathbb{E}[\sum_{t}R_t]

我们一般用GG表示tRt\sum_{t}R_t,称之为累积收益。最大化的目标为期望累积收益。

有的时候我们认为reward早拿到会比晚拿到好(类似的思想通货膨胀),因此建模会引入一个discount factor,范围在(0,1](0,1]之间,一般用γ\gamma表示,这样我们的最大化目标就变成了E[tγtRt]\mathbb{E}[\sum_{t}\gamma^t R_t]。这样还有一个更现实的需求,就是reward前面乘一个指数级数方便使累积收益GG收敛,让它是一个有限的数字,方便估计。

至此,我们已经引出了马尔科夫决策过程(Markov Decision Process, MDP)的全部内容。

一个MDP一般建模成五元组<S,T,A,R,γ><S, T, A, R, \gamma>SSAA是state和action的取值空间,T和R分别是env的state转移概率和输出reward的概率分布。

一般表示为p(ss,a)p(s'|s, a)p(rs,a)p(r|s, a),可以用我们前面的p(r,ss,a)p(r', s'|s, a)分别求边缘分布得到。即p(ss,a)=rp(s,rs,a)p(s'|s, a)=\sum_{r} p(s', r|s, a)p(rs,a)=sp(s,rs,a)p(r|s, a)=\sum_{s'} p(s', r|s, a)

Notes

  • 1 上面的建模分析中的τ\tau称之为一个episode。过程是否有限在计算期望累计收益是会有区别,这个在PPO那里会讲到。

  • 2 如果把observation也考虑进去,通常认为observation仅受当前state影响,那么这个概率就可以表示为P(OtSt)P(O_t|S_t)。这个和agent也没关系,只是env的事情,所以env的不确定变成了P(Rt,Ot+1At,St)=P(Ot+1St+1)P(Rt,StAt,St)P(R_t, O_{t+1}|A_t, S_t) = P(O_{t+1}|S_{t+1})P(R_t, S_t|A_t, S_t),agent的policy就变成了P(AO)P(A|O)。因为我们的分析和优化主要都是在agent上,所以环境的变化其实没啥太大影响,日后对observation和state就不再区分。

  • 3 上面的分析里,假设了时间是离散的,这个假设并不强,实际应用不会明显感觉到restriction,或者感觉到restriction的时候就不是RL的领域了。

  • 4 上面的分析没有对action和state是否是离散还是连续作出假设,但是在实际应用中,会感觉到显著差别,一般连续会更麻烦,特别是action的连续尤其麻烦。

  • 5 前面已经说到p(s)p(\cdot|s)是policy,而policy一般用π\pi表示,所以这个概率分布有时候也写成π(s)\pi(\cdot|s),有的时候policy是确定性的,这个时候会写成π(s)\pi(s),此时他表示的不是一个概率而直接就是action。更进一步,policy如果是一个神经网络的话,那他是由参数决定的,如果用θ\theta表示参数,则前面的符号可以表示为πθ(s)\pi_\theta(\cdot|s)或者π(s;θ)\pi(\cdot|s;\theta)