☰
最优状态价值函数与最优策略:从贝尔曼方程到值迭代
2026/10/22 4:55:19 网站建设 项目流程

如果你已经磕磕绊绊看完了状态价值函数和贝尔曼方程,那这一篇就是你绕不开的下一站:最优状态价值函数和最优策略。学强化学习的人,十有八九第一次迷茫就发生在这里——因为前面还在讲“给定策略π怎么算价值”,突然就跳到了“在所有策略里选最好的”,中间那个“为什么能用max代替期望”“为什么贪心就是最优”“值迭代和策略迭代到底在干嘛”的问题,如果没人点透,很容易看完整章公式却不会动手算一个最简单的格子世界。

这篇我是按“系列第三篇”来写的,前面的内容默认你已经理解了 V^π(s) 的含义,知道贝尔曼方程怎么把“当前状态的价值”拆成“即时奖励 + 未来价值折现”。这篇要做的事情就是把问题往前推一步:不再问“这个策略下状态值是多少”,而是问“最好的情况下状态值是多少、最好的策略长什么样、怎么把它算出来”。内容会从定义、贝尔曼最优方程、最优策略判据,一直推到策略迭代和值迭代的完整实现,最后说一说我实际调试中踩过的坑。适合刚学完动态规划基础、正在啃理论但想快速上手验证的读者,也适合复习时想理清脉络的人。

1. 从“期望价值”到“最优价值”:这一步到底跨了什么

1.1 最优状态价值函数的定义没有你想的那么玄

先回到状态价值函数的定义。给定一个策略 π,状态 s 的价值 V^π(s) 是从 s 出发、之后一直按照 π 行动所得到的期望折扣回报:

V^π(s) = E_π [ G_t | S_t = s ]

这里的期望有两层:一层是策略 π 本身可能是随机的(比如 π(a|s)),另一层是环境转移 p(s'|s,a) 也可能是随机的。所以 V^π 描述的是“这个固定策略的长期表现”。

那什么是最优状态价值函数?一句话:在所有可能的策略里,让每个状态的价值都取到最大值的那个价值函数。写成:

V*(s) = max_π V^π(s),对任意状态 s

很多人第一次看到这个定义会有一个疑问:为什么是 max,而不是 min,也不是什么加权平均?

原因其实很朴素:智能体有选择权。环境不会替你做决策,策略是你自己定的。如果存在两种策略,一个让状态 s 的期望回报是 5,另一个是 8,那你没有任何理由选择前者(除非你是故意想输)。所以“最优”天然就是“在所有策略构成的集合里求上确界”。

打个比方:你有两家公司的offer,公司A的年薪期望是30万,公司B是50万,在不考虑其他因素的情况下,你会选B。那“最优年薪”就是50万。V*(s) 干的事情,就是把“选offer”这回事抽象成数学:在一个状态集合上,对每个状态都找出能带来最高期望回报的策略。

这里要特别注意一个细节:max 是作用在“策略空间”上的,不是作用在“动作空间”上的。你可能会想当然地把 V*(s) 理解成“在状态 s 选最好的动作 a,然后直接拿那个动作对应的回报”——这是不对的,因为一个策略是“每个状态下如何行动”的完整方案,不是“在某个状态临时选一下动作”。最优策略要求的是全局一致的最优,而不是局部拍脑袋。

1.2 V* 和 Q*:一个负责证明,一个负责落地

与 V*(s) 配套的还有动作价值函数的最优版本:

Q*(s,a) = max_π Q^π(s,a)

这两个函数的关系,很多时候是初学者搞混的源头。通俗地说:

  • V*(s) 告诉你“我在状态 s 最差也能拿到多少期望回报”——前提是后续都按最优方式行动。
  • Q*(s,a) 告诉你“我在状态 s 先强行执行动作 a,之后全部按最优方式行动,能拿到多少期望回报”。

V* 和 Q* 之间有个极其重要的等式:

V*(s) = max_a Q*(s,a)

这个等式说明:状态 s 的最优价值,等于从 s 出发先选“最优动作”的期望回报。注意,这里的“最优动作”就是让 Q*(s,a) 最大的那个动作。而一旦你有了 Q*,最优策略直接就能写出来:

π*(s) = argmax_a Q*(s,a)

如果只有 V* 而没有 Q*,你想在状态 s 决定动作时就会卡住:V* 只告诉了你“这个状态值多少”,没告诉你“哪个动作带来了这个值”。你还得用一步模型预测:

π*(s) = argmax_a Σ p(s'|s,a) [ r + γV*(s') ]

