跳转至

融汇贯通RL中的价值函数与优势函数

标签: 强化学习

引言

强化学习(Reinforcement Learning)算法通常通过学习价值函数(value function)或直接优化策略来实现智能体策略的改进。在这一过程中,许多算法都会利用价值函数(如状态价值函数\(V(s)\)或动作价值函数\(Q(s,a)\))以及优势函数(advantage function)来评估策略和指导更新。价值函数表示在给定状态或状态-动作对下能获得的预期回报,而优势函数则表示某动作相对于平均水平(基线)的相对好处。不同算法对价值函数和优势函数的定义与使用方式各异,影响了算法的训练目标、策略更新方法以及适用场景。

本文将横向比较强化学习中主流算法在策略学习中对价值函数和优势函数的使用方式与实现方法。我们将讨论每种算法所用价值/优势函数的数学定义、这些函数在训练过程中的作用,优势函数的估计方法(如蒙特卡洛、时序差分TD、广义优势估计GAE等)及其变种,并对比值函数方法优势方法(基于优势的策略梯度方法)的差异与适用性。

价值函数与优势函数:定义与作用

在阐述具体算法前,我们先明确价值函数优势函数的定义:

  • 状态价值函数\(V^\pi(s)\):在策略\(\pi\)下,从状态\(s\)出发能获得的期望累计回报(“价值”),公式为:
\[V^\pi(s) = \mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t\, r_{t}\,\Big|\, s_0 = s\right],\]

其中\(\gamma\in[0,1]\)为折扣因子。\(V(s)\)衡量“处在状态\(s\)本身有多好”。

  • 动作价值函数\(Q^\pi(s,a)\):在策略\(\pi\)下,智能体在状态\(s\)采取动作\(a\)后所能获得的期望累计回报,即Q函数,定义为:
\[Q^\pi(s,a) = \mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t\, r_{t}\,\Big|\, s_0 = s, a_0 = a\right]。\]

\(Q(s,a)\)评价“在状态\(s\)下执行动作\(a\)的好坏”,是动作-状态对的价值。

  • 优势函数\(A^\pi(s,a)\):表示动作\(a\)相对于状态\(s\)的平均水平有多优越,定义为价值差:
\[A^\pi(s,a) = Q^\pi(s,a) - V^\pi(s)\]

它反映在状态\(s\)下选择特定动作\(a\)相比平均策略(基于状态价值\(V\)额外能获得多少收益。优势函数为策略梯度方法提供了相对评价,减小了高方差的绝对回报评估。

在策略优化中,引入基线\(b(s)\)(通常取为\(V(s)\))并使用优势\(A(s,a)=Q(s,a)-b(s)\),不会改变梯度的无偏性,却能降低方差。因此,很多策略梯度算法利用价值函数作为基线,使用优势函数进行策略更新,以提高学习稳定性。在值函数方法中,价值函数本身则直接用于评估和决策。

接下来,我们将按算法类别详细比较各算法在价值函数与优势函数上的使用差异。

值函数方法:DQN 及其扩展

深度 Q 网络(DQN)是典型的值函数方法代表。DQN 直接近似最优动作价值函数\(Q(s,a)\),通过贝尔曼方程进行训练。其损失函数基于时序差分(TD)误差构造,如:

  • DQN 更新:使用当前 Q 网络参数\(\theta\)和目标网络参数\(\theta'\),对于经验\((s,a,r,s')\),构造目标\(y = r + \gamma \max_{a'}Q_{\theta'}(s',a')\),最小化均方误差损失:
\[L(\theta) = \Big(Q_\theta(s,a) - y\Big)^2,\]

其中\(y\)为依据目标网络计算的TD目标。这一更新等价于执行Q学习的迭代更新

