强化学习 — 试错、策略与长期奖励

1.强化学习:从试错中学习策略

我们先从一个轻松的生活片段切入:某天夜里,小明肚子咕咕叫,他想去找点吃的,但房间漆黑一片,他不敢开灯,只能凭借记忆和感知,一步一步摸索前进,一开始他撞到了桌角,又不小心踩到了猫,猫的尖叫声还吓了他一跳(负反馈),他又调整方向,继续摸索。他记住了这个方向有桌子不能走,那个方向可能有猫,不断的修正自己的路线,最终摸到了冰箱,找到了食物(正反馈)。这就是强化学习(Reinforcement Learning, RL)核心思想的具象呈现:

智能体在完全未知的环境中,靠“做出行为 → 接受反馈 → 调整策略”这一闭环,在不断试错中学习完成任务的最佳方式。

强化学习与人的成长过程极为相似:从不懂规则的孩子,到逐步掌握做事规律的成年人,这个过程本质上就是一个持续与环境互动、在反馈中进步的过程。

1.强化学习的四个关键特征

  1. 从“无知”到“掌握策略”:智能体起初对环境一无所知,只能通过反复尝试来摸索出完成任务
  2. 依赖与环境的持续交互:强化学习不是“看图识字”或“记答案”,而是通过做出动作并观察环境反应来调整行为
  3. 学习过程由试错驱动:每次尝试产生的反馈(奖励/惩罚)构成了智能体积累经验、改进策略的基础
  4. 学习目标导向明确,但过程探索自由:强化学习没有明确标签指引每一步行为是否正确,但整体方向是明确的:最大化长期奖励

2.强化学习的认知类比

将强化学习比作孩子的成长过程,我们可以更直观地理解其学习机制。

1. 孩子的成长过程 = 强化学习的学习路径

  • 起点:一无所知,只能试错
  • 过程:与环境交互,接收反馈(如家长批评、奖励)
  • 结果:总结经验、形成规则、学会做决策

例如,因为考试没考好被家长批评,从中意识到“努力学习”能带来正向反馈,这种从“结果”中反推“行动价值”的学习方式,就类似强化学习。

2. 强化学习强调“先做,再评估”

与监督学习中“先给出标签再预测”的范式不同,强化学习中的智能体必须先行动,才能知道结果好坏。这就导致:RL没有每步的明确标签(而是延迟奖励),就需要大量尝试来估计长期收益,这更接近真实世界中的学习方式。

2.经典示例:飞船着陆任务

为了更清晰地展示强化学习的流程和目标,我们来看一个经典案例——让一艘小飞船安全着陆

1. 初始阶段:行为随机、目标未知

飞船起初不知哪里适合降落,所有动作都是盲目的探索。

2. 设计奖励机制:用“结果”引导学习

我们为该任务设计如下奖励策略:

  • 成功着陆 → +100 分
  • 偏离目标 → -50 分或 -100 分
  • 每一步偏离方向 → -10 分
  • 每一步朝目标靠近 → +5 或 +10 分

这种既奖励结果,又鼓励过程表现的设计,有助于模型形成“通向成功的正确路径”,而不是仅仅“完成任务”即可。

3. 学习演进过程可视化

阶段 行为特征 学习机制
初期探索 随机飞行,动作无规律 采集经验,构建基本认知
中期训练 初步形成策略,开始避开错误路径 估算每个状态下的动作价值
后期收敛 稳定实现目标,路径接近最优 策略优化完成,实现稳定任务完成

强化学习关注的是“长期回报”的最大化,而不是某一步骤的对错。

3.监督、无监督和强化学习

1.监督学习与深度学习的关系

深度学习是通过多层神经网络自动学习数据的层次化特征,而监督学习是通过已标注的数据​(输入-输出对)学习一个映射函数(模型),用于预测新数据的输出。深度学习是一种模型实现方式​(用深层神经网络),而监督学习是一个学习范式​(需要标注数据),两者属于不同维度。同样强化学习也是一种学习范式。

2.基本定义与学习方式对比