也就是说,V* 是“不带动作信息”的价值,Q* 是“带了动作信息”的价值。理论推导用 V* 更简洁(变量少),代码实现用 Q* 更直接(不需要模型就能选动作)。之后的Q学习、SARSA,都是建立在 Q* 这个思路上的。

我给这两者的定位是:V是“状态的价值上限”,Q是“状态-动作组合的价值表”。**

对比项V*(s)Q*(s,a)
含义从状态 s 开始,按最优策略行动的期望回报在状态 s 先执行动作 a,之后按最优策略行动的期望回报
信息粒度粗,不含动作信息细,每个动作都有明确价值
选动作方式需要结合一步模型做 argmax直接对表格取 argmax
理论推导常用,符号少常用,但符号多
代码落地难直接用直接查表即可

1.3 为什么最优价值函数只有一个

你可能听说过“最优策略可能有多个,但最优价值函数唯一”。这句话值得掰开揉碎说清楚。

“最优价值函数唯一”指的是:无论你选出哪个最优策略,它对应的价值函数一定是同一个 V*。原因很简单:如果存在两个最优策略 π₁ 和 π₂,它们在某些状态上的价值不同,那必然有一个更大、一个更小——那个更小的策略就不可能是最优的了。所以最优价值函数只有一个,它是所有最优策略共享的“价值基准面”。

至于“最优策略不唯一”,则是因为动作价值可能出现并列。比如某个状态有两个动作的价值都是5,那选哪个都算最优。策略是一份行动方案,可以有多个方案都达到同一个最优价值曲线,但它们共享同一个 V*。

这个唯一性为什么重要?因为后续所有迭代算法——策略迭代、值迭代、Q学习——全都依赖“存在一个不动点,且它就是我想要的 V*”。如果 V* 不唯一,算法都不知道往哪儿收敛。

2. 贝尔曼最优方程:最优值的“自洽条件”

2.1 从贝尔曼期望方程到贝尔曼最优方程

前面的贝尔曼方程长这样:

