ARTICLE

梯度下降法

梯度下降法 (Gradient Descent) 梯度下降法 (Gradient Descent) 是一种基础且极为重要的优化算法,广泛应用于机器学习、统计学和众多计算科学领域。其核心目标是通过迭代的方式寻找一组参数,以最小化一个给定的目标函数,该函数通常被称为损失函数 (Loss Function) 或成本函数 (Cost Function)。在经济学中,

浏览 57 更新 2025-10-26

梯度下降法 (Gradient Descent)

梯度下降法 (Gradient Descent) 是一种基础且极为重要的优化算法,广泛应用于机器学习统计学和众多计算科学领域。其核心目标是通过迭代的方式寻找一组参数,以最小化一个给定的目标函数,该函数通常被称为损失函数 (Loss Function) 或成本函数 (Cost Function)。在经济学中,该目标函数常对应为负对数似然函数广义矩估计 (GMM) 中的准则函数。

梯度下降法的直观思想类似于一个人在山坡上试图以最快的速度走到谷底:每一步观察脚下最陡峭的方向,朝最陡的下坡方向迈出一步,重复此过程,理论上有望最终到达最低点。

核心数学原理

设目标函数为 J(θ)J(\theta),参数 θ\theta 可为标量或向量 θ=[θ0,θ1,,θn]\theta = [\theta_0, \theta_1, \ldots, \theta_n]。在多元微积分中,梯度 J(θ)\nabla J(\theta) 是一个向量,指向函数值增长最快的方向,每个分量是函数对各参数的偏导数。以二维为例:

J(θ)=[Jθ1Jθ2]\nabla J(\theta) = \begin{bmatrix} \frac{\partial J}{\partial \theta_1} \\ \frac{\partial J}{\partial \theta_2} \end{bmatrix}

梯度的负方向 J(θ)-\nabla J(\theta) 即为函数值下降最快的方向,这正是参数更新的依据。学习率 α>0\alpha > 0 是一个关键的超参数,控制每次迭代的更新幅度。由此得到核心迭代公式:

θt+1:=θtαθJ(θt)\theta_{t+1} := \theta_t - \alpha \nabla_{\theta} J(\theta_t)

重复执行此更新,参数逐步移向使 J(θ)J(\theta) 更小的位置,最终收敛至某个最小值点。对于凸函数,该最小值即全局最小值;对于非凸函数,算法收敛至梯度为零的驻点。

三种主要变体

根据每次更新使用的数据量,梯度下降法有三种经典变体:

一、批量梯度下降法 (BGD):每次更新计算全部 mm 个训练样本的梯度均值:

θ:=θα1mi=1mθJi(θ)\theta := \theta - \alpha \frac{1}{m} \sum_{i=1}^{m} \nabla_{\theta} J_i(\theta)

BGD 的收敛路径平滑稳定,对凸函数可保证收敛至全局最优。然而当数据集规模庞大时(如数百万样本),每次迭代的计算成本极高,速度极慢。

二、随机梯度下降法 (SGD):每次仅随机选取一个样本计算梯度:

θ:=θαθJi(θ)\theta := \theta - \alpha \nabla_{\theta} J_i(\theta)

SGD 更新极快,且梯度噪声提供了随机扰动,有助于算法"跳出"浅的局部最小值鞍点。但其更新方向方差大,收敛过程剧烈震荡,最终结果可能在最小值附近徘徊,且难以充分利用向量化硬件加速。

三、小批量梯度下降法 (MBGD):折衷方案,每次使用大小为 bb(实践中常取 2n2^n,如 32、64、128)的小批量样本:

θ:=θα1bi=kk+b1θJi(θ)\theta := \theta - \alpha \frac{1}{b} \sum_{i=k}^{k+b-1} \nabla_{\theta} J_i(\theta)

MBGD 结合了 BGD 的稳定性与 SGD 的高效性,并能充分利用 GPU 的并行计算能力,是训练深度学习模型的实际标准。通常语境下所称的"SGD"往往指代 MBGD。

关键挑战

学习率的选择α\alpha 是最敏感的超参数之一。α\alpha 过小导致收敛缓慢,过大则可能越过最小值甚至使损失函数不断增大而发散。实践中常采用学习率衰减策略——随训练的进行逐步减小学习率,使算法初期快速逼近、后期精细收敛。常见的衰减方案包括阶梯衰减、指数衰减和余弦退火。

局部最优与鞍点:对于现代深度学习中常见的高维非凸函数,梯度为零的驻点可能是全局最小值、局部最小值或鞍点。鞍点是某些维度上为局部最小、另一些维度上为局部最大的点,在高维空间中数量远多于局部最小值,是梯度下降停滞的主要障碍。

梯度消失与梯度爆炸:在深层神经网络中,梯度的反向传播可能导致浅层参数的梯度趋近于零(梯度消失)或急剧增大(梯度爆炸),前者使参数更新停滞,后者造成数值溢出。这些问题推动了ReLU激活函数、批归一化 (Batch Normalization) 和残差网络等技术的产生。

高级优化算法

为克服基础梯度下降的局限,研究者提出了一系列改进算法:

  • 动量法 (Momentum):引入物理惯性概念,累积历史梯度的指数加权移动平均,使参数更新兼具当前梯度方向和历史动量,有助于冲过鞍点和狭窄谷底,加速收敛。
  • AdaGrad:为每个参数维护独立的学习率,根据历史梯度平方和自动调节——频繁更新的参数学习率衰减,稀疏参数保持较大学习率,适合处理稀疏数据。
  • RMSProp:改进 AdaGrad,引入衰减因子 ρ\rho 防止学习率单调递减至零,使算法在非凸优化中保持活力,是Adam优化器的前身。
  • Adam (Adaptive Moment Estimation):结合动量法与 RMSProp 的优点,同时维护梯度的一阶矩(均值)和二阶矩(方差)估计,为每个参数计算自适应学习率。Adam 凭借其鲁棒性和快速收敛特性,已成为当前应用最广泛的优化器。
  • AdamW:将权重衰减 (Weight Decay) 与自适应学习率解耦,解决了 Adam 中 L2L_2 正则化与自适应机制耦合导致的泛化性能下降问题。

在经济学与计算社会科学中的应用

梯度下降法不仅是训练神经网络的引擎,在经济学方法论中也具有重要地位。在极大似然估计中,对数似然函数的梯度(即得分函数)为零构成估计方程;在广义矩估计 (GMM) 中,准则函数的梯度引导参数搜索方向。高维正则化回归(如LASSO岭回归弹性网)的求解也广泛依赖近端梯度下降及其变体。

计算社会科学中,大规模文本分析(主题模型、词嵌入)、社会网络分析和推荐系统的参数估计均依赖梯度下降或其随机变体。以word2vec为例,其跳字模型通过随机梯度下降在数十亿词料上训练词向量,已成为自然语言处理的基础设施。

梯度下降法以其简洁而强大的原理,串联起优化理论、统计估计和现代人工智能三大领域,深入理解其工作机制与局限性,是掌握当代计算方法的必经之路。