第一篇 强化学习基础(上)——马尔科夫决策过程


本分类专栏博客系列是学习《深入浅出强化学习原理入门》的学习总结。
书籍链接:链接:https://pan.baidu.com/s/1p0qQ68pzTb7_GK4Brcm4sw 提取码:opjy



马尔科夫决策过程

1. 强化学习的基本原理

强化学习过程

智能体在完成某项任务时,⾸先通 过动作A与周围环境进⾏交互,在动作A和环境的作⽤下,智能体会产⽣新 的状态,同时环境会给出⼀个⽴即回报。如此循环下去,智能体与环境不 断地交互从⽽产⽣很多数据。强化学习算法利⽤产⽣的数据修改⾃⾝的动 作策略,再与环境交互,产⽣新的数据,并利⽤新的数据进⼀步改善⾃⾝ 的⾏为,经过数次迭代学习后,智能体能最终学到完成相应任务的最优动 作(最优策略)
在这里插入图片描述

强化学习与监督、非监督学习的区别?

监督学习和⾮监督学习中,数据是静态的、 不需要与环境进⾏交互,⽐如图像识别,只要给出⾜够的差异样本,将数据输⼊深度⽹络中进⾏训练即可。然⽽,强化学习的学习过程是动态的、 不断交互的过程,所需要的数据也是通过与环境不断交互所产⽣的。

强化学习更像是⼈的学习过程: ⼈类通过与周围环境交互,学会了⾛路,奔跑,劳动;⼈类与⼤⾃然,与 宇宙的交互创造了现代⽂明。

深度学习如图像识别和语⾳识别解决 的是感知的问题,强化学习解决的是决策的问题。⼈⼯智能的终极⽬的是 通过感知进⾏智能决策

2. ⻢尔科夫性

所谓⻢尔科夫性是指系统的下⼀个状态 s t + 1 s_{t+1} 仅与当前状态 s t s_t 有关,⽽与以前的状态⽆关。

状态 s t s_t 是⻢尔科夫的,当且仅当: P [ s t + 1 s t ] = P [ s t + 1 s 1 s t ] P[s_{t+1} |s_t ]=P[s_{t+1} |s_1 ,…,s_t ]

3. ⻢尔科夫过程

⻢尔科夫过程的定义:⻢尔科夫过程是⼀个⼆元组 S P (S,P) ,且满 ⾜: S S 是有限状态集合, P P 是状态转移概率。状态转移概率矩阵为:
在这里插入图片描述
如图2.2所⽰为⼀个学⽣的7种状态{娱乐,课程1,课程2,课程3,考过,睡觉,论⽂},每种状态之间的转换概率如图所⽰。则该⽣从课程 1 开始⼀天可能的状态序列为:
课1-课2-课3-考过-睡觉
课1-课2-睡觉
以上状态序列称为⻢尔科夫链。当给定状态转移概率时,从某个状态出发存在多条⻢尔科夫链。
在这里插入图片描述

4. ⻢尔科夫决策过程

动作(策略)和回报考虑在内的⻢尔科夫过程称为⻢尔科夫决策过程。

4.1 符号化描述

⻢尔科夫决策过程由元组 S A P R γ (S,A,P,R,γ) 描述,其中:
S S 为有限的状态集
A A 为有限的动作集
P P 为状态转移概率
R R 为回报函数
γ γ 为折扣因⼦,⽤来计算累积回报。

注意,跟⻢尔科夫过程不同的是,⻢尔科夫决策过程的状态转移概率 是包含动作的,即:
P S S a = P [ S t + 1 = s S t = s , A t = a ] P_{SS'}^a = P[{S_{t + 1}} = s'|{S_t} = s,{A_t} = a]

在这里插入图片描述
在图2.3中, 学⽣有五个状态,状态集为S={s1 ,s2 ,s3 ,s4 ,s5 },动作集为A= {玩,退出,学习,发表,睡觉},在图2.3中⽴即回报⽤R标记。

强化学习的⽬标是给定⼀个⻢尔科夫决策过程,寻找最优策略。所谓 策略是指状态到动作的映射,策略常⽤符号 π π 表⽰,它是指给定状态 s s 时, 动作集上的⼀个分布,即:
π ( a s ) = p [ A t = a S t = s ] \pi (a|s) = p[{A_t} = a|{S_t} = s]

策略 π π 在每个状态 s s 指定⼀个动作概 率。如果给出的策略 π π 是确定性的,那么策略 π π 在每个状态 s s 指定⼀个确定的动作。例如其中⼀个学⽣的策略为 π 1 ( s 1 ) = 0.8 π_1(玩|s_1)=0.8 ,是指该学⽣在状态 s 1 s_1 时玩的概率为 0.8 0.8 ,不玩的概率是 0.2 0.2 ,显然这个学⽣更喜欢玩。

强化学习是找到最优的策略,这⾥的最优是指得到的总回报最⼤。

4.2 累积回报