V^π(s) = Σ_a π(a|s) Σ_{s',r} p(s',r|s,a) [ r + γ V^π(s') ]

它说的是:当前状态的价值 = 按策略 π 随机选动作的期望下,即时奖励加上下一个状态价值的折现。

那最优版本呢?直接把“按 π(a|s) 随机选动作”替换成“选最优动作”,就得到了贝尔曼最优方程:

V*(s) = max_a Σ_{s',r} p(s',r|s,a) [ r + γ V*(s') ]

很多教材会把这一步写得非常轻描淡写,仿佛“max 替换期望”是水到渠成的。但其实这个替换背后的逻辑恰恰是最优性原理的核心:一个全局最优的策略,在任何一个状态 s 处,它采取的动作也必须是“从 s 出发时最优的动作”。

用反证法想一下:如果存在一个动作 a',使得从状态 s 出发选 a' 的期望回报严格大于最优策略 π* 在 s 处选的动作的期望回报,那么我完全可以把 π* 在状态 s 处的动作换成 a',其他状态不动,得到一个新策略。这个新策略在 s 上价值更高,其他状态价值不变——但这样一来,π* 就不满足“所有状态价值都不低于其他策略”的最优定义了。矛盾。所以最优策略必须处处选“最优动作”。

2.2 max 到底套在哪个位置:V* 版本和 Q* 版本

V* 版本的贝尔曼最优方程有个很唬人的细节:max 是在 Σ 前面的。

V*(s) = max_a Σ p(s',r|s,a) [ r + γV*(s') ]

意思是:先在所有动作里挑一个最好的,再对转移结果求期望。而不是“对期望之后的结果取平均”。这一点初学者很容易看走眼。

我们再写出 Q* 版本的贝尔曼最优方程:

Q*(s,a) = Σ_{s',r} p(s',r|s,a) [ r + γ max_{a'} Q*(s',a') ]

对比一下你会发现,这个版本的 max 跑到了期望的里面,作用在下一个状态 s' 的“动作选择”上。原因是:已知当前已经选了动作 a,之后就到了 s',从 s' 开始智能体又要选一个新动作 a',并且会选最优的那个,所以用 max_{a'} Q*(s',a')。

说白了,V* 版本是把 max 放在“当前动作选择”上,Q* 版本因为已经把当前动作固定住了,所以 max 只能放在“未来动作选择”上。两个版本的差异,代表的是“现在选”和“未来选”的区别。

2.3 终止状态的处理和折扣因子的意义

写贝尔曼最优方程时,有一个所有教材都会说、但初学者经常忽略的前提:终止状态的价值定义为 0,并且后续没有奖励。

所谓的终止状态可以理解为游戏的“结局”,比如迷宫走到了终点。这个状态不再有任何动作可选,也不会产生任何后续回报,所以在方程里它是边界条件:

V*(终止态) = 0

如果忘了这个边界条件,迭代时终止状态就会被反复赋予价值,整个表都会发散。我在跑实验时见过最典型的错误就是:把终止状态的转移奖励也算进去,结果目标格子的价值越迭代越大,怎么也收敛不了。

折扣因子 γ 的作用在这个方程里也很直观。γ∈[0,1) 保证即使是无限步任务,价值总和也有限。如果 γ=1 且任务没有终止,期望回报就会是无穷大,贝尔曼方程根本写不出来。当然在有终止的有限步任务里,γ=1 是可以用的,但工程上为了安全和数值稳定,几乎没人会这么设。

理解 γ 的另一种方式:它决定了智能体有多“近视”。γ=0 意味着只在乎一步回报,策略会变成彻底的短线选手,哪怕之后传来金山银山也不看。γ=0.9 则意味着大约十步之内的回报还有感,γ=0.99 基本就是长线布局。

2.4 贝尔曼最优方程真的可以直接求解吗

方程写出来之后,一个很自然的问题是:这不是一个“算式”,而是一个“关于 V* 的自洽条件”。V* 出现在等号两边,而且被 max 和 Σ 裹着,没法直接移项解出来。

那怎么求?两条路:

  • 动态规划式迭代:从任意初始 V₀ 出发,反复把等号右边当成更新式,迭代到收敛。
  • 解方程:在状态空间有限且模型已知的情况下,V* 其实是非线性方程组的解,可以用策略迭代间接求解,或者用值迭代直接逼近。

这两条路,就是第4节的内容。你先记住一个直觉:贝尔曼最优方程定义了一个“不动点”,任何求解方法本质上都是在逼近这个不动点。

3. 最优策略的判据与存在性:怎么判断一个策略是“最好的”

3.1 策略比较的顺序性

什么叫做“策略 π 比策略 π' 更好”?直接定义:

π ≥ π',当且仅当对所有状态 s,都有 V^π(s) ≥ V^π'(s)

注意这里说的是“对所有状态”。不是“在某些状态更好”,而是“在每一个状态下都不差”。这个要求是很强的。

实际中经常出现一种状况:A策略在起点状态表现好,但在后续状态很差;B策略在起点略差,但后续很稳。按定义,A 并不比 B 更好,因为它在某些状态上输了。一个策略只有在所有状态上都不落下风,才算真正胜出。

这个定义也顺便解释了为什么“只看当前状态选动作”不够:动作的选择会影响后续状态分布,所以一个动作不是孤立的,它的价值是通过 Q 函数体现的。

3.2 贪心策略是最优的吗

很多人在学到“π*(s) = argmax_a Q*(s,a)”时会有个疑问:这不就是贪心吗?贪心不是局部最优吗?

关键在于:这里的贪心,是作用在 Q* 上的,而不是作用在即时奖励上的。如果你只用一步即时奖励 r(s,a) 做贪心,那是近视,很容易选错。但 Q* 里已经包含了所有未来的折现回报,“基于 Q* 的贪心”本质上不是目光短浅,而是“站在全局视角做局部决策”。

严格来说,基于任何价值表的贪心都不一定是最优——那只是对一个价值函数做了策略改进。只有基于 Q* 的贪心才是最优的,这件事依赖于 Q* 的定义。所以“贪心策略可能最优”这句话的正确展开是:把策略改进定理反复应用下去,最终你会收敛到对所有状态都最优的稳定策略。这一点在第4节的策略迭代里会看得非常清楚。

3.3 策略改进定理为什么成立

策略改进定理说的是:如果对某个策略 π,你在所有状态上都用新策略 π' 的动作替换旧策略,并且新动作在 Q^π 意义下不差于原动作,那么 π' 的价值一定不比 π 差。

即:如果 Q^π(s, π'(s)) ≥ V^π(s) 对所有 s 成立,那么 V^π'(s) ≥ V^π(s)。

这个定理的证明思路就是展开递归:因为在新策略 π' 下,第一步动作的 Q 值不低于原策略的 V 值,而之后的状态价值又可以利用同样的不等式继续替换,最后得到整个期望回报链条都不低于原策略。

这一定理是策略迭代能够收敛的基础:你每次贪心改进,都不可能把策略改坏,只会越改越好,直到没有改进空间。

3.4 最优策略的存在性依赖于有限性

严格地说,只有在有限状态、有限动作、折扣回报或存在终止状态的条件下,最优策略才必然存在。这背后的数学原因是策略空间是有限的,比较关系构成偏序,而贝尔曼最优方程有一个确定的不动点。

如果状态无限(比如连续状态),或者回报不折扣,最优策略可能就不存在,或者变成某种极限意义下的东西。这就是为什么强化学习理论里总是先讲有限马尔可夫决策过程,再往连续空间扩展。你看那些做连续控制的强化学习算法,几乎都是在有限框架下的近似扩展。

实际工程里,大多数问题要么有限状态,要么通过离散化/函数逼近等效地变成有限问题。所以理解这个存在性条件,不是纯数学洁癖,而是帮你判断手里的问题“是不是一个定义良好的MDP”。

4. 两个经典求解方法:策略迭代与值迭代

4.1 策略迭代:评估一轮,改进一步,循环往复

策略迭代的思路非常符合人的直觉:你先随便给一个策略,然后算清楚这个策略下每个状态的价值(策略评估),接着看看有没有哪个状态换个动作能拿到更高价值(策略改进),有就换,换完再评估……直到策略不再变化。

流程写成伪代码:

初始化 π ← 任意策略(比如均匀随机) 循环: 1. 策略评估:解贝尔曼方程 V^π = Σ π(a|s) Σ p(s',r|s,a)[ r + γV^π(s') ] 用迭代法或直接解线性方程组,得到 V^π 2. 策略改进:对每个状态 s, π_new(s) ← argmax_a Σ p(s',r|s,a)[ r + γV^π(s') ] 3. 如果 π_new == π,停止;否则 π ← π_new

值得注意的是,第一步“策略评估”本身就可能需要很多轮迭代。如果用解方程的方式,那就把每轮评估变成一次线性方程组求解。在小状态空间下,这是可行的;在状态空间稍大的场景下,线性方程组求解代价高,一般就退化为迭代求解。

策略迭代的收敛速度通常很快,因为“策略空间”的规模通常远小于“价值空间”的规模。你不需要把价值评估到无限精确,只要价值大概准,贪心改进的方向一般就是对的。我实际跑迷宫问题时,策略迭代一般只需要改十几轮策略就稳定了,而值迭代可能需要上百轮才把价值收敛到小数点后几位。

4.2 值迭代:跳过显式策略,直接迭代价值

值迭代更直接:它干脆省略掉“维护一个策略”这一步,直接对贝尔曼最优方程做定点迭代:

初始化 V ← 任意值(终止状态固定为0) 循环: V_new(s) ← max_a Σ p(s',r|s,a)[ r + γV(s') ],对所有非终止状态 s 如果 max_s |V_new(s) - V(s)| < θ,停止 V ← V_new 结束之后,策略用 π(s) ← argmax_a Σ p(s',r|s,a)[ r + γV(s') ] 提取

这里有个经常被误解的点:值迭代在每一轮产生的 V 并不对应某个真实策略的价值——它是“假设从现在开始只往前走 k 步就停止”的最优价值,是有偏的。直到收敛之后,V 才真正变成 V*。所以不要在值迭代中途就跑回去 argmax 然后宣称“这是最优策略”,得等价值收敛。

关于收敛判据,最常用的就是检查 V 的更新幅度:

δ = max_s |V_new(s) - V(s)|

当 δ 小于某个阈值(比如 1e-4),就认为基本收敛了。实际操作时阈值选太小会让迭代次数翻倍,选太大则价值不精确。我的经验是先按 1e-4 跑一版看趋势,再根据业务对精度的要求微调。如果你只是要一个“能用”的策略,1e-2 其实很多时候也够。

4.3 一个可以直接抄作业的2×2网格实例

理论讲再多,不如动手算一个带数字的例子。假设有一个2×2网格世界,四个格子分别编号:

+---+---+ | 左上 | 右上(终止+1) | +---+---+ | 左下(终止-1) | 右下 | +---+---+

动作只有两个:向右、向下。转移是完全确定的:走到哪个方向,就一定到哪个格子。进入终止状态时获得奖励:右上角 +1,左下角 -1。其他所有转移奖励设为 -0.1(这是“步进代价”,惩罚智能体磨蹭)。折扣因子 γ=0.9。终止状态价值为 0。

现在算 Q*。

先看左上角。它有两个动作:

  • 向右:确定性转移到右上角终止状态,获得 +1,后续价值 0。所以 Q*(左上, 右) = 1 + 0.9 × 0 = 1。
  • 向下:确定性转移到左下角终止状态,获得 -1,后续价值 0。所以 Q*(左上, 下) = -1 + 0.9 × 0 = -1。

因此 V*(左上) = max(1, -1) = 1,最优动作是向右。

再看右下角。它也有两个动作:

  • 向左:确定性转移到左下角终止状态,获得 -1。Q*(右下, 左) = -1。
  • 向上:确定性转移到右上角终止状态,获得 +1。Q*(右下, 上) = 1。

因此 V*(右下) = max(-1, 1) = 1,最优动作是向上。

你看,这个例子里最优策略非常清楚:左上向右,右下向上。整个路线的期望折扣回报是一条通向 +1 的金光大道。

如果我把左下角的奖励也改成 +1——两边都是正向奖励——那么左上角可以向右,也可以向下;右下角可以向左,也可以向上。最优策略就不唯一了,但 V*(左上) 依然等于 1,V*(右下) 也等于 1。这就是“价值唯一、策略不唯一”的直观体现。

这个例子虽然简单到有点幼稚,但它能把 V*、Q*、贪婪动作、终止状态、折扣因子全部串起来。你要是刚开始学,强烈建议在草稿纸上自己推一遍,再拿任意语言写一个表格迭代,你会瞬间理解为什么“max 要放在 Σ 外面”。

4.4 两类方法的对比:算得快与算得稳

策略迭代和值迭代都能收敛到 V* 和最优策略,它们的关系可以用一句话概括:策略迭代是“价值与策略交替更新”,值迭代是“价值直接压到最优”。

对比项策略迭代值迭代
循环单位一轮完整的评估+改进一次价值更新
每轮代价高(评估可能迭代很多次)低(一次max即可)
收敛轮数少多
对价值精度的要求不需要很精确要求收敛后才可靠
适用场景状态空间较小、模型已知状态空间较大、对实现简单敏感
典型代码复杂度需要维护策略并比较不需要维持策略,代码更短

实际中我做网格问题时更爱用值迭代,因为代码短、无脑、不容易出bug。但涉及策略需要频繁复用时,策略迭代的思路更自然。两种方法都要求模型已知(知道转移概率和奖励),因此在强化学习里它们属于“基于模型的规划方法”,是后面无模型算法(蒙特卡洛、时序差分、Q学习)的理论起点。

5. 新手最容易翻车的四个细节

5.1 max 套错的经典事故

我在帮别人看代码时,最常看的错误就是贝尔曼最优方程里 max 的位置。有人会把 V* 版本写成:

V*(s) = Σ_{s'} p(s'|s,a) [ max_a (r + γV*(s')) ]

这个式子看着很有道理,实际完全不对。max 要么套在“当前动作选择”上(V* 版本),要么套在“未来动作选择”上(Q* 版本),绝不能把当前位置的动作取均值之后再去 max。你要理解,max 是一个“选择算子”,它代表决策权,而 Σ 是“环境不确定性”,代表你控制不了的部分。决策权必须放在环境不确定性之外,因为你是在做选择,不是在赌运气。

5.2 把 V* 理解成“某一条轨迹的回报”

这是另一种常见错觉。V*(s) 是“期望回报”,不是“某一次玩出来的实际回报”。期望要对你控制不了的环境转移概率做平均。就算最优策略已经定了,环境仍然可能抽到不太好的转移结果,单次回报可能很低,但期望值是所有随机性平均后的结果。如果你在实现中拿某个episode的回报去估计 V*,会得到很大的方差,这就是为什么后续要做蒙特卡洛平均或时序差分平滑。

5.3 γ 选不对,策略整个变味

γ=0.99 和 γ=0.9 在同样的环境下可能推出完全不同的最优策略,这不是玄学,是数学。折扣因子越小,远期回报的权重越低,智能体越倾向“尽快见效”。折扣因子越大,智能体越愿意为了长期收益绕远路。

在算法实现里,γ 还会影响收敛速度。γ 接近 1 时,贝尔曼方程的收缩因子接近 1,迭代收敛会明显变慢。工程上有一个折中:先用较小的 γ(比如 0.9)快速验证算法流程,最后再调大 γ 去追求长期收益。先让代码跑通,再谈最优。

5.4 值迭代中途的“策略”不是最优

值迭代每一轮更新的 V 都是“k 步最优价值”,不是 V*。所以如果你在第 10 轮就提取策略,提取出来的策略可能在第 11 轮就变了。只有等 V 收敛,提取出的策略才是最终策略。

同样的道理也适用于策略迭代:策略评估不一定要迭代到完全收敛,你可以只评估几轮就做策略改进。这叫“截断策略评估”,在状态规模大时能省大量时间。但不是所有截断方式都能保证收敛到最优,工程的平衡点是经验活。

6. 从理论到工程:什么时候能直接用,什么时候得绕道

6.1 精确求解的成本边界

前面说的策略迭代和值迭代,都是号称“精确求解”的方法,前提是你能把状态空间完整枚举,并且知道所有转移概率。这意味着复杂度大致是 O(|S|²|A|) 左右(取决于评估方式),当状态数从几百变成几百万时,直接爆炸。

我有一次处理一个物流调度场景,把装载状态离散化之后就达到了几十万状态,精确求解的矩阵计算已经内存爆炸,最后是改用函数近似加迎头追赶的无模型方法才兜住。这类经验告诉你:V* 和最优策略的理论很美,但要在计算资源允许的范围内才可以直接用。

6.2 模型不存在怎么办

如果转移概率 p(s',r|s,a) 不知道——这是绝大多数真实场景——基于模型的策略迭代和值迭代就无法直接用。这时需要把第2节的贝尔曼最优方程改造成“采样版本”:用大量交互数据去估计 Q 值,比如蒙特卡洛方法、SARSA、Q学习。

Q学习的更新公式:

Q(s,a) ← Q(s,a) + α [ r + γ max_{a'} Q(s',a') - Q(s,a) ]

你能看出来吗?它本质上就是 Q* 版本贝尔曼最优方程的采样近似:把期望 Σ p 替换成一次实际采样,把 max_{a'} 保留在公式里,每个转移来一次就更新一次。也就是说,你现在学的最优方程,就是后面所有无模型强化学习算法的数学源头。

6.3 状态连续怎么办

连续状态没有“表格”可以存,这时候要么做离散化(把连续值切分到格子),要么用函数逼近(神经网络、线性近似)。函数逼近下,“最优价值”从“查表”变成“拟合一个函数”,理论的收敛保证会被削弱,但实践里往往效果惊人。

我自己在项目里的经验是:先在小规模离散化版本上验证算法的正确性,确认 V* 和最优策略符合直觉,然后再升级到函数近似版本。不要在连续空间里直接就开始调神经网络,出了问题你根本分不清是理论错了还是代码错了。

一个值得养成的习惯:拿到环境先手算 V*

不管你是看教材还是做实验,拿到一个新的MDP环境,我强烈建议你先手算或者写一个小脚本算出 V* 和最优策略。哪怕只有两三个状态,也比直接把算法怼上去更利于理解。因为强化学习是“所有变量互相纠缠”的系统,没有基准值,出了问题你很难定位是策略评估错了、环境建模错了,还是伪代码理解错了。

我当时学到这里时,就用 2×2 网格手算了三遍,又用代码跑了一遍,愣是把“max 套在期望外面”和“终止状态价值为0”这两件事刻进了脑子。后来再看 Q 学习的伪代码,一眼就明白了为什么它要把 max 放在中括号里。这个基础不打好,后面讲 Q 网络、策略梯度时,你会越来越头疼。

如果你现在正对着贝尔曼最优方程发懵,不妨停下来,找一支笔,把一个二状态环境的 Q* 和 V* 老老实实算出来,再回去看文章,我相信你会顺畅很多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询