咱把目光拉回从零到最优的这个全过程。别以为那些算法有多神秘,说到底就是不断试错的过程。当环境这只“黑箱”完全是个未知数的时候,蒙特卡洛(MC)那就是解锁的神器。在这强化学习的世界里,甭管状态咋变、奖励是多少,只要能直接跟环境聊两句,MC 就能给你个差不多的值。它压根不依赖什么模型,全凭完整的 Episode 轨迹来“采样”,让 Agent 一边干一边学。和广义策略迭代(GPI)的路子一样,MC 也搞那两大循环:一个是先给策略画张“价值画像”,另一个就是想办法让策略更优。只要你给它足够的运行时间和多趟样本,平均回报迟早会逼近真实的期望值。 说到策略评估这块,目标其实挺简单:把固定的策略给它,用好几轮 Episode 跑出来的状态序列,给每个状态来张“价值画像”,就是这策略能拿到多少长期回报。数学上表示出来就是 S₁, A₁, R₂, S₂, A₂, R₃ 这种一长串状态动作的事儿,Gₜ 就是把之后的奖励都折现到了当前时刻。因为随机采样可能让同一地方跑好几趟,MC 也就分了两种玩法:First-visit 只记头一回的;Every-visit 是无论来几次都算进去。 实验告诉咱们,首次访问收敛得更快,所以更实用。不过别傻乎乎地把所有数据存起来求均值,太浪费内存了。MC 喜欢边采样边更新这种增量式的方式:V(s) 加个学习率乘以新样本带来的 G² 再减去原来的 V(s)。这招相当于维护了个滑动窗口的平均值,内存占得少。 策略提升这一步可就难了。冷启动和探索是两个让人头疼的痛点。策略定了每次就选一个动作?那很多状态动作对一辈子都见不着面了。MC 必须内置探索机制才行,常见的路子有三条:试探性出发、同轨策略 on-policy、离轨策略 off-policy。 试探性出发那个办法是先给每个(状态-动作)对一个固定概率,然后无限循环采样序列。虽然能打破冷启动的尴尬,但随机性限制了落地的地方。同轨策略 on-policy 那叫一个简单直白:比如 ε-贪心算法就是个典型例子。1-ε 的概率干最优动作,ε 的概率随便选别的。每轮更新完价值函数后立马拿它来优化策略。流程简单直观,特别适合小步快跑的在线学习。 至于离轨策略 off-policy 更高级了:采样策略(行为策略)和目标策略(要优化的)分开来搞。Agent 就站在巨人肩膀上学习:用成熟策略生成示范轨迹;在自己的价值函数上二次消化这些轨迹;最后用重要度采样校正一下分布差异。只要目标策略的动作集合能覆盖行为策略的所有动作(数学上那个式子表达),这事儿就能成。重要度采样就是把 π(a|s) 除以 π′(a|s) 算个比重 ρ。价值更新的时候乘以 ρ 就能把别人的轨迹转成自己的期望回报了。这种方式能兼容人类示范或者预训练模型,是快速适应新任务的好路子。 最后咱们总结一下 MC 的三把钥匙:无模型、蒙特卡洛积分、策略迭代。说白了就是不依赖环境 MDP 的细节,只要求能生成完整 Episode。用样本均值逼近真实期望的方法很老套但很管用。评估提升这一套流程循环起来,直到价值函数收敛或者到达上限为止。只要把这三把钥匙转起来,MC 就能在“黑箱”环境中一步步从次优走向最优。