概述
这很重要,因为它可以在不被告知环境规则的情况下找到最佳行为。
深入探讨
Q-Learning 学习一个称为 Q(s, a) 的函数:在状态 s 下采取行动 a 并随后采取最佳行动的预期长期奖励。代理开始一无所知,尝试行动并观察奖励。每一步之后,它都会将其 Q 值估计推向刚刚收到的奖励加上它期望从下一个状态获得的最佳贴现未来值。至关重要的是,它是“脱离策略”和“无模型”的:它可以在随机探索的同时学习最佳策略,并且它永远不需要世界如何转变的模型。如果对每个状态-动作对进行足够的探索,Q 值可以证明收敛到最优值,并且任何状态中的最佳动作就是具有最高 Q 的动作。
现实世界的实施
Atari 游戏代理(DeepMind 的 DQN)学习直接从屏幕像素玩 Breakout 和 Pong
优化十字路口的交通灯配时,以最大限度地减少车辆总等待时间
机器人通过网格或迷宫导航,机器人学习最短的奖励最大化路径
动态定价和库存决策,代理了解哪些行动可以最大化长期利润
Q-Learning 的未来
当状态太多而无法存储在表中时,经典的表格 Q-Learning 就会陷入困境。主要方向是将其与神经网络相结合,如深度 Q 网络 (DQN),它根据像素等原始输入来近似 Q 值。研究仍在继续通过经验回放、目标网络以及 Double DQN 和分布式 Q-Learning 等变体来稳定这一点,这些变体可以减少高估偏差并代表完整的回报分布而不是单一平均值。
付诸实践
为什么这很重要
- 成本与预算. 多年来,架构决策决定着性能和运营成本。
- 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
- 质量控制. 更好的工程选择可以减少生产中的可靠性事故。
留意
- 优化一项基准测试可以隐藏更广泛的系统弱点。
- 基础设施和维护成本常常被低估。
- 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
后续步骤
- 在实施之前定义延迟、质量和成本目标。
- 在实际负载和数据条件下进行基准测试。
- 仪器监控错误、漂移和用户影响。
- 在扩展之前准备回滚和事件响应路径。
不断探索
常见问题
什么是 Q 学习?
Q-Learning 是一种强化学习算法,通过反复试验逐渐了解每个动作的价值,从而教导智能体哪些动作效果最好。这很重要,因为它可以在不被告知环境规则的情况下找到最佳行为。
Q值Q(s, a)代表什么?
Q(s, a) 估计在状态 s 中采取行动 a 并在此后表现最佳的总折扣未来奖励,而不仅仅是立即奖励。
为什么 Q-Learning 被描述为“偏离策略”?
下一步行动的最大值意味着即使代理探索不同的行为策略,Q-Learning 也能学习贪婪最优策略的价值。
更新规则中,折扣因子gamma控制什么?
Gamma(0 到 1 之间)对未来奖励进行折扣;接近 1 的值使智能体有远见,接近 0 的值使其近视。
Q-Learning 中的时间差 (TD) 误差是多少?
TD误差是新的目标估计(奖励加上最佳贴现未来值)与旧的Q估计之间的差距;此次更新缩小了这一差距。
为什么普通的表格 Q-Learning 难以解决像像素视频游戏这样的大问题?
查找表需要每个状态-动作对一个条目,当状态数量达到数十亿时这是不可行的,这激发了像 DQN 这样的神经网络逼近器。