【强化学习-读书笔记】表格型问题的 Model-Free 方法

参考 
Reinforcement Learning, Second Edition  
An Introduction 
By Richard S. Sutton and Andrew G. Barto

无模型方法

在前面的文章中,我们介绍的是有模型方法(Model-Based) 。在强化学习中,"Model"可以理解为算法对环境的一种建模与抽象。这个模型用于捕捉智能体与环境之间的交互关系。建模的目的是为了帮助智能体更好地理解环境的动态特性,从而能够更有效地制定策略。在 Model-Based 方法中,智能体使用这个模型来规划未来的行动,而在 无模型方法(Model-Free) 方法中,智能体直接通过与环境的交互来学习策略,而不依赖于显式的环境模型。

无模型方法仅仅需要从环境中收集到 S , A , R , . . . S,A,R,... S,A,R,... 序列,作为算法的经验,持续更新。

根据每一次采样序列的长短,无模型方法分为 MC 和 TD 两大类


MC 蒙特卡洛方法

从一个状态 s s s出发,重复采样多条轨迹,每一条状态都采样直到终止状态,把轨迹的平均折扣回报作为状态价值的估计
V π ( s ) = E [ G t ∣ s ] ≈ 1 N ∑ i = 1 N G t i V_\pi (s)=\mathbb{E}[G_t|s]\approx \frac{1}{N}\sum_{i=1}^N G_{t}^i Vπ(s)=E[Gt∣s]≈N1i=1∑NGti

MC 的增量更新

V π ( s ) ← V π ( s ) + 1 N ( G t − V π ( s ) ) V_\pi(s) \leftarrow V_\pi(s)+\frac{1}{N}(G_t-V_\pi(s)) Vπ(s)←Vπ(s)+N1(Gt−Vπ(s))

对于非平稳问题,增量更新为(红色:TD target):

V π ( s ) ← V π ( s ) + α ( G t − V π ( s ) ) V_\pi(s) \leftarrow V_\pi(s)+\alpha(\red{G_t}-V_\pi(s)) Vπ(s)←Vπ(s)+α(Gt−Vπ(s))

缺点:

  1. 只适用于有限幕问题
  2. 更新慢,需要采样整条序列,然后才进行更新。

TD 时序差分方法

TD 在 MC 上做了修改,不需要采样整条序列,而是只采样一步(贝尔曼方程 ),用 V V V 对后面所有的奖励进行估计(自举法) ,然后立刻进行更新(红色:TD target):
V π ( s ) ← V π ( s ) + α ( R t + 1 + γ V π ( S t + 1 ) − V π ( s ) ) V_\pi(s) \leftarrow V_\pi(s)+\alpha(\red{R_{t+1}+\gamma V_\pi(S_{t+1})} -V_\pi(s)) Vπ(s)←Vπ(s)+α(Rt+1+γVπ(St+1)−Vπ(s))

一般来说,TD方法比MC方法收敛更快。

MC vs TD

  1. TD 可以在线学习,效率高一些,采样和学习可以同时进行,而MC不行,要一直模拟到游戏结束
  2. TD 方差大,因为没训练好的时候 V V V本身就估计不准,所以 V t + 1 V_{t+1} Vt+1引入了额外的误差

强化学习中的重要性加权

例子引入:现在给定的轨迹是另一个策略 μ \mu μ (顶级选手的下法 μ ( a ∣ s ) \mu(a|s) μ(a∣s))采样出来的,如果用 μ \mu μ 的轨迹计算得到的 G t G_t Gt (经验)直接用来进行另一个策略 π \pi π (入门选手 π ( a ∣ s ) \pi(a|s) π(a∣s))的学习,那么就可能不合适。

从算法的角度说,在于 TD target G t G_{t} Gt 对于 μ \mu μ 的评价是不准确的,我们需要对 G t G_t Gt进行修正。

改进的方法是使用重要性加权。

- MC 的重要性加权

朴素的想法:对于那些 π \pi π 也能做出类似的 ( a ∣ s ) (a|s) (a∣s) 动作,给予这些动作对应的轨迹的回报 G t G_t Gt 更大的权重,反之给予小的权重。