当给定⼀个策略 π π 时,我们就可以计算累积回报了。⾸先定义累积回报
在这里插入图片描述
当给定策略 π π 时,假设从状态 s 1 s_1 出发,学⽣状态序列可能为
在这里插入图片描述

此时,在策略 π π 下,利⽤ G t G_t 那个公式可以计算累积回报 G 1 G_1 ,此时 G 1 G_1 有 多个可能值。由于策略 π π 是随机的,因此累积回报也是随机的。为了评价状态 s 1 s_1 的价值,我们需要定义⼀个确定量来描述状态 s 1 s_1 的价值,很⾃然的想法是利⽤累积回报来衡量状态 s 1 s_1 的价值。然⽽,累积回报 G 1 G_1 是个随机变 量,不是⼀个确定值,因此⽆法描述,但其期望是个确定值,可以作为状态值函数的定义。

4.3 价值函数:状态值函数与状态-⾏为值函数

1. 状态值函数的定义

当智能体采⽤策略 π π 时,累积回报服从⼀个分布,累积回报在状态 s s 处的期望值定义为状态值函数:
在这里插入图片描述

注意:状态值函数是与策略 π π 相对应的,这是因为策略π决定了累积回报 G G 的状态分布。图2.4是与图2.3相对应的状态值函数图。图中空⼼圆圈中的数值为该状 态下的值函数。即: υ π s 1 = 2.3 υ π s 2 = 1.3 υ π s 3 = 2.7 υ π s 4 = 7.4 υ π s 5 = 0 υ_π (s_1 )=-2.3,υ_π (s_2 )=-1.3,υ_π (s_3 )=2.7,υ_π (s_4 )=7.4,υ_π (s_5 )=0
在这里插入图片描述

2. 状态-⾏为值值函数的定义

相应地,状态-⾏为值函数为
在这里插入图片描述
上面分别给出了状态值函数和状态-⾏为值函数的定 义计算式,但在实际真正计算和编程的时候并不会按照定义式编程。接下 来我们会从不同的⽅⾯对定义式进⾏解读。

3. 状态值函数和状态-行为值函数的区别

在这里插入图片描述

  1. 状态值函数V:从状态 x 0 x_0 开始, 所有的动作 a a ,都是执行某个策略 π π 的结果,最后求每个动作带来累积奖赏;

  2. 状态-动作函数Q:从状态 x 0 x_0 开始,先执行动作 a 0 a_0 , 然后再执行某个策略 π π ,再求相应的积累奖赏。

4. 状态值函数的具体推导过程

如下图所示:其中空⼼圆圈表⽰状态,实⼼圆圈表⽰状态-⾏为对。
在这里插入图片描述
图2.5为值函数的计算分解⽰意图,图2.5B计算公式
在这里插入图片描述
上式中, π ( a s ) \pi(a|s) 表示在状态 s s 时做动作 a a 的概率。 q π ( s , a ) q_{\pi}(s,a) 表示状态-行为值函数。我们可以理解为求解离散型随机变量的期望:概率乘以值。

图2.5B给出了状态值函数与状态-⾏为值函数的关系。图2.5C计算状态- ⾏为值函数为
在这里插入图片描述
在这里,回顾一下状态行为值函数:从状态 x 0 x_0 开始,先执行动作 a 0 a_0 , 然后再执行某个策略 π π ,再求相应的积累奖赏。
我们可以理解为,当前状态的积累奖赏加上转移状态的行为奖赏。

将(2.8)式代⼊(2.7)式可以得到:

在这里插入图片描述

公式(2.9)可以在图2.4中进⾏验证。选择状态 s 4 s_4 处。由图2.4知道 v s 4 = 7.4 v(s4 )=7.4 ,由公式(2.9)得
在这里插入图片描述
保留⼀位⼩数为7.4。 计算状态值函数的⽬的是为了构建学习算法从数据中得到最优策略。 每个策略对应着⼀个状态值函数,最优策略⾃然对应着最优状态值函数。

4. 状态-行为值函数的具体推导过程

在这里插入图片描述
在2.6C中,在这里插入图片描述
将(2.10)代⼊(2.8)中,得到状态-⾏为值函数:
在这里插入图片描述

4.4 状态值函数与状态-⾏为值函数的⻉尔曼⽅程

我们先来讲一下什么是贝尔曼方程:贝尔曼方程,又叫动态规划方程,是以Richard Bellman命名的,表示动态规划问题中相邻状态关系的方程。某些决策问题可以按照时间或空间分成多个阶段,每个阶段做出决策从而使整个过程取得效果最优的多阶段决策问题,可以用动态规划方法求解。某一阶段最优决策的问题,通过贝尔曼方程转化为下一阶段最优决策的子问题,从而初始状态的最优决策可以由终状态的最优决策(一般易解)问题逐步迭代求解。存在某种形式的贝尔曼方程,是动态规划方法能得到最优解的必要条件。绝大多数可以用最优控制理论解决的问题,都可以通过构造合适的贝尔曼方程来求解。

