深度强化学习(DRL)算法 附录 3 —— 蒙特卡洛方法(MC)和时序差分(TD)

状态转移概率一般是不知道的,所以我们需要 model-free 的方法,如 MC 和 TD

蒙特卡洛方法(MC)

ε \varepsilon ε-贪心策略:

贪心动作选择概率:1 - ε + ε ∣ A ∣ \varepsilon + \frac{\varepsilon}{\left| A\right|} ε+Aε
非贪心动作选择概率: ε ∣ A ∣ \frac{\varepsilon}{\left| A \right|} Aε
这就是 ε \varepsilon ε-贪心策略

策略评估

s0, a0, r1, s1, a1, r2, s2, a2, … rT, sT(收集很多长度为 T 的 episode,使用任意 ε \varepsilon ε
-软性策略产生)
构造 hash-map
s0 -> G1, G2, …
s1 -> G1’, G2’, …
s2-> G1’‘, G2’', …
每个 key 下的 G 取平均(大数定理),就是策略评估。
需要注意的是,Gt = r + γ \gamma γ
Gt+1,这种递归表示,从后往前计算更快。
但是要满足无穷多 episode 和 试探性出发假设的条件,才能准确策略评估,但这样无穷多 episode 效率太低了,我们可以采用类似价值迭代和异步价值迭代的方法避免无穷多 episode。

策略改进

使用 ε \varepsilon ε-贪心策略,同样满足策略改进定理。且对 $\forall s \in S, a \in A, $ 有 $ \pi(a|s) > 0$ ,是一个软性策略,避免试探性出发假设。

同轨策略 MC 控制

行动策略(用来采样) = 目标策略(用来优化,我们想要的最终策略),所以必须都是软性策略。
控制指的是 PE + PI 两步过程。

离轨策略 MC 控制

行动策略 ≠ \neq =目标策略,所以只要保证行动策略是软性策略,目标策略可以是贪心策略。
实现的方法:重要性采样,因为重要性采样的原因,目标策略和行动策略生成的 episode 必须保证相同,如果非贪心的行为比较普遍,则会降低学习速度。

增量式更新

这个很好理解,我们不必须等很多 episode 采样完之后再进行平均(同轨策略不存在这个问题,因为每次采样完* 1/n 就可以计算平均)。v’ 代表采样一次得到 g 之后的新平均值

v ′ ← ( n − 1 ) ∗ v + g n = v + 1 n ∗ ( g − v ) v' \leftarrow \frac{(n-1)*v + g}{n} = v + \frac{1}{n}*(g-v) vn(n1)v+g=v+n1(gv)

同轨策略不存在 g 权重不同的情况,把离轨策略的权重加上就可以得到离轨策略增量式更新:
c ← c + w c \leftarrow c+w cc+w
v ‘ ← v + w c ( g − v ) v‘ \leftarrow v + \frac{w}{c}(g-v) vv+cw(gv)(1)

常量 α \alpha α 更新

从平均的角度,我们得到了增量式更新的表达试,我们从另一个角度来 (1)式:
v 是我们想要得到的期望回报,g-v 是 error, w c \frac{w}{c} cw 替换成 α \alpha α ,如果 error 大于 0,我们应该增加 v ,小于 0 我们应该减小 v ,那么多次后,就可以接近我们的的期望回报。
v ← v + α ( g − v ) = ( 1 − α ) v + α g v \leftarrow v + \alpha(g-v) = (1-\alpha)v+ \alpha g vv+α(gv)=1αv+αg

我看可以考到 α \alpha α = 0,我们完全不会更新 v ,只考虑现在, α = 1 \alpha = 1 α=1 ,我们只考虑未来, α \alpha α 保持不变就是所谓的常量 α \alpha α 更新。
补充:虽然 v 可以通过 pi 和 q 求出来,但是实际上 PE 和 PI 是分开的,所以一般实践上我们更关心的是 q,后面介绍 TD 算法的时候,就把 v 换成 q 了。(DRL 的神奇之处,神经网络可以直接求 v,所以 PPO 我们看到了新的定义,advantage = q - v)。

时序差分(TD)