于是 MC 的重要性加权如下:
G t π / μ = π ( a t ∣ s t ) μ ( a t ∣ s t ) π ( a t + 1 ∣ s t + 1 ) μ ( a t + 1 ∣ s t + 1 ) . . . π ( a T ∣ s T ) μ ( a T ∣ s T ) G t G_{t}^{\pi/\mu}=\frac{\pi(a_t|s_t)}{\mu(a_t|s_t)}\frac{\pi(a_{t+1}|s_{t+1})}{\mu(a_{t+1}|s_{t+1})}...\frac{\pi(a_{T}|s_{T})}{\mu(a_{T}|s_{T})}G_t Gtπ/μ=μ(at∣st)π(at∣st)μ(at+1∣st+1)π(at+1∣st+1)...μ(aT∣sT)π(aT∣sT)Gt

用加权之后的总折扣 G t π / μ G_{t}^{\pi/\mu} Gtπ/μ更新值函数
V π ( s ) ← V π ( s ) + α ( G t π / μ − V π ( s ) ) V_\pi(s) \leftarrow V_\pi(s)+\alpha(G_{t}^{\pi/\mu}-V_\pi(s)) Vπ(s)←Vπ(s)+α(Gtπ/μ−Vπ(s))

问题在于:

  1. 无法在 μ \mu μ 为0时使用
  2. 由于连续多个商相乘,显著增大方差。

改进:- TD 的重要性加权

TD 由于只用一步进行更新,所以相应的重要性采样只有一个商,可以降低方差。

V π ( s ) ← V π ( s ) + α ( π ( a t ∣ s t ) μ ( a t ∣ s t ) ( r t + 1 + γ V ( S t + 1 ) ) − V π ( s ) ) V_\pi(s) \leftarrow V_\pi(s)+\alpha \left(\blue{\frac{\pi(a_t|s_t)}{\mu(a_t|s_t)}}\red{(r_{t+1}+\gamma V(S_{t+1}))}-V_\pi(s) \right) Vπ(s)←Vπ(s)+α(μ(at∣st)π(at∣st)(rt+1+γV(St+1))−Vπ(s))


TD 方法: SARSA

两个步骤:

  1. ϵ \epsilon ϵ-贪心(或者 Decaying ϵ − \epsilon- ϵ−贪心,更加有效)地选择 A A A,从而得到 S , A , R ′ , S ′ , A ′ S ,A ,R' ,S', A' S,A,R′,S′,A′五元组,
  2. 利用五元组更新价值函数,TD target = R + γ Q ( S ′ , A ′ ) =R+\gamma Q(S',A') =R+γQ(S′,A′)

Q ( S , A ) ← Q ( S , A ) + α [ R + γ Q ( S ′ , A ′ ) − Q ( S , A ) ] Q(S,A)\leftarrow Q(S,A) + \alpha [\red{R+ \gamma Q(S',A')} - Q(S,A)] Q(S,A)←Q(S,A)+α[R+γQ(S′,A′)−Q(S,A)]

SARSA 是一种 On-policy同轨策略 )方法,因为用于计算 TD target 的值函数和用于动作选择的值函数是同一个。

特点:

  1. 同轨策略
  2. 运算量小,轻量化,在线
  3. 偏保守,考虑了 ϵ \epsilon ϵ 的影响(悬崖例子)

TD 方法:Q-learning

和 SARSA 的唯一区别:

