梯度下降法与优化

梯度下降法的数学原理

梯度下降法

目标:求可微函数 f:RnRf: \mathbb{R}^n \to \mathbb{R} 的最小值。

迭代公式: xk+1=xkαkf(xk)\vec{x}_{k+1} = \vec{x}_k - \alpha_k \nabla f(\vec{x}_k)

其中:

  • xk\vec{x}_k 是第 kk 步的迭代点
  • αk>0\alpha_k > 0 是学习率(步长)
  • f(xk)\nabla f(\vec{x}_k) 是梯度,负号表示沿梯度反方向更新

核心思想:梯度方向是函数值增长最快的方向,因此负梯度方向是函数值下降最快的方向(最速下降方向)。

收敛性分析

定理1

ffLL-光滑凸函数(梯度 LL-Lipschitz连续,即 f(x)f(y)Lxy||\nabla f(x)-\nabla f(y)|| \leq L||x-y||),取固定学习率 α(0,1L)\alpha \in (0, \frac{1}{L}),则梯度下降法满足:

f(xk)fx0x22αkf(\vec{x}_k) - f^* \leq \frac{||\vec{x}_0 - \vec{x}^*||^2}{2\alpha k}

即收敛速率为 O(1k)O(\frac{1}{k})(次线性收敛)。

ff 还是 μ\mu-强凸的(2fμI\nabla^2 f \succeq \mu I),则收敛速率为线性收敛:

xkx2(1μL)kx0x2||\vec{x}_k - \vec{x}^*||^2 \leq \left(1 - \frac{\mu}{L}\right)^k ||\vec{x}_0 - \vec{x}^*||^2

其中 κ=Lμ\kappa = \frac{L}{\mu} 称为条件数,条件数越大收敛越慢。

几何解释
推论
证明
符号说明

线搜索

精确线搜索与非精确线搜索

精确线搜索:每一步选择最优步长 αk=argminα>0f(xkαf(xk))\alpha_k = \arg\min_{\alpha > 0} f(\vec{x}_k - \alpha \nabla f(\vec{x}_k))

非精确线搜索:只要求函数值有足够下降,常用Armijo条件: f(xkαf(xk))f(xk)cαf(xk)2f(\vec{x}_k - \alpha \nabla f(\vec{x}_k)) \leq f(\vec{x}_k) - c\alpha ||\nabla f(\vec{x}_k)||^2

其中 c(0,1)c \in (0,1) 是常数。非精确线搜索计算量小,是实践中的主流选择。

梯度下降法的变体

随机梯度下降(SGD)

随机梯度下降

当目标函数是大量样本的损失之和 f(x)=1Ni=1Nfi(x)f(x) = \frac{1}{N}\sum_{i=1}^N f_i(x) 时,每次迭代只用一个(或一小批)样本的梯度近似全梯度:

xk+1=xkαfik(xk)\vec{x}_{k+1} = \vec{x}_k - \alpha \nabla f_{i_k}(\vec{x}_k)

优点:计算快,适合大数据;缺点:梯度有噪声,收敛过程震荡。小批量SGD(Mini-batch SGD)是折中方案,每次用一批样本计算梯度。

动量法(Momentum)

动量法

vk+1=βvk+f(xk)\vec{v}_{k+1} = \beta \vec{v}_k + \nabla f(\vec{x}_k) xk+1=xkαvk+1\vec{x}_{k+1} = \vec{x}_k - \alpha \vec{v}_{k+1}

其中 β[0,1)\beta \in [0,1) 是动量系数(通常取0.9)。动量法积累历史梯度,能够加速收敛、减少震荡,特别适合处理病态条件数问题。

Adam(Adaptive Moment Estimation)

Adam算法

mk=β1mk1+(1β1)f(xk)m_k = \beta_1 m_{k-1} + (1-\beta_1)\nabla f(x_k) vk=β2vk1+(1β2)(f(xk))2v_k = \beta_2 v_{k-1} + (1-\beta_2)(\nabla f(x_k))^2 m^k=mk1β1k,v^k=vk1β2k\hat{m}_k = \frac{m_k}{1-\beta_1^k}, \quad \hat{v}_k = \frac{v_k}{1-\beta_2^k} xk+1=xkαv^k+εm^kx_{k+1} = x_k - \frac{\alpha}{\sqrt{\hat{v}_k} + \varepsilon}\hat{m}_k

默认参数:β1=0.9,β2=0.999,ε=108\beta_1=0.9, \beta_2=0.999, \varepsilon=10^{-8}。Adam结合了动量法和自适应学习率,是深度学习中最常用的优化器之一。

典型例题

例题1:梯度下降求二次函数最小值

用梯度下降法求 f(x,y)=x2+2y2f(x,y) = x^2 + 2y^2 的最小值,初始点 (1,1)(1,1),学习率 α=0.1\alpha=0.1,写出前3步迭代并分析收敛性。

