强化学习数学原理第一章:基本概念、回报与马尔可夫性质详解

发布时间:2026/10/22 5:47:45

强化学习数学原理第一章:基本概念、回报与马尔可夫性质详解 最近在系统地重刷《强化学习的数学原理》中文版发现一个挺有意思的现象这本书越往后公式越密集贝尔曼方程、策略迭代、时序差分……每一章都能劝退一批人但真正的分水岭其实在第一章。第一章叫“基本概念”看起来只是把状态、动作、奖励、策略、回报这些名词过一遍很多同学两周翻完就急着去推公式结果学到马尔可夫决策过程时又回头补课。我前两遍就是这样直到第三遍才意识到第一章里每一个符号约定都在为后面的证明埋伏笔跳过任何一句后面看推导都像缺了一块地图。这篇笔记不打算复述原书的全部内容而是把我重读时觉得“值得停下来想想”的地方整理出来——包括我自己踩过的理解误区、几个容易混淆的符号以及从这一章出发去看整本书的视角。适合正在读这本书、或者准备系统学强化学习数学基础的人参考。如果你只是想快速调包跑demo这一章似乎用不上但如果你想看懂论文里那些公式第一章就是全部故事的起点。1. 翻开这一章之前先弄清楚强化学习到底在求解什么问题1.1 它不是监督学习的变体是另一类问题很多人是从监督学习转过来的。监督学习给你一堆 (x, y) 对目标是学一个从输入 x 到标签 y 的映射模型好坏用误差来衡量。强化学习的输入输出关系没这么干净没有成对标签只有一串状态、动作、奖励而且奖励往往延迟出现。你走了一步棋可能二十步之后才知道这步好不好。所以强化学习的核心不是“拟合”而是“在交互中做出一系列决策使累积奖励最大”。这个区别必须在一开始想清楚否则后面读到“回报”和“策略梯度”时总忍不住往监督学习的框架里套。我当年第一次接触这个区别时是在一个简单的迷宫任务里悟到的。迷宫里每一步给一个很小的惩罚终点给一个大奖励监督学习根本没法直接学因为没有“正确动作”的标签只有最终一个延迟奖励信号。强化学习的做法是通过反复试错去估计“哪个状态更接近终点”“哪个动作更可能通向大奖励”这本质上是一个序贯决策问题而不是一个输入输出映射问题。1.2 智能体与环境的交互循环从s0到r1的第一处细节第一章一定会画那张经典图智能体在时刻 t 观测到状态 s_t选择动作 a_t环境收到后回传奖励 r_{t1} 和下一个状态 s_{t1}循环往复。这里第一处容易看漏的细节是下标奖励和时间差一个节拍。r_{t1} 是 s_t 和 a_t 被执行完的结果不是在 t 时刻凭空出现的。很多数学推导里“当前步的奖励”到底写作 r_t 还是 r_{t1}不同教材习惯不同但语义都指“动作之后得到的那个标量”。我第一次推贝尔曼公式时因为没注意这个错位符号匹配了很久。这个循环在实际代码里特别直观。常见环境库的交互接口里通常就是执行一个动作后返回下一状态、奖励、是否结束这几个值这个返回的奖励就对应书里的 r_{t1}它由上一轮的 s_t 和 a_t 共同决定。看书时觉得抽象跑一次交互循环下标问题马上就通了。所以读第一章时我建议手边备一个极简的环境交互示例把 s_t、a_t、r_{t1}、s_{t1} 按顺序抄下来比单纯看图印象深刻得多。1.3 所以第一章的“基本概念”不是在凑页数从“求解什么问题”的角度看第一章其实就是把整个问题定义说清楚用状态、动作、奖励描述交互用策略描述智能体的行为方式用回报描述优化目标。它没有一个特别吓人的公式但所有后续章节都在为“如何找到最优策略”服务。我建议读第一章时时刻记着主线问题定义 → 数学符号 → 优化目标 → 算法。别把注意力全放在背符号上先看它解决什么问题。顺着这条线走后面引入价值函数、贝尔曼方程时你会有一种“早就在这里等着了”的感觉。2. “状态-动作-奖励”三元组整个强化学习的原材料2.1 状态是什么不是“画面”本身而是可用于决策的信息集合在入门阶段最容易把“状态”理解成“眼睛看到的东西”。在第一章的抽象层面状态是智能体对环境的某种刻画是能帮助决策的全部信息。围棋的状态是一张 19×19 的盘面机器人控制里状态可能是关节角度和角速度推荐系统里状态可能是用户最近浏览序列的压缩特征。同一个问题也可以用不同粒度的状态来描述状态定义得好不好直接决定后面学起来难不难。第一章不讨论状态表征学习但你要养成一个习惯拿到一个强化学习问题先问“状态里到底放了什么信息”。这个问题的答案往往决定算法选型。比如状态是完整可观测的向量可以直接用价值网络状态如果是高维图像就要考虑卷积结构状态如果缺失关键信息就得想清楚这个马尔可夫假设到底成不成立。第一章可能只给你一个抽象定义但你在笔记本上写下的每一个状态定义都会在后面转化为输入向量的维度、网络结构的选择甚至训练效果的差异。2.2 动作空间离散和连续直接影响后面算法的思路动作的类型通常分成离散动作和连续动作两类。离散动作在游戏和棋类里常见比如网格世界只能上下左右连续动作出现在机器人控制、自动驾驶里比如给油门踏板一个 0 到 1 之间的实数。这个区分为什么值得在第一章留意因为后面几乎所有算法都在处理“动作空间长什么样”离散空间可以用表格或策略网络输出分类概率连续空间往往要输出高斯分布的均值和方差。现在先理解到“动作就是智能体可以改变环境的手段”后面看到策略表示时再回来对照。我自己的体会是很多人学 DQN 系列算法时觉得自然学到 DDPG、PPO 这些连续控制算法时突然开始懵很大程度上是因为在第一章没有建立“动作空间类型”这个坐标系。如果你早早在笔记里写下“离散空间用分布、连续空间用参数化分布”后面看论文时就不会被策略输出的形式搞晕。2.3 奖励一个标量但语义很重奖励是环境反馈给智能体的实时信号定义为标量。强化学习几乎所有数学推导都建立在这个标量假设上。奖励不是智能体自己给的是环境根据规则产生的。很多人会在这里产生一个误区以为“奖励就是我设置的目标”。其实奖励更像是环境的局部反馈一次动作给一次而真正的目标通常是整个交互过程的累积回报。比如训练一个智能体走迷宫你可以每前进一步给一个小的惩罚到达终点给一个大奖励但“走到终点”这件事本身不是奖励而是由回报体现的长期目标。关于奖励第一章不会花太多篇幅讲设计技巧但强烈建议先记住循环图里奖励的位置——它总是在动作之后出现。这个位置感会直接影响你对回报公式的理解。到后面你会看到稀疏奖励、奖励塑形、奖励黑客这些话题都是基于这个基础位置展开的。现在能分清“单步奖励”和“累积回报”已经比很多快进型选手强了。2.4 一点个人体会先别纠结“状态怎么编码”学习第一章时常见的问题是“如果状态是图像怎么办”“如果动作很多怎么办”。这些在后续章节各自有对应解法第一章用数学符号统一描述它们就够了。我见过很多同学在第一章就卡在状态编码上非要搞清楚卷积网络怎么处理图像其实没必要。这章的任务是把三元组的关系刻在脑子里而不是实现细节。你只需要知道状态是一个集合里的元素动作是一个集合里的元素奖励是一个标量。这个抽象层级是整本书的地基。3. 策略这一章里最容易被低估的主角3.1 π(a|s) 与 π(s,a)同一个策略的两种写法第一章很快会引入策略 π。中文书里你会看到两种写法π(a|s) 和 π(s,a)。前者明确表示“给定状态 s 时选择动作 a 的条件概率”后者则经常被简写成“策略函数”。我第一次读的时候很困惑为什么同一章里符号不统一。后来明白了π(a|s) 强调概率语义π(s,a) 是一种简化记号不同教材习惯不同读到论文时还会看到 π_θ 等形式。你要掌握的其实是一个意思策略描述了智能体在每个状态下如何选择动作。代码里对应策略网络前向传播输出的一个概率分布离散情形下就是 softmax 之后的结果。如果你和我一样学过一点概率论可以这样理解π(a|s) 是一个条件概率分布它对所有可能的 a 求和等于 1π(s,a) 则是一个关于“状态-动作对”的函数记号在某些上下文里也指联合分布。读的时候盯住上下文不要被符号吓到。后面策略梯度定理里那个 log π(a|s) 的意义提前用“条件概率”去读会顺畅很多。3.2 为什么策略必须是一个概率分布刚学的时候我有个疑问最优行为明明是确定的为什么策略要用概率分布表示原因至少有三个。第一交互过程中存在随机性环境的转移是随机的所以策略保留概率才能处理不确定性。第二强化学习需要探索如果策略完全确定智能体只会重复当前最优的动作永远发现不了更优的选项保持一定随机性才能对未知区域进行采样。第三在很多理论推导中随机策略更自然地写进期望里比如策略梯度定理中策略的对数概率会出现。用概率分布描述策略是一种数学上省事、实现上也通用的做法。确定性策略可以看成概率分布的退化情况某个动作概率为 1其余为 0。一个生活化的类比策略像一份“在各种局面下的行动预案”而不是一个“当前动作”。预案里每个局面下可能列了好几种应对方式有的方式概率高有的概率低。这份预案好不好要看长期表现而不是某一次执行的结果。这个类比帮我避开了很多困惑比如为什么同一个策略可以走出不同的轨迹、为什么评价策略要用期望而不是单次结果。3.3 强化学习的终极目标找到最优策略 π*第一章通常会给一个式子找到一个策略 π使得从任意初始状态出发的期望回报最大这个最优策略记作 π*。这里有一个新手容易忽略的点我们要优化的是一整个策略而不是单个动作的好坏。单步动作的价值可以用立即奖励估计但完整策略的价值要看长期回报。这就是为什么同一个状态 s不同策略下的表现可以天差地别。第一章不会展开怎么求 π*但“策略是最优化的对象”这层定位值得在笔记开头就写下。我还记得自己第一次学着去比较两个策略好坏不是比较它们在某个状态下的动作而是比较它们从同一个初始状态出发、各跑很多次之后得到的平均回报。这个视角贯穿整本书价值函数、策略迭代、Q-learning本质上都是在回答“当前策略好不好”和“能不能更好”。把策略当成主角第一章就成功了一半。4. 回报与折扣因子为什么未来奖励要打折4.1 先从直觉理解 G_t 这个求和公式给定一条交互轨迹 s_t, a_t, r_{t1}, s_{t1}, a_{t1}, r_{t2}, ...回报定义为从当前时刻开始的折扣累积奖励G_t r_{t1} γ r_{t2} γ² r_{t3} ...。直觉上很好理解未来的奖励要打折扣今天的奖励比明天的奖励更值钱。但为什么非要打折呢教材给了一半理由如果序列无限长不打折的总和可能发散。不过更重要的是折扣因子 γ 还表达了决策者的“远视程度”。第一次看到这个公式时我觉得它像金融里的现值计算今天的钱比未来的钱更值钱把未来现金流折现到现在。强化学习和它有相似之处但也有本质区别这里的折现不只是财务概念它还决定了一个策略在数学上是否良定义、算法能否收敛。所以别把 γ 当成一个可有可无的系数它是整个回报定义的组成部分。4.2 γ0 与 γ 接近 1两个极端场景γ0 时智能体只看当前一步的奖励 r_{t1}后面的全部忽略。这时候策略可能会选“立刻收益最高”的动作哪怕它导致后面灾难。γ 接近 1 时未来二十步的奖励都接近全额计入智能体会愿意为长期收益牺牲眼前利益。举个简单例子一个迷宫场景里入口右边有 1 块钱左边要走很多步才发现 10 块钱γ0 的智能体永远选右边γ0.9 时只要 10 块钱被折扣后仍大于 1它就可能选左边。不需要精确计算理解折扣因子在“眼前收益”和“长期收益”之间做权衡就够了。这个权衡在实际调参时非常明显。回合制游戏里 γ 取 0.99 很常见因为一个回合可能上百步太小的折扣会让长远收益在几十步后几乎归零一些单步决策问题里γ 取 0 甚至都有道理。重要的是你得知道调 γ 不只是调一个数字而是在声明“你希望智能体为多远以后的未来负责”。4.3 折扣因子也是数学上的收敛开关从数学角度看如果每一步奖励都有上下界比如 |r| ≤ R_max那么 G_t 的每一项都被 γ 的幂次压制。只要 0 ≤ γ 1无限级数求和就是有界的保证回报是一个良定义的实数。这个性质在后面推导贝尔曼期望方程、证明策略迭代收敛时都用得上。很多初学者觉得折扣因子只是个“拍脑袋调的超参数”其实它在理论层面承担了让期望回报可定义、可求极限的角色。当然实践中 γ 也确实有调参的余地不同问题里 0.9、0.99、0.999 都是常见取值但你要知道它为什么存在而不是只会填数字。我当时自己动手算过一个小例子γ0.5奖励序列是 1, 2, 3算出来 G_1 1 0.5×2 0.25×3 3.75。看似简单但这个计算把我从“看懂公式”推进到了“会用公式”。后面读贝尔曼公式的时候我觉得自己比那些只背定义的同学多了一层直观感受知道求和拆开之后会发生什么。4.4 一个容易被忽略的角度回报本身是随机变量G_t 的每一项 r 都是随机变量因为它们由环境转移的随机性决定。所以 G_t 也是一个随机变量我们真正关心的其实是它的期望。第一章很多地方会在“回报”和“期望回报”之间来回切换我建议读到后文时始终记住目标函数通常是 E[G_t]而不是某一条轨迹上的回报。这个区分对理解价值函数尤其关键。很多入门博客会用一条轨迹的回报来举例有的同学就误以为强化学习就是“把一条轨迹上的奖励加起来”。但实际训练中同一策略每次跑出来的轨迹都可能不同必须用多轮交互的期望来衡量策略。第一章可能只在某个角落里提到“期望”两个字但它是后面价值函数定义的核心。我现在每次读推导只要看到 E 符号就会条件反射地问一句这个期望是对哪个分布取的这个习惯就是从第一章的随机回报概念开始建立的。5. 马尔可夫性质一笔带过但绝不能放过的假设5.1 “未来只取决于当前”的直觉与反直觉第一章介绍马尔可夫性质通常就一句话下一个状态只与当前状态和当前动作有关与更早的历史无关。听起来像废话其实是个很强的假设。棋类是很好的例子围棋的当前局面已经完整包含了所有历史信息不需要知道怎么走到这一步的。但现实问题不一定满足这个条件比如金融交易里完全用当前价格预测未来走势往往不够历史波动率可能更重要。强化学习教材在入门阶段默认问题满足马尔可夫性质当状态表示足够充分时前序交互信息都浓缩在状态里了。如果状态信息不充分就会出现部分可观测的情况那要等 POMDP 的框架来解决第一章不碰。第一次读到“与更早的历史无关”时我脑子里冒出来的反例是围棋里“打劫”的规则需要记住之前的局面似乎不是马尔可夫的。但后来想清楚了如果把整个棋盘、当前提子顺序、甚至打劫禁着点都放进状态定义里那么下一状态的确只依赖这个完整状态历史信息被编码进了状态里。所以马尔可夫性质不是一个对错问题而是一个“你的状态描述是否足够”的问题。5.2 状态转移概率模型的分水岭一旦承认马尔可夫性质环境的动力学就可以写成转移概率 P(s|s,a)给定当前状态 s 和动作 a下一个状态 s 的概率分布。这是第一章里第一个明确点出“随机性在环境”的符号。很多人在学到 model-based 和 model-free 才回头理解这个概率其实它一直在背景里。后面价值函数的定义中会出现 E_{s~P(·|s,a)} 这种期望含义就是对下一个状态按转移概率取平均。我建议第一遍读到这里时停下来手写一个小例子一个三状态格子手动算一下某个策略下的转移概率分布这比背诵定义管用得多。这里有一个关键区分值得写下来P 描述环境“怎么变”π 描述智能体“怎么选”。两个都是概率分布但作用对象完全不同。我自己最开始总把这俩搞混后来用一个土办法记住P 是环境的身体π 是智能体的脑子。环境负责响应动作产生新状态智能体负责根据状态挑动作。第一章里这两个符号一起出现时整个交互循环就完整了。5.3 为什么它“轻”到只有几句话却贯穿全书第一章几乎没有展开讲 MDP因为那是第二章的内容。但马尔可夫性质这个假设是后面一切推导的前提贝尔曼方程里价值函数之所以能递归展开就是因为它只需要当前状态就够策略评估之所以能写成线性方程组也是因为转移概率只依赖当前步。我看很多人在第二章第四章之间迷路回来补课才发现根子全在第一章那两段话里状态转移概率的定义 期望回报的定义。这两个定义一结合价值函数就呼之欲出。所以我的建议是读到这一节时哪怕原书只给了两段话也要自己多花点时间。试着写下一个三状态转移概率矩阵再想一下“如果状态不够马尔可夫我的估计会发生什么偏差”。这个思考过程不会白费它会在你学到部分可观测问题和 RNN 策略时产生共鸣。第一章里最容易被跳过的地方恰恰是全书最硬的骨架。6. 第一章符号速查我背完就不混了的记忆方法6.1 一张符号表后面推导全靠它校准我现在把第一章出现最频繁的符号列举如下。这个表不是抄教材是我自己的整理版本后面几章每次推到公式不明晰时我都用这个表快速校准。符号含义常见范围/示例S状态集合棋盘局面、传感器读数A动作集合离散动作列表或连续区间r即时奖励标量可正可负P(ss,a)状态转移概率π(as)策略γ折扣因子[0,1)常见0.9、0.99G_t折扣回报从t时刻开始的加权奖励和这张表我会建议你贴在第一页笔记里。每次看推导卡住时不要去网上搜答案先回到这张表问自己这个符号到底表示什么它和前后符号的关系是什么很多卡壳其实只是符号语义没校准。6.2 最容易混淆的三组概念第一组是奖励 r 和回报 G。前者是单次反馈后者是累积折扣和翻译到代码里一个交互过程中产生的所有 reward 组成了一个数组G 是对这个数组的加权求和结果。第二组是转移概率 P 和策略 π。刚才说过P 描述环境怎么变π 描述智能体怎么选。我的记忆法是“P 是环境的身体π 是智能体的脑子”两个概率分布不要混在一个公式里。第三组是状态 s_t 和观测 o_t。第一章默认 s_t 就是可用于决策的充分信息观测可能是状态的一部分或一个映射在部分可观测问题里两者严格不同。初学阶段知道有这层区别就够了。这三组概念我都在不同阶段混淆过。尤其是奖励和回报——有一阵子写代码时我把每一步的 r 直接当成目标函数优化没有意识到目标函数应该是累积的期望回报训练效果自然很差。后来回到第一章重新看定义才意识到我在算法层搞错了优化对象。越是基础的区分越值得反复确认。6.3 三个实操建议帮你把这一章学到位第一别死记符号每个符号都用自己的话说一遍。比如 G_t“就是从现在起把每一步奖励按 γ 的幂打折再相加”说得通就说明真懂了。第二手动推一个极简例子。设 γ0.5奖励序列是 1, 2, 3自己算 G_1 等于多少。这种计算一分钟都不到但许多初学者翻完一章没有亲手算过一个数后来读论文到处卡。第三把“智能体-环境交互”循环画在笔记本第一页后面学策略迭代、Q-learning 时反复回来对照你会有一种“原来全是在这个圈上做文章”的贯通感。具体来说我建议你画完交互循环后在旁边写上三类问题状态是什么、动作是什么、奖励是什么。每遇到一个新问题都先按这个模板拆一遍。拆过十个问题之后你会发现自己看论文案例时直觉明显比之前准。第一章的内容不多但在这一章建立的提问方式会影响你读后续所有章节的速度。最后说点个人感觉比较深的事。我重学第一章最大的收获不是记住了符号而是发现这本书的思路其实很连贯它先用基本概念把问题定义清楚再用回报把目标写清楚再用马尔可夫性质把环境建模清楚后面所有算法都在这三个基座上长出来。所以如果你正在读这一章我建议别赶进度把每一个定义都试着用自己的话翻译一遍多想一步“这个概念在后面哪一步会被用到”。第一章慢一点整本书反而会快很多。
延伸阅读