将给 TD target 加了一个 max,是用最大估计价值来更新值函数。
Q ( S , A ) ← Q ( S , A ) + α [ R + γ max ⁡ a Q ( S ′ , a ) − Q ( S , A ) ] Q(S,A)\leftarrow Q(S,A) + \alpha [\red{R+ \gamma \max_a Q(S',a)} - Q(S,A)] Q(S,A)←Q(S,A)+α[R+γamaxQ(S′,a)−Q(S,A)]

  1. 异轨策略Off-policy
  2. 运算量大,因为要比较每一个 a a a 的价值
  3. 偏激进,没有考虑 ϵ \epsilon ϵ 的影响(悬崖例子)
  4. 过估计 的问题,由于 max ⁡ \max max 操作,会让估计值偏大,导致算法过于自信。

SARSA 改进: 期望 SARSA

由于 SARSA 每一次只用 S ′ , A ′ S',A' S′,A′作为下一个状态的估计,会导致方差较大, 期望 SARSA 引入后继所有状态价值的期望,降低了方差。
Q ( S , A ) ← Q ( S , A ) + α [ R + γ ∑ a π ( a ∣ S ′ ) Q ( S ′ , a ) − Q ( S , A ) ] Q(S,A)\leftarrow Q(S,A) + \alpha [\red{R+ \gamma \sum_{a} \pi(a|S')Q(S',a)} - Q(S,A)] Q(S,A)←Q(S,A)+α[R+γa∑π(a∣S′)Q(S′,a)−Q(S,A)]

期望 SARSA 既可以看作 SARSA 的期望版本,也可以看作将 Q-learning 的 max 改为 mean 的版本。

期望 Sarsa 在计算上比 Sarsa 更加复杂。但作为回报,它消除了因为随机选择产生的方差。 在相同数量的经验下,我们可能会预想它的表现能略好于 Sarsa, 期望 Sarsa也确实表现更好。

除了增加少许的计算量之。期望 Sarsa 应该完全优于这两种更知名的时序差分控制算法

最大化偏差与双学习

Q-learning 存在最大化偏差的问题,max 的操作会让算法过高估计值函数。
书中的例子:

走左边在期望意义上是更差的,但是由于左边的奖励是由 N ( − 0.1 , 1 ) \mathcal{N}(-0.1,1) N(−0.1,1) 产生的,在刚开始的时候算法的 Q ( s , a ) Q(s,a) Q(s,a) 大概率有正数,因此 max 之后会得到一个正数,这会驱使算法在刚开始的时候往左边走。当估计次数增多之后,左边各个状态都收敛到 -0.1 的均值奖励,从而 max Q 必然小于0,算法开始回头,往期望恒为 0 的右边走。

双 Q 学习

这里实际上是非深度版本的Double Q-learning,因为没有buffer,所以是 Q 1 , Q 2 Q_1,Q_2 Q1,Q2完全对等的地位,用交替更新的方法打破对称性 。在实际选择动作的时候用 Q 1 + Q 2 Q_1+Q_2 Q1+Q2

在交替更新的时候,都用需要更新的那个 Q Q Q 进行动作选择,然后另一个 Q ′ Q' Q′ 进行动作估计

类似于 Deep Double Q-learning ,快 Q θ Q_{\theta} Qθ 用来选动作,慢 Q θ − Q_{\theta -} Qθ− 用来进行价值估计)

相关推荐
网络研究院37 分钟前
如何安全地大规模部署 GenAI 应用程序
网络·人工智能·安全·ai·部署·观点
凭栏落花侧41 分钟前
决策树:简单易懂的预测模型
人工智能·算法·决策树·机器学习·信息可视化·数据挖掘·数据分析
xiandong204 小时前
240929-CGAN条件生成对抗网络
图像处理·人工智能·深度学习·神经网络·生成对抗网络·计算机视觉
innutritious5 小时前
车辆重识别(2020NIPS去噪扩散概率模型)论文阅读2024/9/27
人工智能·深度学习·计算机视觉
橙子小哥的代码世界5 小时前
【深度学习】05-RNN循环神经网络-02- RNN循环神经网络的发展历史与演化趋势/LSTM/GRU/Transformer
人工智能·pytorch·rnn·深度学习·神经网络·lstm·transformer
985小水博一枚呀7 小时前
【深度学习基础模型】神经图灵机(Neural Turing Machines, NTM)详细理解并附实现代码。
人工智能·python·rnn·深度学习·lstm·ntm
SEU-WYL8 小时前
基于深度学习的任务序列中的快速适应
人工智能·深度学习
OCR_wintone4218 小时前
中安未来 OCR—— 开启高效驾驶证识别新时代
人工智能·汽车·ocr
matlabgoodboy8 小时前
“图像识别技术:重塑生活与工作的未来”
大数据·人工智能·生活
最近好楠啊8 小时前
Pytorch实现RNN实验
人工智能·pytorch·rnn