- 作者
-
-
- 姓名
- Amit Shekhar
- 发布于
-
强化学习(Reinforcement Learning,RL)是一种机器学习类型,其中智能体通过与环境交互来学习做出一系列决策,目标是随着时间的推移获得最大的奖励。
在这篇博客中,我们将学习强化学习——机器学习的一个分支,其中智能体通过与环境交互来学习做出决策,并根据其行为获得奖励或惩罚。
我们将涵盖以下内容:
- 全局概览
- 什么是强化学习?
- 一个简单的现实类比
- 强化学习的基本要素
- 强化学习循环
- 强化学习 vs 监督学习 vs 无监督学习
- 回合、回报与折扣因子
- 探索与利用
- 常见的强化学习算法家族
- 强化学习用在哪里?
- 为什么强化学习很难
- 快速总结
我是 Amit Shekhar,Outcome School 的创始人。我曾指导和培训过许多开发者,他们的努力为他们赢得了高薪的技术工作,帮助许多科技公司解决了他们的独特问题,并创建了众多被顶级公司使用的开源库。我热衷于通过开源、博客和视频分享知识。
我在 Outcome School 教授 AI 和机器学习。
让我们开始吧。
全局概览
在深入细节之前,让我们先了解全局。
强化学习是系统通过实践来学习的方式。它尝试某种做法,观察结果,然后进行调整。这就是经典的试错式学习。
没有老师针对每一种情况给出正确答案。相反,有一个奖励信号告诉系统它表现得是好是坏,系统会慢慢摸索出最佳的行动方式。
简单来说:
强化学习 = 一个智能体 + 一个环境 + 一个引导智能体随时间推移行动得更好的奖励信号。
什么是强化学习?
强化学习是 机器学习 的三大主要分支之一,与监督学习和无监督学习并列。
强化学习,通常简称 RL,是一种机器学习类型,其中智能体通过与环境交互来学习做出一系列决策,目标是随着时间的推移最大化奖励。
简单来说,智能体是学习者,环境是智能体行动所在的世界,而奖励是告诉智能体表现如何的反馈信号。
智能体不会被告知哪个动作是正确的。它必须通过尝试动作并观察结果来自己弄清楚。
一个简单的现实类比
学习这个概念的最好方式就是举个例子。
假设我们正在训练一只小狗坐下。
- 小狗就是 Agent。
- 房间和人类就是 Environment。
- 当小狗坐下时,我们给它一块零食。那块零食就是 Reward。
- 当小狗跳上沙发时,我们说“不行”。这就是一个负奖励。
小狗并不理解我们的语言。但经过多次尝试,它学会了:
- “当我坐下时,好事就会发生。”
- “当我跳上沙发时,好事不会发生。”
这正是强化学习的工作原理。
Agent 不需要一个为每种情况写下正确动作的老师。它通过尝试并观察奖励来学习正确的动作。
强化学习的基本要素
以上是用小狗的例子说明强化学习背后的直觉。现在,让我们正式命名强化学习的各个部分,以便在后续内容中使用正确的术语。
强化学习有几个核心构件。让我们逐一解读。
Agent。 决策者。它是学习的主体。在游戏中,Agent 是玩家。在机器人技术中,Agent 是机器人的大脑。在通过人类反馈训练的大语言模型中,Agent 就是 LLM 本身。
Environment。 Agent 之外的一切。Agent 所处的世界。棋盘、迷宫、自动驾驶汽车前方的道路、正在进行的对话。
State。 环境在某一时刻的快照。玩家在棋盘上的位置。机器人的位置和速度。当前的对话历史。
Action。 Agent 在该状态下决定做什么。移动棋子。让机器人左转。生成下一个词。
Reward。 Agent 采取动作后环境返回的一个数字。正数表示好,负数表示坏,零表示没有发生什么重要的事情。
Policy。 Agent 的策略。从状态到动作的映射。“当我处于这个状态时,我会采取这个动作。”强化学习的整个目标就是学习一个好的 Policy。
Value Function。 对 Agent 从某个给定 State(或某个给定的 State-Action 对)出发,长期来看预期获得的总奖励的估计。一些强化学习算法使用 Value Function 来推导 Policy。我们将在后面的算法部分看到这一点。
强化学习循环
现在我们已经了解了基本构件,接下来看看它们如何相互作用。Agent 与 Environment 之间的交互发生在一个循环中。
+-----------------------+
| Agent |
+----------+------------+
|
| Action
v
+-----------------------+
| Environment |
+----------+------------+
|
| New State + Reward
v
+-----------------------+
| Agent |
+-----------------------+逐步来看:
第 1 步: Agent 观察 Environment 当前的 State。
第 2 步: Agent 根据其当前的 Policy 选择一个 Action。
第 3 步: Environment 转移到一个新状态,并返回一个 Reward。
第 4 步: Agent 利用该奖励更新其 Policy。
第 5 步: 重复。
这个循环运行数百万次。慢慢地,Policy 会变得越来越好。Agent 学会了在哪些状态下采取哪些动作能带来高奖励。
这正是小狗身上发生的事情。小狗观察状态(State,我们拿着零食),选择一个动作(Action,坐下或跳起来),获得奖励(Reward,有零食或没零食),并慢慢更新它的策略(Policy)。同样的循环,只是规模小得多。
这就是强化学习的核心工作原理。
计划转型进入 AI 领域?
无论你今天在哪个技术领域工作,只要付出努力,你都可以转型到以下这些角色:
- AI 工程师
- 前沿部署工程师
- AI Agent 工程师
- Harness 工程师
- 语音 AI 工程师
- AI 架构师
- LLM 工程师
- LLM 推理工程师
- 生成式 AI 工程师
- MLOps 工程师
- 机器学习工程师
- 深度学习工程师
Outcome School 的 AI 与机器学习课程 将带你达成目标。
强化学习 vs 监督学习 vs 无监督学习
以上就是关于 RL 循环的全部内容。现在,让我们把 RL 与机器学习的另外两个主要分支进行比较,以便清楚地看到 RL 的特别之处。这是理解 RL 最重要的一次比较。
我们有一篇关于监督学习 vs 无监督学习的详细博客,深入讲解了前两者。在这里,我们将快速比较这三者。
| 类型 | 数据的样子 | 模型学到什么 |
|---|---|---|
| 监督学习 | 带有正确输出(标签)的输入 | 将每个输入映射到正确的输出 |
| 无监督学习 | 只有输入,没有标签 | 发现隐藏的模式、分组或结构 |
| 强化学习 | 没有标注数据,只有来自交互的奖励信号 | 一个能随时间最大化总奖励的策略 |
监督学习有一位老师告诉你正确答案。
无监督学习没有老师,也没有奖励。它只是寻找模式。
强化学习也没有老师。但它有一个以奖励形式给出反馈的环境(Environment),而这个奖励是智能体(Agent)唯一能从中学习的东西。
从视觉上看,这三者是这样的:
Supervised Learning:
Input --> Model --> Output
^
|
Correct Output (label)
Unsupervised Learning:
Input --> Model --> Patterns / Clusters
Reinforcement Learning:
Action
+------------------------+
| v
Agent Environment
^ |
| |
+------------------------+
New State + Reward在这里我们可以注意到,监督学习有标签来引导模型(Model),无监督学习只有输入数据,而强化学习是唯一一个在智能体与环境之间存在反馈循环的。
回合、回报与折扣因子
现在我们已经理解了 RL 与另外两者的区别,接下来学习几个在 RL 中随处可见的术语。
回合(Episode)。 从开始到结束的一次完整运行。一局从第 1 步到最后一步的国际象棋。一轮从起点到终点的迷宫。一段从第一条消息到最后一条消息的对话。对我们的小狗来说,一个回合就是一轮完整的训练。
回报(Return)。 在一个回合中收集到的总奖励。智能体不只是想要某一步的高奖励,而是想要整个回合中最高的总奖励。
折扣因子(通常写作 gamma)。 一个介于 0 和 1 之间的数字,告诉 Agent 相对于即时奖励,应该多大程度地重视未来奖励。
- 较小的 gamma 会让 Agent 只顾眼前。它主要关心下一个奖励。
- 较大的 gamma 会让 Agent 有耐心。它愿意放弃现在的小奖励,以换取以后更大的奖励。
简单来说,折扣因子就是 Agent 有多有耐心。
让我们用真实数字来直观理解:
Step: t=0 t=1 t=2 t=3 t=4 (end)
| | | | |
v v v v v
Reward: 0 0 +1 0 +10
Weight: gamma^0 gamma^1 gamma^2 gamma^3 gamma^4
Return = (gamma^0 * 0) + (gamma^1 * 0) + (gamma^2 * 1) + (gamma^3 * 0) + (gamma^4 * 10)
For gamma = 0.9:
Return = (1 * 0) + (0.9 * 0) + (0.81 * 1) + (0.729 * 0) + (0.6561 * 10)
= 0 + 0 + 0.81 + 0 + 6.561
= 7.371在这里,我们可以看到,最后的 +10 奖励对起始时的 Agent 来说只值 6.561,而不是完整的 10。奖励离得越远,被折扣得越多。更小的 gamma 会把那个未来奖励缩得更小。
给你的一点小提示
无论你在哪个技术领域工作,都要熟悉这些主题:
- LLM
- RAG
- MCP
- Agent
- 微调
- 量化
我们把它们全部整合在一个视频中:
AI 工程详解:LLM、RAG、MCP、Agent、微调与量化
不必停下阅读——把它收藏起来,等有空时再看。未来的你会感谢现在的自己。
现在,让我们回到主题。
探索与利用
以上讲的是奖励如何随时间累加。现在,让我们来理解每个 RL Agent 都必须应对的一个关键权衡。这是强化学习中最重要的权衡之一。
- 利用 = 选择已知能带来好奖励的动作。
- 探索 = 尝试一个新动作,看看它是否能带来更好的奖励。
假设我们来到一座新城市,想找到最好的餐厅。
- 如果我们只利用,就会去找到的第一家还不错的餐厅,再也不尝试其他地方。我们永远不会知道城里是否有更好的去处。
- 如果我们只探索,就会永远随机尝试新地方,从不选定那家好的。
一个好的 RL Agent 会在两者之间取得平衡。它充分利用已学到的知识,同时也充分探索以找到更好的选择。
常见的强化学习算法家族
现在我们已经理解了这个权衡,接下来看看实际的 RL 算法是如何学习策略的。RL 算法有很多种,大多数可以归为三大类。我们现在不需要记住它们,目标是理解每个类别背后的高层思想。
基于价值的方法。 Agent 学习我们之前在基础模块中看到的价值函数。策略再由此推导得出:在每个状态下,选择预测价值最高的动作。Q-learning 是经典的例子。
基于策略的方法。 Agent 直接学习策略。它朝着能增加奖励的方向调整策略。策略梯度方法是经典的例子。
Actor-Critic 方法。 两者的结合。一个网络(Actor,即行动者)学习策略,另一个网络(Critic,即评论者)学习价值函数。Critic 指导 Actor。
这一族包括 PPO(近端策略优化),它是目前使用人类反馈对大型语言模型进行微调时最常用的算法之一。
所有族的核心思想都是一样的:它们都是从奖励信号中学习良好策略的不同方式。
如果你想深入学习强化学习,请查看 Outcome School 的 AI 与机器学习课程。
强化学习用在哪里?
以上就是强化学习在底层的工作原理。现在,让我们看看强化学习在现实世界中究竟用在哪里。强化学习出现在许多现实世界的系统中。
- 游戏。 AlphaGo 利用强化学习学会了下围棋,达到了超越人类的水平。AlphaZero 更进一步,用同样的方法掌握了围棋、国际象棋和将棋。许多 Atari 游戏也已被强化学习智能体攻克。
- 机器人技术。 机器人学习走路、抓取物体或操控无人机飞行,都使用强化学习。
- 自动驾驶汽车。 交通中的决策制定运用了强化学习的思想。
- 推荐系统。 一些推荐系统使用强化学习来优化用户的长期参与度,而不仅仅是下一次点击。
- 校准决策模型。 Jev 是首个 System One Model,它使用 RLCD(面向校准决策的强化学习)进行训练,其中奖励既取决于选出正确答案,也取决于如实报告概率。
- 大型语言模型。 像 ChatGPT 这样的现代大语言模型通过 RLHF(基于人类反馈的强化学习) 进行微调,使其变得有用、诚实且安全。
最后这一项正是强化学习近来在 AI 领域变得如此重要的原因。RLHF 是现代大语言模型如今表现如此出色的关键原因之一。
我们有一套关于 RLHF、微调和大语言模型基础的完整课程——请查看 Outcome School 的 AI 与机器学习课程。
为什么强化学习很难
现在我们知道了强化学习的应用场景,接下来让我们理解为什么强化学习真正做好非常困难,从而体会这个问题的难度。
- 奖励信号是稀疏的。 通常,智能体只在一个回合(episode)的最后才获得奖励(赢或输、成功或失败)。很难弄清楚究竟是之前的哪个动作导致了这个结果。这就是所谓的信用分配问题。回想一下那只小狗的例子。如果我们在一整段很长的训练结束时才说一句“好狗狗”,小狗就很难弄清楚它的众多动作中究竟是哪一个赢得了表扬。这就是现实生活中的信用分配问题。
- 环境在不断变化。 随着策略的变化,智能体所访问的状态类型也随之变化。训练数据不是固定的,这使得学习过程不稳定。
- 试错成本高昂。 模拟游戏一天可以玩一百万局。而真实的机器人不可能摔倒一百万次来学会走路。现实世界中的强化学习必须从极少的尝试中学习。
- 奖励设计很棘手。 设计不当的奖励可能导致 Agent 钻系统的空子,找到在不真正完成我们目标的情况下最大化奖励的方法。这被称为 奖励黑客(reward hacking)。一种解决办法是完全不手动编写奖励,而是从人类偏好比较中学习奖励。
正因为这些问题,许多现代强化学习研究都致力于让学习更加稳定,并从更少的尝试中学习。
从更少的现实尝试中学习的一个强大方法,是让 Agent 在一个学习到的环境模拟器中学习,而不是在真实世界中学习。我们有一篇详细的博客 世界模型是如何工作的?,逐步讲解了这种方法。
保持更新: 订阅我们的新闻通讯,将最新的 AI 和机器学习博客直接发送到您的邮箱。
快速总结
让我们回顾一下所学到的内容:
- 强化学习 = Agent + 环境 + 奖励信号。
- Agent 通过与环境交互并获得奖励来学习。
- 策略(Policy) 是 Agent 的策略,将每个状态映射到一个动作。
- 强化学习的目标是学习一个能随时间最大化总奖励的策略。
- 强化学习不同于监督学习(没有标签)和无监督学习(没有奖励)。强化学习纯粹通过交互从奖励信号中学习。
- 需要记住的关键术语:状态、动作、奖励、策略、回合(Episode)、回报(Return)、折扣因子、探索与利用。
- 强化学习算法分为三大类:基于价值的、基于策略的和 Actor-Critic。
- 强化学习驱动着游戏 AI、机器人、推荐系统,并通过 RLHF 支撑着现代大语言模型的对齐阶段。
现在我们已经端到端地理解了强化学习。
在下一篇博客中,我们将详细了解 RLHF(基于人类反馈的强化学习),这正是强化学习如何用于将 ChatGPT 等大语言模型与人类偏好对齐的方法。
常见问题
强化学习需要标注数据吗?
不需要。强化学习没有老师来展示正确答案,因此没有标签。Agent 纯粹从与环境交互获得的奖励信号中学习。它通过尝试各种动作并观察奖励来找出正确的动作。
当强化学习应用于大语言模型时,Agent、状态和动作分别是什么?
Agent 就是 LLM 本身。状态是当前的对话历史,动作是生成下一个词。奖励则告诉 LLM 它的回答是好还是坏,这正是 RLHF 利用强化学习来微调 ChatGPT 等模型的方式。
PPO 属于哪一类强化学习算法?
PPO 属于 Actor-Critic 家族。在这个家族中,一个网络(Actor)学习策略(Policy),另一个网络(Critic)学习价值函数(Value Function)并指导 Actor。PPO 是使用人类反馈微调大语言模型最常用的算法之一。
什么是强化学习中的信用分配问题?
信用分配问题是指难以确定是之前的哪个动作导致了最终结果。之所以会出现这个问题,是因为奖励信号往往很稀疏,Agent 可能只在整个回合结束时才获得一次奖励,比如赢或输。
为什么强化学习难以应用于真实机器人?
在现实世界中,试错的代价很高。一个模拟游戏一天可以玩一百万个回合,但真实机器人不可能摔倒一百万次来学会走路。一种解决办法是让 Agent 在一个学习到的环境模拟器中学习,这个模拟器被称为世界模型(World Model)。
今天就到这里。
谢谢
Amit Shekhar Outcome School 创始人
你可以通过以下方式与我联系:
关注 Outcome School: