强化学习

强化学习简介

强化学习简介及应用,初步了解强化学习

强化学习简介及其应用 - 总笔记

本节内容总览

模块核心问题你需要记住什么
强化学习是什么强化学习到底在学什么智能体通过和环境反复交互,在试错中学会“什么行为更好”
强化学习靠什么学为什么它能越学越好因为环境会给奖励或惩罚,智能体会朝着更高累计奖励调整策略
强化学习怎么运行一次学习循环是什么样观察状态 -> 选择动作 -> 环境变化 -> 获得奖励 -> 再继续
计算机如何理解环境AI 看到的“世界”是什么不是人类语言,而是状态数据、向量、图像特征
强化学习能做什么为什么它这么重要擅长做连续决策问题,如游戏、机器人控制、自动驾驶等

一句话理解强化学习

强化学习就是让一个智能体在环境中不断尝试,做出动作,接受反馈,并逐渐学会“在什么情况下做什么动作更容易获得长期收益”。

学习主线梳理

  1. 先用生活化例子说明强化学习本质上是“和环境交互后的试错学习”。
  2. 再用飞船着陆和游戏 Demo 说明:强化学习不是只看最后成败,而是会根据奖励机制逐步优化行为。
  3. 然后介绍强化学习的标准工作流程:状态、动作、奖励、状态转移。
  4. 接着解释在计算机眼中,环境其实是数据,状态和动作都要被形式化表示。
  5. 最后说明它的典型应用场景,以及为什么现实问题往往需要仿真训练。

一、强化学习的核心思想

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

奖励是环境对动作结果的反馈。

  • 好行为给正奖励
  • 坏行为给负奖励

例如飞船着陆:

  • 平稳着陆:大奖励
  • 偏离目标:负奖励
  • 中途朝正确方向调整:也可以给过程奖励

这里要注意一个容易忽视的点:

奖励不是现实世界自动长出来的,而是人为设计的。

奖励设计得好,智能体更容易学到我们想要的行为;设计不好,就可能学歪。

三、强化学习的标准工作流程

强化学习一轮一轮地重复下面这个循环:

  1. 智能体观察当前状态 s_t
  2. 根据策略选择动作 a_t
  3. 环境执行动作并转移到新状态 s_{t+1}
  4. 环境返回奖励 r_t
  5. 智能体根据这次经验更新策略
  6. 重复以上过程,直到一轮结束

可以把它记成:

状态 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对未来奖励的重视程度

十一、适合初学者的复习框架

如果你之后要口头复述“什么是强化学习”,可以按下面这套模板说:

  1. 强化学习是一种通过与环境交互来学习决策的方法。
  2. 它的核心元素有智能体、环境、状态、动作、奖励。
  3. 智能体的目标是最大化长期累计奖励,而不是只追求当前一步最优。
  4. 它特别适合游戏、机器人、自动驾驶这类连续决策问题。
  5. 它的难点通常不只在算法,还在奖励设计、状态表示和数据获取。

十二、我的补充理解

如果把本节课压缩成一个最关键的认识,那就是:

强化学习本质上是在学一套“面向长期收益的决策规则”。

它和“做题找标准答案”不一样,更像“在行动中积累经验”。
所以理解强化学习,最重要的不是先背算法公式,而是先把下面这几个问题想清楚:

  • 智能体看到了什么
  • 它能做什么
  • 环境如何反馈
  • 我们究竟希望它学会什么

这四个问题想清楚了,后面学习 PPO、DQN、策略梯度时会顺很多。

相关笔记

强化学习

PPO算法与公式推导

PPO算法与公式推导

打开笔记

NLP

预训练语言模型BERT源码解读

预训练语言模型BERT谷歌老版的源码解读

打开笔记
强化学习简介 | 三火