ARTICLE

值函数迭代

值函数迭代:动态规划的核心算法 值函数迭代(Value Function Iteration, VFI)是求解动态规划问题最基础的数值方法之一,广泛应用于宏观经济学、劳动经济学、金融经济学和公共财政等领域的结构性估计与政策分析。该方法的核心思想简单而深刻:从一个初始猜测出发,反复应用贝尔曼方程(Bellman Equation)中的最优化算子,使值函数序列收

浏览 6 更新 2025-11-08

值函数迭代:动态规划的核心算法

值函数迭代(Value Function Iteration, VFI)是求解动态规划问题最基础的数值方法之一,广泛应用于宏观经济学劳动经济学金融经济学公共财政等领域的结构性估计与政策分析。该方法的核心思想简单而深刻:从一个初始猜测出发,反复应用贝尔曼方程(Bellman Equation)中的最优化算子,使值函数序列收敛到不动点。在适当的数学条件下,这一迭代过程由压缩映射原理(Contraction Mapping Theorem)保证收敛速度与结果的唯一性。作为一种数值方法,VFI 以其稳健性和易于实现的特点,成为求解异质性代理人模型、最优增长模型资产定价模型搜寻与匹配模型的首选工具之一。

理论框架:贝尔曼算子与压缩映射

值函数迭代的理论根基建立在动态规划的最优性原理之上。考虑一个标准的无限期确定性随机动态规划问题,其贝尔曼方程可写为:

V(s)=maxaΓ(s){U(s,a)+βEss,aV(s)}V(s) = \max_{a \in \Gamma(s)} \Bigl\{ U(s, a) + \beta \mathbb{E}_{s'|s,a} V(s') \Bigr\}

其中 ss状态变量aa控制变量U()U(\cdot) 为即时效用或收益函数,β(0,1)\beta \in (0,1)贴现因子E\mathbb{E} 为条件期望算子,Γ(s)\Gamma(s) 为可行集约束。定义贝尔曼算子 TT 为:

(TV)(s)=maxaΓ(s){U(s,a)+βEss,aV(s)}(TV)(s) = \max_{a \in \Gamma(s)} \bigl\{ U(s,a) + \beta \mathbb{E}_{s'|s,a} V(s') \bigr\}

有界连续函数空间 C(S)\mathcal{C}(S) 上赋予上确界范数(Supremum Norm),若贴现因子 β<1\beta < 1 且即时效用函数有界,则 TT 是一个压缩映射(Contraction Mapping),满足:

TV1TV2βV1V2\|TV_1 - TV_2\|_\infty \leq \beta \|V_1 - V_2\|_\infty

巴拿赫不动点定理(Banach Fixed-Point Theorem),存在唯一的值函数 VV^* 满足 V=TVV^* = TV^*,且从任意初始函数 V0V_0 出发,序列 {Vn}\{V_n\} 以几何速率 βn\beta^n 收敛到 VV^*。这一理论保证了值函数迭代算法的数学有效性和数值可靠性。

算法实现:离散化与迭代流程

在实际应用中,值函数迭代通常在离散化的状态空间上进行。以标准的储蓄问题(储蓄-消费决策)为例,算法流程如下:

第一步:离散化。将状态变量 ss(如资本存量)的连续区间 [smin,smax][s_{\min}, s_{\max}] 离散化为 NN 个格点 {s1,s2,,sN}\{s_1, s_2, \dots, s_N\}。格点间距可选择等距格点或根据函数曲率分布的非等距格点,后者在函数变化剧烈区域可显著提高精度。

第二步:初始化。给定初始猜测 V0(si)V_0(s_i),常见选择包括零函数(即 V0(si)=0V_0(s_i)=0 对全部 ii)或基于期初支付函数的猜测(V0(si)=U(si,a)V_0(s_i) = U(s_i, a^*) 的某些简化形式)。

第三步:迭代。对每个状态格点 sis_i,计算贝尔曼算子作用于当前值函数:

Vk+1(si)=maxaΓ(si){U(si,a)+βEssi,aVk(s)}V_{k+1}(s_i) = \max_{a \in \Gamma(s_i)} \bigl\{ U(s_i,a) + \beta \mathbb{E}_{s'|s_i,a} V_k(s') \bigr\}

