强化学习简介及其应用 - 总笔记
本节内容总览
| 模块 | 核心问题 | 你需要记住什么 |
|---|---|---|
| 强化学习是什么 | 强化学习到底在学什么 | 智能体通过和环境反复交互,在试错中学会“什么行为更好” |
| 强化学习靠什么学 | 为什么它能越学越好 | 因为环境会给奖励或惩罚,智能体会朝着更高累计奖励调整策略 |
| 强化学习怎么运行 | 一次学习循环是什么样 | 观察状态 -> 选择动作 -> 环境变化 -> 获得奖励 -> 再继续 |
| 计算机如何理解环境 | AI 看到的“世界”是什么 | 不是人类语言,而是状态数据、向量、图像特征 |
| 强化学习能做什么 | 为什么它这么重要 | 擅长做连续决策问题,如游戏、机器人控制、自动驾驶等 |
一句话理解强化学习
强化学习就是让一个智能体在环境中不断尝试,做出动作,接受反馈,并逐渐学会“在什么情况下做什么动作更容易获得长期收益”。
学习主线梳理
- 先用生活化例子说明强化学习本质上是“和环境交互后的试错学习”。
- 再用飞船着陆和游戏 Demo 说明:强化学习不是只看最后成败,而是会根据奖励机制逐步优化行为。
- 然后介绍强化学习的标准工作流程:状态、动作、奖励、状态转移。
- 接着解释在计算机眼中,环境其实是数据,状态和动作都要被形式化表示。
- 最后说明它的典型应用场景,以及为什么现实问题往往需要仿真训练。
一、强化学习的核心思想
1. 强化学习在学什么
强化学习学的不是“一个固定答案”,而是一个决策策略。
这个策略回答的是:
- 当前处在什么状态?
- 我应该采取什么动作?
- 怎样做,长期来看更划算?
所以强化学习特别适合“连续做决策”的任务,而不只是做一次判断。
2. 强化学习和人的学习很像
强化学习很像人的成长过程。
- 小孩一开始并不知道什么是对的。
- 通过做事、犯错、被奖励或被批评,逐步形成经验。
- 以后遇到类似情况,就更可能做出更好的选择。
这也是强化学习和监督学习很不一样的地方:
- 监督学习:告诉模型“标准答案是什么”。
- 强化学习:不直接告诉标准答案,只告诉你“结果好不好”。
3. 强化学习最重要的目标
强化学习不是追求某一步立刻得分最高,而是追求长期累计奖励最大。
常见写法是:
G_t = r_t + gamma * r_{t+1} + gamma^2 * r_{t+2} + ...
其中:
r_t是当前时刻得到的奖励gamma是折扣因子,表示“未来奖励有多重要”G_t表示从当前开始往后的累计回报
直观理解:
gamma越大,越重视长期收益gamma越小,越偏向眼前利益
二、强化学习的基本组成
1. 智能体 Agent
智能体就是“做决定的人”。
在课程例子里,它可以是:
- 学着进门的人
- 要平稳着陆的小飞船
- 游戏中的 AI 角色
- 自动驾驶系统
2. 环境 Environment
环境就是智能体所处的外部世界。
环境会做三件事:
- 告诉智能体当前状态
- 接收智能体动作
- 返回新的状态和奖励
没有环境,就没有反馈;没有反馈,就无法进行强化学习。
3. 状态 State
状态表示“当前是什么情况”。
例如:
- 飞船当前在左边还是右边
- 下落速度是多少
- 游戏中敌人在哪里
- 自动驾驶时前方是否有障碍物
人看到的是场景,计算机看到的是状态数据。
也就是说,计算机并不是真的“理解门、飞船、敌人”,而是把这些东西编码成数值特征。
4. 动作 Action
动作是智能体在当前状态下做出的选择。
动作分两类:
离散动作:可选项是有限个,比如左、右、跳跃、开火连续动作:动作可以取连续值,比如方向角度、力度、速度
这一区分很重要,因为很多后续算法就是按动作空间类型来分的。
5. 奖励 Reward
奖励是环境对动作结果的反馈。
- 好行为给正奖励
- 坏行为给负奖励
例如飞船着陆:
- 平稳着陆:大奖励
- 偏离目标:负奖励
- 中途朝正确方向调整:也可以给过程奖励
这里要注意一个容易忽视的点:
奖励不是现实世界自动长出来的,而是人为设计的。
奖励设计得好,智能体更容易学到我们想要的行为;设计不好,就可能学歪。
三、强化学习的标准工作流程
强化学习一轮一轮地重复下面这个循环:
- 智能体观察当前状态
s_t - 根据策略选择动作
a_t - 环境执行动作并转移到新状态
s_{t+1} - 环境返回奖励
r_t - 智能体根据这次经验更新策略
- 重复以上过程,直到一轮结束
可以把它记成:
状态 State -> 动作 Action -> 奖励 Reward -> 新状态 Next State
一整轮完整交互通常叫一个 episode。
例如:
- 一局游戏
- 一次完整着陆过程
- 从起点开到终点的一次驾驶任务
四、课程里的两个关键例子
1. 撞门例子:理解“试错学习”
这个例子主要说明三件事:
- 强化学习必须和环境交互
- 一开始往往什么都不会
- 通过失败和反馈逐步学会正确行为
这个例子虽然简单,但很好地传达了强化学习最朴素的本质:
不会 -> 尝试 -> 犯错 -> 得到反馈 -> 调整 -> 逐渐学会
2. 飞船着陆例子:理解“奖励驱动决策”
飞船着陆是本节课最关键的技术示例。
它说明了下面几点:
- 强化学习需要明确目标,比如“平稳着陆”
- 智能体一开始没有经验,只能随机尝试
- 训练过程中会积累大量轨迹数据
- 奖励不只是最后成功才给,中间过程也可以给反馈
如果只在最后着陆成功时给分,就会出现两个问题:
- 学习信号太稀疏,很难知道中间哪些动作是好的
- 可能无法区分“绕远路成功”和“高效成功”
所以常常会加入过程奖励,帮助智能体更快收敛。
五、为什么奖励设计这么重要
奖励函数几乎决定了“智能体最终会变成什么样”。
1. 好的奖励设计
好的奖励设计要满足:
- 和最终任务目标一致
- 能给学习提供足够清晰的信号
- 不鼓励投机取巧
2. 常见问题:奖励黑客
如果奖励设计不合理,智能体可能会找到“拿高分但不真正完成任务”的奇怪办法。
比如:
- 任务本来是尽快到终点
- 但奖励只和某个局部行为有关
- 智能体可能一直刷这个局部奖励,而不真正完成任务
这类现象通常叫奖励黑客或奖励漏洞。
对初学者来说,只要先记住一句话:
强化学习很多时候不是算法不会,而是奖励没有设计对。
六、计算机眼中的状态与动作
这是本节课后半部分特别值得重视的内容。
1. 计算机看到的是数据,不是故事
人看到游戏画面,会理解成:
- 敌人正在包抄我
- 现在应该逃跑
但计算机看到的可能是:
- 一张像素图
- 或一串数值向量
- 或若干提取后的特征
所以所谓“状态”,本质上是给模型输入的一种可计算表示。
2. 状态表示会影响学习效果
如果状态表示得不好,强化学习就学不好。
例如:
- 只告诉飞船“当前位置”,不告诉“速度”,就可能学不好着陆
- 只给局部图像,不给整体信息,可能做不出全局最优决策
因此,状态表示是强化学习落地时非常关键的一环。
3. 离散动作与连续动作
- 左移、右移、开火属于离散动作
- 力度大小、转向角度属于连续动作
这会直接影响后续算法选择:
- 离散动作场景里,很多值函数方法更常见
- 连续动作场景里,策略梯度类方法通常更常见
现在不需要死记算法名,但要先建立这个分类意识。
七、强化学习和其他机器学习方法的区别
1. 和监督学习的区别
| 对比项 | 监督学习 | 强化学习 |
|---|---|---|
| 数据形式 | 已有输入和标准答案 | 只有与环境交互得到的经验 |
| 学习目标 | 拟合标签 | 最大化长期累计奖励 |
| 反馈方式 | 每个样本直接给对错 | 通过奖励间接反馈行为好坏 |
| 典型任务 | 分类、回归 | 控制、决策、博弈 |
2. 和深度学习的关系
强化学习是一种学习范式,强调“通过奖励来学习决策”。
深度学习更多是函数逼近方法,强调“用深层神经网络表示复杂映射关系”。
两者不是完全对立的关系,很多实际系统是二者结合:
- 用深度神经网络表示策略或价值函数
- 用强化学习方法根据奖励来训练这个网络
这就叫深度强化学习。
八、强化学习的典型应用
1. 游戏与博弈
这是强化学习最经典、最容易出成果的领域。
原因是:
- 规则清楚
- 奖励容易定义
- 可以无限次模拟
- 试错成本相对低
课程中提到的例子包括:
- AlphaGo
- 星际争霸 AI
- DOTA2 AI
2. 机器人控制
例如:
- 机械臂抓取
- 自动裁剪
- 自适应控制
这类问题的本质是:在连续状态和连续动作下做精细控制。
3. 自动驾驶
自动驾驶是一个很典型、也很难的强化学习场景。
难点不是“定义目标不会”,而是:
- 现实中试错成本极高
- 不能真的靠撞车去学习
- 环境复杂且变化大
所以常见路线是:
- 先在仿真环境中大量训练
- 再迁移到真实环境中微调
4. 医疗与工业
这些场景有很强吸引力,但也更谨慎。
因为:
- 决策后果重大
- 数据和反馈昂贵
- 安全要求极高
所以现实中往往需要仿真、专家规则和强化学习混合使用,而不是单独依赖强化学习。
九、本节你最容易混淆的点
1. 强化学习不是“只看最终输赢”
很多初学者会以为只有最后成功才有奖励。其实大多数实际任务都会设计过程奖励,否则训练可能非常困难。
2. 强化学习不是不要数据
它不是不要数据,而是不依赖人工标注数据。
它需要的是大量交互数据、轨迹数据、仿真数据。
3. 强化学习不是“自己就能学会一切”
它仍然非常依赖:
- 状态表示
- 动作空间设计
- 奖励函数设计
- 环境构建
- 算法选择
4. 深度学习和强化学习不是二选一
更准确地说:
- 监督学习解决“给定样本如何预测”
- 强化学习解决“如何连续决策”
- 深度学习常常是实现前两者的工具
十、本节关键词速记
| 术语 | 简单解释 |
|---|---|
| Agent | 做决策的智能体 |
| Environment | 智能体交互的外部环境 |
| State | 当前情况的表示 |
| Action | 在当前状态下采取的行为 |
| Reward | 环境返回的反馈信号 |
| Policy | 从状态到动作的决策规则 |
| Episode | 从开始到结束的一轮完整过程 |
| Return | 一段时间内累计得到的奖励 |
| Gamma | 对未来奖励的重视程度 |
十一、适合初学者的复习框架
如果你之后要口头复述“什么是强化学习”,可以按下面这套模板说:
- 强化学习是一种通过与环境交互来学习决策的方法。
- 它的核心元素有智能体、环境、状态、动作、奖励。
- 智能体的目标是最大化长期累计奖励,而不是只追求当前一步最优。
- 它特别适合游戏、机器人、自动驾驶这类连续决策问题。
- 它的难点通常不只在算法,还在奖励设计、状态表示和数据获取。
十二、我的补充理解
如果把本节课压缩成一个最关键的认识,那就是:
强化学习本质上是在学一套“面向长期收益的决策规则”。
它和“做题找标准答案”不一样,更像“在行动中积累经验”。
所以理解强化学习,最重要的不是先背算法公式,而是先把下面这几个问题想清楚:
- 智能体看到了什么
- 它能做什么
- 环境如何反馈
- 我们究竟希望它学会什么
这四个问题想清楚了,后面学习 PPO、DQN、策略梯度时会顺很多。