强化学习-Daviad Silver强化学习课程脉络整理
1.lecture1 introduction
1.1 强化学习简介
强化学习是机器学习的一个分支,没有监督信号判断学习的好坏,只有reward 信号引导学习过程。
强化学习的目标是:学习一个决策策略,使得agent与环境交互所获得的累计奖励最大。
强化学习基本要素 | |
---|---|
Agent | 决策智能体,主要完成在环境中处于某一状态下的动作决策,策略是可以学习的。 |
Reward- R t R_t Rt | t时刻的奖励,标量,用于反映agent t时刻动作的优劣(长期奖励的一个衡量) |
Enviroment | 环境,接收Agent的动作,依据物理特性状态转换(转换是不受Agent控制的),并反馈给agent 一个 R t R_t Rt |
State | 状态信息:环境状态(一般不可用),agent 状态(强化学习算法可以使用的状态) |
老鼠训练的例子:agent状态表示不同,依据统计规律得出的预测也不同补图
环境状态和agent 状态的区别:
Agent 主要成分 | |
---|---|
state | agent 状态-强化学习算法可以使用的状态, |
action | agent的在每一个状态下能够执行的动作(走子,浇水) |
policy | 状态到动作的映射:确定策略 a = π ( s ) a=\pi(s) a=π(s)、不确定策略 π ( a ∣ s ) = P [ A = a ∣ S t = s ] \pi(a|s)=P[A=a|S_t=s] π(a∣s)=P[A=a∣St=s] |
value function | 评价当前状态的优劣(对未来奖励的预测),是基于策略的 |
model | 状态转移概率: P s , s ′ a = P [ S t + 1 ∣ S t = s , A t = a ] P_{s,s'}^a=P[S_{t+1}|S_t=s,A_t=a] Ps,s′a=P[St+1∣St=s,At=a]、奖励: R s a = E [ R t + 1 ∣ S t = s , A t = a ] R_s^a=E[R_{t+1}|S_t=s,A_t=a] Rsa=E[Rt+1∣St=s,At=a] |
1.2 强化学习类别
分类1
value based | 无策略函数,策略由价值函数 V π V_{\pi} Vπ 间接得到(贪心策略?) |
policy based | 动作由策略函数决定,没有 V π V_{\pi} Vπ |
Actor-critic | 策略函数与价值函数同时存在,两者结合 |
分类2
model based | 环境模型已知道,状态转移概率,奖励函数 |
model free | 环境模型未知 |
model 是环境物理规律的建模,model常常不事先已知,需要agent基于历史信息对model进行建模,这种情况下的强化学习为 model free learning。
1.3 强化学习的主要问题
主要问题1 | |
---|---|
学习 | 环境未知,agent不知道环境如何工作,agent通过与环境进行交互,逐渐改善其行为策略。 |
规划 | 环境如何工作对于agent是已知或近似已知的,agent并不与环境发生实际的交互,而是利用其构建的模型进行计算,在此基础上改善其行为策略。 |
主要问题2 | |
---|---|
探索 | |
利用 |
主要问题3 | |
---|---|
预测 | 给定MDP+策略 求状态价值 |
控制 | 给定MDP,求最优价值函数V |
2.lecture2 Markov Decision Process
2.1 MP,MRP,MDP
三大过程 | |
---|---|
Markov Process | <P,S> ,马尔可夫状态转移图 |
Markov Reward Process | <P,S,R, γ \gamma γ> ,马尔可夫状态转移图+边权 R s R_s Rs |
Markov Decision Process | <P,S,A,R, γ \gamma γ>,马尔可夫状态转移图+边权 ( R s + a ) (R_s+a) (Rs+a) |
状态的马尔可夫性质:某一状态包含了所有相关的历史信息,可以决定未来。(下一时刻的状态完全由本时刻的状态决定)
MRP关键概念 | |
---|---|
S | 状态空间–agent所有状态的集合( s 1 , s 2 , s 3 , . . . . s n s_1,s_2,s_3,....\,s_n s1,s2,s3,....sn) |
p s , s ′ p_{s,s'} ps,s′ | 状态转移矩阵–其中的元素为 p s , s ′ = p [ s t + 1 ∣ S t = s ] p_{s,s'}=p[s_{t+1}|S_t=s] ps,s′=p[st+1∣St=s] |
R s R_s Rs | 某一状态s在下一个时刻能够获得的奖励的期望值 R s = E [ R t + 1 ∣ S t = s ] R_s=E[R_{t+1}|S_t=s] Rs=E[Rt+1∣St=s] |
γ \gamma γ | 衰减系数–后续经历状态的奖励对于当前return的呈现衰减影响 |
G t G_t Gt | return 收益/回报 --(一条马尔可夫链)从t 时刻开始所有 R t R_t Rt的衰减总和 |
V(s) | 价值函数–某一状态/动作的长期价值 V ( s ) = E [ G t ∣ S t = s ] V(s)=E[G_t|S_t=s] V(s)=E[Gt∣St=s] ,从s出发的所有链条的 G t G_t Gt的期望 |
R s R_s Rs 确定到达这个状态他就能获得的一个奖励,不管后续去了哪里,那就是下一个状态需要关系的事情了, R s R_s Rs一般未知,我们只能收到环境给的 R t R_t Rt的反馈,类似于k 摇臂赌博机中每个摇臂的期望奖励是 R s R_s Rs,每次反馈的奖励是 R t R_t Rt
MDP关键概念 | |
---|---|
S | 状态空间–agent所有状态的集合( s 1 , s 2 , s 3 , . . . . s n s_1,s_2,s_3,....\,s_n s1,s2,s3,....sn) |
A | 动作空间–agent所有状态的集合( a 1 , a 2 , a 3 , . . . . a m a_1,a_2,a_3,....\,a_m a1,a2,a3,....am) |
p s , s ′ a p_{s,s'}^a ps,s′a | 元素为 p s , s ′ a = p [ s t + 1 ∣ S t = s , A t = a ] p_{s,s'}^a=p[s_{t+1}|S_t=s,A_t=a] ps,s′a=p[st+1∣St=s,At=a] |
R s a R_s^a Rsa | R s a = E [ R t + 1 ∣ S t = s , A t = a ] R_s^a=E[R_{t+1}|S_t=s,A_t=a] Rsa=E[Rt+1∣St=s,At=a] |
R t + 1 R_{t+1} Rt+1 | t->t+1状态转换带来的reward |
π \pi π | 概率集合/概率分布函数 : π ( a ∣ s ) \pi(a|s) π(a∣s) |
π ( a ∣ s ) \pi(a|s) π(a∣s) 给定a, 不同的s会构成一个概率密度函数,找一个s使 π ( a ∣ s ) \pi(a|s) π(a∣s)最大。==好像没啥用 ==
π ( a ∣ s ) \pi(a|s) π(a∣s)给定s,不同的a会构成一个概率密度函数,找一个a使 π ( a ∣ s ) \pi(a|s) π(a∣s)最大。状态s下最有可能的动作选择
策略相关的概念 | 涉及到策略就是要对动作求期望 |
---|---|
p s , s ′ π p^{\pi}_{s,s'} ps,s′π | 策略 π \pi π下,状态s->s’的状态转移概率: p s , s ′ π = ∑ a ∈ A π ( a ∣ s ) p s , s ′ a p^{\pi}_{s,s'}=\sum_{a\in A}\pi(a|s)p_{s,s'}^a ps,s′π=∑a∈Aπ(a∣s)ps,s′a |
R s π R_s^{\pi} Rsπ | 策略 π \pi π下,状态s 的reward: R s π = ∑ a ∈ A π ( a ∣ s ) R s a R^{\pi}_{s}=\sum_{a\in A}\pi(a|s)R^a_s Rsπ=∑a∈Aπ(a∣s)Rsa |
V π ( s ) V_{\pi}(s) Vπ(s) | 策略 π \pi π下,状态s 的价值: v π ( s ) = E π [ G t ∣ S t = s ] v_{\pi}(s)=E_\pi [G_t|S_t=s] vπ(s)=Eπ[Gt∣St=s] |
q π ( s , a ) q_{\pi}(s,a) qπ(s,a) | 策略 π \pi π下,状态s 的动作价值: q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] q_{\pi}(s,a)=E_\pi[G_t|S_t=s,A_t=a] qπ(s,a)=Eπ[Gt∣St=s,At=a] |
p s , s ′ π p^{\pi}_{s,s'} ps,s′π:策略 π \pi π 下的状态转移概率:状态 s s s下可选的动作有很多个,各个动作转向 s ′ s' s′ 的概率相加。无法直接在马尔可夫图上表示出来吧
V π ( s ) V_{\pi}(s) Vπ(s) 基于策略 π \pi π下状态s的策略价值函数,为从状态s出发,能获得回报 G t G_t Gt的期望( G t G_t Gt是通过 策略 π \pi π产生的马尔可夫链求期望得出)。
q π ( s , a ) q_{\pi}(s,a) qπ(s,a)与 V π ( s ) V_{\pi}(s) Vπ(s) 就相差一个在特定动作下,所以可以通过对 q π ( s , a ) q_{\pi}(s,a) qπ(s,a)求期望,得到 V π ( s ) V_{\pi}(s) Vπ(s)。
单步奖励-reward, 长期价值-value.
2.2 Bellman Eqution–贝尔曼方程
V ( s ) − G t V(s)-G_t V(s)−Gt的迭代关系–只涉及到MRP,没有动作空间
v ( s ) = E [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + . . . . ∣ S t = s ] = E [ R t + 1 ∣ S t = s ] + γ E [ R t + 2 + γ R t + 3 + . . . ∣ S t = s ] = E [ R t + 1 ∣ S t = s ] + γ E [ G t + 1 ∣ S t = s ] (0) v(s)=E[R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+....|S_t=s]\\ =E[R_{t+1}|S_t=s]+\gamma E[R_{t+2}+\gamma R_{t+3}+...|S_t=s]\\ =E[R_{t+1}|S_t=s]+\gamma E[G_{t+1}|S_t=s]\tag{0} v(s)=E[Rt+1+γRt+2+γ2Rt+3+....∣St=s]=E[Rt+1∣St=s]+γE[Rt+2+γRt+3+...∣St=s]=E[Rt+1∣St=s]+γE[Gt+1∣St=s](0)
第二部分收获的期望,等于收获期望的期望,不是很明白
v
(
s
)
=
R
s
+
γ
E
[
v
(
S
t
+
1
)
∣
S
t
=
s
]
(1)
v(s)=R_s+\gamma E[v(S_{t+1})|S_t=s]\tag{1}
v(s)=Rs+γE[v(St+1)∣St=s](1)
S
t
+
1
S_{t+1}
St+1下一时刻的状态,依据下一时刻状态分布求其期望:
v
(
s
)
=
R
s
+
γ
∑
s
′
∈
S
p
s
s
′
v
(
s
′
)
(2)
v(s)=R_s+\gamma \sum_{s'\in S}p_{ss'}v(s')\tag{2}
v(s)=Rs+γs′∈S∑pss′v(s′)(2)
写成矩阵的形式可以解析求解v:
V
=
R
+
γ
P
V
=
>
V
=
(
I
−
γ
P
)
−
1
R
V
=
R
+
γ
P
V
=
>
V
=
(
I
−
γ
P
)
−
1
R
(3)
V=R+\gamma PV\\=>V=(I-\gamma P)^{-1}RV=R+\gamma PV\\=>V=(I-\gamma P)^{-1}R\tag{3}
V=R+γPV=>V=(I−γP)−1RV=R+γPV=>V=(I−γP)−1R(3)
2.3 Bellman Eqution–贝尔曼期望方程
在策略
π
\pi
π下的贝尔曼方程
v
π
(
s
)
=
E
[
R
t
+
1
+
γ
v
π
(
S
t
+
1
)
∣
S
t
=
s
]
(4)
v_\pi(s)=\mathbb{E}[R_{t+1}+\gamma v_{\pi}(S_{t+1})|S_t=s]\tag{4}
vπ(s)=E[Rt+1+γvπ(St+1)∣St=s](4)
q π ( s , a ) = E [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s , A t = a ] (5) q_\pi(s,a)=\mathbb{E}[R_{t+1}+\gamma v_{\pi}(S_{t+1})|S_t=s,A_t=a]\tag{5} qπ(s,a)=E[Rt+1+γvπ(St+1)∣St=s,At=a](5)
两者之间的递推公式
v
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
q
π
(
s
,
a
)
(6)
v_{\pi}(s)=\sum_{a\in A}\pi(a|s)q_\pi(s,a)\tag{6}
vπ(s)=a∈A∑π(a∣s)qπ(s,a)(6)
q π ( a , s ) = R s a + γ ∑ s ′ ∈ S P s s ′ a v π ( s ′ ) (7) q_\pi(a,s)=R_s^a+\gamma \sum_{s'\in S}P^a_{ss'}v^\pi(s')\tag{7} qπ(a,s)=Rsa+γs′∈S∑Pss′avπ(s′)(7)
引入动作后,状态价值v(s)与动作挂钩,现下的动作价值q(a,s) 通过 动作状态转移 P s s ′ a P^a_{ss'} Pss′a 和下一个时刻的 状态价值v(s’) 计算
2.4 最优策略
策略
π
\pi
π的所有状态价值都大于该状态在其他策略下的价值。策略是一个离散的动作概率集合,调整动作概率选择,就可以达到最优策略。最优策略可能不止一个,所有最优策略具有相同的价值很函数和动作价值函数。
π
>
=
π
′
i
f
v
π
(
s
)
>
=
v
π
′
(
s
)
,
∀
s
(8)
\pi>=\pi'\ \ if\ \ v_\pi(s)>=v_{\pi'}(s),\forall s\tag{8}
π>=π′ if vπ(s)>=vπ′(s),∀s(8)
最优策略求解:选择/求解 最大化行为价值函数对应的动作(在状态s下该执行什么动作)。最优策略下只有一个动作会被执行,即
π
∗
(
a
∣
s
)
=
1
\pi_*(a|s)=1
π∗(a∣s)=1, 其余动作出现的概率则为0,则最优的状态价值 = 最优策略下动作价值。
π
∗
(
a
∣
s
)
=
1
i
f
a
=
arg
max
a
∈
A
q
∗
(
s
,
a
)
e
l
s
e
0
(9)
\pi_*(a|s)=1\ \ if \ \ a=\arg \max_{a\in A}q_*(s,a) \ \ else \ \ 0\tag{9}
π∗(a∣s)=1 if a=arga∈Amaxq∗(s,a) else 0(9)
2.5 最优值函数
状态s的最优价值函数:状态s 在所有策略下价值函数的最大值。(最优策略对应的价值/动作价值函数,最优策略的定义)
v
∗
(
s
)
=
max
π
v
π
(
s
)
(10)
v_*(s)=\max_{\pi}v_\pi(s)\tag{10}
v∗(s)=πmaxvπ(s)(10)
最优动作状态值函数所有策略在该状态该动作下价值的最大值
q
∗
(
s
,
a
)
=
max
π
q
π
(
s
,
a
)
(11)
q_*(s,a)=\max_{\pi}q_\pi(s,a)\tag{11}
q∗(s,a)=πmaxqπ(s,a)(11)
2.6 Bellman Optimal Equation
最优状态价值 :一个状态的最优价值= 最优策略
π
\pi
π下,从状态
s
s
s出发可采取的所有行为
a
a
a,行为价值最大值。
v
∗
(
s
)
=
max
π
max
a
q
π
(
s
,
a
)
=
max
a
q
∗
(
s
,
a
)
(12)
v_*(s)=\max_{\pi}\max_{a}q_{\pi}(s,a)=\max_a q_*(s,a)\tag{12}
v∗(s)=πmaxamaxqπ(s,a)=amaxq∗(s,a)(12)
最优行为价值函数,定义式:
q
π
(
a
,
s
)
=
R
s
a
+
γ
∑
s
′
∈
S
P
s
s
′
a
v
π
(
s
′
)
(13)
q_\pi(a,s)=R_s^a+\gamma \sum_{s'\in S}P^a_{ss'}v^\pi(s')\tag{13}
qπ(a,s)=Rsa+γs′∈S∑Pss′avπ(s′)(13)
式子(12)带入定义式:
q
∗
(
s
,
a
)
=
R
s
a
+
γ
∑
s
′
∈
S
p
s
s
′
a
max
a
′
q
∗
(
s
′
a
′
)
(14)
q_{*}(s,a)=R_s^a+\gamma \sum_{s'\in S} p^a_{ss'} \max_{a'}q_*(s'a')\tag{14}
q∗(s,a)=Rsa+γs′∈S∑pss′aa′maxq∗(s′a′)(14)
两者之间的迭代关系
3 lecture3 Planning by Dynamic Programming
已知:模型(P已知)+策略
求解:该策略价值函数、最优策略价值函数
DP–RL | |
---|---|
DP | 最优子问题(递归求解-自顶向下递归,自底向上递归)+子问题重复出现(tabel 记录) |
RL | Bellman方程提供了递归求解表达式 |
1)递归表达式(状态转移方程): q π ( a , s ) = R s a + γ ∑ s ′ ∈ S P s s ′ a v π ( s ′ ) q_\pi(a,s)=R_s^a+\gamma \sum_{s'\in S}P^a_{ss'}v^\pi(s') qπ(a,s)=Rsa+γ∑s′∈SPss′avπ(s′)
2)更新(table)V(s) : v ∗ ( s ) = max a q ∗ ( s , a ) v_*(s)=\max_a q_*(s,a) v∗(s)=maxaq∗(s,a)
3.1 策略迭代估计->策略改进
Step1: 策略迭代估计-- 给定策略下迭代更新价值函数,利用(12)式贝尔曼期望方程来更新。
v
k
+
1
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
[
R
s
a
+
γ
∑
s
′
∈
S
P
s
s
′
a
v
k
(
s
′
)
]
(15)
v_{k+1}(s)=\sum_{a\in A}\pi(a|s)[R^a_s+\gamma \sum_{s'\in S}P^a_{ss'}v_k(s')]\tag{15}
vk+1(s)=a∈A∑π(a∣s)[Rsa+γs′∈S∑Pss′avk(s′)](15)
其中 v k ( s ′ ) v_k(s') vk(s′) 为t = k时的状态价值。
Step2: 策略改进–在当前策略下选取使后继状态价值增加的行为–动作选择
3.2 价值迭代–找最优策略
(不需要策略)
通过(22)式贝尔曼最优方程来求解
v
∗
(
s
)
=
max
a
∈
A
(
R
s
a
+
γ
∑
s
′
∈
S
P
s
s
′
a
v
∗
(
s
′
)
)
(16)
v_{*}(s)=\max_{a\in A}(R^a_s+\gamma\sum_{s'\in S}P^a_{ss'}v_{*}(s'))\tag{16}
v∗(s)=a∈Amax(Rsa+γs′∈S∑Pss′av∗(s′))(16)
–
v
∗
(
s
′
)
v_{*}(s')
v∗(s′)为下一个时刻状态的最优值,认为上一步的v是
v
∗
v_*
v∗,max 的过程在进行动作选择
全部是迭代计算。
4.lecture4 Model Free Prediction
条件:模型未知(P未知)
估计:该策略价值函数、最优策略价值函数
本章需要回顾的一些公式:
1)采样数据
x
1
,
x
2
,
.
.
.
x
n
,
.
.
.
.
x_1,x_2,...x_n,....
x1,x2,...xn,....均值的在线更新公式(如下)。作用–用新的采样值
x
k
x_k
xk更新均值
μ
k
−
1
\mu_{k-1}
μk−1:
μ
k
=
1
k
∑
i
=
1
k
x
k
=
1
k
(
x
k
+
∑
i
=
1
k
−
1
x
i
)
=
1
k
(
x
k
+
(
k
−
1
)
μ
k
−
1
)
=
μ
k
−
1
+
1
k
(
x
k
−
μ
k
−
1
)
(17)
\mu_k=\frac{1}{k}\sum_{i=1}^{k}x_k\\=\frac{1}{k}(x_k+\sum_{i=1}^{k-1}x_i)\\=\frac{1}{k}(x_k+(k-1)\mu_{k-1})\\=\mu_{k-1}+\frac{1}{k}(x_k-\mu_{k-1})\tag{17}
μk=k1i=1∑kxk=k1(xk+i=1∑k−1xi)=k1(xk+(k−1)μk−1)=μk−1+k1(xk−μk−1)(17)
2)价值函数的定义式: V ( s t ) = E [ G t ∥ S t = s ] V(s_t)=E[G_t\|S_t=s] V(st)=E[Gt∥St=s]
3) G t G_t Gt的衰减和定义式子: G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 , . . . , G_t=R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3,...,} Gt=Rt+1+γRt+2+γ2Rt+3,...,
4)贝尔曼方程递归求解价值函数: V ( s t ) = R s + γ V ( s t + 1 ) V(s_t)=R_s+\gamma V(s_{t+1}) V(st)=Rs+γV(st+1)
4.1 蒙特卡洛学习–完全采样
在给定策略下,从一系列完整的Episode 中估计得到所有状态的价值函数。
(核心:状态价值 使用采样Episode均值估计,而非所有的全Episode期望计算)
(完全说的是Episode是一条完整的链子)
增量式蒙特卡洛更新:
N
(
s
t
)
=
N
(
s
t
)
+
1
v
(
s
t
)
=
v
(
s
t
)
+
1
N
(
s
t
)
(
G
t
−
V
(
s
t
)
)
(18)
N(s_t)=N(s_t)+1\\ v(s_t)=v(s_t)+\frac{1}{N(s_t)}(G_t-V(s_t))\tag{18}
N(st)=N(st)+1v(st)=v(st)+N(st)1(Gt−V(st))(18)
其中, G t G_t Gt需要通过一条完整的Episode。
不明白 1 N ( s t ) \frac{1}{N(s_t)} N(st)1只是用 α \alpha α来表示,还是就使用一个固定的 α \alpha α
4.2 时序差分TD(n)–不完全采样
在给定策略下,从一系列不完整的Episode 中估计得到所有状态的价值函数。
主要区别:3)式更新式中的
G
t
G_t
Gt的近似求解:
G
t
=
R
t
+
1
+
γ
R
t
+
2
+
γ
2
R
t
+
3
,
.
.
.
,
≈
G
t
(
n
)
=
R
t
+
1
+
.
.
.
+
γ
n
V
(
s
t
+
n
)
G_t=R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3,...,}\approx G_t^{(n)}=R_{t+1}+...+\gamma ^n V(s_{t+n})
Gt=Rt+1+γRt+2+γ2Rt+3,...,≈Gt(n)=Rt+1+...+γnV(st+n)
其中, V ( s t + 1 ) V(s_{t+1}) V(st+1)下一状态 s t + 1 s_{t+1} st+1价值的非精确求解。
增量式时序差分更新:
N
(
s
t
)
=
N
(
s
t
)
+
1
v
(
s
t
)
=
v
(
s
t
)
+
1
N
(
s
t
)
(
R
t
+
1
+
γ
V
(
s
t
+
1
)
−
V
(
s
t
)
)
(18)
N(s_t)=N(s_t)+1\\ v(s_t)=v(s_t)+\frac{1}{N(s_t)}(R_{t+1}+\gamma V(s_{t+1})-V(s_t))\tag{18}
N(st)=N(st)+1v(st)=v(st)+N(st)1(Rt+1+γV(st+1)−V(st))(18)
R t + 1 + γ V ( s t + 1 ) R_{t+1}+\gamma V(s_{t+1}) Rt+1+γV(st+1)称为TD target, R t + 1 + γ V ( s t + 1 ) − V ( s t ) R_{t+1}+\gamma V(s_{t+1})-V(s_t) Rt+1+γV(st+1)−V(st)称为TD error。
依据 G t G_t Gt中 R t + i R_{t+i} Rt+i的计算步长,TD算法可以分为TD(n)算法,TD(n)算法表示n+1步return 计算。
4.3 TD( λ \lambda λ)
结合蒙特卡洛更新和时序差分更新的优点,融合不同的n步return。
G
t
λ
=
(
1
−
λ
)
∑
n
=
1
∞
λ
n
−
1
G
t
n
G_t^{\lambda}=(1-\lambda)\sum_{n=1}^{\infty}\lambda^{n-1}G_t^{n}
Gtλ=(1−λ)n=1∑∞λn−1Gtn
TD(
λ
\lambda
λ)前向更新式(理论计算):
v
(
s
t
)
=
v
(
s
t
)
+
α
(
G
t
λ
−
V
(
s
t
)
)
(18)
v(s_t)=v(s_t)+\alpha(G_t^{\lambda}-V(s_t))\tag{18}
v(st)=v(st)+α(Gtλ−V(st))(18)
TD(
λ
\lambda
λ)反向更新式(实际计算)–引入效用迹的概念,没有很明白:
δ
t
=
R
t
+
1
+
γ
V
(
s
t
+
1
)
−
V
(
s
t
)
v
(
s
t
)
=
v
(
s
t
)
+
α
δ
t
E
t
(
s
)
\delta_t=R_{t+1}+\gamma V(s_{t+1})-V(s_t)\\ v(s_t)=v(s_t)+\alpha \delta_t E_t(s)
δt=Rt+1+γV(st+1)−V(st)v(st)=v(st)+αδtEt(s)
一个状态的效用: E t ( s ) = γ λ E t − 1 ( s ) + 1 ( s t = s ) E_t(s)=\gamma \lambda E_{t-1}(s)+1(s_t=s) Et(s)=γλEt−1(s)+1(st=s)
5.lecture5 Model Free Control
条件:模型未知(P未知)
估计:该策略价值函数、最优策略价值函数 (基于贪心策略来进行一些改进)
不基于模型的两种策略 | ||
---|---|---|
on policy learning | 基于已有策略,更新价值,改进策略 | sarsa |
off policy learning | 基于先验策略 μ \mu μ,更新价值,改进策略 π \pi π | Q-learning |
5.1 SARSA
给定s --> 依据π产生a --> 环境反馈r,状态转换s’ --> 继续依据π产生a’ --> 计算Q(s’,a’) --> 更新q(s,a)
Q ( s , a ) < − Q ( s , a ) + α ( R + γ Q ( s ′ , a ′ ) − Q ( s , a ) ) Q(s,a)<-Q(s,a)+\alpha (R+\gamma Q(s',a')-Q(s,a)) Q(s,a)<−Q(s,a)+α(R+γQ(s′,a′)−Q(s,a))
5.2 Q-learning
给定s --> 依据 μ \mu μ产生a --> 环境反馈r,状态转换s’ --> 依据π产生a’ --> 计算Q(s’,a’) --> 更新q(s,a)
Q ( s , a ) < − Q ( s , a ) + α ( R + γ Q ( s ′ , a ′ ) − Q ( s , a ) ) Q(s,a)<-Q(s,a)+\alpha (R+\gamma Q(s',a')-Q(s,a)) Q(s,a)<−Q(s,a)+α(R+γQ(s′,a′)−Q(s,a))
μ
=
ϵ
−
g
r
e
e
d
y
\mu=\epsilon - greedy
μ=ϵ−greedy
π
=
g
r
e
e
d
y
\pi = greedy
π=greedy
本质:在状态s下,依据
μ
=
ϵ
−
g
r
e
e
d
y
\mu=\epsilon - greedy
μ=ϵ−greedy策略得到的行为a,可计算Q值,并将其朝着 s’ 状态下具有最大的Q值方向做一定比例的更行新。(因为用的时greedy 策略)
可以使得 ϵ − g r e e d y \epsilon - greedy ϵ−greedy最终变成一个更优策略,但是
6. Value Function Approximation
6.1 DQN-Deep Q learning
用神经网络计算Q值,目标让 Q θ ( s , a ) Q_{\theta}(s,a) Qθ(s,a)和(sars’a’)计算出来的 r + γ max Q ( s ′ , a ′ ) r+\gamma \max Q(s',a') r+γmaxQ(s′,a′)的误差平法和最小,优化参数 θ \theta θ使得Q值计算准确。
DQN 算法要点:
1.依据
ϵ
−
g
r
e
e
d
y
\epsilon-greedy
ϵ−greedy策略产生t时刻的行为
2.将大量的经历数据
(
s
t
,
a
t
,
r
t
+
1
s
t
+
1
)
(s_t,a_t,r_{t+1}s_{t+1})
(st,at,rt+1st+1)存在内存里
3.从经历数据中随机抽取mini-batch
(
s
,
a
,
r
,
a
′
)
(s,a,r,a')
(s,a,r,a′)
4.维护两个神经网络:net1,net2,一个网络固定参数用来产生目标值,另一个用来评估策略。更新参数
L
(
w
)
=
E
s
,
s
,
r
,
s
′
[
(
Q
(
s
,
a
∣
w
)
−
(
r
+
γ
max
a
′
Q
(
s
′
,
a
′
∣
w
−
)
)
)
]
L(w)=\mathbb{E}_{s,s,r,s'}[(Q(s,a|w)-(r+\gamma \max_{a'}Q(s',a'|w^-)))]
L(w)=Es,s,r,s′[(Q(s,a∣w)−(r+γa′maxQ(s′,a′∣w−)))]
其中 w w w在一个mini-batch中更新, w − w^- w−为上一轮更新的参数。
7.lecture7 Policy Gradient
直接将策略参数化为状态和行为的函数, 利用累计奖励最大化来训练策略参数。
重要概念:似然比
∇
θ
π
θ
(
s
,
a
)
=
π
θ
(
s
,
a
)
∇
θ
π
θ
(
s
,
a
)
π
θ
(
s
,
a
)
=
π
θ
(
s
,
a
)
∇
θ
log
π
θ
(
s
,
a
)
\nabla_{\theta}\pi_{\theta}(s,a)=\pi_{\theta}(s,a)\frac{\nabla_{\theta}\pi_{\theta}(s,a)}{\pi_{\theta}(s,a)}=\pi_{\theta}(s,a) \nabla_{\theta}\log\pi_{\theta}(s,a)
∇θπθ(s,a)=πθ(s,a)πθ(s,a)∇θπθ(s,a)=πθ(s,a)∇θlogπθ(s,a)
7.1 Actor and Critics
Actor and Critics 算法出发点:相对准确估计状态价值,来指导策略更新。
1.在A-C算法中用critic来估计行为价值:
Q
w
(
s
,
a
)
≈
Q
π
θ
(
s
,
a
)
Q_w(s,a)\approx Q^{\pi_{\theta}}(s,a)
Qw(s,a)≈Qπθ(s,a)
2.在A-C算法中用actor执行策略 π θ \pi_{\theta} πθ,使得critic估计的行为价值计算的累计回报最大:(对所有的s求期望)
J = E [ Q ( s 0 , a ) ] = ∑ s ∑ a π ( a ∣ s ) Q ( s , a ) J=\mathbb{E}[Q(s_0,a)]=\sum_{s}\sum_{a}\pi(a|s)Q(s,a) J=E[Q(s0,a)]=s∑a∑π(a∣s)Q(s,a)
策略更新梯度:
∇
π
J
=
∑
s
∇
θ
log
π
θ
(
s
,
a
)
Q
w
(
s
,
a
)
\nabla_{\pi}J=\sum_{s}\nabla_{\theta}\log\pi_{\theta}(s,a)Q_w(s,a)
∇πJ=s∑∇θlogπθ(s,a)Qw(s,a)
a2c:advantage 的概念