学习类型 定义 输入 输出 学习目标 是否需要标签
监督学习 学习从输入到输出的映射关系 特征 + 正确标签 预测标签 拟合已知数据的输入输出映射,最小化误差 有标签
无监督学习 学习数据的内在结构或分布 仅有特征数据 聚类 / 维度 / 分布结构 发现数据的隐藏模式 无标签
强化学习 学习在环境中如何行动 状态(来自环境) 行为 / 动作 最大化长期累积奖励 无标签(但有奖励)

3.核心区别类比(类比为学习场景)

学习类型 类比为人类学习方式 教学过程 是否立即得到反馈 反馈来源
监督学习 老师讲题 + 提供标准答案 有“对错参考答案” 马上知道对错 明确标签
无监督学习 看书学习 没有参考答案 不知道对错 无标签,靠模式归纳
强化学习 玩游戏找通关方法 没人教你,只给你“通关奖励” 奖励可能延迟 环境反馈(奖励/惩罚)

4.常见用途与代表任务

学习类型 典型任务 常见应用
监督学习 分类(图像识别)、回归(房价预测) 猫狗识别、人脸识别、情感分析、语音识别、自动驾驶感知模块
无监督学习 聚类(用户分群)、降维(PCA)、异常检测 客户画像、推荐系统、异常检测、文本建模
强化学习 决策规划、策略优化 游戏AI、自动驾驶控制、机器人路径规划、金融交易、智能推荐系统

5.训练方式与挑战差异

维度 监督学习 无监督学习 强化学习
数据依赖 大量标注数据 原始数据即可 环境交互数据(+ 模拟器)
训练成本 标签标注贵 模型选择难 数据收集贵、训练不稳定
学习稳定性 高,能收敛 中,依赖算法 低,奖励稀疏难优化
收敛难度 相对较低 中等偏高 很高,尤其是在复杂环境中
反馈机制 有明确标签 无标签反馈 延迟奖励、靠累计经验

6.联系与融合趋势

1.联系

三者都是“从数据中自动学习”,目标是形成泛化能力,都可以使用深度神经网络作为模型,也都可归类为机器学习范式的一种。

2.融合趋势

  • 自监督学习(Self-Supervised Learning):介于无监督与监督之间,用数据本身生成伪标签,极大提升了大模型的训练效率(如 GPT、BERT)
  • 强化学习 + 监督学习:在策略学习中结合人类演示(如 AlphaGo 用专家棋谱进行初始监督学习)
  • 无监督预训练 + 强化学习微调:用于让智能体“先感知世界”,再进行试错学习(如视觉感知 + 决策控制)

总结一下,监督学习是知道答案,目标是“学会模仿”;无监督学习是不知道答案,目标是“发现结构”;强化学习是不知道答案也没人告诉你,但你知道“通关有奖”,目标是“学会做决策”。

4.强化学习的工作流程

1.强化学习整体流程概览

我们可以用一句话概括强化学习的基本框架:

Agent 在环境中观察状态,选择动作,接收奖励与下一个状态,通过不断试错学习最优策略。

其流程如下图所示:

2.强化学习工作流程详细分解

下面我们用一个标准的迭代过程来说明强化学习的完整循环过程。

1. 初始化

初始化智能体的策略、值函数或模型(取决于使用哪种算法),以及初始化环境,设置起始状态。

2. 循环进行交互

1.观察状态

$s_t$: 智能体从环境中接收当前状态 $s_t$(例如游戏画面、机器人传感器读数等)。

2.选择动作

选择动作 $a_t$ 是强化学习中核心环节之一,它决定了智能体如何在当前状态 $s_t$ 下进行决策。这个决策过程由“策略(Policy)”控制,而策略可以是显式的,也可以是由神经网络隐式建模的。

1.什么是策略 π(a|s)?

策略是一个函数,描述了在给定状态 $s$ 下,采取动作 $a$ 的概率:

  • 确定性策略:总是选择固定动作,例如:$π(s) = argmax Q(s, a)$
  • 随机性策略:为每个动作分配一个概率,例如:$π(a|s) = 0.7$ 走左,0.3 走右

