【深度强化学习基础】(一)基本概念
- 一、概率论基础知识
- 二、强化学习领域术语
- 三、强化学习中两个随机性的来源:
- 四、rewards以及returns
- 五、Value Functions
一、概率论基础知识
1.随机变量
X设为随机变量,x为该随机变量的观测值
如:抛一枚硬币4次可能得到的观测值为(正面记为1,反面记为0):
x1=1,x2=0,x3=1,x4=1;
2.概率密度函数
连续概率密度函数
如高斯分布:
p
(
x
)
=
1
2
π
σ
2
exp
(
−
(
x
−
μ
)
2
2
σ
2
)
.
p(x)=\frac{1}{\sqrt{2\pi\sigma^{2}}}\exp\Big(-\frac{(x-\mu)^{2}}{2 \sigma^{2}}\Big).
p(x)=2πσ21exp(−2σ2(x−μ)2).
该概率密度分布函数阐述了随机变量出现在均值附近的概率比较大,出现在远离均值处的概率较小。
离散型概率分布函数
X
∈
{
1
,
3
,
7
}
.
X\in\{1,3,7\}.
X∈{1,3,7}.
该概率密度函数表示:x取值为1的概率为0.2,取值为3的概率为0.5,取值为7的概率是0.3,而在其他取值处的概率均为0。
概率密度/概率分布函数的性质:
设随机变量X的定义域为
x
\text{x}
x
对于连续型随机变量:
∫
x
p
(
x
)
d
x
=
1
\int_x p(x) d x=1
∫xp(x)dx=1 把定义域内所有x的可能取值的其概率作连续积分,结果为1。
对于离散型随机变量:
∑
x
∈
X
p
(
x
)
=
1
\sum_{x \in X} p(x)=1
∑x∈Xp(x)=1
3.期望:
连续型:
E
[
f
(
X
)
]
=
∫
x
p
(
x
)
⋅
f
(
x
)
d
x
\mathbb{E}[f(X)]=\int_x p(x) \cdot f(x) d x
E[f(X)]=∫xp(x)⋅f(x)dx
离散型:
E
[
f
(
X
)
]
=
∑
x
∈
x
p
(
x
)
⋅
f
(
x
)
\mathbb{E}[f(X)]=\sum_{x \in x} p(x) \cdot f(x)
E[f(X)]=∑x∈xp(x)⋅f(x)
4.随机抽样
二、强化学习领域术语
state:
当前状态,在超级马里奥中就是当前这一时刻的马里奥状态
agent:
智能体,指的是做动作的客体,在该游戏中就是马里奥
action:
指的是智能体要做的动作,比如马里奥游戏中,马里奥要:向前,向上,或者向后,这样的动作
policy:
策略函数。强化学习中用策略函数来决定智能体该状态下做什么动作(action),策略函数是一个概率密度函数,所以是完备的,即把所有的可能的action的概率加起来一定是1。
如,给定状态s,要判断该状态下采取什么动作action,
π
(
a
∣
s
)
\pi(a \mid s)
π(a∣s)。假设各个动作的概率分别为:
- π ( \pi( π( left ∣ s ) = 0.2 \mid s)=0.2 ∣s)=0.2
- π ( \pi( π( right ∣ \mid ∣ s) = 0.1 =0.1 =0.1
- π ( up ∣ s ) = 0.7 \pi(\operatorname{up} \mid s)=0.7 π(up∣s)=0.7
那么如果没有特定的策略,就是随机抽样的话,policy函数就是以这几个概率做一个随机抽样来决定这一时刻做什么动作。
reward:对每一个做的动作做一个奖励机制,这个奖励机制将很大程度上影响动作的采取。
如:
• 碰到金币: 𝑅 =+1
• 赢得游戏: 𝑅 = +10000
• 碰到Goomba: 𝑅 = −10000 (game over).
• 无事发生: 𝑅 = 0
state transition:
旧状态通过一个动作转移到新状态
p
(
s
′
∣
s
,
a
)
=
P
(
S
′
=
s
′
∣
S
=
s
,
A
=
a
)
p\left(s^{\prime} \mid s, a\right)=\mathbb{P}\left(S^{\prime}=s^{\prime} \mid S=s, A=a\right)
p(s′∣s,a)=P(S′=s′∣S=s,A=a).
agent与环境的交互方式即为:
三、强化学习中两个随机性的来源:
1.Action
强化学习中action是随机的,是根据策略函数进行决策得到的
2.状态转移函数state transition
状态转移是根据当前状态,以及当前状态下智能体做出的动作,算出这个概率
p
(
s
′
∣
s
,
a
)
p\left(s^{\prime} \mid s, a\right)
p(s′∣s,a),然后根据这个概率随机抽样下一个环境状态。所以这里也是随机的。
如上图,根据当前的s以及a计算出了下一个状态有两种状态,概率分别为0.8和0.2,则随机抽样产生下一个状态。
则玩这个游戏的轨迹就是:
观察当前状态
s
t
s_t
st,选择动作
a
t
∼
π
(
⋅
∣
s
t
)
a_t \sim \pi\left(\cdot \mid s_t\right)
at∼π(⋅∣st),并且执行
a
t
a_t
at,然后环境就会根据
p
(
s
t
+
1
∣
s
t
,
a
)
p\left(s_{t+1} \mid s_t, a\right)
p(st+1∣st,a)抽样产生
s
t
+
1
s_{t+1}
st+1以及奖励
r
t
r_t
rt.
{state,action,reward}轨迹为:
s
1
,
a
1
,
r
1
,
s
2
,
a
2
,
r
2
,
⋯
,
s
n
,
a
n
,
r
n
s_1, a_1, r_1, s_2, a_2, r_2, \cdots, s_n, a_n, r_n
s1,a1,r1,s2,a2,r2,⋯,sn,an,rn
四、rewards以及returns
Return:
定义:未来累计奖励(未来的reward加和)
U
t
=
R
t
+
R
t
+
1
+
R
t
+
2
+
R
t
+
3
+
⋯
U_t=R_t+R_{t+1}+R_{t+2}+R_{t+3}+\cdots
Ut=Rt+Rt+1+Rt+2+Rt+3+⋯
又由于对于当前时刻来说,不是每一时刻的reward重要性都一样,是有重要性权重的:
未来的reward要比当前时刻的reward重要性低,或者说价值低。所以
R
t
+
1
R_{t+1}
Rt+1的权重要低于
R
t
R_{t}
Rt。
Discounted return:
γ
\gamma
γ:折扣因子
U
t
=
R
t
+
γ
R
t
+
1
+
γ
2
R
t
+
2
+
γ
3
R
t
+
3
+
⋯
U_t=R_t+\gamma R_{t+1}+\gamma^2 R_{t+2}+\gamma^3 R_{t+3}+\cdots
Ut=Rt+γRt+1+γ2Rt+2+γ3Rt+3+⋯
reward的随机性来源:
当前时刻的reward取决于做的动作action,action取决于当前时刻s,因此当前时刻的
R
i
R_{i}
Ri取决于
S
i
S_{i}
Si以及
A
i
A_{i}
Ai。
当前状态是随机的:
S
i
∼
p
(
⋅
∣
s
i
−
1
,
a
i
−
1
)
S_i \sim p\left(\cdot \mid s_{i-1}, \quad a_{i-1}\right)
Si∼p(⋅∣si−1,ai−1)
当前的动作也是随机的:
A
i
∼
π
(
⋅
∣
s
i
)
A_i \sim \pi\left(\cdot \mid s_i\right)
Ai∼π(⋅∣si)
因此当前时刻的reward
R
i
R_{i}
Ri也是随机的。
而当前时刻的return
U
t
U_{t}
Ut取决于
R
t
R
t
+
1
⋯
R
n
R_t R_{t+1} \cdots R_{n}
RtRt+1⋯Rn
所以
U
t
U_{t}
Ut取决于
S
t
,
A
t
,
S
t
+
1
,
A
t
+
1
,
⋯
,
S
n
,
A
n
S_t, A_t, \quad S_{t+1}, A_{t+1}, \cdots, \quad S_n, A_n
St,At,St+1,At+1,⋯,Sn,An
五、Value Functions
1.Action-Value Function Q π ( s , a ) Q_\pi(s,a) Qπ(s,a)
U
t
U_t
Ut在当前时刻就是一个随机变量,那么如何评价当前时刻的情况呢,求期望可以解决。
Q
π
(
s
t
,
a
t
)
=
E
[
U
t
∣
S
t
=
s
t
,
A
t
=
a
t
]
Q_\pi\left(s_t, a_t\right)=\mathbb{E}\left[U_t \mid S_t=s_t, A_t=a_t\right]
Qπ(st,at)=E[Ut∣St=st,At=at]
求期望把里面的随机性通过积分积掉,可以得到一个实数。
使用:
S
i
∼
p
(
⋅
∣
s
i
−
1
,
a
i
−
1
)
S_i \sim p\left(\cdot \mid s_{i-1}, \quad a_{i-1}\right)
Si∼p(⋅∣si−1,ai−1)
A
i
∼
π
(
⋅
∣
s
i
)
A_i \sim \pi\left(\cdot \mid s_i\right)
Ai∼π(⋅∣si)
两个函数,把未来的动作以及状态通过积分积掉,得到的是只取决于当前状态以及当前动作的观测
Q
π
(
s
,
a
)
Q_\pi(s,a)
Qπ(s,a),但是该函数还与policy函数
π
\pi
π有关,因为求积分的时候会用到policy函数,如果
π
\pi
π不一样,求出的期望
Q
π
(
s
,
a
)
Q_\pi(s,a)
Qπ(s,a)也不一样。
Q
π
(
s
,
a
)
Q_\pi(s,a)
Qπ(s,a)函数的意义在于:告诉我们用policy函数
π
\pi
π的时候,在当前状态st下,做动作at是好还是不好。
最优动作价值函数:
Q
⋆
(
s
t
,
a
t
)
=
max
π
Q
π
(
s
t
,
a
t
)
Q^{\star}\left(s_t, a_t\right)=\max _\pi Q_\pi\left(s_t, a_t\right)
Q⋆(st,at)=maxπQπ(st,at)
2.State-Value Function V π ( s ) V_\pi(s) Vπ(s)
对
Q
π
(
s
,
a
)
Q_\pi(s,a)
Qπ(s,a)中的动作求积分,把动作积掉,变量就只剩下状态s
V
π
(
s
t
)
=
E
A
[
Q
π
(
s
t
,
A
)
]
=
∑
a
π
(
a
∣
s
t
)
⋅
Q
π
(
s
t
,
a
)
.
V_\pi\left(s_t\right)=\mathbb{E}_A\left[Q_\pi\left(s_t, A\right)\right]=\sum_a \pi\left(a \mid s_t\right) \cdot Q_\pi\left(s_t, a\right) . \quad
Vπ(st)=EA[Qπ(st,A)]=∑aπ(a∣st)⋅Qπ(st,a). (Actions are discrete.)
V
π
(
s
t
)
=
E
A
[
Q
π
(
s
t
,
A
)
]
=
∫
π
(
a
∣
s
t
)
⋅
Q
π
(
s
t
,
a
)
d
a
⋅
V_\pi\left(s_t\right)=\mathbb{E}_A\left[Q_\pi\left(s_t, A\right)\right]=\int \pi\left(a \mid s_t\right) \cdot Q_\pi\left(s_t, a\right) d a \cdot
Vπ(st)=EA[Qπ(st,A)]=∫π(a∣st)⋅Qπ(st,a)da⋅ (Actions are continuous.)
对于固定的policy函数
π
\pi
π,
V
π
(
s
)
V_\pi(s)
Vπ(s)可以评估出当前状态的好坏。
使用不同的
π
\pi
π函数,求得不同的
V
π
(
s
)
V_\pi(s)
Vπ(s),然后通过对
V
π
(
s
)
V_\pi(s)
Vπ(s)求均值
E
s
[
V
π
(
s
)
]
E_s[V_\pi(s)]
Es[Vπ(s)]还可以表现出这个
π
\pi
π函数是否好。可以用来评估
π
\pi
π函数。