强化学习入门基础-马尔可夫决策过程(MDP)
作者:YJLAugus 博客: https://www.cnblogs.com/yjlaugus 项目地址:https://github.com/YJLAugus/Reinforcement-Learning-Notes,如果感觉对您有所帮助,烦请点个Star。
MDP背景介绍
Random Variable
随机变量(Random Variable),通常用大写字母来表示一个随机事件。比如看下面的例子:
\(X\): 河水是咸的
\(Y\): 井水是甜的
很显然,\(X\), \(Y\)两个随机事件是没有关系的。也就是说\(X\)和\(Y\)之间是相互独立的。记作:
X \bot Y
\]
Stochastic Process
对于一类随机变量来说,它们之间存在着某种关系。比如:
\(S_{t}\):表示在 \(t\) 时刻某支股票的价格,那么 \(S_{t+1}\) 和 \(S_t\) 之间一定是有关系的,至于具体什么样的关系,这里原先不做深究,但有一点可以确定,两者之间一定存在的一种关系。随着时间 \(t\) 的变化,可以写出下面的形式:
...S_t, S_{t+1},S_{t+2}...
\]
这样就生成了一组随机变量,它们之间存在着一种相当复杂的关系,也就是说,各个随机变量之间存在着关系,即不相互独立。由此,我们会把按照某个时间或者次序上的一组不相互独立的随机变量的这样一个整体作为研究对象。这样的话,也就引出了另外的一个概念:随机过程(Stochastic Process)。也就是说随机过程的研究对象不在是单个的随机变量,而是一组随机变量,并且这一组随机变量之间存在着一种非常紧密的关系(不相互独立)。记作:
\lbrace S_t \rbrace ^\infty_{t=1}
\]
Markov Chain/Process
马尔科夫链(Markov Chain)即马尔可夫过程,是一种特殊的随机过程——具备马尔可夫性的随机过程。
- 马尔可夫性:(Markov Property): 还是上面股票的例子,如果满足 \(P(S_{t+1} \mid S_t,S_{t-1}...S_1) = P(S_{t+1}\mid S_t)\),即具备了马尔可夫性。简单来说,\(S_{t+1}\) 和\(S_t\)之间存在关系,和以前的时刻的没有关系,即只和“最近的状态” 有关系。
- 现实例子:下一个时刻仅依赖于当前时刻,跟过去无关。比如:一个老师讲课,明天的讲课状态一定和今天的状态最有关系,和过去十年的状态基本就没关系了。
- 最主要考量:为了简化计算。\(P(S_{t+1} \mid S_t,S_{t-1}...S_1) = P(S_{t+1}\mid S_t)\) 如果 \(S_{t+1}\) 和 \(S_t,S_{t-1}...S_1\) 都有关系的话,计算的话就会爆炸了。
马尔可夫链/过程 即满足马尔可夫性质的随机过程,记作:
\]
State Space Model
状态空间模型(State Space Model),常应用于 HMM,Kalman Filterm Particle Filter,关于这几种这里不做讨论。在这里就是指马尔可夫链 + 观测变量,即Markov Chain + Obervation
如上图所示,s1-s2-s3为马尔可夫链,a1, a2, a3为观测变量,以a2为例,a2只和s2有关和s1, s3无关。状态空间模型可以说是由马尔可夫链演化而来的模型。记作:
Markov Chain + Obervation
Markov Reward Process
马尔可夫奖励过程(Markov Reward Process),即马尔可夫链+奖励,即:Markov Chain + Reward
。如下图:
举个例子,比如说你买了一支股票,然后你每天就会有“收益”,当然了这里的收益是泛化的概念,收益有可能是正的,也有可能是负的,有可能多,有可能少,总之从今天的状态\(S_t\) 到明天的状态 \(S_{s+1}\) ,会有一个reward
。记作:
Markov Chain + Reward
Markov Decision Process
马尔可夫决策过程(Markov Decision Process),即马尔可夫奖励过程的基础上加上action
,即:Markov Chain + Reward + action
。如果还用刚才的股票为例子的话,我们只能每天看到股票价格的上涨或者下降,然后看到自己的收益,但是无法操作股票的价格的,只有看到份,只是一个“小散户”。这里的马尔可夫决策过程相当于政策的制定者,相当于一个操盘手,可以根据不同的状态而指定一些政策,也就相当于 action。
在马尔可夫决策过程中,所有的状态是我们看成离散的,有限的集合。所有的行为也是离散有限的集合。记作:
\enclose{box}{
\it S: \quad state \quad set \quad \quad \quad\quad\quad\quad\quad\quad\quad\quad S_t \\
\it A: \quad action \quad set ,\quad \quad \forall s \in S,A_{(s)} \quad\quad A_t\\
\it R: \quad reward \quad set \quad\quad\quad\quad\quad\quad\quad\quad\quad R_t, R_{(t+1)} \\
}
\]
对于上述公式简单说明,\(S_t\) 用来表示某一个时刻的状态。\(A_{(s)}\) 表示在某一个状态时候的行为 ,这个行为一定是基于某个状态而言的,假设在\(t\) 时刻的状态为\(S\) 此时的action
记作 \(A_t\) 。\(R_t 和 R_{(t+1)}\) 只是记法不同,比如下面的例子:从\(S_t\)状态经过 \(A_t\) 到\(S_{t+1}\)状态,获得的奖励一般记作\(R_{(t+1)}\)。 也就是说\(S_t\), \(A_t\) ,\(R_{(t+1)}\) 是配对使用的。
Summary
MDP动态特性
Markov Chain
马尔可夫链只有一个量——状态。比如 \(S\in(s_1,s_2,s_3,s_4,s_5,s_6,s_7,s_8,s_9,s_{10})\) ,在状态集合中一共有十个状态,每个状态之间可以互相转化,即可以从一个状态转移到另外一个状态,当然,“另外的状态” 也有可能是当前状态本身。如下图所示,s1状态到可以转移到s2状态,s1状态也可以转移到自己当前的状态,当然s1也有可能转移到s3,s4,s5,状态,下图中没有给出。
根据上面的例子,我们可以把所有的状态写成矩阵的形式,就成了状态转移矩阵。用状态转移矩阵来描述马尔可夫链的动态特性。以上面的状态集合\(S\in(s_1,s_2,s_3,s_4,s_5,s_6,s_7,s_8,s_9,s_{10})\) 为例,可得一个 \(10\times10\) 的矩阵。如下图所示:
\begin{bmatrix}
s_1s_1 &... & s_1s_{10} \\
\vdots & \vdots & \vdots \\
s_{10}s_1 & ... & s_{10}s_{10}\\
\end{bmatrix}
\]
由上面的例子可知,在状态转移的过程中,对于下一个状态转移是有概率的,比如说s1转移到到s1状态的概率可能是0.5,s1有0.3的概率转移到s2状态。⻢尔科夫过程是⼀个⼆元组(S, P) , 且满⾜: S是有限状态集合, P是状态转移概率。 可得:
P=
\begin{bmatrix}
P_{11} &... & P_{1n} \\
\vdots & \vdots & \vdots \\
P_{n1} & ... & P_{nn}\\
\end{bmatrix}
\]
一个简单的例子:如图2.2所⽰为⼀个学⽣的7种状态{娱乐, 课程1, 课程2, 课程3, 考过, 睡觉, 论⽂}, 每种状态之间的转换概率如图所⽰。 则该⽣从课程 1 开始⼀天可能的状态序列为:
MRP
在 MPR 中,打个比喻,更像是随波逐流的小船,没有人为的干预,小船可以在大海中随波逐流。
MDP
在MDP中,打个比喻,更像是有人划的小船,这里相比较MRP中的小船来说,多了“人划船桨”的概念,可以认为控制船的走向。这里我们看下面的图:
s1状态到s2状态的过程,agent从s1发出action A1,使得s1状态转移到s2状态,并从s2状态得到一个R2的奖励。其实就是下图所示的一个过程。这是一个动态的过程,由此,引出动态函数。
动态函数: The function \(p\) defines the dynamics of the MDP. 这是书上的原话,也就说,这个动态函数定义了MDP的
动态特性
,动态函数如下:\[\large
p(s',r\mid s,a) \dot{=} Pr\lbrace S_{t+1}=s',R_{t+1} = r \mid S_{t} =s,A_{t}=a \rbrace
\]状态转移函数: 我们去掉 \(r\) ,也就是
reward
,动态函数也就成了状态转移函数。
p(s'\mid s,a) \dot{=} Pr\lbrace S_{t+1}=s',\mid S_{t} =s,A_{t}=a \rbrace \\
p(s'\mid s,a) = \sum_{r\in R} p(s'\mid s,a)
}
\]
reward
的动态性: 在 s 和 a 选定后,r 也有可能是不同的,即 r 也是随机变量。但是,大多数情况在 s 和 a 选定后 r 是相同的,这里只做简单的介绍。
Summary
MDP价值函数
策略的定义
在MDP中,即马尔可夫决策过程,最重要的当然是策略(Policy),用 \(\pi\) 来表示。在策略中其主要作用的就是action
,也即 \(A_t\),需要指出的一定是,action 一定是基于某一状态 S 时。看下面的例子:
即,当 \(S_t = S\) 状态时,无论 \(t\) 取何值,只要遇到 \(S\) 状态就 选定 \(a_1\) 这个 action ,这就是一种策略,并且是确定性策略。
策略的分类
确定性策略:也就是说和时间 \(t\) 已经没有关系了,只和这个状态有关,只要遇到这个状态,就做出这样的选择。
随机性策略:与确定性策略相对,当遇到 \(S\) 状态时,可能选择 \(a_1\) ,可能选择 \(a_2\),也可能选择 \(a_3\)。只是选择action的概率不同。如下图,就是两种不同的策略:
从上面两天图中,因为一个策略是基于一个状态而言的,在 \(S\) 状态,可能选择 \(a_1\) ,可能选择 \(a_2\),也可能选择 \(a_3\),故三个
action
之间是或的关系,所以说以上是两个策略,而不要误以为是6个策略。
故策略可分为确定性策略和随机性策略两种。
Policy= \begin{cases} 确定性策略, & \text {a $\dot{=}\pi(s)$} \\ 随机性策略, & \text { $\pi(a\mid s) \dot{=} P \lbrace A_t=a \mid S_t = s \rbrace$} \end{cases}
\]
对于随机性策略而言,给定一个 \(s\) ,选择一个 \(a\) ,也就是条件概率了。
确定性策略可以看作是一种特殊的随机性策略,以上表-Policy1为例,选择a1的概率为1,选择a2,a3的概率都为0。
最优策略
在所有的策略中一定存在至少一个最优策略,而且在强化学习中,reward
的获得有延迟性(delay),举雅达利游戏中,很多游戏只有到结束的时候才会知道是否赢了或者输了,才会得到反馈,也就是reward
,所以这就是奖励获得延迟。当选定一个状态 \(S_t\) 时,选定action \(A_t\) ,因为奖励延迟的原因可能对后续的 \(S_{t+1}\) 等状态都会产生影响。这样,就不能用当前的reward来衡量策略的好坏、优劣。这里引入了回报和价值函数的概念。
回报(\(G_t\))
而是后续多个reward的加和,也就是回报,用 \(G_t\) 表示 \(t\) 时刻的回报。
如上图所示,此时的“回报”可以表示为:\(G_t = R_{t+1} + R_{t+2}+ \ ...\ +R_T\)
值得注意的是,\(T\) 可能是有限的,也有可能是无限的。
举例:张三对李四做了行为,对李四造成了伤害,李四在当天就能感受到伤害,而且,这个伤害明天,后头都还是有的,但是,时间是最好的良药,随着时间的推移,李四对于张三对自己造成的伤害感觉没有那么大了,会有一个wei折扣,用 \(\gamma\) 来表示。故真正的回报表示为:
G_t = R_{t+1} + \gamma R_{t+2}+\gamma^2 R_{t+3} \ ...\ +\gamma^{T-t-1}R_T = \sum_{i=0}^{\infty}\gamma^i R_{t+i+1} \quad \quad \gamma\in[0,1],\quad (T\rightarrow\infty)
\]
用 \(G_t\) 来衡量一个策略的好坏,\(G_t\) 大的策略就好,反之。
但是使用 \(G_t\) 也不能很好的衡量策略的好坏,比如一个最大的问题是,在给定一个状态后,选择一个确定的action后(这里还是在随机策略的角度),进入的下一个状态也是随机的。如下图所示:把左侧的过程放大,只给出a3下的随机状态,a1,a2也是有同样的情况,这里胜率。
举个例子,就像我们给一盆花浇水,水是多了还是少了,对于这盆花来说我们是不得知的,可能会少,也可能会多。这个花的状态变化也就是随机的了。从上面的例子得知,如果还是用 \(G_t\) 来对一个策略来进行评估的话,至少有9中情况(随机策略,3个action选一种)。
\(G_t\) 只能评估的是一个“分叉”而已(图中绿色分支
)。而不能更好的进行评估。如下图所示:
因为回报不能很好的对策略进行一个评估,由此引入了另外一个概念——价值函数。
价值函数(Value Function )
在指定一个状态 \(s\) ,采取一个随机策略
\(\pi\) ,然后加权平均,以上图为例,把9 个分叉(\(G_t\))加权平均。也就是期望 \(E\)。故得出价值函数:
V_\pi(s) = E_\pi[G_t\mid S_t = s]
\]
Summary
MDP贝尔曼期望方程
价值函数分类
上面提到的的价值函数其实是其中的一种,确切的可以称为 状态价值函数
,用\(v_\pi(s)\) 来表示只和状态有关系。初次之外还有另外一种价值函数,那就是状态动作价值函数
,用\(q_\pi(s,a)\)这里引入的action
。故价值函数可以分为下面的两种:
\]
从上面的公式中,我们可以得知,在 \(v_\pi(s)\) 中,只有 \(s\) 是自变量,一个 \(\pi\) 其实就是一个状态\(s\) 和一个action的一个映射。故,只要\(\pi\) 确定了,那么\(s,a\) 也就确定了,即此时的 \(\pi\) 对状态 \(s\) 是有限制作用的。但是,在 \(q_\pi(s,a)\) 中,子变量为\(s,a\) 两个,这两个自变量之间是没有特定的关系的。也就是说,\(s\)和\(a\) 都在变,无法确定一个映射(策略) \(\pi\) ,那么也就是说在 \(q_\pi\) 中的\(\pi\) 对于\(s\) 是没有约束的。
两种价值函数之间的关系
\(v_\pi(s)\) 和 \(q_\pi(s,a)\) 之间的关系
还是以上图为例,对于 s 状态,在随机策略中有三种 action 选择,分别是 \(\pi(a_1 \mid s)\),\(\pi(a_1 \mid s)\),\(\pi(a_1 \mid s)\),三种action(行为)对应的价值函数(此时为动作价值函数)为 \(q_\pi(s,a_1)\), \(q_\pi(s,a_2)\), \(q_\pi(s,a_3)\)。那么此时的 \(v_\pi(s)\) 就等于各个action的动作状态价值函数的加和,即:
\]
这样一来我们就得出了 \(v_\pi(s)\) 和 \(q_\pi(s,a)\) 之间的关系,若条件已知,就可以直接计算出 \(v_\pi\)。
v_\pi(s) = \sum_{a\in A} \pi(a\mid s) ·q_\pi(s,a)
\]
对于某个状态 \(s\) 来说,\(v_\pi \leq \underset{a}{max}\ q_\pi(s,a)\) ,\(v_\pi(s)\) 是一个加权平均,实际上就是一个平均值,当然要小于等于\(\ q_\pi(s,a)\)的最大值。\(v_\pi(s)\)只有全部是最大值的时候,两者才有可能相等。比如 5,5,5,平均值是5,最大值也是5;3,4,5而言,平均值为4,但是最大值为5。注意的是,4是乘上权值后的值,换句话说也就是乘了一个概率(\(\pi(a\mid s)\))。
\(q_\pi(s,a)\) 和 \(v_\pi(s')\) 之间的关系
从下面图中可得,在 \(q_\pi(s,a)\) 位置,(一个action)状态转移只能向“箭头”方向转移,而不能向上。如果想从下面的状态转移到上面的状态,那必须还要另外一个action。情况是一样的,就按下图来说明,经过a3后到达状态s',此时的状态函数就是 \(v_\pi(s’)\)。
上面的图可知: 在确定了s 后,由随机策略action,引起“分叉”,同理,以a3为例,因为系统状态转移的随机性,也会引起分叉,也就是 s' 的状态也是不确定的。还有一点 r 也又不确定性,如下图蓝色虚线部分。
由我们前面提到的公式也可得知:s' 和 r 都是随机的。比如说s,a ,s' 都是给定的,r也是不确定的。
\]
这样一来,可得一条蓝色通路的回报:
q_\pi(s,a) = r + \gamma v_\pi(s') \quad\quad\quad (1)
\]
(1)式是怎么来的呢?以上图为例,在 \(q_\pi(s,a)\) 处往下走,选定一个 r ,再往下到达一个状态s', 此时在往下还是同样的状态,就是俄罗斯套娃,以此类推。关于其中的 $\gamma v_\pi(s') $ ,来自于 \(G_t\)。看下面的式子:
G_t = R_{t+1} + \gamma R_{t+2}+\gamma^2 R_{t+3} \ ...\ +\gamma^{T-t-1}R_T \quad\quad \gamma\in[0,1],\quad (T\rightarrow\infty) \\
G_t = R_{t+1} + \gamma(R_{t+2}+\gamma R_{t+3}+\gamma^2 R_{t+4}+ ...)
}
\]
因为 \(v_\pi(s)\) 来自 \(G_t\) ,故类比得(1)式。
因为走每条蓝色的通路也都是由概率的,故我们需要乘上概率,同时累加求和,一个是多条蓝色通路另一个是多个s'。故得:\(q_\pi(s,a)\) 和 \(v_\pi(s')\) 之间的关系 如下:
q_\pi(s,a) =\sum_{s',r}P(s',r \mid s,a)[r+ \gamma v_\pi(s')] \quad\quad\quad (2)
\]
贝尔曼期望等式(方程)
这样我们得到两个式子:
v_\pi(s) = \sum_{a\in A} \pi(a\mid s) ·q_\pi(s,a) \quad\quad\quad\quad\quad\quad\quad\quad\ (3) \\
q_\pi(s,a) =\sum_{s',r}P(s',r \mid s,a)[r+ \gamma v_\pi(s')] \quad\quad\quad (4)
}
\]
(4)式带入(3)得:
v_\pi(s) = \sum_{a\in A} \pi(a\mid s) \sum_{s',r}P(s',r \mid s,a)[r+ \gamma v_\pi(s')] \quad\quad\quad\quad\quad\quad (5)
\]
(3)式带入(4)得:
q_\pi(s,a) =\sum_{s',r}P(s',r \mid s,a)[r+ \gamma \sum_{a'\in A} \pi(a'\mid s') ·q_\pi(s',a') ] \quad\quad (6)
\]
关于(6)式可以看下图,更容易理解:
(5)式和(6)式 被称为贝尔曼期望方程。
一个实例:
例子是一个学生学习考试的MDP。里面实心圆位置是起点,方框那个位置是终点。上面的动作有study, Pub, Facebook, Quit, Sleep,每个状态动作对应的即时奖励R已经标出来了。我们的目标是找到最优的状态动作价值函数或者状态价值函数,进而找出最优的策略。
为了方便,我们假设衰减因子 \(\gamma =1, \pi(a|s) = 0.5\) 。对于终点方框位置,由于其没有下一个状态,也没有当前状态的动作,因此其状态价值函数为0,对于其他的状态(圆圈)按照从上到下,从左到右的顺序定义其状态价值函数分别是 \(v_1,v_2,v_3,v_4\) ,根据(5)式 :
\[v_\pi(s) = \sum_{a\in A} \pi(a\mid s) \sum_{s',r}P(s',r \mid s,a)[r+ \gamma v_\pi(s')] \quad\quad\quad\quad\quad\quad (5)
\]对于\(v_1\)位置,我们有:\(v_1 = 0.5*(-1+v_1) +0.5*(0+v_2)\)
对于\(v_2\)位置,我们有:\(v_2 = 0.5*(-1+v_1) +0.5*(-2+v_3)\)
对于\(v_3\)位置,我们有:\(v_3 = 0.5*(0+0) +0.5*(-2+v_4)\)
对于\(v_4\)位置,我们有:\(v_4 = 0.5*(10+0) +0.5*(1+0.2*v_2+0.4*v_3+0.4*v_4)\)
解出这个方程组可以得到 \(v_1=-2.3, v_2=-1.3, v_3=2.7, v_4=7.4\), 即每个状态的价值函数如下图:
从上面可以看出,针对一个特定状体,状态价值函数计算都是基于下一个状态而言的,通俗的讲,按照“出箭头”的方向计算当前状态的价值函数。
Summary
MDP贝尔曼最优方程
最优价值函数
能够使得 \(v\) 达到最大值的那个 \(\pi\) ,这个 \(\pi\) 被成为最优策略,进而得到最优状态价值函数。同理得到最优状态动作价值函数。
\begin{cases} v_*(s)\ \dot{=}\ \ \underset{\pi}{max} \ v_\pi(s) & \text{} \\
q_*(s,a)\ \dot{=}\ \ \underset{\pi}{max} \ q_\pi(s,a) & \text{} & \text {} \end{cases}
\]
记 \(\pi_* = \underset{\pi}{argmax} \ v_\pi(s) = \underset{\pi}{argmax} \ q_\pi(s,a)\),含义是 \(\pi_*\) 可以使得 $ v_*(s)$达到最大值,同样的,也可以使得
\(q_\pi(s,a)\) 达到最大值。
由以上公式得:
\begin{cases}v_*(s)=\underset{\pi}{max}\ v_\pi(s)= v_{\pi_*}(s) & \text{(7)} \\
q_*(s,a)=\underset{\pi}{max}\ q_\pi(s,a)= q_{\pi_*}(s,a) & \text{} & \text {(8)} \end{cases}
\]
值得注意的一点是$ v_*(s)$ 强调的是,不管你采用的是什么策略,只要状态价值函数达到最大值,而 \(v_{\pi_*}(s)\) 则更为强调的是 \(\pi\) ,达到最大的状态价值函数所采取的最优的那个 \(\pi\)
此时,我们再探讨一下\(v_{\pi_*}(s)\) 和 \(q_{\pi_*}(s,a)\) 的关系。在贝尔曼期望方程中,我们提到过 \(v_\pi(s) \leq \underset{a}{max}\ q_\pi(s,a)\) ,那么在这里是不是也由类似的关系\(v_{\pi_*}(s)\leq \underset{a}{max}\ q_\pi(s,a)\) 成立?我们知道 \(v_{\pi_*}(s)\) 是一种策略,并且是最优的策略,\(q_{\pi_*}(s,a)\) 是代表一个“分支”,因为 \(v_{\pi_*}(s)\) 是一个加权平均值,但同样的,和\(v_\pi(s)\) 不同的是,\(v_{\pi_*}(s)\) 是最优策略的加权平均,那么是不是可以把小于号去掉,写成下面的形式:
v_{\pi_*}(s)= \underset{a}{max}\ q_\pi(s,a)
\]
假定 \(v_{\pi_*}(s)\leq \underset{a}{max}\ q_\pi(s,a)\) 中的 \(\pi_*\) 还是一个普通的策略,那么一定满足 \(v_{\pi_*}(s)\leq \underset{a}{max}\ q_\pi(s,a)\) ,这一点我们已经提到过,如果说 \(v_{\pi_*}(s)< \underset{a}{max}\ q_\pi(s,a)\) ,说明\(v_{\pi_*}(s)\) 还有提高的空间,并不是最优策略,这和条件矛盾了。所以这个小于不成立,得证:\(v_{\pi_*}(s)= \underset{a}{max}\ q_\pi(s,a)\)
详细证明过程如下:
其实,上面的式子是由 (3)式
\]
演变而来的。\(v_{\pi_*}(s)\) 直接取最大值时候和 \(\underset{a}{max}\ q_\pi(s,a)\) 的最大值是相等的。也就是此时不用加权平均了,直接是 \(v_\pi(a) = q_\pi(s,a)\) 。那么从原先的(4)式能不能也得出相似
\]
的结论,把求和符号去掉,直接等于最大值呢?答案是否定的,因为\(v_{\pi_*}(s)= \underset{a}{max}\ q_\pi(s,a)\) 是作用在action
上的,在公式中也可以看出,换句话说,我们对于下图的a1,a2,a3这里是可以控制的。但是对于下图中的蓝色虚线部分,系统状态转移是无法控制的。
所以,原先的两组公式(3)、(4)并 结合(7)、(8)
v_\pi(s) = \sum_{a\in A} \pi(a\mid s) ·q_\pi(s,a) \quad\quad\quad\quad\quad\quad\quad\quad\ (3) \\
q_\pi(s,a) =\sum_{s',r}P(s',r \mid s,a)[r+ \gamma v_\pi(s')] \quad\quad\quad (4)
}
\]
并进行一个推导,得出另外的两组公式(9)、(10)如下:
v_*(s)=\underset{a}{max}\ q_*(s,a) \quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad (9) \\
q_*(s,a)= \sum_{s',r}P(s',r \mid s,a)[r+\gamma v_*(s')] \quad\quad\quad (10)
}
\]
贝尔曼最优方程
(10)式带入(9)式得:
v_*(s)=\underset{a}{max}\sum_{s',r}P(s',r \mid s,a)[r+\gamma v_\pi(s')] \quad\quad(11) \\
}
\]
(9)式带入(10)式得:
q_*(s,a)= \sum_{s',r}P(s',r \mid s,a)[r+\gamma \underset{a'}{max}\ q_*(s',a') ] \quad\quad (12)
\]
(11)、(12)被称为贝尔曼最优方程。
一个实例:还是以上面的例子讲解,我们这次以动作价值函数 \(q_*(s,a)\) 为例来求解 $v_(s),q_(s,a) $
根据(12)式
q_*(s,a)= \sum_{s',r}P(s',r \mid s,a)[r+\gamma \underset{a'}{max}\ q_*(s',a') ] \quad\quad (12)
\]
可得方程组如下:
q_*(s_4, study) & = 10 \\
q_*(s_4, pub) & = 1 + 0.2 * \underset{a'}{max}q_*(s_2, a') + 0.4 * max_{a'}q_*(s_3, a') + 0.4 * \underset{a'}{max}q_*(s_4, a') \\
q_*(s_3, sleep) & = 0 \\
q_*(s_3, study) & = -2 + \underset{a'}{max}q_*(s_4, a') \\
q_*(s_2, study) & = -2 + \underset{a'}{max}q_*(s_3, a') \\
q_*(s_2, facebook) & = -1 + \underset{a'}{max}q_*(s_1, a') \\
q_*(s_1, facebook) & = -1 + \underset{a'}{max}q_*(s_1, a') \\
q_*(s_1, quit) & = 0 + \underset{a'}{max}q_*(s_2, a')
\end{align}}
\]
然后求出所有的 \(q_*(s,a)\),然后再利用 \(v_*(s) = \underset{a'}{max}q_*(s,a)\),就可以求出所有的 \(v_*(s)\),最终结果如下图所示:
详细的计算过程可以看下视频 的简单分析。https://www.bilibili.com/video/BV1Fi4y157vR/
Summary
参考文献
https://www.bilibili.com/video/BV1RA411q7wt
https://www.cnblogs.com/pinard/p/9426283.html
https://www.davidsilver.uk/wp-content/uploads/2020/03/MDP.pdf
https://www.cnblogs.com/jsfantasy/p/jsfantasy.html
强化学习入门基础-马尔可夫决策过程(MDP)的更多相关文章
- David Silver强化学习Lecture2:马尔可夫决策过程
课件:Lecture 2: Markov Decision Processes 视频:David Silver深度强化学习第2课 - 简介 (中文字幕) 马尔可夫过程 马尔可夫决策过程简介 马尔可夫决 ...
- 转:增强学习(二)----- 马尔可夫决策过程MDP
1. 马尔可夫模型的几类子模型 大家应该还记得马尔科夫链(Markov Chain),了解机器学习的也都知道隐马尔可夫模型(Hidden Markov Model,HMM).它们具有的一个共同性质就是 ...
- 增强学习(二)----- 马尔可夫决策过程MDP
1. 马尔可夫模型的几类子模型 大家应该还记得马尔科夫链(Markov Chain),了解机器学习的也都知道隐马尔可夫模型(Hidden Markov Model,HMM).它们具有的一个共同性质就是 ...
- 马尔可夫决策过程MDP
1. 马尔可夫模型的几类子模型 马尔科夫链(Markov Chain),了解机器学习的也都知道隐马尔可夫模型(Hidden Markov Model,HMM).它们具有的一个共同性质就是马尔可夫性(无 ...
- <强化学习>马尔可夫决策过程MDP
一.MDP / NFA :马尔可夫模型和不确定型有限状态机的不同 状态自动机:https://www.cnblogs.com/AndyEvans/p/10240790.html MDP和NFA ...
- 强化学习-MDP(马尔可夫决策过程)算法原理
1. 前言 前面的强化学习基础知识介绍了强化学习中的一些基本元素和整体概念.今天讲解强化学习里面最最基础的MDP(马尔可夫决策过程). 2. MDP定义 MDP是当前强化学习理论推导的基石,通过这套框 ...
- 【cs229-Lecture16】马尔可夫决策过程
之前讲了监督学习和无监督学习,今天主要讲“强化学习”. 马尔科夫决策过程:Markov Decision Process(MDP) 价值函数:value function 值迭代:value iter ...
- 【RL系列】马尔可夫决策过程——状态价值评价与动作价值评价
请先阅读上两篇文章: [RL系列]马尔可夫决策过程中状态价值函数的一般形式 [RL系列]马尔可夫决策过程与动态编程 状态价值函数,顾名思义,就是用于状态价值评价(SVE)的.典型的问题有“格子世界(G ...
- 【RL系列】马尔可夫决策过程——Jack‘s Car Rental
本篇请结合课本Reinforcement Learning: An Introduction学习 Jack's Car Rental是一个经典的应用马尔可夫决策过程的问题,翻译过来,我们就直接叫它“租 ...
随机推荐
- moviepy音视频开发:音频剪辑基类AudioClip
☞ ░ 前往老猿Python博文目录 ░ 一.背景知识介绍 1.1.声音三要素: 音调:人耳对声音高低的感觉称为音调(也叫音频).音调主要与声波的频率有关.声波的频率高,则音调也高. 音量:也就是响度 ...
- ST 表练习笔记
P2048 [NOI2010]超级钢琴 首先按照 前缀和最大值 建立 \(ST\) 表 对于每一个 \(i\) 维护一个以他为起始点的最大的 "超级和弦" (\(ST\) 表 \( ...
- 阿里云服务器搭建java环境(jdk+tomcat+oracle11g)
一.JDK配置 1.在centos 7的更新源中有JDK,使用yum即可下载安装 查看库中版本 [root@localhost ~]# yum search java|grep jdk 选择需要版本进 ...
- 终于不再对transition和animation,傻傻分不清楚了 --vue中使用transition和animation
以前写页面注重在功能上,对于transition和animation是只闻其声,不见其人,对于页面动画效果心理一直痒痒的.最近做活动页面,要求页面比较酷炫,终于有机会认真了解了. transition ...
- 双端口RAM和多模块存储器
目录 双端口RAM 存取周期 双端口RAM 多模块存储器 普通存储器 单体多字存储器 多体并行的存储器 高位交叉编址的多体存储器 低位交叉编址的多提存储器 为什么要这么弄? 高位 低位 流水线(考试常 ...
- typora软件使用指南
Markdown学习 标题: 三级标题 四级标题 字体 hello,world! hello,world! hello,world! hello,world! 引用 选择狂神说java,走向人生巅峰 ...
- git单人本地操作
git配置个人信息 git config --global user.name "用户名" git config --global user.email "邮箱" ...
- Mybatis(二)--SqlMapConfig.xml配置文件
一.简介 SqlMapConfig.xml是Mybatis的全局配置文件,我们在写mybatis项目时,在SqlMapConfig.xml文件中主要配置了数据库数据源.事务.映射文件等,其实还有很多配 ...
- 啊!Java虚方法
什么是Java的虚方法呢,我们首先看看什么是虚函数 虚函数 百度百科的解释为: 在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的[成员函数],用法格式为:virtual 函数返回 ...
- Spark参数优化
a. 提升Spark运行 spark.sql.adaptive.enabled=true spark的自适应执行,启动Adaptive Execution spark.dynamicAllocatio ...