策略的设计决定了智能体的“性格”:是喜欢冒险(探索),还是喜欢安稳地走老路(利用)。

2.常见动作选择策略
  1. ε-greedy 策略(最常见):大部分时候选最优动作,但偶尔随机探索。
步骤 说明
ε 的概率 随机选一个动作(探索 Explore)
1 - ε 的概率 选当前最优动作,如:$argmax Q(s, a)$
1
2
3
4
if random() < ε:
action = random.choice(all_actions)
else:
action = argmax(Q[s])
  • 优点:简单易实现,能保证探索
  • 缺点:探索是“盲目”的,随机选动作可能不合理
  • 适用场景:Q-learning、DQN 等值函数方法

类比:大部分时候你点最爱吃的外卖(炸鸡),但偶尔点点新菜试试(探索)

  1. Softmax 策略(带温度的概率选择):将每个动作的“值”转换为概率,值越大概率越高。
    公式如下:$P(a_i) = \frac{\exp(Q(s, a_i)/\tau)}{\sum_j \exp(Q(s, a_j)/\tau)}$
  • $\tau$:温度参数,控制探索程度:
    • 高温度(如 τ=10):接近均匀分布 → 更随机
    • 低温度(如 τ=0.01):接近贪婪策略 → 近似 argmax
1
2
probs = softmax(Q[s] / temperature)
action = np.random.choice(actions, p=probs)
  • 优点:比 ε-greedy 更“智能”的探索
  • 缺点:参数敏感,调不好容易崩
  • 适用场景:策略梯度、Actor-Critic 也常用类似思想

类比:你喜欢炸鸡 90 分,烤肉 85 分,素食 70 分,softmax 会让你更偏向点炸鸡,但也可能点烤肉(而不是盲选素食)

  1. 神经网络输出动作概率(策略网络/Actor)
    这种方式下,策略 $π(a|s)$ 由一个神经网络建模,直接输出每个动作的概率分布:
  • 输入:状态 $s$
  • 输出:动作的概率分布 $\pi(a|s; \theta)$
  • 采样:根据这个概率进行抽样动作
1
2
probs = actor_network(state)  # 输出 [0.7, 0.2, 0.1]
action = sample_from_distribution(probs)

适用于策略梯度方法,如:

  • REINFORCE
  • Actor-Critic
  • PPO(Proximal Policy Optimization)

优势:

  • 可以学习复杂策略(非线性映射)
  • 输出连续动作时更自然(输出均值/方差)
  • 和环境反馈协同训练,端到端
3.三者对比总结
方法 特点 适用算法 探索方式
ε-greedy 简单、高效 Q-learning、DQN ε 概率随机
Softmax 更温和的探索方式 policy gradient、Dyna-Q 概率分布
策略网络输出 强表达能力,支持连续动作 Actor-Critic、PPO 神经网络建模的分布

动作选择策略的设计,是强化学习探索-利用权衡的核心。你是“保守派”,还是“冒险派”,看 π(a|s) 如何设定。

3.执行动作与环境交互

这一步就是智能体将选择好的动作 $a_t$ 真正“付诸实践”,环境也会据此作出“回应”——这正是强化学习“试错”的核心舞台

这一步的目的是什么?
在时间步 $t$,智能体选定动作 $a_t$,然后将其作用于环境 $\mathcal{E}$,环境根据自己的内部状态与规则,给予智能体一个反馈:奖励 $r_t$,同时更新自身并输出下一个状态:状态 $s_{t+1}$。

用一句话概括就是:“你干了件事,环境告诉你这事干得好不好,并给你一个新的局面。”

环境做了什么事情?
这个过程通常通过一个函数来建模:$(s_{t+1}, r_t) = \mathcal{E}(s_t, a_t)$,也可以是概率形式:$P(s_{t+1}, r_t | s_t, a_t)$
说明:

  • 环境是 马尔可夫决策过程(MDP) 的一部分。
  • 它根据当前状态 $s_t$ 和动作 $a_t$,决定下一个状态和奖励
  • 可以是确定的(固定结果)或随机的(环境有内在随机性)

