本文档概述了 ML-For-Beginners 存储库中的强化学习 (RL) 概念和实现,特别关注 Q-Learning 和 OpenAI Gym 环境。有关监督学习等其他机器学习范例的信息,请参阅核心机器学习概念或监督学习。
强化学习代表了与监督学习和无监督学习并列的三大基本机器学习范式之一。RL 的核心是决策制定——使智能体能够通过与环境的互动来学习以达成目标。与需要标记数据的监督学习不同,RL 通过试错来学习。
在 RL 范式中,智能体通过在环境中采取行动来学习做出决策,以最大化累积奖励。这种方法已成功应用于从游戏到机器人技术的各种问题。
图示:强化学习的核心组件和信息流
来源:8-Reinforcement/README.md22-44 8-Reinforcement/1-QLearning/README.md6-8
RL 的关键组成部分包括
在存储库中,强化学习通过“彼得与狼”(Peter and the Wolf)场景进行演示,该场景灵感来自俄罗斯作曲家谢尔盖·普罗科菲耶夫的音乐童话。“彼得”需要探索周围环境,寻找苹果,并避开狼。
图示:强化学习循环
来源:8-Reinforcement/1-QLearning/README.md28-35 8-Reinforcement/README.md23-44
Q-Learning 是一种无模型强化学习算法,用于学习在特定状态下采取某个行动的价值。它用于为任何给定的有限马尔可夫决策过程找到最优的行动选择策略。
在 Q-Learning 中,我们使用 Q 表来存储在给定状态下采取给定行动的预期效用。Q 表本质上是一个查找表,其中
图示:代码库中实现的 Q 表结构
来源:8-Reinforcement/1-QLearning/README.md8-Reinforcement/2-Gym/README.md177-191
Q-Learning 的核心是 Bellman 方程,它定义了 Q 值如何更新
Q(s,a) ← (1-α) × Q(s,a) + α × (r + γ × max(Q(s',a')))
其中
s 和行动 a 的 Q 值s' 所有可能行动 a' 中的最大 Q 值该方程在代码的 8-Reinforcement/1-QLearning/README.md255 和 8-Reinforcement/2-Gym/README.md254 中实现。
RL 中的一个关键挑战是在探索(尝试新行动以寻找更好的策略)和利用(使用已知的好行动)之间取得平衡。
图示:用于平衡探索与利用的 ε-greedy 策略
来源:8-Reinforcement/1-QLearning/README.md8-Reinforcement/2-Gym/README.md239-246
在代码中,这通常通过 ε-greedy 策略来实现,其中
实现可以在 8-Reinforcement/1-QLearning/README.md 和 8-Reinforcement/2-Gym/README.md 中。
该存储库在“彼得与狼”场景中实现了 Q-Learning
图示:rlboard.py 中环境实现的核心组件
来源:8-Reinforcement/1-QLearning/rlboard.py8-Reinforcement/1-QLearning/README.md136-154
强化学习部分的第二部分使用了 OpenAI Gym,这是一个用于开发和比较具有标准化环境的 RL 算法的工具包。
Gym 为 RL 任务提供了一个统一的接口
图示:智能体与 Gym 环境的交互
来源:8-Reinforcement/2-Gym/README.md8-Reinforcement/2-Gym/README.md79-90
每个 Gym 环境提供
CartPole 环境用于教彼得保持平衡(类似于滑冰以逃离狼)
图示:CartPole 环境结构
来源:8-Reinforcement/2-Gym/README.md8-Reinforcement/2-Gym/README.md18-26
由于 Q-Learning 通常处理离散状态,而 CartPole 环境具有连续的状态值,因此需要进行离散化。
图示:状态离散化过程
来源:8-Reinforcement/2-Gym/README.md8-Reinforcement/2-Gym/README.md137-139
显示了两种离散化方法
CartPole 的 Q-Learning 算法遵循与基本版本相同的原则,并适应了连续状态空间
图示:带有 OpenAI Gym 的 Q-Learning 算法流程
来源:8-Reinforcement/2-Gym/README.md8-Reinforcement/2-Gym/README.md177-191
该存储库包含分析智能体随时间如何改进的方法
图示:学习进度分析流程
来源: 8-Reinforcement/2-Gym/README.md276-288
运行平均值的计算位于 8-Reinforcement/2-Gym/README.md284-285,可视化方法显示在 8-Reinforcement/2-Gym/README.md276-288
该存储库包含两个强化学习作业,它们扩展了相关概念
更真实的世界:通过能量和疲劳机制来增强“彼得与狼”场景 8-Reinforcement/1-QLearning/assignment.md
爬山车问题:使用与 OpenAI Gym 的爬山车环境相同的 Q-Learning 方法 8-Reinforcement/2-Gym/assignment.md
RL 实现中的常见挑战包括
代码提供了解决这些挑战的示例,特别是在 8-Reinforcement/2-Gym/README.md292-300 中讨论了超参数调整。
强化学习为涉及顺序决策的问题提供了一种强大的方法。本存储库中的实现展示了
这些示例为更复杂的 RL 应用和高级算法的进一步探索奠定了基础。
来源: 8-Reinforcement/README.md22-53 8-Reinforcement/2-Gym/README.md337-342