强化学习_重要知识点总结(持续更新)

最近在写代码跑实验,以后有空再更新叭

1. 马尔科夫性(Markov Property)

  • 马尔科夫性是一种假设的性质,某个环境具有Markov性,则表现为下一时刻的state,仅由当前state决定,与过去的history没有太大关系。如果身处markov状态,就会一直在markov状态。数学表达式: P [ S t + 1 ∣ S t ] = P [ S t + 1 ∣ S 1 , … , S t ] \mathbb{P}\left[S_{t+1} | S_{t}\right]=\mathbb{P}\left[S_{t+1} | S_{1}, \ldots, S_{t}\right] P[St+1St]=P[St+1S1,,St]
  • 我们要做的是定义这样的一个state,令它具有markov性,这样就可以丢弃history了。即state是关于history的一个函数

2. 马尔科夫奖励过程(Markov Reward Process,MRP)<为MDP做铺垫>

  • MRP可以用元组 ⟨ S , P , R , γ ⟩ \langle\mathcal{S}, \mathcal{P}, \mathcal{R}, \gamma\rangle S,P,R,γ来表示。指的是:对于一个动态图,有许多的状态 S \mathcal{S} S,这些状态之间通过状态转移函数 P \mathcal{P} P进行连接,每个状态有相应的奖励 R \mathcal{R} R(即reward与state挂钩)。
  • 收获(return) G t G_{t} Gt是一个累积折损奖励,来自MRP的一个状态序列(Sample Episodes,该序列来自动态图的随机采样)。 G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + γ 3 R t + 4 + … = ∑ k = 0 ∞ γ k R t + k + 1 G_{t}=R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\gamma^3R_{t+4}+\ldots=\sum_{k=0}^{\infty} \gamma^{k} R_{t+k+1} Gt=Rt+1+γRt+2+γ2Rt+3+γ3Rt+4+=k=0γkRt+k+1其中折扣因子 γ \gamma γ越大,代表着侧重于exploration,越小代表着侧重于 Exploitation。
  • 价值函数 v ( s ) v(s) v(s)表示某一状态 s s s的长期价值,或者说当前状态有多好。 v ( s ) v(s) v(s)是return G t G_{t} Gt的期望: v ( s ) = E [ G t ∣ S t = s ] v(s)=\mathbb{E}\left[G_{t} | S_{t}=s\right] v(s)=E[GtSt=s]一种可能的形式是对 G t G_{t} Gt多次随机采样,取平均得到当前状态的 v ( s ) v(s) v(s)
  • MRP的Bellman方程可以写成: v ( s ) = R s + γ ∑ s ′ ∈ S P s s ′ v ( s ′ ) v(s)=\mathcal{R}_{s}+\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}} v\left(s^{\prime}\right) v(s)=Rs+γsSPssv(s)其中 R s \mathcal{R}_{s} Rs是状态 s s s的即时奖励, s ′ s' s是下一时刻可能的状态, P s s ′ \mathcal{P}_{s s^{\prime}} Pss是状态转移概率,表示从状态 s s s到状态 s ′ s' s的概率。当一个MRP模型建立完成,可以通过贝尔曼方程求解得到各个状态的value。
  • 下图是一个MRP示例 R R R是各个状态的reward(人为设定),箭头上的数字是状态转移概率(人为设定),红色字体是 γ = 1 \gamma=1 γ=1时各个状态的value(可以通过贝尔曼方程直接求得)。
    在这里插入图片描述