奖励 $r_t$ 是什么?

  1. 奖励是强化学习的核心信号:它衡量动作的“好坏”,是学习的唯一指导。
    • 正奖励(+):鼓励行为,如机器人成功避开障碍
    • 负奖励(−):惩罚行为,如撞墙、超时
    • 零奖励:无显著反馈,例如在迷宫中没走错也没走对
  2. 奖励的设计极其重要(Reward Design)因为设计太“稀疏”:智能体很难学到,而奖励太“贪婪”:可能导致过拟合策略或作弊

类比:你玩游戏,每赢一局给你 100 分(正奖励),被打败扣你 50 分(负奖励),这就是你的激励机制。

状态 $s_{t+1}$是什么?

  1. 状态是描述“环境当前状况”的向量或图像,状态可以非常多样,具体取决于任务类型:
场景 状态例子
迷宫游戏 老鼠当前坐标
Atari 游戏 当前帧图像
棋类游戏 棋盘布局
自动驾驶 当前车速、路况、传感器信息
股票交易 当前价格、趋势图、技术指标
  1. 状态更新反映环境的变化,动作导致环境进入新状态,智能体在下一步就要基于 $s_{t+1}$ 再次做决策,进入下一个循环。

具体例子演示
游戏场景:Flappy Bird:

  1. 当前状态 $s_t$:小鸟的位置、速度、管道距离
  2. 智能体选择动作 $a_t$:是否跳跃
  3. 执行动作,环境反馈:
    • 如果跳起来避过障碍,$r_t$ = +1,新的 $s_{t+1}$ 是更新后的小鸟状态
    • 如果撞墙了,$r_t = -10$,游戏结束,done=True

这一步与训练的关系?
这一步提供了强化学习中“经验回放”(Experience Replay)或“轨迹采样”的原始数据:
每一步采样一个四元组(transition):$(s_t, a_t, r_t, s_{t+1})$
这些数据将存入经验池(replay buffer),供后续学习算法(如 Q-learning, DDPG, PPO)进行优化。

常见坑:环境交互设计不合理会导致学习失败

  • 奖励太稀疏:比如只在任务完成时才给分,导致训练难以进行
  • 状态缺失信息:智能体感知不到重要变量
  • 非马尔可夫环境:当前状态不包含未来决策所需信息(必须堆叠历史)

马尔可夫环境(Markov Environment)是指环境的状态转移和奖励生成过程满足马尔可夫性质(Markov Property)​,即: ​“未来只依赖于当前状态和动作,而与过去的历史无关。”​

总结:执行动作与环境交互是 RL 的关键闭环

环节 解释
执行动作 $a_t$ 智能体“尝试”做决策
环境反馈 $r_t$ 给智能体打分,引导方向
环境转移 $s_{t+1}$ 带来新的局面,进入下一轮学习

这一步就像打怪升级的回合制游戏:你出招,世界反应,你总结经验,再迎下一轮,如此循环往复直至结束。

4.学习/更新策略

前面几步(观察状态、选择动作、执行动作、获取奖励)都是数据采集,而这一步是智能体真正“变聪明”的过程。它的目标是——让智能体不断改进策略 $π$,使得它未来能做出更好的动作,获得更多奖励。

1.什么是“学习/更新策略”?

在强化学习中,智能体通过一系列经验:$(s_t, a_t, r_t, s_{t+1})$,来调整自己的内部结构(如 Q 表或神经网络权重),从而实现更准确地评估“哪个动作更好” 以及更有效地选择策略动作 π(a|s)
根据不同的算法,学习目标略有不同,但都遵循一个核心理念: 最大化未来累计奖励(即最大化预期回报)

