马尔可夫决策模型
书接上回,上次说完了折扣率
γ
\gamma
γ,最后的公式是
G
t
=
R
t
+
1
+
γ
R
t
+
2
+
γ
2
R
t
+
3
+
.
.
.
+
γ
n
−
1
R
n
G_t=R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ... + \gamma^{n-1}R_n
Gt=Rt+1+γRt+2+γ2Rt+3+...+γn−1Rn
再整理下就是
G
t
=
∑
k
=
1
n
γ
k
−
1
R
k
G_t=\sum_{k=1}^{n} {\gamma^{k-1} R_{k}}
Gt=∑k=1nγk−1Rk
接下来开始真是介绍马尔可夫决策模型,以下简称MDP(Markov Decision Processes)
官方定义(来自百度百科):
马尔可夫决策过程是基于马尔可夫过程理论的随机动态系统的最优决策过程。马尔可夫决策过程是序贯决策的主要研究领域。它是马尔可夫过程与确定性的动态规划相结合的产物,故又称马尔可夫型随机动态规划,属于运筹学中数学规划的一个分支。
马尔可夫决策过程是一个五元组
这里多了两个新面孔P(.,.),R(.,.),这里一一解释下,首先我们之前的
R
t
R_t
Rt代表这在时间序列t时获得的奖励这里可以代表一个实数,但是在MDP中这个R需要改变下,因为当前时间序列t之所以能获得奖励是因为我们在
s
t
s_t
st时选择了
a
t
a_t
at才产生了
r
t
r_t
rt,但是当前
s
t
s_t
st下能选择的未必只有一个动作可能有m个动作,那每一个m的动作都可能会产生不同的r,所以在MDP中R应该代表的是一个函数,入参是当前的state和选择的action,返回的则是对应的奖励,表示成
R
(
s
,
a
)
R(s, a)
R(s,a),用代码翻译的话
def R(state, action):
...
return reward
而新面孔P,则是状态动作的转移概率,也可以看成一个函数,即probability,完整的P应该是
P
(
s
′
,
r
∣
s
,
a
)
P(s', r | s, a)
P(s′,r∣s,a)
同样翻译成代码的话
def P(state, action):
...
return the_probability_of_next_state_and_reward
P就比R复杂很多了,举一个西瓜书上的例子:
家里养了一株植物,植物的状态S有3个缺水,健康,死亡 而我们的目标是培养一个智能机器人学会怎么去养活并且养好这株植物,那这个机器人能执行的动作就两个一个是浇水,一个什么都不做,所以MDP定义出来就会是:
S
=
(
缺
水
,
健
康
,
死
亡
)
S=(缺水,健康,死亡)
S=(缺水,健康,死亡)
A
=
(
浇
水
,
不
浇
水
)
A=(浇水,不浇水)
A=(浇水,不浇水)
R和P就比较复杂了
如果植物
当前状态-》选择的动作-》结果
缺水-》浇水-》80%健康 奖励1 | 20%缺水 奖励-1
缺水-》不浇水-》60%缺水 奖励-1 | 40%死亡 奖励-10
健康-》浇水-》50%健康 奖励1 | 50%死亡 奖励-10
健康-》不浇水 -》 80%健康 奖励1 | 20% 缺水 奖励-1
上述的概率都是我随便假设的,仅仅是讨论作用
而死亡是结束状态,不需要P,因为到了这个状态,当次的强化学习过程就结束了
那R和P换成上面的函数形态则是
P
(
健
康
,
1
∣
缺
水
,
浇
水
)
=
0.8
P(健康, 1 | 缺水, 浇水)=0.8
P(健康,1∣缺水,浇水)=0.8
P
(
缺
水
,
−
1
∣
缺
水
,
浇
水
)
=
0.2
P(缺水, -1 | 缺水, 浇水)=0.2
P(缺水,−1∣缺水,浇水)=0.2
P
(
缺
水
,
−
1
∣
缺
水
,
不
浇
水
)
=
0.6
P(缺水, -1 | 缺水, 不浇水)=0.6
P(缺水,−1∣缺水,不浇水)=0.6
P
(
死
亡
,
−
10
∣
缺
水
,
不
浇
水
)
=
0.4
P(死亡, -10 | 缺水, 不浇水)=0.4
P(死亡,−10∣缺水,不浇水)=0.4
P
(
健
康
,
1
∣
健
康
,
浇
水
)
=
0.5
P(健康, 1 | 健康, 浇水)=0.5
P(健康,1∣健康,浇水)=0.5
P
(
死
亡
,
−
10
∣
健
康
,
浇
水
)
=
0.5
P(死亡, -10 | 健康, 浇水)=0.5
P(死亡,−10∣健康,浇水)=0.5
P
(
健
康
,
1
∣
健
康
,
不
浇
水
)
=
0.8
P(健康, 1 | 健康, 不浇水)=0.8
P(健康,1∣健康,不浇水)=0.8
P
(
缺
水
,
−
1
∣
健
康
,
不
浇
水
)
=
0.2
P(缺水, -1 | 健康, 不浇水)=0.2
P(缺水,−1∣健康,不浇水)=0.2
R
(
缺
水
,
浇
水
)
=
0.8
∗
1
+
0.2
∗
(
−
1
)
R(缺水, 浇水)=0.8 * 1 + 0.2 * (-1)
R(缺水,浇水)=0.8∗1+0.2∗(−1)
R
(
缺
水
,
不
浇
水
)
=
0.6
∗
(
−
1
)
+
0.4
∗
(
−
10
)
R(缺水, 不浇水)=0.6 * (-1) + 0.4 * (-10)
R(缺水,不浇水)=0.6∗(−1)+0.4∗(−10)
R
(
健
康
,
浇
水
)
=
0.5
∗
(
1
)
+
0.5
∗
(
−
10
)
R(健康, 浇水)=0.5 * (1) + 0.5 * (-10)
R(健康,浇水)=0.5∗(1)+0.5∗(−10)
R
(
健
康
,
不
浇
水
)
=
0.8
∗
(
1
)
+
0.2
∗
(
−
1
)
R(健康, 不浇水)=0.8 * (1) + 0.2 * (-1)
R(健康,不浇水)=0.8∗(1)+0.2∗(−1)
γ
\gamma
γ=0.9
之所以公式会变成这样就是因为在当前s下选择一个动作a,转移到下一个s’并不是一个100%确定的事情了,所以对应的奖励r就会变成上面概率乘以奖励之和。
以上就是MDP的五元组
今日总结:可以看出MDP里最复杂的地方就是P,但是我们这个P从哪里来呢?先不说,下回我们就要说到策略了,我们下回再见~