深度强化学习(一)(基础概念)
一.马尔可夫决策过程
Agent:智能体,动作或决策对象
Environment: 与智能体交互的对象,可随时间变化
State:对某一时刻的环境的概括
State space( S \mathcal S S):所有可能存在的状态集合。(可以是有限也可以是无限)
Action:智能体对于当前状态做出的决策。(可以是确定的,也可以是随机的)
Action space( A \mathcal A A):所有可能的动作集合。
Reward:Agent执行某一动作之后环境的回报。通常记作 r ( s , a , s ′ ) r(s,a,s') r(s,a,s′)(与当前状态,下一刻状态,当前动作都有关),或 r ( s , a ) r(s,a) r(s,a)(与下一刻状态无关)
State transition:Agent从当前时刻
t
t
t从状态
s
s
s转移至
s
′
s'
s′状态的过程。状态转移通常是随机的,我们用状态转移概率函数来描述随机性,在当前状态
s
s
s,智能体执行动作
a
a
a,环境的状态变成
s
′
s'
s′。(第一个随机性)
p
t
(
s
′
∣
s
,
a
)
=
P
(
S
t
+
1
′
=
s
′
∣
S
t
=
s
,
A
t
=
a
)
p_t(s'|s,a)=\Bbb P(S'_{t+1}=s'|S_t=s,A_t=a)
pt(s′∣s,a)=P(St+1′=s′∣St=s,At=a)
状态转移具有马尔可夫性质,即下一时刻状态
S
t
+
1
S_{t+1}
St+1 仅依赖于当前状态
S
t
S_t
St 和动作
A
t
A_t
At, 而不依赖于过去的状态和动作。
P
(
S
t
+
1
∣
S
t
,
A
t
)
=
P
(
S
t
+
1
∣
S
1
,
A
1
,
S
2
,
A
2
,
⋯
,
S
t
,
A
t
)
\mathbb{P}\left(S_{t+1} \mid S_t, A_t\right)=\mathbb{P}\left(S_{t+1} \mid S_1, A_1, S_2, A_2, \cdots, S_t, A_t\right)
P(St+1∣St,At)=P(St+1∣S1,A1,S2,A2,⋯,St,At)
状态转移也可以是确定性的。给定当前的状态
s
s
s,智能体执行动作
a
a
a,下一刻的状态已经确定。
实际中,通常假设状态转移概率函数是平稳的,即函数不会随着时刻 t t t变化。
二.策略
强化学习的目标就是得到一个策略函数,在每个时刻根据观测到的状态做出决策。 策略可以是确定性的,也可以是随机性的。
随机策略:把状态记作
S
S
S 或
s
s
s, 动作记作
A
A
A 或
a
a
a, 随机策略函数
π
:
S
×
A
↦
[
0
,
1
]
\pi: \mathcal{S} \times \mathcal{A} \mapsto[0,1]
π:S×A↦[0,1]是一个概率函数(第二个随机):
π
(
a
∣
s
)
=
P
(
A
=
a
∣
S
=
s
)
\pi(a \mid s)=\mathbb{P}(A=a \mid S=s)
π(a∣s)=P(A=a∣S=s)
确定策略:确定策略记作
μ
:
S
↦
A
\mu: \mathcal{S} \mapsto \mathcal{A}
μ:S↦A, 它把状态
s
s
s 作为输入, 直接输出动作
a
=
μ
(
s
)
a=\mu(s)
a=μ(s),而不是输出概率值。对于给定的状态
s
s
s, 做出的决策
a
a
a 是确定的, 没有随机性。可以把确定策略看做随机策略的一种特例,即概率全部集中在一个动作上。
智能体与环境交互 (agent environment interaction) :是指智能体观测到环境的状态 s s s, 做出动作 a a a, 动作会改变环境的状态, 环境反馈给智能体奖励 r r r 以及新的状态 s ′ s^{\prime} s′ 。
三.回报与折扣回报
回报(return) 是从当前时刻开始到本回合结束的所有奖励的总和, 所以回报也叫做累计奖励 (cumulative future reward) 。把
t
t
t 时刻的回报记作随机变量
U
t
U_t
Ut 。如果一回合游戏结束, 已经观测到所有奖励, 那么就把回报记作
u
t
u_t
ut 。设本回合在时刻
n
n
n 结束。定义回报为:
U
t
=
R
t
+
R
t
+
1
+
R
t
+
2
+
R
t
+
3
+
⋯
+
R
n
.
U_t=R_t+R_{t+1}+R_{t+2}+R_{t+3}+\cdots+R_n .
Ut=Rt+Rt+1+Rt+2+Rt+3+⋯+Rn.
折扣回报 (discounted return) 给未来的奖励做折扣,其中
γ
∈
[
0
,
1
]
\gamma \in [0,1]
γ∈[0,1]叫做折扣率
U
t
=
R
t
+
γ
⋅
R
t
+
1
+
γ
2
⋅
R
t
+
2
+
γ
3
⋅
R
t
+
3
+
⋯
U_t=R_t+\gamma \cdot R_{t+1}+\gamma^2 \cdot R_{t+2}+\gamma^3 \cdot R_{t+3}+\cdots
Ut=Rt+γ⋅Rt+1+γ2⋅Rt+2+γ3⋅Rt+3+⋯
符号约定
A t A_t At: t t t时刻的动作(随机变量) | a t a_t at: t t t时刻观察到的动作(具体值) |
---|---|
S t S_t St: t t t时刻的状态(随机变量) | s t s_t st: t t t时刻的状态观测值(具体值) |
R t R_t Rt: t t t时刻奖励(随机变量) | r t r_t rt: t t t时刻奖励观测值(具体值) |
U t U_t Ut: t t t时刻的回报(随机变量) | u t u_t ut: t t t时刻观测到的回报(具体值) |
四.价值函数
4.1 动作价值函数
假设我们已经观测到状态
s
t
s_t
st,而且做完决策选中动作
a
t
a_t
at。我们想知道这一行为能为我们带来多少收益
U
t
U_t
Ut。一个很自然的想法是对
U
t
U_t
Ut求期望
Q
π
(
s
t
,
a
t
)
=
E
S
t
+
1
,
A
t
+
1
,
⋯
,
S
n
,
A
n
[
U
t
∣
S
t
=
s
t
,
A
t
=
a
t
]
Q_\pi\left(s_t, a_t\right)=\mathbb{E}_{S_{t+1}, A_{t+1}, \cdots, S_n, A_n}\left[U_t \mid S_t=s_t,A_t=a_t\right]
Qπ(st,at)=ESt+1,At+1,⋯,Sn,An[Ut∣St=st,At=at]
不难看出
Q
π
(
s
t
,
a
t
)
Q_\pi\left(s_t, a_t\right)
Qπ(st,at)取决于三元组
(
π
,
s
t
,
a
t
)
(\pi,s_t,a_t)
(π,st,at),除了与状态
s
t
s_t
st,动作
a
t
a_t
at有关,还与所采用的策略有关
4.2 最优动作价值函数
为了排除掉策略
π
\pi
π的影响,只评价当前状态和动作的好坏,由此产生最优动作价值函数(optimalaction-value function):
Q
⋆
(
s
t
,
a
t
)
=
max
π
Q
π
(
s
t
,
a
t
)
,
∀
s
t
∈
S
,
a
t
∈
A
Q_{\star}\left(s_t, a_t\right)=\max _\pi Q_\pi\left(s_t, a_t\right), \quad \forall s_t \in \mathcal{S}, \quad a_t \in \mathcal{A}
Q⋆(st,at)=πmaxQπ(st,at),∀st∈S,at∈A
最好的策略函数则为
π
⋆
=
argmax
Q
π
(
s
t
,
a
t
)
,
∀
s
t
∈
S
,
a
t
∈
A
\pi^{\star}=\operatorname{argmax} Q_\pi\left(s_t, a_t\right), \quad \forall s_t \in \mathcal{S}, \quad a_t \in \mathcal{A}
π⋆=argmaxQπ(st,at),∀st∈S,at∈A
4.3 状态价值函数
为排除动作
a
t
a_t
at的影响,仅评价当前状态和策略,我们有状态价值函数(state-value function):
V
π
(
s
t
)
=
E
A
t
∼
π
(
⋅
∣
s
t
)
[
Q
π
(
s
t
,
A
t
)
]
=
∑
a
∈
A
π
(
a
∣
s
t
)
⋅
Q
π
(
s
t
,
a
)
=
E
A
t
[
Q
π
(
s
t
,
A
t
)
∣
S
t
=
s
t
]
\begin{aligned} V_\pi\left(s_t\right) & =\mathbb{E}_{A_t \sim \pi\left(\cdot \mid s_t\right)}\left[Q_\pi\left(s_t, A_t\right)\right] \\ & =\sum_{a \in \mathcal{A}} \pi\left(a \mid s_t\right) \cdot Q_\pi\left(s_t, a\right) \\ & = \Bbb E_{A_{t}}\left[ Q_{\pi}(s_{t},A_{t})|S_t=s_{t}\right] \end{aligned}
Vπ(st)=EAt∼π(⋅∣st)[Qπ(st,At)]=a∈A∑π(a∣st)⋅Qπ(st,a)=EAt[Qπ(st,At)∣St=st]
或者也可写成
V
π
(
s
t
)
=
E
A
t
,
S
t
+
1
,
A
t
+
1
,
⋯
,
S
n
,
A
n
[
U
t
∣
S
t
=
s
t
]
V_\pi\left(s_t\right)=\mathbb{E}_{A_t, S_{t+1}, A_{t+1}, \cdots, S_n, A_n}\left[U_t \mid S_t=s_t\right]
Vπ(st)=EAt,St+1,At+1,⋯,Sn,An[Ut∣St=st]