2.三种常见更新方式详解
  1. Q-Learning:基于表格的值函数方法(离策略),适用于小型离散状态空间的任务(如迷宫、简单棋盘游戏),思路是:

    • 维护一个 Q 表,记录每个状态-动作对的预期累计奖励:
      $Q(s, a) \approx \text{当前状态下采取该动作所获得的长期回报}$
    • 通过贝尔曼方程进行更新:
      $$Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha \cdot \left[r_t + \gamma \cdot \max_{a’} Q(s_{t+1}, a’) - Q(s_t, a_t) \right]$$
      其中:
      • $\alpha$:学习率
      • $\gamma$:折扣因子,衡量未来奖励的价值
      • $r_t$:当前奖励
      • $\max Q(s_{t+1}, a’)$:估计从下一状态起最好的动作的价值

    示例代码:

    1
    Q[s][a] += lr * (r + gamma * max(Q[s_next]) - Q[s][a])

    这种方式的优点,简单直观、好实现。缺点是不适合连续或大状态空间,Q 表会爆炸。

  2. DQN(Deep Q-Network):用神经网络逼近 Q 函数,适用于状态空间较大(如图像输入)、动作空间离散的任务(如 Atari 游戏)。思路是:

    • 不再用 Q 表,而用神经网络 $Q_\theta(s, a)$ 来近似 Q 函数
    • 通过一批样本 ($s_t, a_t, r_t, s_{t+1}$) 构造损失函数:
      $$\mathcal{L}(\theta) = \left[r_t + \gamma \cdot \max_{a’} Q_{\theta^-}(s_{t+1}, a’) - Q_{\theta}(s_t, a_t)\right]^2$$
      • 通过梯度下降更新神经网络参数 $\theta$

    关键技术:

    • 经验回放(Experience Replay):打乱数据相关性,提升稳定性
    • 目标网络(Target Network):使用固定参数的 Q_target 防止震荡
      这种方式的优点是可处理高维输入(如图像),强大,可适用于大型游戏,缺点是动作空间必须是离散的,学习不稳定,需精心设计
  3. PPO(Proximal Policy Optimization):策略梯度方法(Actor-Critic)。适用于:连续动作空间、高维策略控制(如机器人控制、自然语言)。思路是:

    • 策略 $π(a|s; θ)$ 由一个神经网络建模,直接优化策略函数
    • 使用优势函数(Advantage)来评估当前动作好坏:
      $$A(s_t, a_t) = Q(s_t, a_t) - V(s_t)$$
    • PPO 的目标函数如下(简化版):
      $$\mathcal{L}^{\text{PPO}} = \mathbb{E}_t\left[\min\left(r_t(\theta) \cdot A_t, \text{clip}(r_t(\theta), 1 - \epsilon, 1 + \epsilon) \cdot A_t\right)\right]$$
      其中:
      • $r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{\text{old}}}(a_t|s_t)}$
      • clip 是核心创新,限制更新幅度,防止策略崩坏
        这种方式的优点是非常稳定,适合大规模训练,支持连续动作、复用采样数据,但缺点是实现较复杂,需并行训练。

三者总结对比:

方法 特点 优点 缺点 适用任务
Q-Learning 表格法 简单易懂 不适用于大状态空间 小型离散问题
DQN 深度值函数 处理图像等高维输入 动作必须离散、训练不稳定 Atari 游戏、图像输入任务
PPO 策略优化 稳定强大、支持连续动作 实现复杂、计算重 连续控制、机器人、NLP

策略更新 = 智能体看了过去的表现(经验),然后调整自己未来的决策方式,让自己下次更聪明。

3. 重复步骤 2

重复上述过程多个回合(episode),直到收敛、训练结束或达到一定评估标准。

4. 最终输出

得到一个训练好的策略 π*,可用于测试或部署。在实际任务中,策略可直接控制机器人、自动交易、游戏角色等。

5.强化学习中的几个关键组件

1.环境(Environment)

环境是智能体所“生活”的世界,它定义了任务规则、物理约束、奖励机制等。

2.状态(State, $s$)

状态是环境当前的描述,是智能体决策所依据的信息输入。状态要尽可能完整地描述当前局势,例如:

  • 图像(像素):用于游戏或视觉任务
  • 数值向量:机器人的位置、速度、传感器数值
  • 离散符号:棋盘位置、标记标签等

