资讯动态

强化学习入门:从奖励假设到MDP,吃透核心概念

发布时间:2026/10/15 12:47:38 来源:尧图企业网站定制
1. 从“试错”说起为什么强化学习值得单独拎出来学很多人第一次接触机器学习脑子里装的都是“给一堆数据让模型学会分类或预测”。这套思路叫监督学习确实好用但它有个隐含前提——你得先有一批带标签的样本。可现实里大量问题根本给不出标签下棋时没人告诉你这一步是不是“最优解”机器人走路时也没人实时标注“这个关节角度对不对”。这时候强化学习就登场了。强化学习的核心画面其实特别朴素一个智能体Agent在某个环境Environment里不断做动作Action环境会返回一个新的状态State和一个奖励Reward智能体根据奖励调整自己的策略目标是让长期累积的奖励最大化。听起来像不像训练小狗做对了给零食做错了没得吃久而久之它就学会了哪些行为能换来零食。强化学习就是把这套“试错奖励”的机制数学化、工程化。我刚开始看David Silver这门课时最大的感受是它不像很多教程一上来就甩公式而是先把“强化学习到底在解决什么问题”讲透。这门课的第一讲基本概念看似简单实则是整个领域的骨架。很多人后面学不下去不是因为数学太难而是因为一开始就没把“状态、动作、奖励、策略、价值”这几个词之间的关系理顺。这篇笔记就是围绕这些基本概念展开把每个术语背后的直觉、数学定义、以及它们在实际问题里怎么对应一层层拆开。适合刚入门强化学习、或者学了一阵子但总觉得概念模糊的人。2. 奖励假设所有目标都能被一个数字概括2.1 奖励假设到底在假设什么David Silver在课里反复强调一个东西叫“奖励假设”Reward Hypothesis。它的表述是所有我们关心的目标都可以被“累积奖励的期望”来形式化描述。换句话说不管你是想让机器人走得更远、让交易策略赚得更多、还是让游戏角色得分更高最终都能翻译成一个数字信号——奖励。这个假设听起来有点霸道但它其实是强化学习能成立的前提。因为一旦目标不能用奖励表达整个“最大化累积奖励”的框架就无从谈起。我在实际做项目时踩过一个坑一开始把“让用户停留时间更长”直接当成奖励结果模型学会了用各种诱导性内容拖住用户短期指标好看长期口碑崩了。后来才明白奖励设计本身就是强化学习里最考验人的环节它决定了智能体最终会学成什么样。提示奖励假设不是让你随便设一个数字就完事而是要求你认真思考“我真正想要的是什么”并把它拆解成可累积、可观测的信号。2.2 奖励、回报与折扣因子三个容易混淆的概念很多人会把“奖励”Reward和“回报”Return混为一谈。奖励是每一步环境给的即时反馈记作 ( R_t )。回报是从当前时刻开始未来所有奖励的累积记作 ( G_t )。如果任务有明确终点回报就是[ G_t R_{t1} R_{t2} \cdots R_T ]但很多任务没有终点或者我们更看重近期奖励于是引入折扣因子 ( \gamma )0到1之间[ G_t R_{t1} \gamma R_{t2} \gamma^2 R_{t3} \cdots ]折扣因子的作用用生活化的话说就是“未来的钱不如现在的钱值钱”。( \gamma ) 越接近0智能体越短视越接近1它越有耐心。我一般建议新手从0.9开始试这个值在多数任务里比较平衡。概念符号含义常见取值/说明奖励( R_t )单步即时反馈由环境设计者定义回报( G_t )从t时刻起的累积奖励带折扣或不带折扣折扣因子( \gamma )未来奖励的衰减系数通常0.9~0.992.3 为什么折扣因子不是可有可无的有人会问既然目标是最大化总奖励为什么还要打折直接加总不行吗在有限步任务里确实可以但在无限步或步数很长的任务里如果不打折回报可能发散到无穷大数学上就没法比较策略优劣了。折扣因子还带来一个实际好处它让智能体在“眼前利益”和“长远利益”之间做权衡。比如下棋时为了十步之后将死对方可以放弃当前吃一个子的即时奖励这就是 ( \gamma ) 在起作用。3. 智能体的“记忆”与“决策”状态、观测与策略3.1 状态和观测不是一回事状态State是环境的完整描述观测Observation是智能体实际看到的信息。很多教程把这两个词混用导致后面学部分可观测马尔可夫决策过程POMDP时一头雾水。举个直观例子你在玩一个第一人称射击游戏游戏内部记录了所有角色的位置、血量、弹药这是完整状态但你屏幕上只能看到视野范围内的画面这是观测。如果观测等于状态问题就是完全可观测的否则就是部分可观测的。David Silver在课里用“环境状态”和“智能体状态”来区分这两者。智能体状态是它自己维护的、用来做决策的信息可以是最近几帧观测的拼接也可以是循环神经网络的隐状态。这个区分非常关键因为现实中几乎所有的强化学习问题都是部分可观测的你不可能拿到环境的全部信息。3.2 策略从状态到动作的映射策略Policy是强化学习里最核心的概念之一记作 ( \pi )。它定义了智能体在每个状态下该做什么动作。策略分两种确定性策略( a \pi(s) )给定状态动作唯一确定。随机性策略( \pi(a|s) P[A_t a | S_t s] )给定状态动作是一个概率分布。随机性策略在实际中更常用因为它天然带有探索能力。比如在石头剪刀布游戏里如果你的策略是确定性的对手很快就能摸清规律而随机策略让你不可预测。我在训练一个简单的对抗智能体时一开始用确定性策略结果它很快被对手针对后来改成随机策略表现立刻稳定了很多。3.3 价值函数给“好坏”一个可计算的度量价值函数Value Function是对“某个状态或某个状态-动作对有多好”的量化估计。它分两个状态价值函数( v_\pi(s) )从状态s出发按照策略 ( \pi ) 走下去能拿到的期望回报。动作价值函数( q_\pi(s,a) )从状态s出发先执行动作a之后按照策略 ( \pi ) 走下去能拿到的期望回报。这两个函数的关系是[ v_\pi(s) \sum_a \pi(a|s) q_\pi(s,a) ]价值函数的意义在于它把“长期好坏”压缩成一个数字让策略比较和优化变得可行。没有价值函数你只能靠大量采样去估计策略好坏效率极低。这也是为什么几乎所有强化学习算法都绕不开价值估计。注意价值函数是对策略 ( \pi ) 的评估策略变了价值函数也要重新估计。这一点在理解策略迭代和价值迭代时特别重要。4. 马尔可夫决策过程把问题装进一个标准框架4.1 马尔可夫性未来只取决于现在马尔可夫性Markov Property是说给定当前状态未来与过去无关。用条件概率写就是[ P[S_{t1} | S_t] P[S_{t1} | S_1, S_2, \ldots, S_t] ]这个假设极大简化了问题。如果没有它智能体做决策时得记住全部历史计算量和存储量都爆炸。马尔可夫性让我们只需要关注当前状态就能做出最优决策。当然现实中很多问题不满足严格的马尔可夫性但我们可以通过设计状态表示比如堆叠最近几帧来近似满足它。4.2 MDP的五元组S、A、P、R、γ一个马尔可夫决策过程MDP由五个元素组成元素符号含义状态集( S )所有可能状态的集合动作集( A )所有可能动作的集合转移概率( P )( P(s奖励函数( R )( R(s,a) ) 或 ( R(s,a,s) )执行动作后获得的即时奖励折扣因子( \gamma )未来奖励的衰减系数这五个元素一定义强化学习问题就变成了一个数学上可分析的对象。David Silver在课里反复用这个框架去套各种例子比如网格世界、机器人控制、棋类游戏。我建议新手也养成这个习惯拿到一个新问题先问自己“状态是什么、动作是什么、奖励怎么设、转移是否已知、折扣取多少”。把这五个问题回答清楚问题就理清了一半。4.3 从MDP到实际问题的映射练习拿一个简单的库存管理问题举例。状态可以是当前库存量和最近几天的销量动作是“补货多少”或“不补货”奖励是“利润减去库存成本”转移概率由销量分布决定折扣因子取0.95表示对未来利润的适度折现。这样一套下来一个看似模糊的“怎么管理库存”问题就变成了一个可计算的MDP。我在实际做这类建模时最花时间的往往不是算法选型而是把业务语言翻译成MDP语言。这个翻译过程做好了后面的事就顺了。5. 探索与利用强化学习里最经典的权衡5.1 为什么不能只选当前看起来最好的探索Exploration和利用Exploitation的权衡是强化学习区别于监督学习的一个标志性难题。利用是指选当前估计价值最高的动作探索是指尝试那些还没充分尝试过的动作。如果你只利用可能会卡在局部最优如果你只探索又永远拿不到高奖励。用一个生活场景解释你每天中午都去同一家餐厅吃饭这是利用因为你知道它味道不错但如果你偶尔去试试新开的店这是探索可能发现更好的也可能踩雷。强化学习要解决的就是怎么在两者之间找到平衡让长期收益最大。5.2 ε-贪心最简单也最常用的探索策略ε-贪心ε-greedy是最容易实现的探索策略以概率 ( \varepsilon ) 随机选一个动作以概率 ( 1-\varepsilon ) 选当前估计价值最高的动作。( \varepsilon ) 通常取0.1或0.01也可以随着训练逐渐减小。import random def epsilon_greedy(q_values, epsilon): if random.random() epsilon: return random.randint(0, len(q_values) - 1) else: return max(range(len(q_values)), keylambda i: q_values[i])这个策略简单到几乎不需要解释但它在很多任务里表现并不差。我试过在几个小规模问题上用ε-贪心只要 ( \varepsilon ) 衰减得当效果和更复杂的探索方法差距不大。它的缺点是探索是“盲目”的不看历史信息所以在状态空间很大时效率偏低。5.3 乐观初始值与UCB更聪明的探索思路乐观初始值Optimistic Initial Values的思路是把每个动作的初始价值估计设得偏高这样智能体一开始会倾向于尝试那些还没试过的动作因为它们的估计值看起来更高。随着尝试次数增加估计值回落到真实水平探索自然减少。UCBUpper Confidence Bound则是在选择动作时把“估计价值”和“不确定性”结合起来[ A_t \arg\max_a \left[ Q_t(a) c \sqrt{\frac{\ln t}{N_t(a)}} \right] ]其中 ( N_t(a) ) 是动作a被选中的次数。这个公式的意思是一个动作如果被选得少它的不确定性项就大就更值得探索。UCB在多臂老虎机问题里表现很好但在完整MDP里用起来会复杂一些因为状态之间有关联。提示探索策略的选择没有绝对优劣关键看你的任务规模、状态空间大小和计算预算。小问题用ε-贪心足够大问题可能需要更精细的探索机制。6. 动态规划与无模型方法的分水岭6.1 已知模型时策略迭代与价值迭代如果MDP的五元组全都已知尤其是转移概率 ( P ) 和奖励函数 ( R ) 已知那问题就变成了一个规划问题可以用动态规划Dynamic Programming求解。两个经典算法是策略迭代和价值迭代。策略迭代分两步策略评估给定策略计算其价值函数和策略改进根据价值函数贪心地更新策略。反复迭代直到策略不再变化。价值迭代则是把这两步合并直接迭代贝尔曼最优方程[ v_{k1}(s) \max_a \left[ R(s,a) \gamma \sum_{s} P(s|s,a) v_k(s) \right] ]这两个算法在理论上很漂亮但实际中很少直接用因为转移概率往往未知而且状态空间一大计算量就爆炸。6.2 模型未知时从蒙特卡洛到时序差分当模型未知时智能体只能通过与环境交互来采样。蒙特卡洛Monte Carlo方法是用完整回合的回报来估计价值[ V(s) \leftarrow V(s) \alpha [G_t - V(s)] ]时序差分Temporal DifferenceTD则是用一步奖励加下一状态的价值估计来更新[ V(s) \leftarrow V(s) \alpha [R_{t1} \gamma V(s) - V(s)] ]TD结合了蒙特卡洛的采样和动态规划的自举bootstrapping是很多现代强化学习算法的基础。David Silver在课里对TD的讲解非常细致他用了大量例子对比MC和TD的差异。我自己的体会是MC方差大但无偏TD方差小但有偏实际中TD用得更多因为它能在线学习不需要等回合结束。6.3 一张表看清几类方法的区别方法是否需要模型是否等回合结束偏差与方差典型算法动态规划需要不需要无采样偏差策略迭代、价值迭代蒙特卡洛不需要需要无偏但高方差MC控制时序差分不需要不需要有偏但低方差SARSA、Q-learning这张表是我在复习时自己整理的它帮我快速定位一个算法属于哪一类。建议你也动手整理一份比单纯看课印象深得多。7. 一些我踩过的概念坑与学习建议7.1 把“状态”和“观测”混用导致后面全乱这是我最早踩的坑。刚开始学的时候看到“状态”就默认是智能体看到的东西结果学到POMDP时完全转不过弯。后来强迫自己每次写代码时都区分env_state和agent_obs才慢慢理顺。如果你也在学这门课建议从第一讲开始就严格区分这两个词后面会省很多力气。7.2 折扣因子设成1导致训练不稳定有一次我做一个回合制任务想着“反正有终点折扣因子设1就行”结果训练过程中回报方差极大价值函数估计飘得厉害。后来把 ( \gamma ) 改成0.99训练立刻稳定了很多。折扣因子不只是数学上的衰减它还在控制价值估计的方差。除非你的任务确实很短且奖励尺度很稳定否则不建议把 ( \gamma ) 设成1。7.3 奖励设计不要一步到位要迭代很多人一开始就想设计一个完美的奖励函数结果卡住不动。我的经验是先设计一个粗糙但能跑的奖励让智能体先学起来观察它的行为再逐步调整。强化学习的奖励设计是一个迭代过程不是一锤子买卖。David Silver在课里也提到奖励假设是框架但具体怎么设需要结合领域知识反复试验。7.4 基本概念没吃透后面算法都是空中楼阁这门课后面会讲Q-learning、策略梯度、Actor-Critic等算法但所有这些算法都建立在第一讲的基本概念之上。如果你对价值函数、贝尔曼方程、探索与利用这些概念还模棱两可后面看算法推导会很痛苦。我的建议是第一讲至少看两遍把每个术语用自己的话复述一遍最好能举出一个自己的例子。这个投入在后面会加倍回报给你。最后分享一个我自己的学习习惯每学完一个概念就试着用三句话向一个完全不懂的人解释它。如果你能解释清楚说明你真懂了如果解释到一半卡住那就是还没吃透。强化学习的基本概念不多但每一个都值得反复咀嚼。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