✍️
mathematics_basic_for_ML
  • README
  • README
    • Summary
    • Geometry
      • EulerAngle
      • Gimbal lock
      • Quaternion
      • RiemannianManifolds
      • RotationMatrix
      • SphericalHarmonics
    • Information
      • Divergence
      • 信息熵 entropy
    • LinearAlgebra
      • 2D仿射变换(2D Affine Transformation)
      • 2DTransformation
      • 3D变换(3D Transformation)
      • ComplexTransformation
      • Conjugate
      • Hessian
      • IllConditioning
      • 逆变换(Inverse transform)
      • SVD
      • det
      • eigendecomposition
      • 矩阵
      • norm
      • orthogonal
      • special_matrix
      • trace
      • vector
    • Mathematics
      • Complex
      • ExponentialDecay
      • average
      • calculus
      • convex
      • derivative
      • 距离
      • function
      • space
      • Formula
        • euler
        • jensen
        • taylor
        • trigonometric
    • Numbers
      • 几何级数
      • SpecialNumbers
    • NumericalComputation
      • ConstrainedOptimization
      • GradientDescent
      • Newton
      • Nominal
      • ODE_SDE
      • Preprocessing
    • Probability
      • bayes
      • distribution
      • expectation_variance
      • 贝叶斯公式
      • functions
      • likelihood
      • mixture_distribution
      • 一些术语
      • probability_distribution
Powered by GitBook
On this page
  • 牛顿法的推导
  • 牛顿法 VS 梯度下降法
  • 举个例子
  • 牛顿法近似
  • 牛顿法的缺点

Was this helpful?

  1. README
  2. NumericalComputation

Newton

PreviousGradientDescentNextNominal

Last updated 2 years ago

Was this helpful?

牛顿法基于和的应用。

牛顿法的推导

将损失函数$f(x)$在$x_0$处用泰勒公式展开,并保留到二阶项,得:

f(x)=f(x0)+(x−x0)g+12(x−x0)⊤H(x−x0)+...f(x) = f(x_0) + (x-x_0)g + \frac{1}{2}(x-x_0)^\top H(x-x_0) + ...f(x)=f(x0​)+(x−x0​)g+21​(x−x0​)⊤H(x−x0​)+...

牛顿法的思想是“直接找到令g=0”的位置。 方法是对f(x)在$x_0$处的偏导并令所有偏导为0。

f′(x)=∇xf(x0)+∇x(x−x0)g+∇x12(x−x0)⊤H(x−x0)=0+g+H(x−x0)\begin{aligned} f'(x) & = & \nabla_x f(x_0) & + & \nabla_x (x-x_0)g & + & \nabla_x \frac{1}{2}(x-x_0)^\top H(x-x_0) \\ & = & 0 & + & g & + & H(x-x_0) \end{aligned}f′(x)​==​∇x​f(x0​)0​++​∇x​(x−x0​)gg​++​∇x​21​(x−x0​)⊤H(x−x0​)H(x−x0​)​

令f'(x)=0得:

x=−H−1g+x0x = -H^{-1}g + x_0x=−H−1g+x0​

牛顿法 VS 梯度下降法

牛顿法:$x = -H^{-1}g + x_0$ 梯度下降法:$x = -\eta g + x_0$

牛顿法相对于梯度下降法的改进,是将学习率变成了Hessian矩阵的逆。 $H^{-1}$的作用:

  1. 改变梯度的方向

  2. 决定了step的size

举个例子

假设loss function为图中的黑线。 取x0的位置,按泰勒公式展开,保留前三项,得到红色曲线。 红色曲线是二次曲线,可直接计算出来它的最小值处为x1。 令x1为新的x0,开始下一轮迭代。 如果f(x)本身就是二次曲线,牛顿法可以一步到位。

牛顿法近似

在H是正定的情况下,就能正常迭代。 当H不是正定时,牛顿法会出错。 解决方法:正则化,即H=H+aI 当H的负特征非常大时,a必须也很大,此时H被aI主导。

牛顿法的缺点

  1. $H^-1$的计算量大

因此,牛顿法不适用于深度学习。

这种方法只能保证找到f'(x)=0的点。但这种点不一定是minima。也有可能是maxima或者saddle point。

泰勒公式
Hessian矩阵