其中对 Vk(s)V_k(s') 的评估通常需要插值法(如线性插值或样条插值)来获得非格点位置的值函数近似。

第四步:收敛判断。计算相邻两次迭代值函数之间的最大绝对值差异:

Δk=maxiVk+1(si)Vk(si)\Delta_k = \max_i |V_{k+1}(s_i) - V_k(s_i)|

Δk<ε\Delta_k < \varepsilon(预设容差,如 10610^{-6}),则终止迭代;否则返回第三步。实践中通常还会施加迭代次数上限以防止死循环。

第五步:提取策略函数。收敛后,从最终值函数 VV^* 代入贝尔曼方程即可获得最优策略函数:

a(s)=argmaxaΓ(s){U(s,a)+βEss,aV(s)}a^*(s) = \arg\max_{a \in \Gamma(s)} \bigl\{ U(s,a) + \beta \mathbb{E}_{s'|s,a} V^*(s') \bigr\}

收敛性质与改进技术

标准值函数迭代以线性速率收敛,收敛因子即为贴现因子 β\beta。这意味着在 β0.95\beta \approx 0.95 的典型校准值下,每次迭代误差约缩小 5\%,达到 10610^{-6} 的精度需要约 270 次迭代。这种对高贴现因子问题的敏感性催生了多种加速技术。

策略迭代(Policy Iteration)是值函数迭代的重要替代方案。由Richard BellmanRonald Howard 发展,策略迭代交替进行策略评估(固定策略下的值函数求解)和策略改进(基于当前值函数更新策略),通常只需极少的迭代次数(5-15 次)即可收敛。在线性二次型问题中,策略迭代等价于求解代数黎卡提方程(Algebraic Riccati Equation)。

Howard 加速算法(Howard's Improvement Algorithm)将策略迭代的思想嵌入值函数迭代的每一轮中:在贝尔曼算子应用后,立即执行若干次策略迭代步骤,使得每次外层迭代后值函数的大幅跳跃成为可能。

多重网格法(Multigrid Methods)和自适应格点法(Adaptive Grid Methods)则在状态空间离散化层面提升效率。粗网格提供快速的长波收敛,细网格捕捉局部细节,二者结合可大幅减少总计算量。近年来,深度学习值函数迭代(Deep VFI)利用神经网络作为值函数的函数逼近器,突破了传统格点法的维数诅咒(Curse of Dimensionality),使 VFI 方法得以扩展到数百维的高维问题。

在宏观经济学中的应用典范

值函数迭代在宏观经济学中占据核心地位。在Krusell-Smith 模型(1998)中,异质性代理人面临不完全市场,需要将财富的横截面分布作为状态变量。VFI 结合"近似聚合"方法,使这类高维问题的求解成为可能。在Aiyagari 模型(1994)和Bewley 模型框架下,VFI 用于求解存在借贷约束异质性收入风险条件下的储蓄分布均衡。

搜寻与匹配模型(搜索与匹配模型,如Mortensen-Pissarides 模型)中,VFI 被用于求解劳动力市场上企业与工人之间的匹配价值函数,进而推导贝弗里奇曲线(Beveridge Curve)和自然失业率。在定量宏观经济学中,VFI 也是资产定价中求解权益价格的随机贴现因子(SDF)的关键工具。

值函数迭代的深远影响在于它架起了理论模型与计量数据之间的桥梁。通过求解结构性参数下的贝尔曼方程,研究者可以计算模型矩并与数据矩进行匹配,进而利用模拟矩估计法(SMM)或广义矩估计(GMM)进行参数估计。在GMM最大似然估计难以处理非线性动态模型的场景下,VFI 提供了一条稳健且透明的替代路径。

局限性与拓展方向

尽管值函数迭代在理论和应用上取得了巨大成功,它仍面临若干局限性。首先,维数诅咒使传统格点法在状态变量超过 4-5 个时变得计算上不可行。其次,收敛速度在高贴现因子环境下明显下降。第三,不可微性问题——当最优策略在状态空间的某些区域发生跳跃(如存在固定成本或不可逆投资约束)时,值函数的非光滑性会降低数值精度和收敛稳定性。

针对这些局限,近年来的前沿方向包括:使用张量训练(Tensor Train)和低秩逼近技术压缩高维值函数表示,从而缓解维数诅咒;将随机梯度下降(SGD)引入 VFI 以处理大规模代理问题;结合经济学中的机器学习技术(如高斯过程回归稀疏网格)构建代理值函数。这些方法的共同目标是在保持值函数迭代理论可靠性的基础上,将动态规划的求解边界推向更高维度、更复杂结构和更贴近现实的模型设定。