更多相关文章

2026/10/22 5:47:45

哈希表从入门到实战:数组、Set、Map与四道经典题精讲

刷完数组和链表之后,我第一次真正感受到“数据结构”四个字的分量,就是在哈希表这一天。Day5这个专题安排得很实在:242题看起来是字符串题,实际上在教你用数组手写哈希表;349题直接把Set推到台前;202题表面…

2026/10/22 5:47:45

基于WMSST与MCNN-GRU的振动信号故障诊断方案

干过几年设备故障诊断,我越来越确认一件事:模型再花哨,信号表征拉胯,最后也是一堆高维噪声。今天要聊的这个项目,就是用 WMSST(加窗多尺度同步压缩变换)把一维振动信号变成多尺度高分辨率的时频…

2026/10/22 5:47:45

Agent工程栈成形:从Prompt胶水到声明式编排

1. 标题里的“编排成主角”不是修辞,而是工程范式的位移看到这个标题,很多人第一反应是:又一个蹭Agent热度的营销文案?但如果你真在10月7日前后盯过技术社区、GitHub Trending、Hugging Face模型库和几份开源Agent框架的commit日志…

2026/10/22 6:52:47

攻克SFFocusViewLayout布局难题:10个实战问题与完美解决方案

攻克SFFocusViewLayout布局难题:10个实战问题与完美解决方案 【免费下载链接】SFFocusViewLayout UICollectionViewLayout with focused content 项目地址: https://gitcode.com/gh_mirrors/sf/SFFocusViewLayout 引言:聚焦布局的痛点与解决方案 …

2026/10/21 4:53:08

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/22 0:01:49

电商智能运营体系从0到1:架构设计、落地步骤与避坑指南

前两年我们团队接了一个电商平台的运营中台项目,目标很直白:把过去靠运营拍脑袋做的选品、定价、发券、推活动这些事,逐步用数据算法和自动化流程代替。项目名字内部就叫“电商智能运营体系”。最近有不少朋友问我当时是怎么设计的、踩过哪些…

2026/10/22 0:01:49

若依框架AI代码生成不稳定?用Agent Skill三层结构+五步法搞定

最近一段时间,我一直想把后台管理系统里那些机械重复的增删改查代码交给AI去写。框架用的是若依,按理说这类业务代码模式非常固定,应该是AI最擅长的事情。可真试下来却不是那么回事——你让AI生成一个用户管理模块,它给出的Contro…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