news 2026/8/10 6:58:23

最小二乘问题详解4:非线性最小二乘

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
最小二乘问题详解4:非线性最小二乘

1. 引言

在论述最小二乘问题的时候,很多文章都喜欢用拟合直线来举例,但是在现实中像拟合直线这样的线性最小二乘问题往往不是常态,现实世界中更多是像投影成像这种非线性最小二乘问题。在本文中,我们就讲解一下非线性最小二乘问题。

不过,在继续阅读本文之前,一定要先理解之前的3篇文章,因为线性最小二乘是求解非线性最小二乘问题的基础:

《最小二乘问题详解1:线性最小二乘》

《最小二乘问题详解2:线性最小二乘求解》

《最小二乘问题详解3:线性最小二乘实例》

2. 定义

具体来说,非线性最小二乘的目标就是找到一组参数

θ

,使得非线性模型

f

(

x

;

θ

)

最好地拟合观测数据。非线性最小二乘模型通常使用如下公式来表达:

y

=

f

(

x

;

θ

)

+

ε

其中:

x

R

d

:输入变量(如坐标、时间等)

θ

R

p

:待估计参数向量

f

:

R

d

×

R

p

R

m

:非线性向量值函数

ε

:观测噪声

y

R

m

:观测输出

我们有

n

组数据:

{

(

x

i

,

y

i

)

}

n

i

=

1

同样的,非线性最小二乘的目标是最小化残差平方和:

min

θ

S

(

θ

)

=

min

θ

n

i

=

1

r

i

(

θ

)

2

=

min

θ

r

(

θ

)

2

其中:

r

i

(

θ

)

=

y

i

f

(

x

i

;

θ

)

:第

i

个样本的残差向量

r

(

θ

)

=

[

r

T

1

,

r

T

2

,

,

r

T

n

]

T

:所有残差拼成的长向量,维度

N

=

n

m

那么非线性最小二乘能不能像线性那样直接求解呢?显然是不行的。因为在线性情况下,残差是

r

=

A

θ

b

,目标函数是

A

θ

b

2

,这是一个二次函数,所以有闭式解

(

A

T

A

)

1

A

T

b

。但在非线性情况下,

r

(

θ

)

2

是一个非凸、非二次函数,无法直接求逆,也就无法计算出闭式解。更直观的说,通过非线性函数

f

(

x

;

θ

)

是无法写成类似设计矩阵

A

θ

=

b

这样的线性方程组的。

一种求解的思路是局部线性化(Local Linearization)。虽然

f

(

x

;

θ

)

是非线性的,但在当前估计

θ

k

附近,我们可以用一阶泰勒展开近似模型输出:

f

(

x

i

;

θ

)

f

(

x

i

;

θ

k

)

+

J

i

(

θ

k

)

(

θ

θ

k

)

其中:

J

i

(

θ

k

)

=

f

(

x

i

;

θ

)

θ

T

θ

=

θ

k

R

m

×

p

:第

i

个样本的模型输出对参数的雅可比块。

J

(

θ

k

)

是将所有

J

i

垂直堆叠得到的

N

×

p

矩阵(

N

=

n

m

p

为参数维度)。

代入残差定义

r

i

(

θ

)

=

y

i

f

(

x

i

;

θ

)

,得到残差的线性近似:

r

i

(

θ

)

r

i

(

θ

k

)

J

i

(

θ

k

)

(

θ

θ

k

)

对所有样本拼接成向量形式:

r

(

θ

)

r

(

θ

k

)

J

(

θ

k

)

(

θ

θ

k

)

Δ

θ

=

θ

θ

k

,则:

r

(

θ

)

r

k

J

k

Δ

θ

这是一个关于

Δ

θ

的线性模型,为非线性最小二乘求解奠定了基础。

3. 雅可比矩阵

在进行正式求解之前,我们先理解一下雅可比矩阵(Jacobian Matrix),因为它在非线性最小二乘中起着核心作用。

从泰勒展开的角度看,一元函数的一阶近似使用导数,而多元向量函数的一阶近似则使用雅可比矩阵——它是多元函数所有一阶偏导数组成的矩阵。在非线性最小二乘中,我们关注的是模型输出

f

(

x

i

;

θ

)

对参数

θ

的变化率。

对于第

i

个样本,其模型输出对参数的雅可比块为:

J

i

(

θ

)

=

f

(

x

i

;

θ

)

θ

T

R

m

×

p

m

