[工程优化]梯度下降(Gradient descent):SGD/BGD、牛顿法(Newton‘s method)【附详细代码】

本文深入探讨梯度下降法与牛顿法在工程优化中的应用,包括一阶导数、二阶导数、海森矩阵和雅可比矩阵等概念。介绍了梯度下降的下降更新、步长影响,以及牛顿法的求根法、二阶导数测试和牛顿方向。此外,文章讨论了各种优化算法的阶数,强调了牛顿法与梯度下降的优缺点,并提出拟牛顿法作为解决方案。
摘要由CSDN通过智能技术生成


引用

Wikipedia:Gradient descent
Wikipedia:Newton’s method


Preliminaries

先要了解一下术语及前导知识。

目标/代价/损失/误差函数

  1. 我们称需要最大化或最小化的函数为目标函数(Objective Function)或准则(Criterion)。特别地,当进行最小化搜索时,也将其称为代价函数(Cost Function)、损失函数(Loss Function)、误差函数(Error Function)。
    min ⁡ x f ( x ) \min \limits_x f(x) xminf(x)

在工程优化中,常见称为目标函数地情况多些。在机器学习中,由于优化目标常常是目标真实值和预测值间的偏差,所以称呼为代价函数、损失函数的情况多一些。

  1. 在数域 X X X上搜索得到一个 x ^ \hat x x^,使得目标函数目标函数取得最小/大值的过程称为参数搜索
  2. 我们将搜索得到的能使目标函数取得最小/大值的参数估计值 x x x称为最优参数估计值,记为 x ∗ x^* x
  3. 对于大部分函数及优化、搜索算法,并不能保证得到一个全局最优的参数估计值,此时称之为极大/极小点

局部最优、全局最优与驻点、鞍点

  1. 在搜索过程中获得一个最优值 x 0 x_0 x0时,使得当 f ( x 0 ) f(x_0) f(x0)取得全局最小值时,该解 x 0 x_0 x0全局最优解;反之,其为局部最优解

  2. 凸函数的局部最优值就是全局最优值,局部最优解属于全局最优解集。

  3. 对于一个 n n n维的目标函数 f ( x ) f(x) f(x),对于 x 0 ∈ X n x_0 \in X^n x0Xn当此处的偏导数 f ′ ( x 0 ) = 0 f'(x_0)=0 f(x0)=0,且此时 f ( x 0 ) f(x_0) f(x0)为一个局部极大/极小小值,称该点为一个驻点临界点;若此时 f ( x 0 ) f(x_0) f(x0)在某个维度上稳定(极大/极小),在其它至少一个维度上不稳定(仍有下降/上升空间),则其为鞍点

驻点与鞍点的存在,都意味着对目标函数的参数搜索陷入了某种算法困境;因为无论朝任意哪个法向看去,其导数方向都为0,不可能再通过梯度下降等方式寻得更优值。对于此类困境,退火算法等智能算法进行了一定上的解决。

导数与偏导数、梯度

  1. 对于一维函数 f ( x ) f(x) f(x),其导数定义为:
    f ′ ( x ) = lim ⁡ Δ x → 0 f ( x 0 + Δ x ) − f ( x 0 ) Δ x f'(x)=\lim \limits_{\Delta x \rightarrow 0} \frac{f(x_0+\small{\Delta} x)-f(x_0)}{\small{\Delta} x} f(x)=Δx0limΔxf(x0+Δx)f(x0)
  2. 对于多维函数 f ( x 1 , . . . , x n ) f(x_1,...,x_n) f(x1,...,xn),对 x i x_i xi求导数 d f d x i \frac{df}{dx_i} dxidf,将其记为偏导数 ∂ f ∂ x I \frac{\partial f}{\partial x_I} xIf。特别的,记录梯度 ▽ f ( x ) \triangledown f(x) f(x)或简记为 ▽ f \triangledown f f为对 x i x_i xi求偏导后的列向量:
    ▽ f ( x ) = ( ∂ f ∂ x 1 , ∂ f ∂ x 2 , . . . , ∂ f ∂ x 1 ) T \triangledown f(x)=(\frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2},..., \frac{\partial f}{\partial x_1})^T f(x)=(x1f,x2f,...,x1f)T

