一阶优化算法(如梯度下降)和二阶优化算法(如牛顿法)与泰勒级数

flyfish

一阶优化算法(First-Order Optimization Algorithms)

一阶优化算法主要依赖于目标函数的一阶导数(梯度)来进行迭代更新,以找到函数的极值点。梯度下降是最常见的一阶优化算法。
深度学习基础 - 梯度下降
深度学习基础 - 可视化梯度下降
深度学习基础 - 梯度下降背后的原理

梯度下降与泰勒级数

梯度下降利用目标函数的一阶泰勒展开来指导优化过程。具体来说,在点 x k x_k xk 处,函数 f ( x ) f(x) f(x) 的一阶泰勒展开为:
f ( x + Δ x ) ≈ f ( x ) + ∇ f ( x ) T Δ x f(x + \Delta x) \approx f(x) + \nabla f(x)^T \Delta x f(x+Δx)f(x)+f(x)TΔx其中, ∇ f ( x ) \nabla f(x) f(x) 是函数 f ( x ) f(x) f(x) 在点 x x x 处的梯度。梯度下降算法使用这一展开式,通过选择一个步长 η \eta η,沿负梯度方向移动,以减小目标函数值。梯度下降的更新规则为:
x k + 1 = x k − η ∇ f ( x k ) x_{k+1} = x_k - \eta \nabla f(x_k) xk+1=xkηf(xk)
在这个公式中:

  • ∇ f ( x k ) \nabla f(x_k) f(xk) f f f 在点 x k x_k xk 处的梯度。

  • η \eta η 是学习率(步长),决定每次迭代移动的距离。

二阶优化算法(Second-Order Optimization Algorithms)

二阶优化算法不仅利用目标函数的一阶导数(梯度),还利用二阶导数(Hessian矩阵)来进行迭代更新。牛顿法是最常见的二阶优化算法。

牛顿法

牛顿法与泰勒级数

牛顿法利用目标函数的二阶泰勒展开来指导优化过程。具体来说,在点 x k x_k xk 处,函数 f ( x ) f(x) f(x) 的二阶泰勒展开为:
f ( x + Δ x ) ≈ f ( x ) + ∇ f ( x ) T Δ x + 1 2 Δ x T H f ( x ) Δ x f(x + \Delta x) \approx f(x) + \nabla f(x)^T \Delta x + \frac{1}{2} \Delta x^T H_f(x) \Delta x f(x+Δx)f(x)+f(x)TΔx+21ΔxTHf(x)Δx其中, ∇ f ( x ) \nabla f(x) f(x) 是函数 f ( x ) f(x) f(x) 在点 x x x 处的梯度, H f ( x ) H_f(x) Hf(x) 是函数 f ( x ) f(x) f(x) 在点 x x x 处的 Hessian 矩阵。牛顿法通过寻找使一阶导数为零的点来更新 x x x,即求解以下方程:
∇ f ( x k + Δ x ) = 0 \nabla f(x_k + \Delta x) = 0 f(xk+Δx)=0将上述方程代入二阶泰勒展开式中,并解出 Δ x \Delta x Δx,可以得到:
∇ f ( x k ) + H f ( x k ) Δ x = 0 \nabla f(x_k) + H_f(x_k) \Delta x = 0 f(xk)+Hf(xk)Δx=0
Δ x = − H f ( x k ) − 1 ∇ f ( x k ) \Delta x = - H_f(x_k)^{-1} \nabla f(x_k) Δx=Hf(xk)1f(xk)因此,牛顿法的更新规则为:
x k + 1 = x k − H f ( x k ) − 1 ∇ f ( x k ) x_{k+1} = x_k - H_f(x_k)^{-1} \nabla f(x_k) xk+1=xkHf(xk)1f(xk)
在这个公式中:

  • H f ( x k ) H_f(x_k) Hf(xk) f f f 在点 x k x_k xk 处的 Hessian 矩阵。

  • ∇ f ( x k ) \nabla f(x_k) f(xk) f f f 在点 x k x_k xk 处的梯度。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