RL中的关键概念

1. States and Observations

state 是对word 的描述,是完整的;observation 是对state的描述,是不完整的。他们都用一种real_valued向量、矩阵或者更高阶的tensor来表述。比如,可观测状态可以表示成RGB矩阵,机器人的状态可以表示成关节的角度和速度

2. Action Spaces

给定环境下的动作集合,分为离散的(棋类游戏)和连续的(机器人)。

3. Policies

帮助agent决定采取哪种action,可以是确定的,也可以是随机的。前者通常用 μ\mu表示,后者用 π\pi 表示.由于policy就是agent最重要的部分,所以可以将二者视为等价,所以在表示方法上,也可以用变量a来替代p
某一时刻下的确定性策略可以表示为:
at=μ(st) a_{t}=\mu\left(s_{t}\right)
某一时刻下的随机性策略可以表示为:
atπ(st) a_{t} \sim \pi\left(\cdot | s_{t}\right)
在深度学习中,所有的策略是有参数的。策略可以看做是一个函数的映射过程,需要依赖一组参数才能得到一个结果,指导agent进行某种行动,这里的参数类似于神经网络的神经元。不断调参可以获得最佳结果,所以策略是依赖于参数的,我们用θ\theta 或者 ϕ\phi来进行下标表示。
at=μθ(st)atπθ(st) \begin{aligned} a_{t} &=\mu_{\theta}\left(s_{t}\right) \\ a_{t} & \sim \pi_{\theta}\left(\cdot | s_{t}\right) \end{aligned}

3.1 确定性的策略(Deterministic Policies)

连续动作空间下的TensorFlow的例子

obs = tf.placeholder(shape=(None, obs_dim), dtype=tf.float32)
net = mlp(obs, hidden_dims=(64, 64), activation=tf.tahn)
actions = tf.layers.dense(net, units=act_dim, activation=None)

