最小二乘法中,海森矩阵

在最小二乘法中,海森矩阵(Hessian Matrix,又译黑塞矩阵)是目标函数(误差平方和)关于参数的二阶偏导数方阵。它描述了误差曲面的局部曲率,决定了优化算法的收敛速度和方向。在非线性最小二乘中,通常使用由一阶导数(雅可比矩阵 J\mathbf{J}J)构成的 JTJ\mathbf{J}^T\mathbf{J}JTJ 来近似代替海森矩阵。


1. 海森矩阵的定义

对于多元损失函数 f(x)f(\mathbf{x})f(x)(其中 x=x1,x2,...,xnT\mathbf{x} = x_1, x_2, \\dots, x_n^Tx=x1,x2,...,xnT 是待求参数),其海森矩阵 H\mathbf{H}H 的第 iii 行、第 jjj 列元素为:

Hij=∂2f∂xi∂xjH_{ij} = \frac{\partial^2 f}{\partial x_i \partial x_j}Hij=∂xi∂xj∂2f

它是一个 n×nn \times nn×n 的对称方阵(其中 nnn 为参数的维度)。

2. 线性最小二乘中的海森矩阵

在线性最小二乘中,目标函数为残差平方和:

f(x)=12∥Ax−b∥2f(\mathbf{x}) = \frac{1}{2} \Vert{}\mathbf{A}\mathbf{x} - \mathbf{b}\Vert{}^2f(x)=21∥Ax−b∥2

对该函数求一阶导数(梯度)并令其为零,或者直接求二阶导数,其海森矩阵为:

H=ATA\mathbf{H} = \mathbf{A}^T\mathbf{A}H=ATA

此时通过解正规方程 ATAx=ATb\mathbf{A}^T\mathbf{A}\mathbf{x} = \mathbf{A}^T\mathbf{b}ATAx=ATb 可以一步直接求出最优解。

3. 非线性最小二乘与高斯-牛顿法近似

在非线性最小二乘中,残差函数 r(x)\mathbf{r}(\mathbf{x})r(x) 是非线性的,目标函数为 f(x)=12∥r(x)∥2f(\mathbf{x}) = \frac{1}{2} \Vert{}\mathbf{r}(\mathbf{x})\Vert{}^2f(x)=21∥r(x)∥2。

精确的海森矩阵包含残差的二阶导数项,计算非常复杂。因此,常用的高斯-牛顿法(Gauss-Newton Method)利用一阶雅可比矩阵 J(x)\mathbf{J}(\mathbf{x})J(x) 来近似海森矩阵:

H≈JTJ\mathbf{H} \approx \mathbf{J}^T\mathbf{J}H≈JTJ

从而将更新步长方程简化为:

JTJΔx=−JTr\mathbf{J}^T\mathbf{J} \Delta\mathbf{x} = -\mathbf{J}^T\mathbf{r}JTJΔx=−JTr

在非线性最小二乘法中,r\mathbf{r}r 代表残差向量(Residual Vector)。

它是每个样本的预测值与真实值之间的差值。


1. 它的具体组成

假设你有 mmm 个已知的数据点(测量值),要拟合一个包含 nnn 个未知参数的非线性模型 h(x)h(\mathbf{x})h(x)。

对于第 iii 个样本点,它的残差定义为:

ri(x)=hi(x)−yir_i(\mathbf{x}) = h_i(\mathbf{x}) - y_iri(x)=hi(x)−yi

  • hi(x)h_i(\mathbf{x})hi(x):模型对第 iii 个点的预测值(包含未知参数 x\mathbf{x}x)
  • yiy_iyi:第 iii 个点的真实测量值

把所有 mmm 个样本的残差堆叠起来,就形成了残差向量:

r(x)=r1(x)r2(x)⋮rm(x)\mathbf{r}(\mathbf{x}) = \begin{bmatrix} r_1(\mathbf{x}) \\ r_2(\mathbf{x}) \\ \vdots \\ r_m(\mathbf{x}) \end{bmatrix}r(x)= r1(x)r2(x)⋮rm(x)

2. 它在公式中的物理意义

非线性最小二乘的核心目标,是让所有残差的平方和最小。目标函数写为:

f(x)=12∑i=1mri(x)2=12∥r(x)∥22f(\mathbf{x}) = \frac{1}{2} \sum_{i=1}^{m} r_i(\mathbf{x})^2 = \frac{1}{2} \Vert{}\mathbf{r}(\mathbf{x})\Vert{}^2_2f(x)=21i=1∑mri(x)2=21∥r(x)∥22

当我们对这个目标函数求一阶导数(即梯度 g\mathbf{g}g)时,根据多元复合函数求导法则,会得到:

g=∇f(x)=JTr\mathbf{g} = \nabla f(\mathbf{x}) = \mathbf{J}^T \mathbf{r}g=∇f(x)=JTr

  • JTr\mathbf{J}^T \mathbf{r}JTr 本质上就是目标函数的梯度(误差曲面的最陡上升方向)。
  • 在迭代优化时(如高斯-牛顿法 JTJΔx=−JTr\mathbf{J}^T\mathbf{J} \Delta\mathbf{x} = -\mathbf{J}^T\mathbf{r}JTJΔx=−JTr),右侧的 −JTr-\mathbf{J}^T\mathbf{r}−JTr 正好代表了我们要沿着梯度的反方向(最陡下降方向)去修正参数。

4. 核心作用与局限性

  • 曲率与步长调整:海森矩阵的逆矩阵能够"解开"误差曲面的扭曲和长条形峡谷,使优化算法快速收敛。
  • 矩阵奇异性风险:在非线性优化中,若 JTJ\mathbf{J}^T\mathbf{J}JTJ 满秩,则参数可解;若出现降秩或病态,JTJ\mathbf{J}^T\mathbf{J}JTJ 会变成奇异矩阵,导致求逆困难。因此实际中常采用列文伯格-马夸尔特方法(Levenberg-Marquardt)引入阻尼因子(JTJ+λI\mathbf{J}^T\mathbf{J} + \lambda\mathbf{I}JTJ+λI)来改善海森矩阵近似的稳定性。
相关推荐
橘子汽水1689 小时前
Leetcode 128,49最长连续序列,字母异位词分组
java·算法·leetcode
mmmmath_39 小时前
LeetCode.438.找到字符串中所有字母异位词
数据结构·算法·leetcode
Nil2089 小时前
leetcode 22括号生成
算法·leetcode·深度优先
Navigator_Z9 小时前
LeetCode //C - 1237. Find Positive Integer Solution for a Given Equation
c语言·算法·leetcode
政企项目老覃20 小时前
大模型幻觉治理与自动评测:金融风控场景的落地实践
人工智能·算法·机器学习
淡海水21 小时前
08-03-不可变-ImmutableDictionary-TKey-TValue-与ImmutableHashSet-T-持久化哈希树
数据结构·算法·c#·哈希算法·dictionary·immutable
hansang_IR21 小时前
【题解】[APIO2023] 赛博乐园 / cyberland
c++·算法·图论
洛阳纸贵21 小时前
MATLAB-matlab基础知识
学习·算法·matlab