强化学习是机器学习的一个分支,没有监督信号判断学习的好坏,只有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
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 | |
---|---|
学习 | 环境未知,agent |
规划 |
主要问题2 | |
---|---|
探索 | |
利用 |
主要问题3 | |
---|---|
预测 | 给定MDP+策略 求状态价值 |
控制 | 给定MDP,求最优价值函数V |
三大过程 | |
---|---|
Markov Process | ,马尔可夫状态转移图 |
Markov Reward Process | γ \gamma γ> ,马尔可夫状态转移图+边权 R s R_s Rs |
Markov Decision Process | γ \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] |
π \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)。
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)
在策略 π \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’) 计算
策略 π \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 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)
状态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)
最优状态价值 :一个状态的最优价值= 最优策略 π \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)
两者之间的迭代关系
已知:模型(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)
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′) 为上一轮迭代中s所有可能的下一状态s’的价值。
Step2: 策略改进–在当前策略下选取使后继状态价值增加的行为–动作选择
(不需要策略)
通过(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 的过程在进行动作选择
全部是迭代计算。
条件:模型未知(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)
在给定策略下,从一系列完整的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 α
在给定策略下,从一系列不完整的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 计算。
结合蒙特卡洛更新和时序差分更新的优点,融合不同的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)
条件:模型未知(P未知)
估计:该策略价值函数、最优策略价值函数 (基于贪心策略来进行一些改进)
不基于模型的两种策略 | ||
---|---|---|
on policy learning | 基于已有策略,更新价值,改进策略 | sarsa |
off policy learning | 基于先验策略 μ \mu μ,更新价值,改进策略 π \pi π | Q-learning |
给定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))
给定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最终变成一个更优策略,但是
用神经网络计算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−为上一轮更新的参数。
直接将策略参数化为状态和行为的函数, 利用累计奖励最大化来训练策略参数。
重要概念:似然比
∇ θ π θ ( 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)
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 的概念