3.动作(Action, $a$)

智能体可采取的操作(如移动、跳跃)。

类型 举例 说明
离散动作 左、右、跳 用整数 ID 表示
连续动作 转向角、推进力 用向量表示,如 a = [-0.2, 0.9]

离散动作空间,用 softmax 输出概率分布。连续动作空间,用神经网络输出动作均值 + 方差,采样得到动作。

类比:人在迷宫里选择“往东走”就是一个动作;机器人调整关节角度也是动作。

4.奖励(Reward, $r$)

奖励是环境给智能体的反馈信号,用于指示动作好坏,是强化学习学习的唯一目标信号
奖励形式一般是标量数值(正数奖励,负数惩罚),通常只代表即时收益,不包含长期利益。
奖励设计陷阱如果太稀疏:模型学不到信息(例如:只有完成才得分),如果太容易作弊:智能体可能“投机取巧”来最大化奖励。

5.策略(Policy, π)

策略是智能体在给定状态下采取动作的方式,是学习的主要目标。

1.实现方式

  • 离散动作策略:神经网络输出 softmax 概率分布
  • 连续动作策略:输出均值 + 标准差,构建高斯分布

2.策略学习方法

  • 基于值函数:例如 ε-greedy from Q(s, a)
  • 直接优化策略:例如 REINFORCE、PPO

6. 价值函数(Value Function)

价值函数衡量在某个状态(或状态-动作)下,未来可能获得的累计奖励的期望值

7.模型(Model)

模型是对环境动态的预测器,即预测状态转移和奖励函数。

组件 定义与作用
环境 Environment 任务运行的平台,提供状态与奖励,响应智能体行为
状态 State $s$ 当前环境的观测信息,是智能体做出决策的输入
动作 Action $a$ 智能体对环境的操作或决策,控制环境转移
奖励 Reward $r$ 表示行为好坏的反馈信号,引导学习目标
策略 Policy $\pi$ 从状态映射到动作,是智能体的“行为方式”
价值函数 Value 衡量状态或状态-动作组合的“长期价值”
模型 Model 预测环境未来的变化和反馈,用于模拟和规划

强化学习就像是一个自主游戏的循环系统:环境提供舞台,奖励设定目标,状态记录局势,动作是决策,策略指引方向,价值函数评估局势,模型预测未来。它们构成了整个学习与决策的大闭环。

6.工作流程伪代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for episode in range(num_episodes):
state = env.reset()
done = False

while not done:
# 1. 根据策略选择动作
action = agent.select_action(state)

# 2. 执行动作,获得奖励和下一个状态
next_state, reward, done, info = env.step(action)

# 3. 存储经验并学习
agent.learn(state, action, reward, next_state, done)

# 4. 状态更新
state = next_state

7.举个例子:小白鼠找奶酪

结合上面的几个关键组件举个例子,假设你是一只小老鼠,在一个迷宫中找奶酪:

  1. 你看到前面有几个岔路口(状态)
  2. 你决定往左还是往右走(动作)
  3. 走了一段,你没找到奶酪,还被电了一下(奖励为负)
  4. 你记住这个教训,下次不再走这条路(学习策略)
  5. 多次尝试后,你发现一条路径总能吃到奶酪,于是你记住了(策略收敛)

8.总结

强化学习(RL)是让智能体通过试错与环境交互来学习最优策略的机器学习方法。其核心流程为:智能体观察环境状态→选择动作→获得奖励→更新策略,循环迭代直至收敛。
关键组件包括环境、状态、动作、奖励和策略。与监督学习不同,RL没有标注数据,仅依赖环境反馈的奖励信号。
典型算法分三类:基于价值(如Q-Learning)、基于策略(如PPO)和两者结合的Actor-Critic。
RL适用于游戏AI、机器人控制等序贯决策任务,但面临奖励稀疏、训练不稳定等挑战。而深度强化学习(DRL)通过神经网络处理高维状态,进一步扩展了RL的应用边界。