\[Q_{\text{new}}(s,a) \leftarrow (1-\alpha) Q(s,a) + \alpha \big(r + \gamma \max_{a'} Q(s',a')\big)。\]

DQN 没有显式的策略参数,而是通过更新 Q 函数来间接改进策略:策略由\(Q\)值衍生(如贪心选择\(\pi(s)=\arg\max_a Q(s,a)\)\(\epsilon\)-贪心探索)。在 DQN 中没有直接使用优势函数参与损失计算或策略梯度,因为其优化目标完全基于价值函数。Dueling DQN引入了优势函数的思想,将 Q 值网络拆分为状态价值\(V(s)\)和优势\(A(s,a)\)两部分。Dueling DQN的输出结构假定\(Q(s,a)=V(s)+A(s,a)\)(实际实现中减去优势的均值做归一化,以保证可辨识性)。这种分解使网络能够首先估计状态的“好坏”,再估计各动作相对于该状态的相对优势,有助于提高值估计的效率。不过,即使在Dueling DQN中,“优势函数”只是网络的一部分,其训练仍通过Q值的TD误差来进行,只是在架构上体现为价值与优势两条支路。Double DQN 等扩展则关注于值函数更新的改进(如使用双网络避免over estimate)。

总结:DQN 及其扩展完全以值函数为核心。它学习\(Q(s,a)\)来指导决策,不计算显式的优势用于更新(除非算上架构内的优势分解)。对于离散动作空间的问题(如 Atari 游戏),值函数方法表现突出。但是由于需要对每个可能动作计算\(Q\),传统 DQN 不能直接应用于连续动作空间,后者需要策略函数直接输出连续动作(这引出了policy gradient和actor critic方法)。

策略梯度与 REINFORCE:优势基线的引入

策略梯度方法直接针对策略参数进行优化,而不是先学值函数再间接导出策略。经典的 REINFORCE 算法(蒙特卡洛策略梯度)通过采样完整轨迹,根据累计回报\(R_t=\sum_{k=0}^{T-t}\gamma^k r_{t+k}\)来更新策略参数\(\theta\)

  • REINFORCE 梯度:
\[\nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta}\!\Big[\nabla_\theta \log \pi_\theta(a_t|s_t)\,R_t\Big]\]

其中\(R_t\)就是动作$ a_t$后得到的折扣回报。

由于直接使用\(R_t\)作为权重会导致高方差,可引入基线\(b(s)\)(不依赖于动作)以降低方差。通常选择\(V(s)\)作为基线,此时\(R_t - V(s_t)\)即为优势估计\(A(s_t,a_t)\)。引入基线后的梯度为:

\[\nabla_\theta J(\theta) = \mathbb{E}[\nabla_\theta \log \pi_\theta(a|s)A(s_t,a_t)]=\mathbb{E}[\nabla_\theta \log \pi_\theta(a|s)\,(R_t - V(s_t))]\]

其中\(A(s_t,a_t)=R_t - V(s_t)\)即优势函数。这样的REINFORCE with baseline算法梯度无偏,但减小了方差。当基线函数完美估计了状态值时,优势的期望为0,从而剔除了和状态无关的噪声。

需要注意,REINFORCE算法本身不学习值函数(如果不使用基线就是纯策略方法),因此严格来说没有“价值函数”的参与;若使用了基线,则需要一个价值函数近似器来提供\(V(s)\)。无论如何,REINFORCE 或其他策略梯度方法本质上利用优势函数作为梯度权重(无基线时优势就是\(R_t\))。由于完全依赖采样回报,REINFORCE通常使用蒙特卡洛方法估计优势/回报,即直到一回合结束才能得到\(R_t\)。这在长时间任务或稀疏奖励环境下会造成高方差和慢更新。

总结:REINFORCE展示了优势函数用于策略更新的基本思想:通过减去基线(状态价值)形成优势,以相对回报指导策略优化。该思想在后续的Actor-Critic算法中得到广泛应用。

Actor-Critic算法:A2C/A3C 对价值与优势的结合

Actor-Critic方法将策略(Actor)优化与值函数(Critic)估计相结合。A2C/A3C就是典型代表,其中“Critic”估计状态值函数\(V_\phi(s)\),并用于构造优势函数,Actor依据优势来更新策略。

  • 价值函数:A2C中Critic通过最小化TD误差来学习状态值函数。例如采用\(n\)步时序差分目标:
\[V_{\phi}(s_t) \leftarrow V_{\phi}(s_t) + \alpha\, \delta_t^{(n)},\]

其中\(\delta_t^{(n)} = \sum_{k=0}^{n-1}\gamma^k r_{t+k} + \gamma^n V_{\phi}(s_{t+n}) - V_{\phi}(s_t)\)。当\(n=1\)时就是一步TD(0)更新,\(n=T-t\)则为蒙特卡洛回报。

  • 优势估计:A2C利用Critic提供的\(V(s)\)计算优势\(\hat{A}(s_t,a_t)\)。常用的一步优势为\(\delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)\)。实际实现中,A3C论文采用多步回报(例如20步)估计\(Q\),再减去\(V\)得到优势,以折中偏差和方差。无论一步还是多步,优势函数 = TD目标 - 当前价值估计
  • 策略更新:Actor根据优势进行梯度上升。策略损失通常为:
\[L_{\text{actor}} = -\log \pi_\theta(a_t|s_t)\,\hat{A}(s_t,a_t),\]

\(\nabla_\theta L = -\hat{A}(s_t,a_t),\nabla_\theta \log \pi_\theta(a_t|s_t)\)。当优势为正时,该动作概率应增加;优势为负则应降低。这正是策略梯度定律与优势函数相结合的体现。与此同时,Critic的价值函数损\(L_{\text{critic}} = \frac{1}{2}\big(V(s_t)-\text{target}\big)^2\)用于更新\(\phi\)

A3C(异步优势Actor-Critic)与A2C的原理类似,只是前者采用多线程异步更新,后者是同步版本。A2C/A3C借助优势函数有效降低了策略梯度的方差,且利用值函数进行基线校正,使学习更加稳定。在实践中,A3C常使用例如5步或20步回报估计优势,这相当于Monte Carlo与TD的折中:步数越大,估计越准确但方差越高。

适用性:A2C/A3C 属于on-policy Actor-Critic,需要从当前策略采样数据更新,无经验回放。它们可应用于离散或连续动作空间,因为Actor可以输出任意参数化策略(如离散分布或连续动作均值)。例如,A3C 在 Atari 游戏(高维离散动作)和MuJoCo连续控制任务上都取得成功。相比DQN,这类算法能更好地处理高维连续动作的问题,但由于需丢弃旧数据,样本效率较低。

信赖域策略优化:TRPO 与 PPO 中的优势函数

信赖域策略优化(TRPO)和近端策略优化(PPO)是策略梯度方法的改进版本,注重稳定更新。两者都属于on-policy策略优化算法,并使用Actor-Critic架构,因此价值函数优势函数在其中同样扮演关键角色。

  • TRPO:提出通过限制策略更新的KL散度在“小信赖域”内,避免策略骤变导致性能崩溃。TRPO的优化目标是约束下的优势期望最大化,即:最大化\(L(\theta) = \mathbb{E}_{s,a\sim \pi_{\text{old}}}\Big[\frac{\pi_\theta(a|s)}{\pi_{\text{old}}(a|s)}\hat{A}(s,a)\Big]\),同时约束\(\mathbb{E}[D_{\text{KL}}(\pi_\theta||\pi_{\text{old}})] \le \delta\)。这里\(\hat{A}(s,a)\)通常通过广义优势估计(GAE)获取(详见后文)。TRPO由于引入二次规划求解,实践较复杂,但奠定了后续算法使用优势函数作为策略更新驱动的框架。
  • PPO:是对TRPO的简化和改进。PPO的常用变体(PPO-Clip)直接通过剪切(clipping)约束策略更新幅度,而不显式计算KL约束。其目标函数为:
\[L(\theta) = \mathbb{E}_{s,a\sim \pi_{\text{old}}}\Big[\min\big(r(\theta)\,\hat{A}(s,a),\ \text{clip}(r(\theta),1-\epsilon,1+\epsilon)\,\hat{A}(s,a)\big)\Big]\]

其中\(r(\theta)=\frac{\pi_\theta(a|s)}{\pi_{\text{old}}(a|s)}\)是策略概率比。这个目标确保当策略变化过大时,通过剪除\(r(\theta)\)超过\([1-\epsilon,1+\epsilon]\)的部分来限制更新。优势函数\(\hat{A}(s,a)\)在此仍然作为加权因子,指引哪些动作概率需要增大或减小。PPO通常使用GAE来计算优势,从而在偏差与方差间取得良好折中。

  • 价值函数基线:TRPO和PPO都需要训练一个价值函数(Critic)来提供\(V(s)\)作为基线。通常通过最小化均方TD误差来训练\(V(s)\),类似A2C Critic的更新。优化时,这个值函数的损失会与策略损失一并考虑(例如 PPO 的总损失中包含一个均方值误差项)。

优势估计:TRPO论文引入了广义优势估计 GAE(\(\lambda\))方法,用加权的多步TD误差计算优势,以降低方差。GAE 的公式为:

\[\begin{aligned}\hat{A}_t^{\text{GAE}(\gamma,\lambda)} &= \sum_{k=0}^{\infty} (\gamma\lambda)^k \delta_{t+k}\\ &= r_t + \gamma V(s_{t+1}) - V(s_t) \\ &\quad + \gamma\lambda\left[r_{t+1} + \gamma V(s_{t+2}) - V(s_{t+1})\right] \\ &\quad + (\gamma\lambda)^2\left[r_{t+2} + \gamma V(s_{t+3}) - V(s_{t+2})\right] + \cdots\end{aligned}, \]

其中\(\delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)\)\(\lambda\)介于0和1之间调节偏差-方差权衡:\(\lambda=1\)恢复为蒙特卡洛优势(高方差无偏),\(\lambda=0\)则为一步TD优势(低方差有偏)。PPO 等算法常选用中间的\(\lambda\)(如0.95)来平衡效果。GAE 的使用让优势估计更加平滑稳定,在实践中极大提高了TRPO/PPO的性能。