根据常量 α \alpha α更新,用 bootstrap 的思想可以很简单的推出时序差分的常用算法

Sarsa(同轨)

  • 策略改进(把策略改进提前实现起来更简单,也可以像 MC 那样使用任意 ε \varepsilon ε-策略采样)

π ← ε \pi \leftarrow \varepsilon πε-greedy(Q) (目标策略)

  • 策略评估

π ← ε \pi \leftarrow \varepsilon πε-greedy(Q) (行动策略)

q ( s t + 1 , a t + 1 ) ← q ( s t , a t ) + α ( r + γ q ( s t + 1 , a t + 1 ) ⏟ t d − t a r g e t − q ( s t , a t ) ) ⏟ t d − e r r o r q(s_{t+1},a_{t+1}) \leftarrow q(s_{t},a_{t}) + \alpha \underbrace{\underbrace{(r + \gamma q(s_{t+1},a_{t+1})}_{td-target} - q(s_{t},a_{t}))}_{td-error} q(st+1,at+1)q(st,at)+αtderror tdtarget (r+γq(st+1,at+1)q(st,at))
(小写表示一次采样)所以 Sarsa 的核心就是每次采样变成了 (st, at, rt+1, st+1, at+1),这也是算法名字的来源。

Q-learning(离轨)

  • 策略改进(把策略改进提前实现起来更简单,也可以像 MC 那样使用任意 ε \varepsilon ε-策略采样)
    贪心策略 (目标策略)
  • 策略评估
    π ← ε \pi \leftarrow \varepsilon πε-greedy(Q) (行动策略)

q ( s t + 1 , a t + 1 ) ← q ( s t , a t ) + α ( r + γ m a x a q ( s t + 1 , a ) ⏟ t d − t a r g e t − q ( s t , a t ) ) ⏟ t d − e r r o r q(s_{t+1},a_{t+1}) \leftarrow q(s_{t},a_{t}) + \alpha \underbrace{\underbrace{(r + \gamma max_{a}q(s_{t+1},a)}_{td-target} - q(s_{t},a_{t}))}_{td-error} q(st+1,at+1)q(st,at)+αtderror tdtarget (r+γmaxaq(st+1,a)q(st,at))
(小写表示一次采样)
为什么这里没有用重要性采样,因为目标策略的序列和行动策略没关系,不像 MC off-policy 需要用行动策略的采样来评估目标策略的采样。(理解这点很重要)

期望 Sarsa(同轨)

期望 Sarsa 和 Sarsa 类似,只不过取了加权平均

  • 策略改进(把策略改进提前实现起来更简单,也可以像 MC 那样使用任意 ε \varepsilon ε-策略采样)
    π ← ε \pi \leftarrow \varepsilon πε-greedy(Q) (目标策略)
  • 策略评估
    π ← ε \pi \leftarrow \varepsilon πε-greedy(Q) (行动策略)
    q ( s t + 1 , a t + 1 ) ← q ( s t , a t ) + α ( r + γ ∑ a π ( a ∣ s t + 1 ) q ( s t + 1 , a ) ⏟ t d − t a r g e t − q ( s t , a t ) ) ⏟ t d − e r r o r q(s_{t+1},a_{t+1}) \leftarrow q(s_{t},a_{t}) + \alpha \underbrace{\underbrace{(r + \gamma \sum_{a}^{}{\pi(a|s_{t+1})}q(s_{t+1},a)}_{td-target} - q(s_{t},a_{t}))}_{td-error} q(st+1,at+1)q(st,at)+αtderror tdtarget (r+γaπ(ast+1)q(st+1,a)q(st,at))
    (小写表示一次采样)

参考

  1. https://www.bilibili.com/medialist/play/97068901?from=space&business=space_series&business_id=594040&desc=1&spm_id_from=333.999.0.0
  2. http://incompleteideas.net/book/RLbook2020.pdf
  3. https://nbviewer.org/github/MathFoundationRL/Book-Mathmatical-Foundation-of-Reinforcement-Learning/blob/main/Lecture%20slides/L7-Temporal-difference%20learning.pdf
  • 16
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿姆姆姆姆姆姆姆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值