:模型输出维度(例如,二维图像坐标

(

u

,

v

)

m

=

2

p

:待估参数维度

J

i

(

θ

)

是一个

m

×

p

矩阵,表示模型输出的每个分量对每个参数的偏导数

将所有

n

个样本的雅可比块垂直堆叠,得到整体雅可比矩阵:

J

(

θ

)

=

J

1

(

θ

)

J

2

(

θ

)

J

n

(

θ

)

=

f

(

x

1

;

θ

)

θ

T

f

(

x

2

;

θ

)

θ

T

f

(

x

n

;

θ

)

θ

T

R

N

×

p

其中

N

=

n

m

4. Gauss-Newton

求解非线性最小二乘问题最基础最好理解的就是Gauss-Newton方法,它结合了牛顿法的迭代优化框架(就是高中数学中迭代逼近求解平方根的过程)和高斯的线性化思想,所以将其称为Gauss-Newton方法。它的算法流程如下:

初始化:选一个初始猜测

θ

0

迭代:对

k

=

0

,

1

,

2

,

a. 计算当前残差:

r

k

=

y

f

(

x

;

θ

k

)

b. 计算雅可比矩阵

J

k

=

J

(

θ

k

)

c. 求解线性最小二乘子问题:

min

Δ

θ

r

k

J

k

Δ

θ

2

解为:

Δ

θ

=

(

J

T

k

J

k

)

1

J

T

k

r

k

d. 更新参数:

θ

k

+

1

=

θ

k

+

Δ

θ

终止:当

Δ

θ

很小或目标函数变化很小时停止

Gauss-Newton方法的基本思路是每一步都在当前点附近做线性近似;然后走一步,走的方向是让残差平方和下降最快的方向之一;最终收敛到一个局部最小值。可能这个算法流程可能还是有点抽象,我们将其中一次迭代的过程论述的更清楚一些:

θ

k

处做一阶泰勒展开。对残差函数

r

(

θ

)

θ

k

附近线性化:

r

(

θ

)

r

(

θ

k

)

J

(

θ

k

)

(

θ

θ

k

)

Δ

θ

=

θ

θ

k

,则:

r

(

θ

)

r

k

J

k

Δ

θ

其中:

r

k

=

r

(

θ

k

)

J

k

=

J

(

θ

k

)

构造局部二次近似目标函数。代入原目标:

S

(

θ

)

=

r

(

θ

)

2

r

k

J

k

Δ

θ

2

展开:

S

(

θ

)

r

T

k

r

k

2

r

T

k

J

k

Δ

θ

+

Δ

θ

T

J

T

k

J

k

Δ

θ

这是一个关于

Δ

θ

的二次函数。

最小化这个二次函数。对

Δ

θ

求导并令导数为零:

S

(

Δ

θ

)

=

2

J

T

k

r

k

+

2

J

T

k

J

k

Δ

θ

=

0

得到正规方程(Normal Equation):

J

T

k

J

k

Δ

θ

=

J

T

k

r

k

求解 Gauss-Newton 步长。如果

J

T

k

J

k

可逆,则解为:

Δ

θ

=

(

J

T

k

J

k

)

1

J

T

k

r

k

更新参数

θ

k

+

1

=

θ

k

+

Δ

θ

看到这个过程中的正规方程了吗?这就是我们说的非线性最小二乘求解的基础是线性最小二乘的原因了,非线性最小二乘问题的每次迭代过程就是一个线性最小二乘子问题。

非线性最小二乘与线性最小二乘求解过程的对比如下:

特性 线性最小二乘 非线性最小二乘(Gauss-Newton)

模型

f

(

x

;

θ

)

=

A

θ

f

(

x

;

θ

)

任意非线性

残差

r

=

A

θ

b

r

(

θ

)

=

y

f

(

x

;

θ

)

雅可比

J

=

A

(常数)

J

(

θ

)

=

f

θ

T

(依赖

θ

θ

=

(

A

T

A

)

1

A

T

b

θ

k

+

1

=

θ

k

+

(

J

T

k

J

k

)

1

J

T

k

r

k

是否迭代 否 是

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/9 6:53:41

终极FGO助手Chaldea:从材料管理到战斗策略的完整解决方案

终极FGO助手Chaldea:从材料管理到战斗策略的完整解决方案 【免费下载链接】chaldea Chaldea - Yet Another Material Planner and Battle Simulator for Fate/Grand Order aka FGO 项目地址: https://gitcode.com/gh_mirrors/ch/chaldea 还在为FGO复杂的养成…

作者头像 李华
网站建设 2026/8/9 6:53:38

Scoop 全局安装指南

Scoop 全局安装指南 什么是 Scoop 全局安装? Scoop 支持两种安装模式: 本地安装:应用程序安装在用户目录下(C:\Users\用户名\scoop),仅当前用户可用全局安装:应用程序安装在系统目录下&#xff…

作者头像 李华
网站建设 2026/8/9 5:02:25

80亿参数仅激活3B:Qwen3-Next架构如何重塑AI效率格局

80亿参数仅激活3B:Qwen3-Next架构如何重塑AI效率格局 【免费下载链接】Qwen3-Next-80B-A3B-Thinking Qwen3-Next-80B-A3B-Thinking 在复杂推理和强化学习任务中超越 30B–32B 同类模型,并在多项基准测试中优于 Gemini-2.5-Flash-Thinking 项目地址: ht…

作者头像 李华
网站建设 2026/8/9 12:39:51

【建议收藏】告别API焦虑!Gemini 3.0与DeepSeek V3同台竞技,开发者如何用一行代码实现“模型自由”?(附压测数据)

2024年,注定是AI模型“神仙打架”的一年。 早上你可能还在惊叹 Gemini 3.0 的多模态理解能力。 中午 DeepSeek V3.2 就发布了更强的代码生成基准。 到了晚上,Banana Pro 又以极高的性价比刷屏了技术圈。 对于我们开发者来说,这既是幸福&a…

作者头像 李华