3. 马尔科夫决策过程(Markov Decision Process,MDP)

  • MDP可以用元组 ⟨ S , A , P , R , γ ⟩ \langle\mathcal{S}, \mathcal{A},\mathcal{P}, \mathcal{R}, \gamma\rangle S,A,P,R,γ来表示,相较于马尔科夫奖励过程(MRP),元组中多了一个有限的行为集合A(区别于连续的行为集合)这里的 P \mathcal{P} P R \mathcal{R} R都与具体的行为 a a a对应,而不像马尔科夫奖励过程那样仅对应于某个状态 S \mathcal{S} S,表达式略有改变: P s s ′ a = P [ S t + 1 = s ′ ∣ S t = s , A t = a ] \mathcal{P}_{s s^{\prime}}^{a}=\mathbb{P}\left[S_{t+1}=s^{\prime} | S_{t}=s, A_{t}=a\right] Pssa=P[St+1=sSt=s,At=a] R s a = E [ R t + 1 ∣ S t = s , A t = a ] \mathcal{R}_{s}^{a}=\mathbb{E}\left[R_{t+1} | S_{t}=s, A_{t}=a\right] Rsa=E[Rt+1St=s,At=a]注:在状态 s s s下采取动作 a a a,下一个状态 s ′ s^{\prime} s不一定是唯一的,比如饿了的状态下,采取吃饭的动作,下一个状态可能饿也可能饱。另外还看到一个说法: P s s ′ a \mathcal{P}_{s s^{\prime}}^{a} Pssa表示根据当前状态和接收到的动作,预测下一个状态的概率。
  • 策略(policy)表现为一个概率分布,用 π ( a ∣ s ) \pi(a | s) π(as)表示,描述在某一状态 s s s下采取可能的行为 a a a的概率。像这样的一个概率(随机)的形式,agent就能够进行探索(exploration) π ( a ∣ s ) = P [ A t = a ∣ S t = s ] \pi(a | s)=\mathbb{P}\left[A_{t}=a | S_{t}=s\right] π(as)=P[At=aSt=s]

3.1 贝尔曼期望方程(基于某一个策略)——进行策略评估

  • 基于策略的价值函数有两个,分别是状态价值函数(State-Value function) v π ( s ) v_{\pi}(s) vπ(s),表示从状态s开始,遵循策略 π \pi π时所获得的return的期望: v π ( s ) = E π [ G t ∣ S t = s ] v_{\pi}(s)=\mathbb{E}_{\pi}\left[G_{t} | S_{t}=s\right] vπ(s)=Eπ[GtSt=s]以及动作价值函数(Action-Value function) q π ( s , a ) q_\pi(s,a) qπ(s,a),表示在执行策略 π \pi π时,当前状态 s s s下执行某一具体行为 a a a所能的到的return的期望: q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] q_{\pi}(s, a) =\mathbb{E}_{\pi}\left[G_{t} | S_{t}=s,A_{t}=a\right] qπ(s,a)=Eπ[GtSt=s,At=a]他们一个是对state的评价(有多好),一个是对元组 ( s , a ) (s,a) (s,a)即状态下的具体动作的评价
  • 动作价值函数和状态价值函数可以互相表示 v π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a )                         ( 01 ) v_{\pi}(s)=\sum_{a \in \mathcal{A}} \pi(a | s) q_{\pi}(s, a)            (01) vπ(s)=aAπ(as)qπ(s,a)            (01) q π ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a v π ( s ′ )                   ( 02 ) q_{\pi}(s, a)=\mathcal{R}_{s}^{a}+\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}}^{a} v_{\pi}\left(s^{\prime}\right)         (02) qπ(s,a)=Rsa+γsSPssavπ(s)         (02)注:状态 s s s下执行动作 a a a所对应的奖励 R s a \mathcal{R}_{s}^{a} Rsa可能不唯一,因为执行动作 a a a之后可能有多个状态,也就有多个奖励。此时每个奖励都要乘以一个权重(即状态转移概率),求和得到的最终结果才是 R s a \mathcal{R}_{s}^{a} Rsa
  • 将上面两个式子组合起来,用代入法消去其中一种价值,就得到了贝尔曼期望方程的两种形式(递归表达式)在这里插入图片描述在这里插入图片描述贝尔曼期望方程是和策略相挂钩的,常用来进行策略评估。通过贝尔曼期望方程可以直接求解出在策略 π \pi π下,各个state的价值函数以及各个 ( s , a ) (s,a) (s,a)的价值函数。进而和别的策略下的价值函数相比,判断策略的好坏。

