强化学习中的基本概念
状态 (state)
状态 (state),可以理解为对当前时刻环境的概括。在超级玛丽的例子中,可以把屏幕当前的画面(或者最近几帧画面)看做状态。
状态空间(state space)
状态空间(state space)是指所有可能存在状态的集合,可以是有限集合,也可以是无限可数集合。
动作(action)
动作(action)是智能体基于当前状态所做出的决策。在超级玛丽的例子中,假设玛丽奥只能向左走、向右走、向上跳。那么动作就是左、右、上三者中的一种。
动作空间(action space)
动作空间(action space)是指所有可能动作的集合,可以是离散集合或连续集合,可以是有限集合或无限集合。
奖励(reward)
奖励(reward)是指在智能体执行一个动作之后,环境返回给智能体的一个数值。奖励往往由我们自己来定义,奖励定义得好坏非常影响强化学习的结果。比如可以这样定义,玛丽奥吃到一个金币,获得奖励 +1;如果玛丽奥通过一局关卡,奖励是 +1000;如果玛丽奥碰到敌人,游戏结束,奖励是 −1000;如果这一步什么都没发生,奖励就是 0。怎么定义奖励就见仁见智了。我们应该把打赢游戏的奖励定义得大一些,这样才能鼓励玛丽奥通过关卡,而不是一味地收集金币。
状态转移(state transition)
状态转移(state transition)是指智能体从当前 t 时刻的状态 s 转移到下一个时刻状态为 s′ 的过程。在超级玛丽的例子中,基于当前状态(屏幕上的画面),玛丽奥向上跳了一步,那么环境(即游戏程序)就会计算出新的状态(即下一帧画面)。状态转移可能是随机的,而且强化学习通常假设状态转移是随机的,随机性来自于环境。
策略(policy)
策略(policy)的意思是根据观测到的状态,如何做出决策,即如何从动作空间中选取一个动作。策略分随机策略和确定策略。
以超级玛丽为例,状态是游戏屏幕画面,把它作为策略函数的输入,策略函数可以告诉我每个动作的概率值。如果你让策略函数 π 来自动操作玛丽奥打游戏,它就会做一个随机抽样:以 0.2 的概率向左走,0.1 的概率向右走,0.7 的概率向上跳。
智能体与环境交互(agent environment interaction)
智能体与环境交互(agent environment interaction) 是指智能体观测到环境的状态s,做出动作 a,动作会改变环境的状态,环境反馈给智能体奖励 r 以及新的状态 s′。
回报(return)
回报(return) 是从当前时刻开始到本回合结束的所有奖励的总和,所以回报也叫做累计奖励(cumulative future reward)。把 t 时刻的回报记作随机变量
U
t
U_t
Ut。如果一回合游戏结束,已经观测到所有奖励,那么就把回报记作
u
t
u_t
ut。设本回合在时刻 n 结束。定义回报为:
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} + ...
Ut=Rt+Rt+1+Rt+2+Rt+3+...
折扣回报(discounted return)
在马尔可夫决策过程(Markov decisionprocess,简称 MDP)中,通常使用折扣回报(discounted return),给未来的奖励做折扣。这是折扣回报的定义:
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} + ...
Ut=Rt+γRt+1+γ2Rt+2+γ3Rt+3+...
动作价值函数(action-value function)
假设我们已经观测到状态
s
t
s_t
st,而且做完决策,选中动作
a
t
a_t
at。那么
U
t
U_t
Ut中的随机性来自
于 t + 1 时刻起的所有的状态和动作:
S
t
+
1
,
A
t
+
1
,
S
t
+
2
,
A
t
+
2
,
⋅
⋅
⋅
,
S
n
,
A
n
S_{t+1}, A_{t+1}, S_{t+2}, A_{t+2}, · · · , S_{n}, A_{n}
St+1,At+1,St+2,At+2,⋅⋅⋅,Sn,An
对
U
t
U_t
Ut关于变量
S
t
+
1
,
A
t
+
1
,
⋅
⋅
⋅
,
S
n
,
A
n
S_{t+1}, A_{t+1}, · · · , S_{n}, A_{n}
St+1,At+1,⋅⋅⋅,Sn,An求条件期望,得到
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 (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π(st,at)=ESt+1,At+1,...,Sn,An[Ut∣St=st,At=at]
期望中的
S
t
=
s
t
和
A
t
=
a
t
S_t = s_t 和 A_t = a_t
St=st和At=at 是条件,意思是已经观测到
S
t
S_t
St 与
A
t
A_t
At 的值。条件期望的结果
Q
π
(
s
t
,
a
t
)
Q_π(s_t, a_t)
Qπ(st,at) 被称作动作价值函数(action-value function)。
最优动作价值函数(optimal action-value function)
Q
∗
(
s
t
,
a
t
)
=
max
π
Q
π
(
s
t
,
a
t
)
Q_*(s_t, a_t) = \max_πQ_π(s_t, a_t)
Q∗(st,at)=πmaxQπ(st,at)
意思就是有很多种策略函数 π 可供选择,而我们选择最好的策略函数:
π
∗
=
a
r
g
m
a
x
π
Q
π
(
s
t
,
a
t
)
π_* = \underset{\pi} {argmax}Q_π(st, at)
π∗=πargmaxQπ(st,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
)
V_{\pi}(s_t) = E_{A_t \sim \pi(\cdot | s_t)}[Q_\pi(s_t, A_t)] = \sum_{a\in {\Alpha}} \pi(a|s_t)Q_\pi(s_t, a)
Vπ(st)=EAt∼π(⋅∣st)[Qπ(st,At)]=a∈A∑π(a∣st)Qπ(st,a)
公式里把动作
A
t
A_t
At 作为随机变量,然后关于
A
t
A_t
At 求期望,把
A
t
A_t
At 消掉。得到的状态价值函
数
V
π
(
s
t
)
V_π(s_t)
Vπ(st) 只依赖于策略 π 与当前状态
s
t
s_t
st,不依赖于动作。