适用性:TRPO和PPO既可用于离散也可用于连续动作空间。PPO由于实现简单、稳定性好,已广泛应用于机器人控制、游戏AI等领域的连续控制高维观测任务。相对于DQN等off-policy值方法,PPO一类方法样本效率较低(需要较大量采样),但收敛稳定,对超参数不敏感,适合需要可靠收敛的场景。

off policy Actor-Critic:DDPG、TD3 与 SAC

前述A2C/PPO等为on-policy方法,不能直接利用旧数据。而离策略(off-policy)Actor-Critic算法结合了值函数近似和策略函数输出,能在连续动作空间高效学习,典型代表包括 DDPGTD3SAC

深度确定性策略梯度(DDPG)是一种将DQN的值学习思想应用于连续动作的算法。它包含一个确定性策略(Actor\(\mu(s)\))和一个Q值函数(Critic\(Q(s,a)\)):

  • 值函数更新:DDPG 的Critic与DQN类似,采用一步TD进行Q网络训练。使用经验回放池的采样\((s,a,r,s')\),目标\(y = r + \gamma Q_{\phi_{\text{targ}}}(s',\mu_{\theta_{\text{targ}}}(s'))\),最小化损失\(\frac{1}{2}(Q_\phi(s,a)-y)^2\)。这相当于 Q-learning 的连续动作版本。
  • 策略更新:DDPG 的策略直接输出一个确定性动作\(a=\mu_\theta(s)\),其训练目标是最大化Q值。梯度可从链式法则推出为:
\[\nabla_{\theta} J \approx \mathbb{E}_{s\sim \mathcal{D}}[\nabla_a Q_{\phi}(s,a)\big|_{a=\mu_\theta(s)} \nabla_{\theta} \mu_\theta(s)]\]

在实现上等价于沿着增大\(Q\)值的方向调整策略参数。直观理解,Critic给出当前策略动作的价值梯度,Actor沿梯度提升其动作的价值。

  • 优势函数视角:DDPG 的策略梯度实际上使用了\(Q(s,a)\)作为优势信号。因为对于确定性策略,策略梯度公式可被视为\(\nabla_\theta \log \pi(a|s)\)项被\(\delta(a-\mu(s))\)所替代,结果就是\(\nabla_a Q \nabla_\theta \mu\)。若类比随机策略情况,\(Q(s,a)\)在此扮演了优势函数的角色(baseline可视为0),因为它表示选择当前策略输出动作的评价(没有减去状态基线,因为对确定性策略而言,基线对梯度无贡献)。因此虽然 DDPG 未显式计算\(A(s,a)\),但其更新本质上利用了\(Q\)函数来衡量动作相对好坏
  • 目标网络与稳定性:DDPG 借鉴 DQN 使用目标网络平滑更新,以及在策略输出上添加探索噪声(如OU噪声)来进行探索。这些技巧提升了训练稳定性。

Twin Delayed DDPG (TD3) 对 DDPG 作了改进,主要差异在于 使用双Q网络减小估计偏差(类似Double DQN)以及延迟更新策略以稳定训练。TD3 训练两个Critic\(Q_{\phi_1},Q_{\phi_2}\),取较小的估计作为目标(Clipped Double Q), 从而缓解价值过高估计的问题。另外,策略网络更新频率降低(例如每2次Critic更新后更新一次),并在计算目标动作时对动作添加小扰动(目标策略平滑),避免策略过度追求Critic的局部不准确高值。价值函数策略更新在TD3中仍类似于DDPG,只是更稳定了。TD3同样没有显式优势函数,但双Q机制可以理解为更精准地评估了“优势”(避免把不优势的动作误判为高价值)。

Soft Actor-Critic(SAC)进一步结合了策略随机性和熵正则化。SAC 的主要特点:

  • 策略是随机的(输出高斯分布等),不同于DDPG/TD3确定性策略。这使策略有探索性,并可以训练期望策略梯度
  • 熵项奖励:SAC在奖励中加入策略熵\(H(\pi(\cdot|s))\),目标是最大化预期回报和熵的加权和。这等价于在策略更新时加入一项鼓励更随机(探索性更强)的策略。公式上,相当于将价值函数重新定义为包含熵项。熵系数\(\alpha\)可固定或自动调节。
  • 值函数与优势:现代版本的SAC使用两个Q网络\(Q_{\phi_1}, Q_{\phi_2}\),不再单独维护\(V(s)\)函数(早期版本有一个\(V\)网络用于帮助训练Q)。两个Q网络的训练类似TD3(带目标网络、polyak平均、clipped double Q)。目标值计算时包含熵项:对于下一状态\(s'\),取当前策略\(\pi\)输出的动作并计算\(Q(s',a') - \alpha \log \pi(a'|s')\)作为扩展的目标。因此Critic的Bellman目标为:
\[y = r + \gamma\Big(\min_{i=1,2}Q_{\phi_i,\text{targ}}(s',a') - \alpha \log \pi_\theta(a'|s')\Big)\]

其中其中\(\alpha\)为熵系数,\(a'\sim\pi(\cdot|s')\)\(\log\pi\)项体现策略随机性的奖励。策略更新则以最大化soft Q值为目标,损失为:

\[L_{\text{actor}} = -\mathbb{E}_{s\sim \mathcal{D}}\Big[ Q_{\phi}(s,a) - \alpha \log \pi_\theta(a|s) \Big],\]

即使\(Q-\alpha \log\pi\)最大(平衡了价值和熵)。SAC没有显式的优势函数计算,但如果从策略梯度形式看,优势相当于\(Q(s,a) - (\text{某个baseline})\)。由于SAC策略更新时同时考虑增大利润(高\(Q\))和增大熵(高\(H\)),baseline可以理解为隐含在\(-\alpha\log\pi\)这一项中。

  • 训练性质:SAC与DDPG一样是off-policy且可利用经验回放重复利用样本。它在连续控制任务中表现出色,通常比DDPG/TD3更稳定且样本效率高。SAC允许策略是随机的,但依然使用价值函数来指导策略改善,属于基于值的Actor-Critic变种。

小结:对于DDPG/TD3/SAC这类算法,价值函数(Q函数)是核心:它们直接学习\(Q(s,a)\)并用它来指导策略参数更新。优势函数没有以显式形式出现(不像A2C/PPO那样计算\(A(s,a)\)),但Q值本身承担了优势评估的作用。例如DDPG中,策略梯度用\(\nabla_a Q\),意味着动作价值越高(优势越大)就提高该动作概率;TD3也是基于Q;SAC虽然有熵项,但仍是通过Q值衡量动作优劣。连续动作空间的问题通常依赖这些算法,因为纯值方法(如DQN)无法直接应用。相对于on-policy方法,这些off-policy算法数据利用率高(可重放经验),在稀疏奖励场景中能够多次学习少量成功经验,因而在需要高效率探索时更有优势。不过,它们对超参数(探索噪声、稳定化技巧)较敏感,训练过程可能不如PPO平滑。

优势函数的估计方法综述

不同算法在训练中采用了不同的优势估计策略,主要包括:

  • 蒙特卡洛(MC)估计:直接利用完整回报作为优势。例如REINFORCE中\(A(s_t,a_t)=R_t - b(s_t)\),若不使用基线则\(A=R_t\)。MC 优势无偏但方差高,一般仅在回合结束才能计算。策略梯度方法在回合较短或有足够样本时可用MC。
  • 时序差分(TD)一步估计:使用单步奖励加值函数bootstrap:\(A(s,a)\approx \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)\)。这其实是TD(0)的TD误差,常用于Actor-Critic算法每步在线地计算优势。一步TD有偏但方差低,可以实时更新。
  • 多步 TD(\(n\)) 估计:综合考虑\(n\)步内的收益:\(\hat{A}_t^{(n)} = \sum_{k=0}^{n-1} \gamma^k r_{t+k} + \gamma^n V(s_{t+n}) - V(s_t)\)\(n\)步回报包含更多实际奖励信息,减小偏差,但若\(n\)大方差会上升。A2C/A3C常采用固定的多步(如5步、20步)优势估计,以权衡稳定性和性能。
  • TD(\(\lambda\))与广义优势估计(GAE):TD(\(\lambda\))通过对不同步长的回报加权求和实现从MC到TD(0)的平滑过渡。GAE是应用于优势估计的TD(\(\lambda\)):使用参数\(\lambda\)\(n\)步TD误差加权平均。其形式如前述
    \(\hat{A}_t^{\text{GAE}} = \sum_{k=0}^\infty (\gamma\lambda)^k \delta_{t+k}\)\(\lambda\)越大,优势估计偏向长程MC;\(\lambda\)越小,偏向短期TD。GAE 能灵活调整bias-variance,于TRPO/PPO等算法中效果显著,使得它们在不同任务上均取得良好性能。

在实际实现中,不同算法采用如下优势估计方案:

  • DQN:值方法,无需优势估计(直接Q-learning)。
  • REINFORCE:MC回合回报(高方差,需要baseline降低方差)。
  • A2C/A3C:多步(n-step)TD目标减值,如5步TD。
  • TRPO/PPO:通常使用GAE(\(\lambda\)),典型\(\lambda=0.95\)
  • DDPG/TD3/SAC:不显式计算优势,用\(Q\)值或TD误差直接指导策略更新。可以认为TD误差本身也是一种优势信号,在actor-critic代码中往往直接将\(\delta_t\)视作优势近似。

值函数方法 vs. 优势方法:差异与适用性分析

值函数方法(value-based)和基于优势的策略方法(advantage-based policy methods,即使用优势函数的策略梯度/Actor-Critic)在算法思想和应用场景上各有优势:

  • 策略获取方式:值函数法(如Q-learning/DQN)通过学习价值函数间接地得到策略——例如对\(Q(s,a)\)取argmax得到贪心策略;优势方法(如A2C/PPO)则直接参数化策略,通过策略梯度调整参数。直接策略优化能够自然处理连续动作空间和概率混合策略,而值方法需离散化或其他处理才能应用于连续动作。
  • 学习信号:值方法利用TD误差贝尔曼残差作为学习信号,更新方向不一定直接对应策略性能梯度;优势方法直接利用优势(策略梯度乘子)指引策略朝提升回报方向更新。优势函数提供了相对评价(好于平均多少),往往比绝对值评价更稳定。因此,策略梯度类算法在高维策略参数情况下更稳定,不会因为所有动作价值都很高或很低而丧失梯度信号。
  • 数据效率:大多值函数法是off-policy(如DQN、DDPG能重放经验),样本利用率高,适合数据获取代价大的场景。优势策略法很多是on-policy(如A2C、PPO需要在线交互新数据),样本效率相对低,但每步更新更可靠。Off-policy的SAC、TD3结合了经验重用和策略梯度,一定程度兼顾了效率与稳定。
  • 稳定性与调参:值方法在使用函数逼近时可能不稳定(存在发散风险),需要经验回放、目标网络等技巧稳定训练。策略梯度法因有基线和优势,梯度估计更平稳,但也可能面临方差大和“陷入局部最优策略”的问题,需要通过熵正则(SAC)或探索噪声等改善。总体而言,现代算法如PPO、SAC都已非常稳定,在各自领域被广泛采用。
  • 探索与稀疏奖励:值方法通常通过\(\epsilon\)-贪心或策略噪声探索,稀疏奖励时能借助价值传播更快发现高奖状态(例如从终点回传值);而优势方法若策略一开始未采到奖励,梯度可能为零,需配合探索策略或辅助奖励。带熵的SAC鼓励探索,部分缓解了这一问题。Off-policy方法也可反复学习到的一点稀疏奖励信号,这对解决稀疏奖励任务有利。
  • 高维状态:两类方法都依赖深度网络来近似价值或策略,因此在高维观测(如像素)下都能工作。DQN 通过CNN 成功应用于Atari图像输入,A3C也类似。但高维离散动作情况下,值方法可能面临输出维数过大的问题(每个动作一个Q值);策略梯度可参数化为动作概率分布,较为自然。因此在巨大的离散动作空间或组合动作场景,策略优化可能更合适。

任务适用性总结(见下表):

算法 价值函数使用 优势函数使用及估计 策略性质 动作空间 典型应用场景及特点
DQN 学习\(Q(s,a)\) 无显式优势(决斗DQN拆分\(A\) 派生贪心策略 离散 Atari游戏(像素输入)等离散动作,高样本效率,需稳定技巧
DDPG 学习\(Q(s,a)\)(2网络) 无显式\(A\),用\(Q\)梯度作策略信号 确定性策略 连续 机械臂控制等连续任务,样本效率高,但探索困难,需噪声
TD3 学习\(Q_1,Q_2\) 无显式\(A\),双Q减少估计偏差 确定性策略 连续 连续控制,高精度动作,解决DDPG过估计,训练更稳定
SAC 学习\(Q_1,Q_2\)(熵修正) 无显式\(A\),含熵项的soft Q作为优势依据 随机策略 连续 连续控制(如机器人、自动驾驶),稳定性高,探索强
REINF. 无(仅策略) \(A=R_t - b(s)\),通常\(b=0\)\(V(s)\) 随机策略 任意 理论算法,实践少直接用,高方差,需baseline,简单清晰
A2C/A3C 学习\(V(s)\) \(\hat{A}\)=n步TD误差 随机策略 离散/连续 游戏AI(Atari)、并行环境下训练,高效利用优势降低方差
PPO 学习\(V(s)\) \(\hat{A}\)=GAE(\(\lambda\)) 随机策略 离散/连续 通用算法,机器人模拟、高维控制,训练稳健,工业界常用
TRPO 学习\(V(s)\) \(\hat{A}\)=GAE(\(\lambda\)) 等 随机策略 离散/连续 理论保障收敛,实现复杂,较少用了(PPO替代),早期机器人RL

表:主流算法中价值函数与优势函数的使用比较及适用性概览。

从上表可以看出,值函数法(DQN系列、DDPG/TD3)偏好离策略高效利用数据,适合连续控制(DDPG/TD3)或复杂离散(DQN)但动作有限的场景;优势策略法(A2C/PPO等)提供稳定的策略改进,在高维连续控制和需要稳定训练的任务中表现突出。实际应用中常将二者结合:例如,先用off-policy方法预训练值函数,再用on-policy微调策略;或者在复杂环境中选用PPO保证收敛,再用SAC提升性能。

结论

价值函数和优势函数是强化学习算法中的两个核心概念,不同算法围绕它们发展出不同的学习范式。值函数方法通过近似最优值函数来间接获取策略,强调价值评估,适合利用丰富经验并处理某些高维观测问题,但在连续动作上需要扩展。优势方法直接优化策略,利用相对价值信号(优势)指导更新,具有梯度明确、易处理连续动作等优点,但通常需要更多样本支持。现代Actor-Critic算法融合了价值评估与策略优化,优势函数在其中扮演承上启下的角色——由Critic提供、为Actor所用,使得高效且稳定的策略学习成为可能。通过对比DQN、DDPG、A2C、PPO、TRPO、SAC、TD3、REINFORCE等算法,可以看到:每种算法对价值函数和优势函数的使用都有精巧的设计,从Q学习的Bellman更新到PPO的剪辑优势梯度,无不体现了对稳定性与效率的权衡。

在更复杂的环境中,如何自适应地选择和融合优势估计方法提升值函数和策略学习的协同,仍是强化学习研究的重要课题。通过深入理解价值函数与优势函数的作用机制,我们可以更好地选择适合的算法并针对不同任务进行改进,从而训练出更高效、鲁棒的智能体。