Hugging Face 对 Q 学习的介绍
Q 学习是一种离策略、基于价值的强化学习(RL)方法,使用时序差分(TD)方法来训练动作价值函数。它通过迭代更新 Q 表,使智能体能够学习环境的最优策略,Q 表记录了在特定状态下执行特定动作的质量。
理解 Q 函数和 Q 表
Q 函数是一种动作价值函数,用于确定处于特定状态并采取特定动作的价值。"Q" 代表 "Quality"(质量)。
在内部,Q 函数依赖于 Q 表,这是一种矩阵,其中每个单元格对应一个状态-动作对的价值。智能体将此表用作速查表:给定状态和动作时,Q 函数在 Q 表中查找并输出相应的 Q 值。
训练过程如下:
- 初始化:Q 表通常以零进行初始化,这意味着智能体对环境一无所知。
- 探索:当智能体与环境交互时,它会用更好的状态-动作价值近似来更新 Q 表。
- 优化:一旦 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 表,智能体最终学会了最优路径(例如,右、右、下)。
训练环境
为了动手实现,指南建议使用两个主要环境:
- Frozen Lake v1:一个非滑溜的版本,智能体必须从起始状态 (S) 导航到目标状态 (G),同时避免洞 (H)。
- Autonomous Taxi:一个智能体必须学习在城市中导航,将乘客从点 A 运送到点 B。