强化学习原理python篇01——基本概念
本章全篇参考赵世钰老师的教材 Mathmatical-Foundation-of-Reinforcement-Learning Basic Concepts章节,请各位结合阅读,本合集只专注于数学概念的代码实现。
通过一个例子来介绍强化学习的基本概念。
网格世界例子
如下图所示,有一个机器人在该网格世界中,他的目标是 目标方块 并且只能在白色方块中移动,一次只能移动一步,那如何找到 最好的策略 去找到目标点呢?
对我们(上帝视角)来说,知道网格世界的地图是非常重要的,对机器人来说,他不知道地图的任何信息,他该如何找到目标呢?
状态和行动
状态
定义:描述机器人在该环境中所处的场景
在该任务中,每一个方块队机器人来说就是一个状态,用数学符号
s
s
s表示,下表表示方块的位置,则九个方块的所有状态表示为:
S
=
s
1
,
.
.
.
,
s
9
S={s_1,...,s_9}
S=s1,...,s9
行动
定义:机器人在某一状态时,可以采取的措施和动作
在该任务中,当机器人处于其中一个方块中时,他有五种选择,向上走,向右走,向下走,向左走,保持不动,用数学符号
a
a
a表示,则五个方块的所有状态表示为:
A
=
a
1
,
.
.
.
,
a
5
\Alpha={a_1,...,a_5}
A=a1,...,a5
状态转移
当发生行动是,机器人的状态就改变了,比如在
s
1
s_1
s1状态向右移动到
s
2
s_2
s2状态,用数学符号表示为
s
1
→
a
2
s
2
s_1 \stackrel{a_2}{\rightarrow } s_2
s1→a2s2
对每一个状态来说就会有不同的状态转移,如下所示
策略
处于某一状态时,可以采用的行动。
则处于s1的策略为:
π
(
a
1
∣
s
8
)
=
0.5
π
(
a
2
∣
s
8
)
=
0.5
π
(
a
3
∣
s
8
)
=
0
π
(
a
4
∣
s
8
)
=
0
π
(
a
5
∣
s
8
)
=
0
\pi(a_1|s_8)=0.5 \\ \pi(a_2|s_8)=0.5 \\ \pi(a_3|s_8)=0 \\ \pi(a_4|s_8)=0 \\ \pi(a_5|s_8)=0 \\
π(a1∣s8)=0.5π(a2∣s8)=0.5π(a3∣s8)=0π(a4∣s8)=0π(a5∣s8)=0
表示机器人在第八个小方块,有0.5概率向上走,0.5概率向右走。
鼓励
对机器人来说,达到target则奖励数值为1,碰到forbiden和边界,奖励值为-1,其余情况为0。
r
b
o
u
n
d
a
r
y
=
−
1
r
f
o
r
b
i
d
e
n
=
−
1
r
t
a
r
g
e
t
=
1
r
o
t
h
e
r
=
0
r_{boundary}=-1 \\ r_{forbiden}=-1 \\ r_{target}=1 \\ r_{other}=0
rboundary=−1rforbiden=−1rtarget=1rother=0
trajectories,returns, and episodes
trajectory 是状态-行动-鼓励的链条
return 是链条所获得的鼓励的集合
discounted return 对后面的步骤的鼓励控制权值,使得数列重视不同步骤的鼓励
d
i
s
c
o
u
n
t
e
d
r
e
t
u
r
n
=
γ
3
(
1
+
γ
+
γ
2
+
.
.
.
)
=
γ
3
1
1
−
γ
discounted\ return = γ^3(1 + γ + γ^2 + ... ) = γ3 \frac{1}{1 − γ}
discounted return=γ3(1+γ+γ2+...)=γ31−γ1
episode: 表示一个有限的trajectory ,控制trajectory 的长度
MDPs(Markov decision processes)
MDPs:马尔科夫链过程
状态转移和改状态前的状态无关。
数学符号表示为
p
(
s
t
+
1
∣
s
t
;
a
t
;
s
t
−
1
;
a
t
−
1
;
.
.
.
;
s
0
;
a
0
)
=
p
(
s
t
+
1
∣
s
t
;
a
t
)
p(s_{t+1}|s_{t}; a_{t}; s_{t−1}; a_{t−1}; ...; s_{0}; a_{0}) = p(s_{t+1}|s_{t}; a_{t})
p(st+1∣st;at;st−1;at−1;...;s0;a0)=p(st+1∣st;at)
Ref
Mathematical Foundations of Reinforcement Learning,Shiyu Zhao