强化学习(1)基本概念
机器学习
- 有监督学习
给算法一个数据集,并且给定正确答案。机器通过数据来学习正确答案的计算方法。 - 无监督学习
给定的数据集没有“正确答案”,所有的数据就是一样的。非监督学习的任务是从给定的数据集中,挖掘出潜在的结构 - 强化学习(Reinforcement learning,RL)
一个智能体(agent) 怎么在一个复杂不确定的环境(environment) 里面去极大化它能获得
的奖励。通过感知所处环境的状态(state) 对动作(action) 的反应(reward),来指导更好的动作,从而获得最大的收益(return),这被称为在交互中学习,这样的学习方法就被称作强化学习。
强化学习的概念与构成
定义
本质上是动态序贯优化问题,一般采用马尔科夫决策过程(Markov Decision Process, MDP)进行建模。
MDP描述了序贯决策的智能体与环境的交互过程,由四个部分组成:
(1)状态
s
s
s:智能体决策相关的信息。
(2)状态转移概率
p
(
s
t
+
1
∣
s
t
,
a
)
p(s_{t+1}|s_t,a)
p(st+1∣st,a):描述环境的动态特性。
(3)奖励
r
(
s
t
,
a
)
r(s_t ,a)
r(st,a):智能体采取某种决策而收到的奖励。
(4)行为
a
a
a:智能体可以选择的动作。
随机过程
一个随机过程是一列随时间变化的随机变量,当时间是离散量,一个随机过程表示为 { X t } t = 0 , 1 , 2 , … \{X_t \}t=0,1,2,… {Xt}t=0,1,2,…,其中 X t X_t Xt都是一个随机变量,这被称为离散随机过程。
马尔可夫过程
定义:状态
S
t
S_t
St是马尔可夫的,当且仅当
P
(
S
t
+
1
∣
S
1
,
…
,
S
t
)
=
P
(
S
t
+
1
,
S
t
)
P(S_{t+1}|S_1, … ,S_t) = P(S_{t+1},S_t)
P(St+1∣S1,…,St)=P(St+1,St)
马尔可夫过程指具有马尔可夫性质的随机过程,也被称为马尔可夫链。通常用元组
<
S
,
P
>
<S,P>
<S,P>描述马尔可夫过程,其中𝑆是有限数量的状态集合,𝑃是状态转移矩阵。
奖励机制
目的:为了在序列决策中对目标进行优化
主要表示:
- 奖励函数 R ( S t , S t + 1 ) R(S_t ,S_{t+1}) R(St,St+1)描述了从第t步状态转移到第t+1步状态所获得的奖励.
- 在一个序列决策过程中,不同状态之间的转移产生了一系列的奖励
(
R
1
,
R
2
,
…
)
(R_1,R_2 ,…)
(R1,R2,…),其中
R
t
+
1
R_{t+1}
Rt+1为
R
(
S
t
,
S
t
+
1
)
R(S_t ,S_{t+1})
R(St,St+1)的简便记法.
问题:单纯的奖励函数产生的奖励序列无法准确引入时刻信息,而真实决策很大概率与决策产生的时机相关。
折扣因子
从第𝑡时刻状态
S
t
S_t
St开始,直到终止状态时,所有奖励的衰减之和称为回报
G
t
G_t
Gt,定义如下
G
t
=
R
t
+
γ
R
t
+
1
+
γ
2
R
t
+
2
+
⋯
=
∑
k
=
0
∞
γ
k
R
t
+
k
G_t = R_t + \gamma R_{t+1} + \gamma^2R_{t+2} + ⋯ =\sum_{k=0}^{\infty}\gamma^kRt+k
Gt=Rt+γRt+1+γ2Rt+2+⋯=k=0∑∞γkRt+k
其中 R t R_t Rt表示在时刻𝑡获得的奖励,折扣因子 γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1]
马尔可夫奖励过程
在马尔可夫过程的基础上加入奖励函数𝑟和折扣因子𝛾,就可以得到马尔可夫奖励过程,一个马尔可夫奖励过程由 < S , P , R , γ > <S,P,R,\gamma> <S,P,R,γ>构成:
- 𝑆是状态集合.
- 𝑃是状态转移矩阵.
- 𝑅是奖励函数,状态𝑠的奖励𝑅(𝑠)指转移到该状态时获得的奖励数值.
- 𝛾是折扣因子,取值范围为[0,1],考虑远期奖励具有一定的不确定性.
马尔可夫决策过程(Markov Decision Process,MDP)
定义:在马尔可夫奖励过程的基础上加入动作,就得到了马尔可夫决策过程 < S , A , P , R , γ > <S,A,P,R,\gamma> <S,A,P,R,γ>
- 𝐴是动作的(有限)集合
- 𝑅(𝑠, 𝑎)是奖励函数
-
P
(
s
′
,
R
∣
s
,
a
)
=
P
{
S
t
=
s
′
,
R
t
=
R
∣
S
t
−
1
=
s
,
A
t
−
1
=
a
}
P(s',R|s, a)=P\{S_t =s ′ , R_t =R∣ S_{t−1} =s, A_{t−1} = a\}
P(s′,R∣s,a)=P{St=s′,Rt=R∣St−1=s,At−1=a}是状态转移函数
此时同样有
∑ s ′ ∈ S ∑ r ∈ R P ( s ′ , r ∣ s , a ) = 1 \sum_{s'\in S} \sum\limits_{r \in R} P(s',r|s,a)= 1 s′∈S∑r∈R∑P(s′,r∣s,a)=1
对于所有 s ′ ∈ S , a ∈ A ( s ) s'\in S, a \in A(s) s′∈S,a∈A(s)成立
例,无人机飞行决策
- 随机变量序列 { S t } t = 0 , 1 , 2 , … : S t \{S_t\}t=0,1,2,…:S_t {St}t=0,1,2,…:St表示无人机第t步所在位置(状态)
- 状态转移概率: P ( S t + 1 ∣ S t , a t ) P (S_{t+1}|S_t ,a_t ) P(St+1∣St,at)满足马尔科夫性
- 奖励函数: R ( S t , a t , S t + 1 ) R(S_t ,a_t,S_{t+1}) R(St,at,St+1)
- 折扣因子: γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1]
- 动作集合: A = { u p , r i g h t } A=\{up,right\} A={up,right}
强化学习的目标
对应四元组
<
S
,
A
,
P
,
R
>
<S,A,P,R>
<S,A,P,R>
MDP可以如下所示
- 从状态𝑠1开始
- 选择动作𝑎1
- 得到奖励𝑅(𝑠1,𝑎1)
- MDP转移到下一个状态𝑠2
s 0 ( i ) → a 0 i R 0 i , s 1 ( i ) → a 1 i R 1 i , s T ( i ) s_{0^{(i)}}\xrightarrow{a_0^{i}}R_0^{i}, s_{1^{(i)}}\xrightarrow{a_1^{i}}R_1^{i},s_T^{(i)} s0(i)a0iR0i,s1(i)a1iR1i,sT(i)
这个过程不断进行直到终止.
强化学习的目标就是 m a x G t = R t + γ R t + 1 + γ 2 R t + 2 + ⋯ + γ T R T maxG_t = R_t + \gamma R_{t+1} + \gamma^2R_{t+2} + ⋯ +\gamma^TR_{T} maxGt=Rt+γRt+1+γ2Rt+2+⋯+γTRT
强化学习的特征
- 探索试错
- 延迟回报
- 长期目标
强化学习的策略学习
马尔可夫决策过程 M D P = { S , A , P , R } MDP=\{S,A,P,R\} MDP={S,A,P,R},对环境进行描述,而策略学习用于智能体与环境之间进行交互
策略
策略是从状态到每个动作的选择概率之间的映射
- 如果策略为𝜋,则 π ( a ∣ s ) \pi(a|s) π(a∣s)代表 S t = s S_t = s St=s时,智能体选择动作 A t = a A_t =a At=a的概率。
- 策略函数的输出可以是确定的,即给定s情况下,只有一个动作a使得概率 π ( a ∣ s ) \pi(a|s) π(a∣s) 的取值为1,对于确定的策略,记为 a = π ( s ) a = \pi(s) a=π(s)
策略学习
一个好的策略是在当前状态下采取了一个行动后,该行动能够在未来收到最大化的反馈
m
a
x
G
t
=
R
t
+
γ
R
t
+
1
+
γ
2
R
t
+
2
+
⋯
+
γ
T
R
T
maxG_t = R_t + \gamma R_{t+1} + \gamma^2R_{t+2} + ⋯ +\gamma^TR_{T}
maxGt=Rt+γRt+1+γ2Rt+2+⋯+γTRT
- 价值函数:从状态s出发,并采用策略𝜋的折扣积累回报的期望。
V π ( s ) = E π [ G t ∣ S t = s ] = E [ ∑ k = 0 ∞ γ k R t + k ∣ S t = s ] V_\pi(s)=\mathbb{E}_\pi[G_t|S_t=s]=\mathbb{E}\bigg[\sum\limits_{k=0}^{\infty} \gamma ^kR_{t+k}|S_t=s\bigg] Vπ(s)=Eπ[Gt∣St=s]=E[k=0∑∞γkRt+k∣St=s] - 行为值函数:从状态s出发,采用动作a与环境交互,之后采用策略𝜋所得到的折扣积累回报的期望 q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] = E [ ∑ k = 0 ∞ γ k R t + k ∣ S t = s , A t = a ] q_\pi(s,a)=\mathbb{E}_\pi[G_t|S_t=s,A_t=a]=\mathbb{E}\bigg[\sum\limits_{k=0}^{\infty} \gamma ^kR_{t+k}|S_t=s,A_t=a\bigg] qπ(s,a)=Eπ[Gt∣St=s,At=a]=E[k=0∑∞γkRt+k∣St=s,At=a]
贝尔曼方程
贝尔曼方程显示的是值函数与行为函数在决策序列上的链式计算性质,通过该方程可以直接的计算出价值函数与行为值函数。
也就是:
v
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
(
R
s
a
+
γ
∑
s
′
∈
S
P
s
s
′
a
,
v
π
(
s
′
)
)
v_\pi(s)=\sum\limits_{a\in A}\pi(a|s)\bigg( R_s^a+\gamma\sum\limits_{s'\in S}P_{ss'}^{a},v_\pi(s')\bigg)
vπ(s)=a∈A∑π(a∣s)(Rsa+γs′∈S∑Pss′a,vπ(s′))
q
π
(
s
,
a
)
=
R
s
a
+
γ
∑
s
′
∈
S
P
s
s
′
a
∑
a
′
∈
A
π
(
a
′
∣
s
′
)
q
π
(
s
′
,
a
′
)
q_\pi(s,a)=R_s^a+\gamma\sum\limits_{s'\in S}P_{ss'}^{a}\sum\limits_{a'\in A}\pi(a'|s')q_\pi(s',a')
qπ(s,a)=Rsa+γs′∈S∑Pss′aa′∈A∑π(a′∣s′)qπ(s′,a′)
价值函数与行为值函数的关系(以无人机为例)
贝尔曼最优化方程
- 最优状态值函数是指在所有策略中值最大的值函数: v π ∗ ( s ) = m a x π v π ( s ) v^*_\pi(s)=\mathop{max}\limits_{\pi}v_\pi(s) vπ∗(s)=πmaxvπ(s)
- 最优状态-动作值函数是指在所有策略中值最大的值函数:
p
π
∗
(
s
,
a
)
=
m
a
x
π
p
π
(
s
,
a
)
p^*_\pi(s,a)=\mathop{max}\limits_{\pi}p_\pi(s,a)
pπ∗(s,a)=πmaxpπ(s,a)
贝尔曼最优方程是指通过贝尔曼方程与最优值函数得出的最优值的链式关系
强化学习的方法
强化学习的问题定义:给定马尔科夫决策过程
M
D
P
=
{
S
,
A
,
P
,
R
}
MDP=\{S,A,P,R\}
MDP={S,A,P,R}
寻找一个最优策略
π
∗
\pi^∗
π∗ ,对任意
s
∈
S
s \in S
s∈S使得
V
π
∗
(
s
)
V_{\pi∗}(s)
Vπ∗(s)值最大
强化学习求解:在策略优化和策略评估的交替迭代中优化参数
按学习目标划分
- 基于价值的方法输出的是动作的价值,选择价值最高的动作;
- 基于策略的方法直接输出下一步动作的概率,根据概率来选取动作。但不一定概率最高就会选择该动作,还是会从整体进行考虑;
- Actor-Critic,Actor根据概率做出动作,Critic根据动作给出价值,从而加速学习过程
Q-Learning算法
Q函数
学习速率 α \alpha α越大,保留之前训练的效果就越少