强化学习笔记
概念
学习本质上源于与环境的互动,互动是知识的主要来源。接下来我们将研究强化学习------专注于目标导向的、基于互动的学习,区别于其他机器学习范式,强调智能体通过试错与环境交互来优化行为策略。
强化学习的目标是学习在不同情境下应采取何种动作,以最大化累积数值奖励 。通过试错学习 (不被告知正确动作,需通过尝试发现最优策略)以及延迟奖励(动作影响当前及未来情境与奖励,需考虑长期后果)来实现。
范式 | 学习方式 | 是否有标签 | 目标 |
---|---|---|---|
监督学习 | 从带标签样本中学习 | 是(正确动作已知) | 泛化到新情境 |
无监督学习 | 发现数据中的结构 | 否 | 聚类、降维等 |
强化学习 | 从试错与奖励中学习 | 否(仅有奖励信号) | 最大化长期奖励 |
强化学习的核心挑战是探索与利用之间 的权衡。利用指的是选择已知高奖励动作。探索 指的是尝试新动作以发现潜在更优策略。困境在于,不能只追求探索或只追求利用,否则都会导致任务失败。过度利用 则会错失更好策略;过度探索则会奖励低下。
强化学习从完整、交互、目标导向的智能体 出发,强调:感知环境状态、采取影响环境的动作、在不确定性中追求目标。传统的监督学习不考虑动作与反馈循环,规划方法则忽略实时决策与模型获取;强化学习整合学习、规划、模型构建,解决如何嵌入更大决策系统的问题。
例子
例子 | 环境 | 动作的影响 | 目标 | 不确定性体现 | 如何通过经验改进 |
---|---|---|---|---|---|
国际象棋大师走棋 | 棋局(对手、棋子位置) | 影响下一个棋局状态和后续可走的棋 | 赢得比赛 | 对手回应不可完全预测 | 完善对棋局和走法可取性的直觉判断,提升棋艺 |
炼油厂自适应控制器 | 炼油厂(储罐液位、温度、压力等) | 影响产量、成本、质量的实时状态 | 优化产量/成本/质量权衡(按边际成本) | 实际运行条件偏离初始设定,需动态调整 | 通过运行经验优化控制策略 |
新生小羚羊学习奔跑 | 地形、自身身体状态 | 影响移动能力与生存机会 | 站立并奔跑(避免被捕食) | 初次站立和行走的结果不确定 | 提高奔跑效率,逐步掌握运动技能 |
移动机器人决策 | 房间布局、电池状态、垃圾分布 | 决定是否继续探索或返回充电,影响未来电量与任务能力 | 寻找垃圾并保持电力充足(避免耗尽) | 充电站位置、路径难度、探索收益不确定 | 根据过去寻找充电器的速度和难易程度调整决策 |
准备早餐 | 厨房环境、身体状态(饥饿、偏好) | 动作序列影响任务效率与结果(如溢出牛奶) | 成功准备并享用早餐(获得营养) | 物品位置、牛奶倒出速度、身体状态变化等不确定 | 学会简化流程,优化物品获取顺序和行为策略 |
共性
共同特征 | 说明 |
---|---|
互动性 | 所有例子中,智能体通过动作影响环境,并根据环境反馈调整行为。 |
目标导向 | 每个任务都有明确目标,智能体可通过直接感知判断进展(如是否赢棋、是否吃饱、电池是否耗尽)。 |
延迟后果 | 当前动作影响未来状态和机会,正确决策需考虑间接和长期影响。 |
不确定性 | 动作结果无法完全预测,必须持续感知并响应(如菲尔观察牛奶是否溢出)。 |
经验驱动改进 | 智能体通过时间积累的经验提升性能,行为随学习而优化。 |
先验知识的作用 | 初始知识(来自经验、设计或进化)影响学习起点,但与环境的互动对适应具体任务至关重要。 |
要素
强化学习系统包含以下四个主要子元素:策略 、奖励信号 、价值函数 ,以及可选的环境模型。除智能体和环境外,这些是构成强化学习系统的核心组成部分。
策略
策略是学习智能体在给定时间的行为方式,用于将感知到的环境状态映射到应采取的动作。策略是智能体的核心,仅凭策略就足以确定行为;其可以是随机的,为每个动作指定选择概率。
奖励信号
在每个时间步,环境向智能体发送一个单一数字,称为奖励 。奖励定义强化学习问题的目标 ,智能体的唯一目标是最大化其长期接收到的总奖励 。奖励信号决定对智能体而言什么是"好"或"坏"的事件,是问题的即时且决定性特征 ,类比于生物系统中的愉悦或痛苦体验。奖励是改变策略的主要依据;若某动作后获得低奖励,策略可能被调整,以在未来类似状态下选择其他动作。
价值函数
价值函数用于评估长期收益 。一个状态的价值 ,是智能体从该状态出发,在未来可以期望累积的总奖励量 。奖励 表示状态的即时可取性 ;与其相比价值 表示状态的长期可取性 ,考虑后续可能的状态及其中的奖励。但奖励是首要的 ,价值是作为对奖励的预测而存在的,是次要的 。没有奖励,就不可能有价值;估计价值的唯一目的 是为了获得更多奖励。但虽然奖励是根本,但决策依赖于价值判断 。智能体选择能导向高价值状态 的动作,而非仅追求高即时奖励的状态,以实现长期奖励最大化。但确定价值比确定奖励困难得多。奖励由环境直接给出;价值则必须根据智能体在其整个生命周期中观察到的经验序列进行估计和重新估计 。几乎所有强化学习算法的核心组成部分,都是高效估计价值的方法。
环境模型
环境模型是用于模仿环境行为的组件,或允许对环境未来行为进行推断的机制。基于给定当前状态和动作,模型可预测下一个状态和下一个奖励。其住哟啊用于支持规划;在实际经历之前,通过考虑可能的未来情境来决定行动方案。
局限性
状态作为策略 和价值函数 的输入;作为环境模型 的输入和输出。强化学习的局限性在于严重依赖于状态(state)的概念。
第一部分:表格型解法
在强化学习中,表格型解法 (Tabular Solution Methods)是指在状态空间和动作空间较小且有限的情况下,将价值函数或策略以表格形式显式存储和更新的求解方法。这类方法将每个状态(或状态-动作对)作为表中的一个条目,直接记录其对应的价值估计或策略概率。由于所有状态和动作都可以被完整枚举并存储,这些方法能够通过对环境的交互或建模,逐步计算出精确的价值函数和最优策略。
多臂老虎机
强化学习使用对所采取动作的评价 进行训练,而不是通过给出正确动作为指导。这导致其需要主动探索、显式搜索良好行为。
- 评价性反馈:表明所采取动作的好坏,但不说明是否为最优或最差动作。
- 指导性反馈:直接给出正确动作,与实际采取的动作无关。
强化学习使用评价性反馈 (evaluative feedback),而非指导性反馈。评价性反馈完全依赖于所采取的动作,而指导性反馈则与所采取的动作无关 。这部分中只研究强化学习的评价性特征 ,在一个简化场景 中进行,该场景为非关联性问题:不涉及在多种情境下学习如何行动。
k 臂老虎机问题可以定义为面临 k 个不同动作(或选项)的重复选择;每次选择一个动作后,获得一个数值奖励;奖励来自依赖于所选动作的平稳概率分布 ,你的目标是在有限时间步(如1000步)内,最大化累计奖励的期望值 。当前的"老虎机问题"特指此简单非关联性情形,不涉及状态变化。
动作价值
每个动作 a 有一个真实价值 q_\*(a) ,定义为选择该动作时的期望奖励 :
q∗(a)≐E[Rt∣At=a] q_*(a) \doteq \mathbb{E}[R_t \mid A_t = a] q∗(a)≐E[Rt∣At=a]
- A_t :时间步 t 选择的动作
- R_t :时间步 t 获得的奖励
当前动作价值的真实价值未知,需进行估计 。用 Q_t(a) 表示在时间步 t 时对动作 a 的价值估计。当前的目标是使 Q_t(a) 尽可能接近 q_\*(a) 。
贪婪动作、探索与价值
当前时间步估计价值最高的动作被称为贪婪动作 。由此我们可以引出利用和探索的定义。利用 是选择贪婪动作,以最大化当前步的期望奖励。探索 是选择非贪婪动作,以改进其价值估计。探索短期收益低,但可能发现更优动作,长期收益更高。探索与利用之间存在冲突,何时探索或利用,取决于估计值的精度、不确定性大小、剩余时间步数。
动作价值方法
动作价值方法 指用于估计动作价值 并基于估计进行动作选择 的一类方法。将aaa的真实价值定义为选择动作 a 时期望获得的平均奖励。
估计价值
通过使用样本平均法 ,得到了动作价值的样本平均方法
Qt(a)≐在 t 前选择 a 所获奖励之和在 t 前选择 a 的次数=∑i=1t−1Ri⋅1Ai=a∑i=1t−11Ai=a Q_t(a) \doteq \frac{\text{在 } t \text{ 前选择 } a \text{ 所获奖励之和}}{\text{在 } t \text{ 前选择 } a \text{ 的次数}} = \frac{\sum_{i=1}^{t-1} R_i \cdot \mathbb{1}{A_i=a}}{\sum{i=1}^{t-1} \mathbb{1}_{A_i=a}} Qt(a)≐在 t 前选择 a 的次数在 t 前选择 a 所获奖励之和=∑i=1t−11Ai=a∑i=1t−1Ri⋅1Ai=a
- 其中 1predicate\mathbb{1}_{predicate}1predicate 表示一个随机变量,当 predicate 为真时取值为1,否则为0。
- 若分母为0,定义 Q_t(a) 为默认值(如0)。
- 根据大数定律,当选择次数趋于无穷时, Q_t(a) \\to q_\*(a) 。
贪婪动作选择
贪婪动作选择指的是选择当前估计价值最高 的动作:
At≐argmaxa Qt(a) A_t \doteq \underset{a}{\operatorname{argmax}}\ Q_t(a) At≐aargmax Qt(a)
若有多个最大值,任意选择(如随机)。其始终利用 当前知识,最大化即时奖励。存在不探索,可能错过更优动作的缺点。
一种优化方法是大多数时间选择贪婪动作;以小概率 \\varepsilon ,随机均匀选择所有动作 (包括贪婪动作),与估计值无关,从而实现探索与利用的平衡 。这个方法的优点是,随着步数趋于无穷,每个动作都会被无限次采样,从而确保所有 Qt(a)Q_t(a)Qt(a) 收敛到 q∗(a)q_*(a)q∗(a)。这意味着选择最优动作的概率将收敛到大于 1−ε1 - \varepsilon1−ε 的值,即接近确定。然而,这些只是渐近性保证,对于方法在实际中的有效性说明有限。
!NOTE
此时的价值评估使用样本平均法,优化方法选择的是ε\varepsilonε-贪婪方法。
实验一
为评估贪婪方法与 ε\varepsilonε-贪婪方法的性能,作者在"10臂测试平台"上进行了实验。该测试平台包含2000个独立生成的10臂老虎机问题:
- 每个动作的真实价值 q_\*(a) 从均值为0、方差为1的正态分布中随机生成;
- 每次选择动作后,实际奖励 R_t 从均值为 q_\*(A_t) 、方差为1的正态分布中采样。