3.2 贝尔曼最优方程(基于最优策略)——寻找最优策略

  • 最优价值函数也有两个,分别是最优状态价值函数(optimal state value function) v ∗ ( s ) = max ⁡ π v π ( s ) v_{*}(s)=\max _{\pi} v_{\pi}(s) v(s)=πmaxvπ(s)即遍历所有的policy,取最大的 v π ( s ) v_{\pi}(s) vπ(s)即最优状态价值;以及最优动作价值函数(optimal actionvalue function) q ∗ ( s , a ) = max ⁡ π q π ( s , a ) q_{*}(s, a)=\max _{\pi} q_{\pi}(s, a) q(s,a)=πmaxqπ(s,a)即遍历所有的policy,取最大的 q π ( s , a ) q_{\pi}(s, a) qπ(s,a)即最优动作价值。只要求得了最优价值函数,就可以直接得到一个最优策略,其中一种选取方法是选择这样的确定性策略 π ∗ ( s ) = arg max ⁡ a ∈ A q ∗ ( s , a ) \pi_{*}(s)=\argmax _{a\in\mathcal{A}} q_{*}(s, a) π(s)=aAargmaxq(s,a)
  • 最优策略的性质 π ∗ ( a ∣ s ) = { 1  if  a = argmax ⁡ a ′ ∈ A q ∗ ( s , a ′ ) 0  其他  \pi_{*}(a | s)=\left\{\begin{array}{cc} 1 & \text { if } a=\underset{a^{\prime} \in \mathcal{A}}{\operatorname{argmax}} q_{*}(s, a^{\prime}) \\ 0 & \text { 其他 } \end{array}\right. π(as)={10 if a=aAargmaxq(s,a) 其他 当动作 a a a是最优动作时, π ∗ ( a ∣ s ) \pi_{*}(a | s) π(as)取1,否则取0。将这个表达式,代入3.1里面的两个基于策略 π \pi π的价值函数(01)和(02),即用最优策略代替一般性策略,得到可以互相表示的最优动作价值函数和最优状态价值函数 v ∗ ( s ) = max ⁡ a q ∗ ( s , a )                               ( 03 ) v_{*}(s)=\max _{a} q_{*}(s, a)               (03) v(s)=amaxq(s,a)               (03) q ∗ ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a v ∗ ( s ′ )                     ( 04 ) q_{*}(s, a)=\mathcal{R}_{s}^{a}+\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}}^{a} v_{*}\left(s^{\prime}\right)          (04) q(s,a)=Rsa+γsSPssav(s)          (04)注意:这里的 R s a \mathcal{R}_{s}^{a} Rsa也可能不唯一,参照3.1。
  • 将上面两个式子(03)、(04)组合起来,用代入法消去其中一种价值,就得到了贝尔曼最优方程的两种形式(递归表达式)在这里插入图片描述在这里插入图片描述通过列出各个状态的Bellman方程或者各个动作的Bellman方程,联立起来就能解出最优价值。但是最优方程有 m a x ( ) max() max()运算,可以通过分类讨论转化为多个线性方程组求解理论上,通过求解Bellman最优方程,可以找到最优价值函数,进而轻易找到最优策略:对于每个状态 s ∈ S s\in\mathcal{S} sS,总是选择让 q ∗ ( s , a ) q_{*}(s, a) q(s,a)最大的动作 a a a。实际上,使用Bellman最优方程求解最优策略会遇到一些困难。主要是难以列出Bellman最优方程,还有就是实际问题的状态空间非常大,没有足够的计算资源来求解方程,这时可以考虑间接的方法求解甚至用近似值。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值