【强化学习】个人总结05——不基于模型的控制

文章目录

前言

上一章主要讲了不基于模型的预测,也就是求解在给定策略下的状态价值函数或行为价值函数。而本章主要讲了在不基于模型的条件下如何通过 agent 的学习来优化价值函数,同时改善自身行为的策略以最大化收获的过程,这一过程也叫不基于模型的控制 (Model-free Control)。

1. 行为价值函数的重要性

基本思想:在不基于模型的强化学习问题中,相比于计算最大收获,确定状态行为对的价值要容易很多。

2. ϵ−贪婪策略 (ϵ−greedy policy)

基本思想:保证个体能够做到持续的探索。具体来讲,通过设置一个较小的 ϵ 值,使用 1−ϵ 的概率贪婪地选择目前认为是最大行为价值的行为,而用 ϵ 的概率随机地从所有 m 个可选行为中选择行为。这是一种不完全的贪婪策略,而在动态规划那章提及的是完全的贪婪策略,其产生问题的根源是无法保证持续地探索。

3. 现时策略蒙特卡罗控制 (On-policy MC Control)

基本思想:通过 ϵ-贪婪策略采样一个或多个完整的状态序列,然后平均计算出某一状态行为对的价值,并持续进行策略评估和改善。通常可以在仅得到一个完整状态序列后就进行一次策略迭代以加速迭代过程。

由于现时策略蒙特卡罗控制一直在进行探索,并没有一个终止条件,因此必须关注这两个方面:不能放弃任何更好信息和状态;随着策略的改善,最终希望能够终止于某一个最优策略。
由此引入了另一个理论概念:GLIE (greedy in the Limit with Infinite Exploration)。这一概念包含两层含义:所有的状态行为对会被无限次探索;随着采样趋向无穷多,策略收敛至一个贪婪策略。

定理:GLIE 蒙特卡洛控制能收敛至最优的状态行为价值函数。
条件:如果在使用 ϵ-贪婪策略时,能令 ϵ 随采样次数的无限增加而趋向于 0 就符合 GLIE。

4. 现时策略时序差分控制 (On-policy TD Control)

4.1 Sarsa 算法

基本思想:该算法每次更新一个状态行为对 (St, At) 的 Q 函数时,需要知道前一步的状态,前一步的动作、奖励、当前状态、将要执行的动作,也就是 (St, At, Rt+1, St+1, At+1) 这五个值,因此被称为 Sarsa 算法。agent 每进行一次循环,都会用 (St, At, Rt+1, St+1, At+1) 对于前一步的 Q 函数进行一次更新。

【强化学习】个人总结05——不基于模型的控制

4.2 Sarsa(λ) 算法

基本思想:Sarsa 属于单步更新法(每执行一个动作就会更新一次价值和策略),如果不进行单步更新,而是采取 n 步更新或者回合更新,即在执行 n 步之后再更新价值和策略,这样就得到了 n 步 Sarsa (n-step Sarsa)。如 2-step Sarsa,就是执行两步后再更新 Q 值。

【强化学习】个人总结05——不基于模型的控制

5. 借鉴策略 Q 学习算法 (Off-policy TD Control: Q-learning)

基本思想:off-policy 在学习的过程中,有两种不同的策略:
行为策略 (behavior policy):指导 agent 产生行为来和环境进行实际交互的策略,也就是探索环境的策略,一般用 µ 来表示。
目标策略 (target policy):评价状态或行为价值的策略,或者待优化的策略,也就是需要去学习的策略,一般用 π 来表示。

行为策略 µ 可以大胆地去探索到所有可能的轨迹,并采集轨迹和数据,然后把采集到的这些数据喂给目标策略 π 学习。行为策略 µ 像是一个战士,可以在环境里面探索所有的动作、轨迹和经验,然后把这些经验交给目标策略去学习。而目标策略 π 就像是在后方指挥战术的一个军师,可以根据自己的经验来学习最优的策略,不需要和环境交互。

【强化学习】个人总结05——不基于模型的控制

Q-learning 就是基于 TD 的 off-policy 学习,其行为策略 µ 是基于行为价值函数 Q(s, a) 的 ϵ-贪婪策略,目标策略 π 则是基于 Q(s, a) 的完全贪婪策略。Q 学习的任务是使用 TD 方法在目标策略 π(a|s) 的基础上更新行为价值,进而优化行为策略 µ(a|s),目标是得到最优价值 Q(s,a)。

6. 对比 Sarsa 与 Q-learning

Sarsa 和 Q-learning 都是基于时序差分的学习方法,但 Sarsa 是一个典型的 on-policy 策略,只用一个策略 π,不仅使用 π 学习,还使用 π 与环境交互产生经验。而 Q-learning 是一个典型的 off-policy 的策略,它有目标策略 π 和行为策略 µ 这两种策略并将二者分离,由此可以大胆地用 µ 探索得到的经验轨迹来优化目标策略 π,从而更有可能探索到最优的策略。

如果 Sarsa 的策略采用 ϵ − 贪婪策略的话,它就需要兼顾探索,而为了兼顾探索和利用,训练的时候会显得有点胆小。但是 Q-learning 的行为策略可以采用 ϵ − 贪婪策略,目标策略采用完全贪婪策略,直接根据行为策略采集到的数据来采用最优策略,所以 Q-learning 不需要兼顾探索。

比如在悬崖问题中,最优路线是贴着悬崖上方行走,Q 学习可以较快地学习到这个最优策略,但是 Sarsa 学到的是与悬崖保持一定的距离安全路线,需要经历更多的训练次数才能学到这个最优策略。由此我们可以看出 Q-learning 是一个非常激进的算法,希望每一步都获得最大的利益,而 Sarsa 就相对非常保守,会选择一条相对安全的迭代路线。

【强化学习】个人总结05——不基于模型的控制

总结

在不基于模型的控制 (Model-free Control) 这一章节中,重点在于明晰 Sarsa 与 Q-learning 之间的异同点,还有一些其他重要概念需要理解。由于强化学习的概念比较多,我在后面会引入思维导图的学习方式,以便我能清晰地掌握好 RL 的各个概念。

上一篇:Redis双写一致性与缓存更新策略


下一篇:内容安全策略