强化学习-Daviad Silver强化学习课程脉络整理
- 1.lecture1 introduction
- 1.1 强化学习简介
- 1.2 强化学习类别
- 1.3 强化学习的主要问题
- 2.lecture2 Markov Decision Process
- 2.1 MP,MRP,MDP
- 2.2 Bellman Eqution--贝尔曼方程
- 2.3 Bellman Eqution--贝尔曼期望方程
- 2.4 最优策略
- 2.5 最优值函数
- 2.6 Bellman Optimal Equation
- 3 lecture3 Planning by Dynamic Programming
- 3.1 策略迭代估计->策略改进
- 3.2 价值迭代--找最优策略
- 4.lecture4 Model Free Prediction
- 4.1 蒙特卡洛学习--完全采样
- 4.2 时序差分TD(n)--不完全采样
- 4.3 TD(λ\lambdaλ)
- 5.lecture5 Model Free Control
- 5.1 SARSA
- 5.2 Q-learning
- 6. Value Function Approximation
- 6.1 DQN-Deep Q learning
- 7.lecture7 Policy Gradient
- 7.1 Actor and Critics
1.lecture1 introduction
1.1 强化学习简介
强化学习是机器学习的一个分支,没有监督信号判断学习的好坏,只有reward 信号引导学习过程。
强化学习的目标是:学习一个决策策略,使得agent与环境交互所获得的累计奖励最大。
强化学习基本要素 | |
---|---|
Agent | 决策智能体,主要完成在环境中处于某一状态下的动作决策,策略是可以学习的。 |
Reward-RtR_tRt | t时刻的奖励,标量,用于反映agent t时刻动作的优劣(长期奖励的一个衡量) |
Enviroment | 环境,接收Agent的动作,依据物理特性状态转换(转换是不受Agent控制的),并反馈给agent 一个RtR_tRt |
State | 状态信息:环境状态(一般不可用),agent 状态(强化学习算法可以使用的状态) |
老鼠训练的例子:agent状态表示不同,依据统计规律得出的预测也不同补图
环境状态和agent 状态的区别:
Agent 主要成分 | |
---|---|
state | agent 状态-强化学习算法可以使用的状态, |
action | agent的在每一个状态下能够执行的动作(走子,浇水) |
policy | 状态到动作的映射:确定策略a=π(s)a=\pi(s)a=π(s)、不确定策略π(a∣s)=P[A=a∣St=s]\pi(a|s)=P[A=a|S_t=s]π(a∣s)=P[A=a∣St=s] |
value function | 评价当前状态的优劣(对未来奖励的预测),是基于策略的 |
model | 状态转移概率:Ps,s′a=P[St+1∣St=s,At=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]、奖励:Rsa=E[Rt+1∣St=s,At=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γ> ,马尔可夫状态转移图+边权RsR_sRs |
Markov Decision Process | <P,S,A,R,γ\gammaγ>,马尔可夫状态转移图+边权(Rs+a)(R_s+a)(Rs+a) |
状态的马尔可夫性质:某一状态包含了所有相关的历史信息,可以决定未来。(下一时刻的状态完全由本时刻的状态决定)
MRP关键概念 | |
---|---|
S | 状态空间–agent所有状态的集合(s1,s2,s3,....sns_1,s_2,s_3,....\,s_ns1,s2,s3,....sn) |
ps,s′p_{s,s'}ps,s′ | 状态转移矩阵–其中的元素为 ps,s′=p[st+1∣St=s]p_{s,s'}=p[s_{t+1}|S_t=s]ps,s′=p[st+1∣St=s] |
RsR_sRs | 某一状态s在下一个时刻能够获得的奖励的期望值 Rs=E[Rt+1∣St=s]R_s=E[R_{t+1}|S_t=s]Rs=E[Rt+1∣St=s] |
γ\gammaγ | 衰减系数–后续经历状态的奖励对于当前return的呈现衰减影响 |
GtG_tGt | return 收益/回报 --(一条马尔可夫链)从t 时刻开始所有RtR_tRt的衰减总和 |
V(s) | 价值函数–某一状态/动作的长期价值 V(s)=E[Gt∣St=s]V(s)=E[G_t|S_t=s]V(s)=E[Gt∣St=s] ,从s出发的所有链条的GtG_tGt的期望 |
RsR_sRs 确定到达这个状态他就能获得的一个奖励,不管后续去了哪里,那就是下一个状态需要关系的事情了,RsR_sRs一般未知,我们只能收到环境给的RtR_tRt的反馈,类似于k 摇臂赌博机中每个摇臂的期望奖励是RsR_sRs,每次反馈的奖励是RtR_tRt
MDP关键概念 | |
---|---|
S | 状态空间–agent所有状态的集合(s1,s2,s3,....sns_1,s_2,s_3,....\,s_ns1,s2,s3,....sn) |
A | 动作空间–agent所有状态的集合(a1,a2,a3,....ama_1,a_2,a_3,....\,a_ma1,a2,a3,....am) |
ps,s′ap_{s,s'}^aps,s′a | 元素为 ps,s′a=p[st+1∣St=s,At=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] |
RsaR_s^aRsa | Rsa=E[Rt+1∣St=s,At=a]R_s^a=E[R_{t+1}|S_t=s,A_t=a]Rsa=E[Rt+1∣St=s,At=a] |
Rt+1R_{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下最有可能的动作选择
策略相关的概念 | 涉及到策略就是要对动作求期望 |
---|---|
ps,s′πp^{\pi}_{s,s'}ps,s′π | 策略π\piπ下,状态s->s’的状态转移概率: ps,s′π=∑a∈Aπ(a∣s)ps,s′ap^{\pi}_{s,s'}=\sum_{a\in A}\pi(a|s)p_{s,s'}^aps,s′π=∑a∈Aπ(a∣s)ps,s′a |
RsπR_s^{\pi}Rsπ | 策略π\piπ下,状态s 的reward: Rsπ=∑a∈Aπ(a∣s)RsaR^{\pi}_{s}=\sum_{a\in A}\pi(a|s)R^a_sRsπ=∑a∈Aπ(a∣s)Rsa |
Vπ(s)V_{\pi}(s)Vπ(s) | 策略π\piπ下,状态s 的价值: vπ(s)=Eπ[Gt∣St=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π[Gt∣St=s,At=a]q_{\pi}(s,a)=E_\pi[G_t|S_t=s,A_t=a]qπ(s,a)=Eπ[Gt∣St=s,At=a] |
ps,s′πp^{\pi}_{s,s'}ps,s′π:策略π\piπ 下的状态转移概率:状态sss下可选的动作有很多个,各个动作转向s′s's′ 的概率相加。无法直接在马尔可夫图上表示出来吧
Vπ(s)V_{\pi}(s)Vπ(s) 基于策略π\piπ下状态s的策略价值函数,为从状态s出发,能获得回报GtG_tGt的期望(GtG_tGt是通过 策略π\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)−GtV(s)-G_tV(s)−Gt的迭代关系–只涉及到MRP,没有动作空间
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)=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)=Rs+γE[v(St+1)∣St=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)
St+1S_{t+1}St+1下一时刻的状态,依据下一时刻状态分布求其期望:
v(s)=Rs+γ∑s′∈Spss′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+γPV=>V=(I−γP)−1RV=R+γPV=>V=(I−γP)−1R(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[Rt+1+γvπ(St+1)∣St=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[Rt+1+γvπ(St+1)∣St=s,At=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)=Rsa+γ∑s′∈SPss′avπ(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) 通过 动作状态转移Pss′aP^a_{ss'}Pss′a 和下一个时刻的 状态价值v(s’) 计算
2.4 最优策略
策略π\piπ的所有状态价值都大于该状态在其他策略下的价值。策略是一个离散的动作概率集合,调整动作概率选择,就可以达到最优策略。最优策略可能不止一个,所有最优策略具有相同的价值很函数和动作价值函数。
π>=π′ifvπ(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)=1ifa=argmaxa∈Aq∗(s,a)else0(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π下,从状态sss出发可采取的所有行为aaa,行为价值最大值。
v∗(s)=maxπmaxaqπ(s,a)=maxaq∗(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)=Rsa+γ∑s′∈SPss′avπ(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)=Rsa+γ∑s′∈Spss′amaxa′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)=Rsa+γ∑s′∈SPss′avπ(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)=maxaq∗(s,a)v_*(s)=\max_a q_*(s,a)v∗(s)=maxaq∗(s,a)
3.1 策略迭代估计->策略改进
Step1: 策略迭代估计-- 给定策略下迭代更新价值函数,利用(12)式贝尔曼期望方程来更新。
vk+1(s)=∑a∈Aπ(a∣s)[Rsa+γ∑s′∈SPss′avk(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)
其中vk(s′)v_k(s')vk(s′) 为t = k时的状态价值。
Step2: 策略改进–在当前策略下选取使后继状态价值增加的行为–动作选择
3.2 价值迭代–找最优策略
(不需要策略)
通过(22)式贝尔曼最优方程来求解
v∗(s)=maxa∈A(Rsa+γ∑s′∈SPss′av∗(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)采样数据x1,x2,...xn,....x_1,x_2,...x_n,....x1,x2,...xn,....均值的在线更新公式(如下)。作用–用新的采样值xkx_kxk更新均值μk−1\mu_{k-1}μk−1:
μk=1k∑i=1kxk=1k(xk+∑i=1k−1xi)=1k(xk+(k−1)μk−1)=μk−1+1k(xk−μ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(st)=E[Gt∥St=s]V(s_t)=E[G_t\|S_t=s]V(st)=E[Gt∥St=s]
3)GtG_tGt的衰减和定义式子:Gt=Rt+1+γRt+2+γ2Rt+3,...,G_t=R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3,...,}Gt=Rt+1+γRt+2+γ2Rt+3,...,
4)贝尔曼方程递归求解价值函数:V(st)=Rs+γV(st+1)V(s_t)=R_s+\gamma V(s_{t+1})V(st)=Rs+γV(st+1)
4.1 蒙特卡洛学习–完全采样
在给定策略下,从一系列完整的Episode 中估计得到所有状态的价值函数。
(核心:状态价值 使用采样Episode均值估计,而非所有的全Episode期望计算)
(完全说的是Episode是一条完整的链子)
增量式蒙特卡洛更新:
N(st)=N(st)+1v(st)=v(st)+1N(st)(Gt−V(st))(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)
其中,GtG_tGt需要通过一条完整的Episode。
不明白1N(st)\frac{1}{N(s_t)}N(st)1只是用α\alphaα来表示,还是就使用一个固定的α\alphaα
4.2 时序差分TD(n)–不完全采样
在给定策略下,从一系列不完整的Episode 中估计得到所有状态的价值函数。
主要区别:3)式更新式中的GtG_tGt的近似求解:
Gt=Rt+1+γRt+2+γ2Rt+3,...,≈Gt(n)=Rt+1+...+γnV(st+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(st+1)V(s_{t+1})V(st+1)下一状态st+1s_{t+1}st+1价值的非精确求解。
增量式时序差分更新:
N(st)=N(st)+1v(st)=v(st)+1N(st)(Rt+1+γV(st+1)−V(st))(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)
Rt+1+γV(st+1)R_{t+1}+\gamma V(s_{t+1})Rt+1+γV(st+1)称为TD target, Rt+1+γV(st+1)−V(st)R_{t+1}+\gamma V(s_{t+1})-V(s_t)Rt+1+γV(st+1)−V(st)称为TD error。
依据GtG_tGt中Rt+iR_{t+i}Rt+i的计算步长,TD算法可以分为TD(n)算法,TD(n)算法表示n+1步return 计算。
4.3 TD(λ\lambdaλ)
结合蒙特卡洛更新和时序差分更新的优点,融合不同的n步return。
Gtλ=(1−λ)∑n=1∞λn−1GtnG_t^{\lambda}=(1-\lambda)\sum_{n=1}^{\infty}\lambda^{n-1}G_t^{n}Gtλ=(1−λ)n=1∑∞λn−1Gtn
TD(λ\lambdaλ)前向更新式(理论计算):
v(st)=v(st)+α(Gtλ−V(st))(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=Rt+1+γV(st+1)−V(st)v(st)=v(st)+αδtEt(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)
一个状态的效用:Et(s)=γλEt−1(s)+1(st=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))
μ=ϵ−greedy\mu=\epsilon - greedyμ=ϵ−greedy
π=greedy\pi = greedyπ=greedy
本质:在状态s下,依据μ=ϵ−greedy\mu=\epsilon - greedyμ=ϵ−greedy策略得到的行为a,可计算Q值,并将其朝着 s’ 状态下具有最大的Q值方向做一定比例的更行新。(因为用的时greedy 策略)
可以使得ϵ−greedy\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+γmaxQ(s′,a′)r+\gamma \max Q(s',a')r+γmaxQ(s′,a′)的误差平法和最小,优化参数θ\thetaθ使得Q值计算准确。
DQN 算法要点:
1.依据ϵ−greedy\epsilon-greedyϵ−greedy策略产生t时刻的行为
2.将大量的经历数据(st,at,rt+1st+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)=Es,s,r,s′[(Q(s,a∣w)−(r+γmaxa′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−)))]
其中www在一个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来估计行为价值:
Qw(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(s0,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)Qw(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 的概念