强化学习(Reinforcement Lrarning,RL)02:马尔科夫决策过程
强化学习(Reinforcement Lrarning,RL)02:马尔科夫决策过程
马尔科夫决策过程(Markov Decision Proocess, MDP)是强化学习和决策理论中的一个核心概念,通过引入决策(动作)以及奖励机制来模型化智能体在不确定环境中的决策问题,旨在找到一个最优策略,使得智能体在长期中获得的累计奖励最大。
本文的马尔科夫决策过程的相关概念将在自定义的一个网格世界(Grid World)中进行阐述,如下图所示:
在这个网格世界中,白色区域为普通区域,红色区域 为禁止区域,进入会获得相应惩罚,绿色区域为目标区域,进入会获得一定奖励。其中,动作的主体称作智能体(Agent),智能体可以在网格世界中上、下、左、右移动 。
规定: 若智能体试图越出边界,将会被反弹。例如,当智能体处于 s 1 s_1 s1 时,若向上移动,则会被反弹而停留在 s 1 s_1 s1,相当于又进入了 s 1 s_1 s1 一次。
注意: 本文中大写字母均表示随机变量,对应的小写字母则为随机变量的采样值。
状态与状态空间
状态(State): 对当前环境的概括,用 s s s 表示。 在上述网格世界中,可以简单理解为智能体所处的位置,如 s 1 , s 2 , . . . s_1,s_2,... s1,s2,... 都被称作为智能体的状态。
状态空间(State Space): 当前环境中,所有状态的集合,用花体字母 S S S 表示。在网格世界中, S = { s i } i = 1 9 = { s 1 , s 2 , . . . , s 8 , s 9 } S=\{s_i\}_{i=1}^{9}=\{s_1,s_2,...,s_8,s_9\} S={si}i=19={s1,s2,...,s8,s9} 。
动作与动作空间
动作(Action): 指智能体做出的决策,用 a a a 表示。网格世界中,智能体可以上、下、左、右进行移动,记 a 0 a_0 a0= 停在原地, a 1 a_1 a1= 向上移动, a 2 a_2 a2= 向右移动, a 3 a_3 a3= 向下移动, a 4 a_4 a4= 向左移动。
动作空间(Action Space): 所有可能动作的集合,用花体字母 A A A 表示。在网格世界中, A = { a i } i = 0 4 = { a 0 , a 1 , a 2 , a 3 , a 4 } A=\{a_i\}_{i=0}^{4}=\{a_0,a_1,a_2,a_3,a_4\} A={ai}i=04={a0,a1,a2,a3,a4} 。
策略函数
策略函数(Policy Function): 根据观测到的状态做出决策,从而控制智能体的动作,用 π \pi π 表示。
策略函数
π
:
S
×
A
→
[
0
,
1
]
\pi:S\times A\rightarrow [0,1]
π:S×A→[0,1] 是一个条件概率密度函数,指的是在当前状态
s
s
s 下,智能体做出动作
a
a
a 的概率:
π
(
a
∣
s
)
=
P
(
A
=
a
∣
S
=
s
)
\pi(a|s)=P(A=a|S=s)
π(a∣s)=P(A=a∣S=s)
显然有,
∑
a
π
(
a
∣
s
)
=
1
\sum_a{\pi(a|s)=1}
a∑π(a∣s)=1
状态转移与状态转移函数
状态转移(State Transition): 指当前状态 s s s 变成新状态 s ′ s' s′。
状态转移函数(State Transition Function): 用于生成新的状态
s
′
s'
s′ 所用到的函数,随机状态转移函数记作
p
(
s
′
∣
s
,
a
)
p(s'|s,a)
p(s′∣s,a),它也是一个条件概率密度函数:
p
(
s
′
∣
s
,
a
)
=
P
(
S
′
=
s
′
∣
S
=
s
,
A
=
a
)
p(s'|s,a)=P(S'=s'|S=s,A=a)
p(s′∣s,a)=P(S′=s′∣S=s,A=a)
显然有,
∑
s
′
p
(
s
′
∣
s
,
a
)
=
1
\sum_{s'}{p(s'|s,a)=1}
s′∑p(s′∣s,a)=1
奖励
奖励(Reward): 智能体从当前状态 s s s 执行一个动作 a a a 后进入一个新的状态 s ′ s' s′,环境反馈给智能体的一个数值,也叫即时奖励,用小写字母 r r r 表示。
网格世界中,从进入普通区域(白色区域)得到奖励为
r
c
o
m
m
o
n
=
0
r_{common}=0
rcommon=0,进入禁止区域(红色区域)奖励为
r
f
o
r
b
i
d
=
−
1
r_{forbid}=-1
rforbid=−1,进入目标区域奖励为
r
t
a
r
g
e
t
=
1
r_{target}=1
rtarget=1。例如,当前状态为
s
5
s_5
s5 的情况下,执行动作
a
2
a_2
a2(即向右移动),得到的奖励为
r
r
r = -1,数学上可表示为:
p
(
r
=
−
1
∣
s
5
,
a
2
)
=
1
p(r=-1|s_5,a_2)=1
p(r=−1∣s5,a2)=1
同理,状态
s
5
s_5
s5 还有如下情况:
p
(
r
=
0
∣
s
5
,
a
0
)
=
p
(
r
=
0
∣
s
5
,
a
1
)
=
p
(
r
=
0
∣
s
5
,
a
3
)
=
p
(
r
=
0
∣
s
5
,
a
4
)
=
1
p(r=0|s_5,a_0)=p(r=0|s_5,a_1)=p(r=0|s_5,a_3)=p(r=0|s_5,a_4)=1
p(r=0∣s5,a0)=p(r=0∣s5,a1)=p(r=0∣s5,a3)=p(r=0∣s5,a4)=1
轨迹
轨迹(Trajectory): 指一个回合(Episode)游戏中,智能体观测到的所有状态、动作、奖励的序列,用
τ
\tau
τ 表示。具体来说,一个Trajectory可以被形式化表示为:
τ
=
{
s
0
,
a
0
,
r
1
,
s
1
,
a
1
,
r
2
,
s
2
,
.
.
.
,
s
T
−
1
,
a
T
−
1
,
r
T
,
s
T
}
\tau = \{s_0,a_0,r_1, s_1, a_1,r_2,s_2,...,s_{T-1}, a_{T-1},r_T,s_{T}\}
τ={s0,a0,r1,s1,a1,r2,s2,...,sT−1,aT−1,rT,sT}
其中 s t s_t st 表示 t t t 时刻下智能体所处的状态, a t a_t at 表示 s t s_t st 状态下智能体所采取的动作, r t + 1 r_{t+1} rt+1 是在采取动作 a t a_t at 后,从环境得到的即时奖励, T T T 是整个轨迹的长度。
对于上图所示的网格世界,
τ
=
{
s
1
,
a
2
,
r
=
0
,
s
2
,
a
3
,
r
=
0
,
s
5
,
a
3
,
r
=
0
,
s
8
,
a
2
,
r
=
1
,
s
9
}
\tau = \{s_1,a_2,r=0,s_2,a_3,r=0,s_5,a_3,r=0,s_8,a_2,r=1,s_9\}
τ={s1,a2,r=0,s2,a3,r=0,s5,a3,r=0,s8,a2,r=1,s9}
回报与折扣回报
回报: 从当前时刻开始到回合结束所有的奖励总和,也叫累计奖励, 用 R R R 表示。
折扣奖励: 给未来的奖励做折扣,用
G
G
G 表示。考虑以下轨迹:
S
t
.
.
A
t
.
.
>
R
t
+
1
,
S
t
+
1
.
.
A
t
+
1
.
.
>
R
t
+
2
,
S
t
+
2
.
.
A
t
+
2
.
.
>
R
t
+
3
,
S
t
+
3
,
.
.
.
S_t\frac{..A_t..}{}>R_{t+1},S_{t+1}\frac{..A_{t+1}..}{}>R_{t+2},S_{t+2}\frac{..A_{t+2}..}{}>R_{t+3},S_{t+3},...
St..At..>Rt+1,St+1..At+1..>Rt+2,St+2..At+2..>Rt+3,St+3,...
折扣回报为:
G
=
R
t
+
1
+
γ
R
t
+
2
+
γ
2
R
t
+
3
+
.
.
.
G=R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+...
G=Rt+1+γRt+2+γ2Rt+3+...
其中 γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1] 表示折扣率。由于折扣率的存在,会对未来的回报进行折扣;由于折扣率的次数随着 t t t 不断增加,因此对越久远的未来给奖励打的折扣越大。
一个重要性质
无记忆性: 在一个马尔科夫过程中,系统的下一步行为仅与现在的位置(状态)有关,而与它是如何到达当前位置的所有过去信息无关。换句话说,给定当前状态,未来状态的概率分布仅依赖于当前状态,而不依赖于到达当前状态的任何历史状态。数学形式如下:
p
(
s
t
+
1
∣
a
t
,
s
t
,
.
.
.
,
a
0
,
s
0
)
=
p
(
s
t
+
1
∣
a
t
,
s
t
)
p(s_{t+1}|a_t,s_t,...,a_0,s_0) = p(s_{t+1}|a_t, s_t)
p(st+1∣at,st,...,a0,s0)=p(st+1∣at,st)
p
(
r
t
+
1
∣
a
t
,
s
t
,
.
.
.
,
a
0
,
s
0
)
=
p
(
r
t
+
1
∣
a
t
,
s
t
)
p(r_{t+1}|a_t,s_t,...,a_0,s_0) = p(r_{t+1}|a_t, s_t)
p(rt+1∣at,st,...,a0,s0)=p(rt+1∣at,st)
后续会更新相应实战代码
若有不足之处,欢迎批评指正!
标签:02,...,动作,..,状态,Reinforcement,奖励,智能,RL From: https://blog.csdn.net/m0_57543713/article/details/139860760