Hugging Face 对 Q 学习的介绍

Q 学习是一种离策略、基于价值的强化学习(RL)方法,使用时序差分(TD)方法来训练动作价值函数。它通过迭代更新 Q 表,使智能体能够学习环境的最优策略,Q 表记录了在特定状态下执行特定动作的质量。

理解 Q 函数和 Q 表

Q 函数是一种动作价值函数,用于确定处于特定状态并采取特定动作的价值。"Q" 代表 "Quality"(质量)。

在内部,Q 函数依赖于 Q 表,这是一种矩阵,其中每个单元格对应一个状态-动作对的价值。智能体将此表用作速查表:给定状态和动作时,Q 函数在 Q 表中查找并输出相应的 Q 值。

训练过程如下:

  1. 初始化:Q 表通常以零进行初始化,这意味着智能体对环境一无所知。
  2. 探索:当智能体与环境交互时,它会用更好的状态-动作价值近似来更新 Q 表。
  3. 优化:一旦 Q 表被优化,智能体就拥有了最优策略,因为它知道每个可能状态下的最佳动作。

Q学习算法

Q 学习遵循结构化的过程,在每一步更新其动作价值函数,而不是等到一个回合结束后才更新。

动作选择:ε-贪婪策略

为了在探索与利用之间取得平衡,Q 学习采用 ε-贪婪策略

  • 探索:以概率 $\epsilon$,智能体选择随机动作,以发现新的状态-动作对。
  • 利用:以概率 $1 - \epsilon$,智能体从 Q 表中选择具有最高状态-动作价值的动作。

随着训练的进行,$\epsilon$ 的值会逐步降低(衰减),使智能体的行为从随机探索转向对已学习知识的利用。

更新机制

在执行动作 $A_t$ 并收到奖励 $R_{t+1}$ 与下一个状态 $S_{t+1}$ 后,智能体使用 TD 目标来更新 $Q(S_t, A_t)$ 的值。TD 目标由即时奖励加上下一个状态中最佳可能状态-动作对的折扣价值(引导)组成。

离策略 vs. 在策略学习

Q 学习被归类为 离策略 算法,因为它在行为和更新时使用不同的策略:

  • 行为策略:使用 ε-贪婪策略来选择智能体在环境中实际执行的动作。
  • 更新策略:使用贪婪策略(始终选择价值最高的动作)来计算 TD 目标并更新 Q 值。

相反,在策略 算法(如 Sarsa)在行为和更新时使用相同的策略(例如 ε-贪婪)。

实际应用与示例

为了演示 Q 学习,Hugging Face 使用了一个迷宫示例,老鼠必须在避开毒药的同时到达奶酪。智能体的学习由奖励函数驱动:

  • +10:到达大块奶酪(目标)。
  • +1:到达小块奶酪。
  • 0:移动到没有奶酪的状态。
  • -10:触碰毒药(终止状态/死亡)。

通过迭代的随机动作步骤(由于初始 $\epsilon$ 较高)并根据奖励更新 Q 表,智能体最终学会了最优路径(例如,右、右、下)。

训练环境

为了动手实现,指南建议使用两个主要环境:

  1. Frozen Lake v1:一个非滑溜的版本,智能体必须从起始状态 (S) 导航到目标状态 (G),同时避免洞 (H)。
  2. Autonomous Taxi:一个智能体必须学习在城市中导航,将乘客从点 A 运送到点 B。

Sources