【简博士统计学习方法】第2章:2. 感知机——准备知识:梯度下降法

2. 感知机——准备知识:梯度下降法

梯度下降法是一种求解无约束最优化问题的最常用方法。

2.1 直观理解


如何下山最快,走一步看一步,每到一处感受当前所处位置最陡的方向再往下迈一步,以此类推……
现在我们假设有一个可微函数,我们想找到这个可微函数的最小值,也就是相当于找到山的山底,每次找到该点相应的梯度,沿着梯度的反方向往下走,这就是使函数值下降最快的方向。

2.2 概念

2.2.1 基本概念

【注】前置知识方向导数
方向导数(Directional Derivative)是多元函数在某个点沿着某一特定方向变化的速率。具体来说,方向导数描述了函数值在该点沿着某个给定方向的变化速度。

  • 数学定义
    f ( x 1 , x 2 , ⋯   , x n ) f(x_1,x_2,\cdots,x_n) f(x1,x2,,xn)是一个多元实值函数,定义在 R n \mathbb{R}^n Rn n n n维欧氏空间)中。给定一个点 p = ( P 1 , P 2 , ⋯   , P n ) \mathbf{p}=(P_1,P_2,\cdots,P_n) p=(P1,P2,,Pn)(以向量形式表示的点) 和一个单位向量 v = ( v 1 , v 2 , ⋯   , v n ) \mathbf{v}=(v_1,v_2,\cdots,v_n) v=(v1,v2,,vn)(即 ∣ v ∣ = 1 |\mathbf{v}|=1 v=1),方向导数是函数 f f f在点 P P P沿着方向 v \boldsymbol{v} v的导数,通常表示为:
    D v f ( p ) = lim ⁡ h → 0 f ( p + h v ) − f ( p ) h D_{\mathbf{v}} f(\mathbf{p})=\lim _{h \rightarrow 0} \frac{f(\mathbf{p}+h \mathbf{v})-f(\mathbf{p})}{h} Dvf(p)=h0limhf(p+hv)f(p)
    如果极限存在,那么这个极限值就是方向导数的值。
  • 解释
    方向导数的几何意义是:给定点 p \mathbf{p} p和一个方向 v \mathbf{v} v,方向导数表示了函数 f f f在点 p \mathbf{p} p沿着方向 v \mathbf{v} v的瞬时变化率。换句话说,它描述了沿着这个方向,函数值如何变化。
  • 如果方向导数是正数,表示沿着方向 v \mathbf{v} v的函数值增大;
  • 如果是负数,表示函数值在该方向上减小;
    如果为零,表示在该方向上函数值没有变化(即沿该方向没有变化的趋势,可能是平坦的)。

梯度向量
梯度向量(Gradient Vector)是多元函数的一个重要概念,它反映了该函数在某一点处的最大变化率的方向和大小。梯度不仅指示了函数增长最快的方向,还给出了沿该方向变化的速率。

  • 数学定义:假设 f ( x 1 , x 2 , ⋯   , x n ) f(x_1,x_2,\cdots,x_n) f(x1,x2,,xn)是定义在 R n \mathbb{R}^n Rn空间中的一个可微函数,梯度向量 ∇ f ( x 1 , x 2 , … , x n ) \nabla f\left(x_{1}, x_{2}, \ldots, x_{n}\right) f(x1,x2,,xn)就是该函数所有偏导数的向量。它可以表示为:
    ∇ f ( x 1 , x 2 , … , x n ) = ( ∂ f ∂ x 1 , ∂ f ∂ x 2 , … , ∂ f ∂ x n ) \nabla f\left(x_{1}, x_{2}, \ldots, x_{n}\right)=\left(\frac{\partial f}{\partial x_{1}}, \frac{\partial f}{\partial x_{2}}, \ldots, \frac{\partial f}{\partial x_{n}}\right) f(x1,x2,,xn)=(x1f,x2f,,xnf)
    换句话说,梯度向量是由函数 f f f对每个自变量的偏导数组成的向量。
  • 梯度:指某一函数再该点处最大的方向导数,沿着该方向可取得最大的变化率。
    ∇ = ∂ f ( θ ) ∂ θ \nabla=\frac{\partial f(\theta)}{\partial \theta} =θf(θ)

【注】方向导数与梯度的关系
方向导数与梯度(gradient)密切相关。设 ∇ f ( p ) = ( ∂ f ∂ x 1 , ∂ f ∂ x 2 , … , ∂ f ∂ x n ) \nabla f(\mathbf{p})=\left(\frac{\partial f}{\partial x_{1}}, \frac{\partial f}{\partial x_{2}}, \ldots, \frac{\partial f}{\partial x_{n}}\right) f(p)=(x1f,x2f,,xnf)是函数 f f f在点 p \mathbf{p} p的梯度向量。那么,沿任意方向 v \mathbf{v} v的方向导数可以通过梯度与方向向量的点积来计算:
D v f ( p ) = ∇ f ( p ) ⋅ v = ∑ i = 1 n ∂ f ∂ x i v i D_{\mathbf{v}} f(\mathbf{p})=\nabla f(\mathbf{p}) \cdot \mathbf{v}=\sum\limits_{i=1}^{n} \frac{\partial f}{\partial x_{i}} v_{i} Dvf(p)=f(p)v=i=1nxifvi
这个公式告诉我们,方向导数等于梯度向量和方向向量的点积。
梯度的几何意义

  • 最大变化方向:梯度向量指向函数 f f f在某一点处变化最快的方向。换句话说,沿着梯度方向,函数的值增大的速度最快。
  • 变化速率:梯度的模长 ∣ ∇