图2.1: 10臂测试平台中的一个老虎机问题示例。十个动作中每个动作的真实值 q∗(a)q_*(a)q∗(a) 是根据均值为0、方差为1的正态分布选取的,随后实际奖励根据均值为 q∗(a)q_*(a)q∗(a)、方差为1的正态分布选取,如灰色分布所示。
每个学习算法在每个问题上运行1000个时间步,称为一次"运行";2000次独立运行的结果取平均,用于评估算法的平均性能。
实验比较了:
- 贪婪方法(始终选择当前估计值最高的动作);
- 两种 ε\varepsilonε-贪婪方法(ε=0.1\varepsilon = 0.1ε=0.1 和 ε=0.01\varepsilon = 0.01ε=0.01);
- 所有方法均使用样本平均法估计动作价值。

图2.2 :比较了贪婪方法与两种ε\varepsilonε-贪婪方法(ε=0.01\varepsilon = 0.01ε=0.01 和 ε=0.1\varepsilon = 0.1ε=0.1)在10臂测试平台上的表现。所有方法均使用样本平均法来估计动作价值。上图显示了期望奖励随经验增长的情况。贪婪方法在最开始略微提升更快,但随后趋于平稳,且稳定在较低水平。其每步平均奖励仅为约1,而该测试平台上的最优可能值约为1.55。贪婪方法在长期表现较差,因为它常常陷入执行次优动作的情况。
主要结果:
-
贪婪方法:
- 初期提升较快,但很快陷入局部最优;
- 在约三分之二的任务中未能识别最优动作;
- 长期平均每步奖励约为1(远低于最优值约1.55);
- 因缺乏探索,常被次优动作"锁定"。
-
ε\varepsilonε-贪婪方法:
- 通过持续探索,能更可靠地发现最优动作;
- ε=0.1\varepsilon = 0.1ε=0.1:探索频繁,更快找到最优动作,但最多仅以91%的概率选择最优动作;
- ε=0.01\varepsilon = 0.01ε=0.01:探索较少,初期进展慢,但长期性能优于 ε=0.1\varepsilon = 0.1ε=0.1;
- 可通过随时间降低 ε\varepsilonε 来兼顾探索与利用。
关键结论:
- ε\varepsilonε-贪婪方法在长期表现上显著优于纯贪婪方法;
- 探索的重要性取决于任务特性:
- 奖励噪声越大(方差高),越需要探索;
- 即使在确定性环境中,若任务非平稳(动作价值随时间变化),探索仍必不可少;
- 在强化学习中,由于策略演化导致决策任务动态变化,探索与利用的平衡是必要且普遍的要求。
以下是对你提供的"2.4 增量实现"内容的系统化学习笔记整理,适合用于复习、理解与后续扩展。
增量实现
在强化学习中,动作价值方法通过估计每个动作的期望奖励来指导决策。最直接的方式是将动作价值 Q(a) 估计为该动作所获得奖励的样本平均值 。但若每次更新都重新计算所有历史奖励的平均值,会导致:内存消耗随时间增长 和每步计算量逐渐增加 因此引入增量更新。
设某动作被选择 n-1 次后,其价值估计为:
Qn=R1+R2+⋯+Rn−1n−1 Q_n = \frac{R_1 + R_2 + \cdots + R_{n-1}}{n-1} Qn=n−1R1+R2+⋯+Rn−1
当第 n 次选择该动作并获得奖励 R_n 后,新的估计应为:
Qn+1=1n∑i=1nRi Q_{n+1} = \frac{1}{n} \sum_{i=1}^{n} R_i Qn+1=n1i=1∑nRi
将其改写为仅依赖旧估计 Q_n 和新奖励 R_n 的形式:
Qn+1=1n(Rn+∑i=1n−1Ri)=1n(Rn+(n−1)⋅1n−1∑i=1n−1Ri)=1n(Rn+(n−1)Qn)=1n(Rn+nQn−Qn)=Qn+1n(Rn−Qn) \begin{align*} Q_{n+1} &= \frac{1}{n} \left( R_n + \sum_{i=1}^{n-1} R_i \right) \\ &= \frac{1}{n} \left( R_n + (n-1) \cdot \frac{1}{n-1} \sum_{i=1}^{n-1} R_i \right) \\ &= \frac{1}{n} \left( R_n + (n-1) Q_n \right) \\ &= \frac{1}{n} \left( R_n + n Q_n - Q_n \right) \\ &= Q_n + \frac{1}{n} (R_n - Q_n) \end{align*} Qn+1=n1(Rn+i=1∑n−1Ri)=n1(Rn+(n−1)⋅n−11i=1∑n−1Ri)=n1(Rn+(n−1)Qn)=n1(Rn+nQn−Qn)=Qn+n1(Rn−Qn)
Qn+1=Qn+1n[Rn−Qn](2.3) \boxed{Q_{n+1} = Q_n + \frac{1}{n} [R_n - Q_n]} \tag{2.3} Qn+1=Qn+n1[Rn−Qn](2.3)
即使 n = 1 ,公式也成立(此时 Q_2 = R_1 ,无论初始 Q_1 是什么)。
通用更新形式
公式 (2.3) 属于一个更广泛的学习模式:
新估计值←旧估计值+α×[目标−旧估计值](2.4) \boxed{\text{新估计值} \leftarrow \text{旧估计值} + \alpha \times [\text{目标} - \text{旧估计值}]} \tag{2.4} 新估计值←旧估计值+α×[目标−旧估计值](2.4)
其中:
-
目标−旧估计值\]\[\\text{目标} - \\text{旧估计值}\]\[目标−旧估计值\]:称为**误差项**(error),表示当前估计与新信息之间的差距
在样本平均法中,α=1n\alpha = \frac{1}{n}α=n1,即随着观测次数增加,每次更新的影响逐渐减小。
多臂老虎机伪代码
使用增量样本平均法 + ε\varepsilonε-贪婪策略
text
初始化:
对每个动作 a ∈ {1, 2, ..., k}:
Q(a) ← 0 // 动作价值估计
N(a) ← 0 // 动作 a 被选择的次数
重复执行(每一步):
以概率 1−ε:
A ← argmax_{a} Q(a) // 选择估计价值最高的动作(打破平局随机)
以概率 ε:
A ← 随机选择一个动作 // 从所有动作中均匀随机选择
R ← bandit(A) // 执行动作 A,获得奖励
N(A) ← N(A) + 1 // 更新动作 A 的选择次数
Q(A) ← Q(A) + (1 / N(A)) × [R − Q(A)] // 增量更新价值估计