首先我们从value function的角度进行理解,value function可以分为两部分:

  • 立即回报 R t + 1 R_{t+1}
  • 后继状态的折扣价值函数 γ v ( S t + 1 ) \gamma v(S_{t+1})

由状态值函数的定义式(2.3)可以得到状态值函数的⻉尔曼⽅程
在这里插入图片描述
解释一下,

  • 从状态 s s 到状态 s + 1 s+1 是不确定的,比如掷骰子游戏,当前点数是1的情况下,下一个状态有可能是1,2,3,4,5,6的任意一种状态可能,所以最外层会有一个期望符号。
  • 如果我们跟着一直推下来的话:有疑问的会在导出最后一行时,将 G t + 1 G_{t+1} 变成了 v t + 1 v_{t+1} 。其理由是收获的期望等于收获的期望的期望。参考叶强童鞋的理解。

通过方程可以看出 v ( s ) v(s) 由两部分组成,一是该状态的即时奖励期望,即时奖励期望等于即时奖励,因为根据即时奖励的定义,它与下一个状态无关;这里解释一下为什么会有期望符合,是因为从状态 s s 到下一个状态 s + 1 s+1 可能有多个状态,比如掷骰子,下一个状态可能有1,2,3,4,5,6,从 s s 到下一个状态都是有一定概率,所以会有期望符合。

另一个是下一时刻状态的价值期望,可以根据下一时刻状态的概率分布得到其期望,比如在上面掷骰子例子中,从状态1到下一个状态1,2,3,4,5,6求期望的做法,我们可以直接用概率公式 p ( 1 1 ) , p ( 1 2 ) , p ( 1 3 ) , p ( 1 4 ) , p ( 1 5 ) , p ( 1 6 ) p(1 \to 1),p(1 \to 2),p(1 \to 3),p(1 \to 4),p(1 \to 5),p(1 \to 6) 然后乘以对应下一状态的价值函数即可。

如果用 s s’ 表示 s s 状态下一时刻任一可能的状态,那么Bellman方程可以写成:
在这里插入图片描述



同样我们可以得到状态-动作值函数的⻉尔曼⽅程
在这里插入图片描述

4.5 最优策略的选择

计算状态值函数的⽬的是为了构建学习算法从数据中得到最优策略。 每个策略对应着⼀个状态值函数,最优策略⾃然对应着最优状态值函数。

定义:最优状态值函数 v ( s ) v^*(s) 为在所有策略中值最⼤的值函数,即 v ( s ) = max π v π ( s ) {v^*}(s) = \mathop {\max }\limits_\pi {v_\pi }(s) 最优状态-⾏为值函数 q ( s a ) q^*(s,a) 为在所有策略中最⼤的状态-⾏为值函数,即 q ( s , a ) = max π q π ( s , a ) {q^*}(s,a) = \mathop {\max }\limits_\pi {q_\pi }(s,a)

我们由(2.9)式和(2.11)式分别得到最优状态值函数和最优状态-⾏动值函数的⻉尔曼最优⽅程:
在这里插入图片描述
若已知最优状态-动作值函数,最优策略可通过直接最⼤化 q ( s a ) q^*(s,a) 来决定。
在这里插入图片描述
如图2.7所⽰为最优状态值函数⽰意图,图中虚线箭头所⽰的动作为最 优策略。
在这里插入图片描述
⾄此,我们将强化学习的基本理论即⻢尔科夫决策过程介绍完毕。现 在该对强化学习算法进⾏形式化描述了。

我们定义⼀个离散时间有限范围的折扣⻢尔科夫决策过程:
M = S A P r ρ 0 γ T M=(S, A,P,r,ρ0 ,γ,T)

  • S S :状态集
  • A A :动作集
  • P S × A × S R P:S×A×S→R 是转移概率
  • r S × A [ R m a x R m a x ] r:S×A→[-Rmax ,Rmax ] 为⽴即回报函数
  • ρ 0 S R ρ0 :S→R 是初始状 态分布
  • γ [ 0 1 ] γ∈[0,1] :折扣因⼦
  • T T :⽔平范围(其实就是步数)
  • τ \tau :⼀个轨迹序列,即 τ = s 0 a 0 s 1 a 1 \tau=(s_0 ,a_0 ,s_1, a_1 ,…)
  • 累积回报: R = t = 0 T γ t r t R = \sum\limits_{t = 0}^T {{\gamma ^t}{r_t}}

强化学习的⽬标是找到最优策略 π π ,使得该策略下的累积回报期望最⼤,即: max π R ( τ ) p π ( τ ) d τ \mathop {\max }\limits_\pi \int {R(\tau ){p_\pi }(\tau )d\tau }

发布了21 篇原创文章 · 获赞 3 · 访问量 612

猜你喜欢

转载自blog.csdn.net/qq_38293297/article/details/105156173