贪婪策略是一个确定性的策略、只在动作值函数最大的动作以概率为1的机率选择,其他动作以概率0选择。
π(as)={1 if a=argmaxq(s,a)0  if else \pi_{*}(a | s)=\left\{\begin{array}{ll}{1} & {\text { if } \quad a=\operatorname{argmax} q_{*}(s, a)} \\ {0} & {\ \text { if else }}\end{array}\right.

3.2 随机性的策略

ϵgreedy\epsilon-greedy​策略是强化学习常用的随机策略。以比较大的概率选择动作值函数的最大的动作,以比较小的概率选择的其他动作,保证了探索性。

其他还有高斯策略、玻尔兹曼策略等。

4. Trajectories

τ\tau 表示,又称为episodes 或者 rollouts.就是一系列的状态和策略,
τ=(s0,a0,s1,a1,) \tau=\left(s_{0}, a_{0}, s_{1}, a_{1}, \dots\right)
初始状态一般是从初始状态的分布中采样得到的,常用 ρ0\rho_{0} 表示
s0ρ0() s_{0} \sim \rho_{0}(\cdot)

下一状态只和当前策略有关,可以是确定的,也可以是随机的。(马尔科夫决策过程吧)
st+1=f(st,at)st+1P(st,at) \begin{array}{c}{s_{t+1}=f\left(s_{t}, a_{t}\right)} \\ {s_{t+1} \sim P\left(\cdot | s_{t}, a_{t}\right)}\end{array}

5. Reward and Return

Reward函数用RR 表示,依赖于当前状态、当前策略和下一状态,有的简写成依赖于前两个,甚至只依赖于第一个,所以在此简化,把依赖参数统称 τ\tau,即收益函数表示为 RτR_{\tau}. 某一时刻下Return 就是Reward函数的结果,用 rtr_{t} 表示。
总的收益有两种计算方式,一种是不考虑折扣的,即各种时刻下收益值直接相加求和。
R(τ)=t=0Trt R(\tau)=\sum_{t=0}^{T} r_{t}
另外一种就是对每次的收益都打一个折 γ\gamma,取值(0,1)
R(τ)=t=0γtrt R(\tau)=\sum_{t=0}^{\infty} \gamma^{t} r_{t}
加上折扣因子有两方面考虑,一是因为,下一时刻的折扣是我们预期的,不能满算,就像是未来的货币总不如手里的值钱;二是从数学角度考虑的,无限时刻下的收益总和可能不会收敛,加上这个因子可以更容易求和收敛。

关于两种返回结果的表示说明
二者之间的界限其实不是很特别明显,对于第一种无折扣的返回表示,常通过算法去优化这一函数,但是在预测value function的时候,更常用的是第二种

6. RL学习学的是什么?

不管选择哪种 return表示,也不管policy怎么选,RL的目标就是选择一种policy,让agent能根据他的action,获得最大expected return.

expected return是一系列状态和行为下(针对 trajectories轨迹),总的收益。我们假定环境变化和策略都是随机,这样一来, 一个 TT-step的概率可以表示为:

P(τπ)=ρ0(s0)t=0T1P(st+1st,at)π(atst) P(\tau | \pi)=\rho_{0}\left(s_{0}\right) \prod_{t=0}^{T-1} P\left(s_{t+1} | s_{t}, a_{t}\right) \pi\left(a_{t} | s_{t}\right)

这个公式可以理解为,从一个初始状态出发,然后根据当前状态和行为,转移到了下一个状态。

那么期望收益 expected return就可以表示为:
J(π)=τP(τπ)R(τ)=Eτπ[R(τ)] J(\pi)=\int_{\tau} P(\tau | \pi) R(\tau)=\underset{\tau \sim \pi}{\mathrm{E}}[R(\tau)]
这个公式可以理解为每一个状态和状态下的收益的总和。因为是随机的,所以要用积分的方式求。又因为现代概率论上,期望的定义就是一种积分,所以收益也是期望的收益。

想让期望收益最大,就是想找到最优策略:
π=argmaxπJ(π) \pi^{*}=\arg \max _{\pi} J(\pi)

7. Value function

value function就是用来衡量一个状态及行为的,看看当前状态下的策略能带来多大收益。主要有四类value function:

  1. 第一种是 On-Policy Value FunctionVπ(s)V^{\pi}(s),就是从一开始的状态下,就老老实实执行policy选的动作,得到预期收益。
    Vπ(s)=Eτπ[R(τ)s0=s] V^{\pi}(s)=\underset{\tau \sim \pi}{\mathrm{E}}\left[R(\tau) | s_{0}=s\right]
  2. 第二种是On-Policy Action-Value FunctionQπ(s,a)Q^{\pi}(s, a),和第一种方法不同的是,虽然一开始状态是固定的,但是我可以不听policy给定的动作,自己随便选一个,但是这之后,依旧会老老实实服从安排。

Qπ(s,a)=Eτπ[R(τ)s0=s,a0=a] Q^{\pi}(s, a)=\underset{\tau \sim \pi}{\mathrm{E}}\left[R(\tau) | s_{0}=s, a_{0}=a\right]

  1. 第三种是Optimal Value FunctionV(s)V^{*}(s),和第一种不同的时,每次会先选择最优策略 π\pi,然后执行该策略下的动作。

V(s)=maxπEτπ[R(τ)s0=s] V^{*}(s)=\max _{\pi} \underset{\tau \sim \pi}{\mathrm{E}}\left[R(\tau) | s_{0}=s\right]

  1. 第四种是 Optimal Action-Value FunctionQ(s,a)Q^{*}(s, a),开始时也是随机选一个动作,在这之后,每次都会先选择最优策略,再执行最优策略下的行动。

Q(s,a)=maxπEτπ[R(τ)s0=s,a0=a] Q^{*}(s, a)=\max _{\pi} \underset{\tau \sim \pi}{\mathrm{E}}\left[R(\tau) | s_{0}=s, a_{0}=a\right]

value function 和时间的关系
时间无关性是指MDP经过不断演化,最终会使不同时刻下相同状态的价值相等。

当我们讨论valuefunction的时候,如果我们不考虑时间性,我们的预期收益是无限带折扣因子的,即infinite-horizon discounted return,如果考虑时间,就需要加入一个时间因子。

Note that V(n)V(n)
is exactly V0V_0 in a finite-horizon problem with n
timesteps.

value function 和 the action-value function

回顾一下,根据MDP的模型形式,价值函数一般可以分为两种类型。

  • 状态值函数 vπ(s)v_{\pi}(s):也就是已知当前状态 ss,按照某种策略行动产生的长期回报期望。
  • 状态-行动值函数qπ(s,a)q_{\pi}(s, a):也就是已知当前状态和行动,按照某种策略行动产生的长期回报期望。

实际上,即使采用这样的方式,仍然难以计算价值。如果要计算从某个状态出发的value function,相当于依从某个策略,把所有从这个状态出发的可能路径走一遍,将这些路径的长期回报按照概率求期望:
vπ(st)=Eτ[k=0γkrt+k+1]=τp(τ)k=0γkrt+k+1 \begin{aligned} v_{\pi}\left(s_{t}\right) &=E_{\tau}\left[\sum_{k=0}^{\infty} \gamma^{k} \boldsymbol{r}_{t+k+1}\right] \\ &=\sum_{\boldsymbol{\tau}} p(\boldsymbol{\tau}) \sum_{k=0}^{\infty} \gamma^{k} \boldsymbol{r}_{t+k+1} \end{aligned}

其中 τ\tau 表示从状态 sts_t出发的某条路径。将部分路径按照马尔科夫决策展开,

vπ(st)=(st,at,)τπ(atst)p(st+1st,at)k=0γkrt+k+1 v_{\pi}\left(s_{t}\right)=\sum_{\left(s_{t}, a_{t}, \ldots\right) \sim \tau} \pi\left(\boldsymbol{a}_{t} | \boldsymbol{s}_{t}\right) p\left(\boldsymbol{s}_{t+1} | \boldsymbol{s}_{t}, \boldsymbol{a}_{t}\right) \ldots \sum_{k=0}^{\infty} \gamma^{k} \boldsymbol{r}_{t+k+1}

使用代换消元法,将公式改写为:

vπ(st)=τπ(atst)p(st+1st,at)k=0γkrt+k+1 v_{\pi}\left(s_{t}\right)=\sum_{\tau} \pi\left(\boldsymbol{a}_{t} | \boldsymbol{s}_{t}\right) p\left(\boldsymbol{s}_{t+1} | \boldsymbol{s}_{t}, \boldsymbol{a}_{t}\right) \ldots \sum_{k=0}^{\infty} \gamma^{k} \boldsymbol{r}_{t+k+1}

贝尔曼方程

其实我们可以发现,value function可以通过递归的方式表示。假设value function已经稳定,任意一个状态的价值可以由其他状态的价值得到,这个公式就被成为贝尔曼方程。

对于on-policy价值函数,其贝尔曼方程如下

Vπ(s)=Egπ[r(s,a)+γVπ(s)]Qπ(s,a)=EsP[r(s,a)+γEaπ[Qπ(s,a)]] \begin{aligned} V^{\pi}(s) &=\underset{g \sim \pi}{\mathrm{E}}\left[r(s, a)+\gamma V^{\pi}\left(s^{\prime}\right)\right] \\ Q^{\pi}(s, a) &=\underset{s^{\prime} \sim P}{\mathrm{E}}\left[r(s, a)+\gamma \underset{a^{\prime} \sim \pi}{\mathrm{E}}\left[Q^{\pi}\left(s^{\prime}, a^{\prime}\right)\right]\right] \end{aligned}

其中 ss^{\prime}rSP(s,a)\mathbf{r}_{S}^{\prime} \sim P(\cdot | s, a) 的简写,表明下一个状态 ss^{\prime} 是根据环境转移规则随机出来的。 aπa \sim \piaπ(s)a \sim \pi(\cdot | s) 的简写,aπa^{\prime} \sim \piaπ(s)a^{\prime} \sim \pi(\cdot | s) 的简写,

对于optimal价值函数的贝尔曼方程如下
V(s)=maxaEsP[r(s,a)+γV(s)]Q(s,a)=EsP[r(s,a)+γmaxaQ(s,a)] \begin{aligned} V^{*}(s) &=\max _{a} \underset{s^{\prime} P}{\mathrm{E}}\left[r(s, a)+\gamma V^{*}\left(s^{\prime}\right)\right] \\ Q^{*}(s, a) &=\underset{s^{*} \sim P}{\mathrm{E}}\left[r(s, a)+\gamma \max _{a^{\prime}} Q^{*}\left(s^{\prime}, a^{\prime}\right)\right] \end{aligned}

8. Advantage Functions

不需要是最好的action,比其他的action好就行了。Aπ(s,a)A^{\pi}(s, a) 表示,假定你一直使用一种策略 π\pi, 那么在一种状态下,使用这种策略下采用的行动,比随机选的行动 π(s)\pi(\cdot | s) 要好多少。数学公式表示如下:

Aπ(s,a)=Qπ(s,a)Vπ(s) A^{\pi}(s, a)=Q^{\pi}(s, a)-V^{\pi}(s)

这个函数对 policy gradient方法特别重要!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章