非线性优化知识

这里列下最小二乘的四种解法的优缺点.

求J
求H
求J和H^
求J,H^和信赖域
最小二乘问题
梯度下降法
牛顿法
高斯牛顿法
列文伯格-马夸特法

最小二乘问题可以使用牛顿法,梯度下降法,牛顿高斯法以及列文伯格-马夸特法来求解,这里一一介绍下其优缺点.

牛顿法

牛顿法常用于两种场景

  • 求根(一阶)
  • 求最优值(二阶)

牛顿法求根推导过程

  • 求解步骤
    一阶牛顿求根.通过迭代法求解方程根的数值求解方法.其求根的一般步骤是:
1. 选择一个初始猜测值 x₀,这个值应该接近方程的一个根。
2. 根据方程和初始猜测值,计算函数 f(x₀) 和导数 f'(x₀)。
3. 使用以下公式进行迭代计算:
x₁ = x₀ - (f(x₀) / f'(x₀))
4. 将 x₁ 作为新的猜测值,并重复步骤 2 和 3,直到满足停止条件。停止条件可以是达到预定的迭代次数,或者函数值的变化很小(收敛到方程的根)。
5. 最终得到的 x 值就是方程的一个近似根。

牛顿法的迭代公式可以通过使用泰勒展开来推导得出。假设我们要解方程 f(x) = 0,使用牛顿法的迭代公式如下:


1. 选择一个初始猜测值 x₀。
2. 根据初始猜测值 x₀,使用泰勒展开将方程 f(x) 在 x₀ 处展开,考虑到一阶导数:
f(x) ≈ f(x₀) + f'(x₀)(x - x₀)
3. 希望找到一个新的近似解 x₁,使得 f(x₁) = 0。将上述展开式中的 x 替换为 x₁:
0 ≈ f(x₀) + f'(x₀)(x₁ - x₀)
4. 将 x₁ 作为新的近似解,即令 f(x₁) = 0,我们可以解出 x₁:
x₁ = x₀ - (f(x₀) / f'(x₀))

这就是牛顿法的迭代公式。通过不断迭代使用该公式,我们可以逐步逼近方程的根。每次迭代,我们通过计算函数值和导数值来更新当前的近似解。

牛顿法求最优解

二阶牛顿法(Second-Order Newton’s Method),也称为牛顿-拉夫逊法(Newton-Raphson method),是用于数值求解非线性方程或优化问题的迭代方法。下面是二阶牛顿法的推导过程:

  1. 假设我们要求解方程 f(x) = 0,其中 x 是一个变量。
  2. 初始猜测值:选择一个初始猜测值 x₀。
    泰勒展开:在当前猜测值 x₀ 处对函数 f(x) 进行二阶泰勒展开:
    f(x) ≈ f(x₀) + f’(x₀)(x - x₀) + 0.5 * f’‘(x₀)(x - x₀)²
    其中,f’(x₀) 表示 f(x) 对 x 在 x₀ 处的一阶导数,f’'(x₀) 表示 f(x) 对 x 在 x₀ 处的二阶导数。
  3. 近似根的计算:我们希望找到一个新的近似根 x₁,使得 f(x₁) = 0。将上述展开式中的 x 替换为 x₁:0 ≈ f(x₀) + f’(x₀)(x₁ - x₀) + 0.5 * f’'(x₀)(x₁ - x₀)²
  4. 求解近似根:将上述方程化简为形式为 g(x₁) = 0 的方程,其中 g(x₁) 表示近似根 x₁ 的函数表达式。对 g(x₁) 求导,并令导数为零,可以解出 x₁ 的值。具体计算如下:
    对上述方程两边求导数:
    g’(x₁) = f’(x₀) + f’‘(x₀)(x₁ - x₀)
    令 g’(x₁) = 0,解得:
    x₁ = x₀ - f’(x₀) / f’'(x₀)
  5. 更新猜测值:将 x₁ 作为新的猜测值,重复步骤 2 至 4,直到满足停止条件(例如达到预定的迭代次数或函数值的变化很小)。
    最终得到的 x 值就是方程 f(x) = 0 的一个近似根。

梯度下降法

批量梯度下降(Batch Gradient Descent)、随机梯度下降(Stochastic Gradient Descent)或者小批量梯度下降(Mini-batch Gradient Descent)

最小二乘定义

假设有误差函数f(x), 则对于目标函数 m i n ( F ( x ) ) = 1 / 2 ∣ ∣ f ( x ) ∣ ∣ 2 min(F(x))=1/2||f(x)||^2 min(F(x))=1/2∣∣f(x)2, 如果容易求导,那么F(x)一阶导为0处可能为解.但实际应用场景复杂时,是很难求一阶导的,这时要用迭代法进行求解.
流程如下:
非线性优化知识_第1张图片
可以看出,整个迭代过程只和误差函数f(x)有关,企图通过每次局部小的迭代实现目标函数的最小解.下面介绍的迭代法最大的区别就是求解 δ x \delta x δx的不同.
如果用高斯法和梯度下降法求解,需要求H,太过复杂,这里就引出了高斯牛顿法.

高斯牛顿法

针对最小二乘场景目标函数 m i n ( F ( x ) ) = 1 / 2 ∣ ∣ f ( x ) ∣ ∣ 2 min(F(x))=1/2||f(x)||^2 min(F(x))=1/2∣∣f(x)2,如果直接用梯度下降法求解,那就不可避免的求解f(x)的海森矩阵,但是最小二乘问题可以做下简化来避免H矩阵的求解.简化后可以通过求解伪H矩阵来完成优化工作.

列文伯格-马夸特法

在高斯牛顿法基础上引入了信赖域概念.

参考链接:
https://zhuanlan.zhihu.com/p/113946848
https://zhuanlan.zhihu.com/p/37524275
https://sm1les.com/2019/03/01/gradient-descent-and-newton-method/

你可能感兴趣的:(算法,矩阵)