常见函数的梯度与海森矩阵


给定向量 a a a b b b x x x,矩阵 A A A H f ( x ) H_{f(x)} Hf(x)是函数 f ( x ) f(x) f(x)的海森矩阵:
g ( x ) = a T x + b → ▽ g ( x ) = a H g ( x ) = 0 g ( x ) = x T x → ▽ g ( x ) = 2 x H g ( x ) = 2 H f ( x ) g ( x ) = x T A x → ▽ g ( x ) = ( A + A T ) x H g ( x ) = ( A + A T ) H f ( x ) g ( x ) = x T A x + a T x + b → ▽ g ( x ) = ( A + A T ) x + a H g ( x ) = ( A + A T ) H f ( x ) \begin{aligned} g(x)=a^Tx+b \rightarrow \triangledown & g(x)=a\\ & H_{g(x)}=0 \\ g(x)=x^Tx \rightarrow \triangledown & g(x)=2x\\ & H_{g(x)}=2H_{f(x)} \\ g(x)=x^TAx \rightarrow \triangledown & g(x)=(A+A^T)x\\ & H_{g(x)}=(A+A^T)H_{f(x)} \\ g(x)=x^TAx+a^Tx+b \rightarrow \triangledown & g(x)=(A+A^T)x+a \\ & H_{g(x)}=(A+A^T)H_{f(x)} \end{aligned} g(x)=aTx+bg(x)=xTxg(x)=xTAxg(x)=xTAx+aTx+bg(x)=aHg(x)=0g(x)=2xHg(x)=2Hf(x)g(x)=(A+AT)xHg(x)=(A+AT)Hf(x)g(x)=(A+AT)x+aHg(x)=(A+AT)Hf(x)

方向导数与下降方向

  • 设有 单位向量 h = ( h 1 , h 2 , . . . , h n ) T ∈ R n h=(h_1,h_2,...,h_n)^T\in \R^n h=(h1,h2,...,hn)TRn,表示为 n n n维空间中的一个方向,对于 n n n元函数 f ( x ) f(x) f(x),若 lim ⁡ Δ x → 0 f ( x 0 + α h ) − f ( x 0 ) α \lim \limits_{\Delta x \rightarrow 0} \frac{f(x_0+\alpha h)-f(x_0)}{\alpha} Δx0limαf(x0+αh)f(x0)存在,则称该极限值为 f ( x ) f(x) f(x) x 0 x_0 x0处沿方向 h h h方向导数,记作 ∂ f ( x 0 ) ∂ h \frac{\partial f(x_0)}{\partial h} hf(x0)。如图所示:
    在这里插入图片描述
    根据导数的定义不难得到:
    ∂ f ( x 0 ) ∂ h = lim ⁡ Δ x → 0 f ( x 0 + α h ) − f ( x 0 ) α = lim ⁡ Δ x → 0 ▽ f ( x 0 ) T ( α h ) + o ( ∥ α h ∥ ) α = ▽ f ( x 0 ) T h = ∥ ▽ f ( x 0 ) ∥ cos ⁡ ( ▽ f ( x 0 ) , h ) \begin{aligned} \frac{\partial f(x_0)}{\partial h} &= \lim \limits_{\Delta x \rightarrow 0} \frac{f(x_0+\alpha h)-f(x_0)}{\alpha} \\ &= \lim \limits_{\Delta x \rightarrow 0} \frac{\triangledown f(x_0)^T (\alpha h)+o(\parallel \alpha h \parallel)}{\alpha} \\ &= \triangledown f(x_0)^T h \\ &= \parallel \triangledown f(x_0) \parallel \cos(\triangledown f(x_0), h) \end{aligned} hf(x0)=Δx0limαf(x0+αh)f(x0)=Δx0limαf(x0)T(αh)+o(αh)=f(x0)Th=∥f(x0)cos(f(x0),h)
  • ∂ f ( x 0 ) ∂ h < 0 \frac{\partial f(x_0)}{\partial h}<0 hf(x0)<0 h h h f ( x ) f(x) f(x) x 0 x_0 x0处的一个下降方向;反之称为上升方向
  • 使得 ∂ f ( x 0 ) ∂ h < 0 \frac{\par
  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值