参考答案(3 个标签)
梯度下降二次函数收敛性
  1. f=(2x,4y)\nabla f = (2x, 4y)
  2. 初始:x0=(1,1)x_0=(1,1)f(x0)=3f(x_0)=3
  3. 第1步:x1=(1,1)0.1(2,4)=(0.8,0.6)x_1 = (1,1) - 0.1(2,4) = (0.8, 0.6)f=0.64+0.72=1.36f=0.64+0.72=1.36
  4. 第2步:x2=(0.8,0.6)0.1(1.6,2.4)=(0.64,0.36)x_2 = (0.8,0.6) - 0.1(1.6,2.4) = (0.64, 0.36)f=0.4096+0.2592=0.6688f=0.4096+0.2592=0.6688
  5. 第3步:x3=(0.64,0.36)0.1(1.28,1.44)=(0.512,0.216)x_3 = (0.64,0.36) - 0.1(1.28,1.44) = (0.512, 0.216)f=0.2621+0.0933=0.3554f=0.2621+0.0933=0.3554
  6. 收敛性:L=4L=4(最大特征值),α=0.1<1L=0.25\alpha=0.1 < \frac{1}{L}=0.25,满足收敛条件。xx 方向收敛因子 12α=0.81-2\alpha=0.8yy 方向 14α=0.61-4\alpha=0.6yy 方向收敛更快。

答案:前3步函数值从3降至0.3554,逐步收敛到最小值点 (0,0)(0,0)

例题2:精确线搜索

f(x,y)=x2+2y2f(x,y) = x^2 + 2y^2,从 (1,1)(1,1) 出发,用精确线搜索求第一步的最优步长。

参考答案(3 个标签)
精确线搜索最速下降二次函数
  1. 搜索方向 d=f(1,1)=(2,4)d = -\nabla f(1,1) = (-2,-4)
  2. f((1,1)+α(2,4))=(12α)2+2(14α)2f((1,1) + \alpha(-2,-4)) = (1-2\alpha)^2 + 2(1-4\alpha)^2
  3. =14α+4α2+2(18α+16α2)=320α+36α2= 1-4\alpha+4\alpha^2 + 2(1-8\alpha+16\alpha^2) = 3-20\alpha+36\alpha^2
  4. α\alpha 求导:20+72α=0-20+72\alpha=0α=2072=5180.278\alpha = \frac{20}{72} = \frac{5}{18} \approx 0.278
  5. 下一步点:(11018,12018)=(49,19)(1-\frac{10}{18}, 1-\frac{20}{18}) = (\frac{4}{9}, -\frac{1}{9})

答案:最优步长 α=518\alpha = \frac{5}{18},下一步点 (49,19)(\frac{4}{9}, -\frac{1}{9})


总结

本文出现的符号

符号类型读音/说明在本文中的含义
α\alpha学习率learning rate梯度下降的步长
xk\vec{x}_k迭代点iteration point第k步的迭代点
vk\vec{v}_k动量velocity / momentum动量法中的累积梯度
β\beta动量系数momentum coefficient动量法的衰减系数
LLLipschitz常数Lipschitz constant梯度的Lipschitz常数
μ\mu强凸参数strong convexity强凸函数的参数
κ\kappa条件数condition numberL/μL/\mu
mk,vkm_k, v_kAdam矩momentsAdam算法的一阶和二阶矩
ε\varepsilon小常数epsilonAdam中防止除零的小常数

中英对照

中文术语英文术语音标
梯度下降法gradient descent/ˈɡreɪdiənt dɪˈsɛnt/
最速下降法steepest descent/ˈstiːpɪst dɪˈsɛnt/
学习率learning rate/ˈlɜːrnɪŋ reɪt/
收敛性convergence/kənˈvɜːrdʒəns/
线性收敛linear convergence/ˈlɪniər kənˈvɜːrdʒəns/
次线性收敛sublinear convergence/sʌbˈlɪniər kənˈvɜːrdʒəns/
随机梯度下降stochastic gradient descent/stoʊˈkæstɪk ˈɡreɪdiənt dɪˈsɛnt/
小批量mini-batch/ˈmɪni bætʃ/
动量法momentum/moʊˈmɛntəm/
AdamAdam/ˈædəm/
线搜索line search/laɪn sɜːrtʃ/
Armijo条件Armijo condition/ɑːrˈmiːhoʊ kənˈdɪʃən/
强凸strongly convex/ˈstrɒŋli ˈkɒnvɛks/
光滑smooth/smuːð/
条件数condition number/kənˈdɪʃən ˈnʌmbər/
自适应学习率adaptive learning rate/əˈdæptɪv ˈlɜːrnɪŋ reɪt/