这里列下最小二乘的四种解法的优缺点.
最小二乘问题可以使用牛顿法,梯度下降法,牛顿高斯法以及列文伯格-马夸特法来求解,这里一一介绍下其优缺点.
牛顿法常用于两种场景
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),是用于数值求解非线性方程或优化问题的迭代方法。下面是二阶牛顿法的推导过程:
批量梯度下降(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处可能为解.但实际应用场景复杂时,是很难求一阶导的,这时要用迭代法进行求解.
流程如下:
可以看出,整个迭代过程只和误差函数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/