非齐次线性最小二乘问题是线性代数中一种重要的优化问题,用于寻找一组最接近给定数据的线性
模型参数。当模型预测值与实际观测值之间存在误差
,且模型是线性的
,但观测值并不完全满足
模型时,就使用非齐次线性
最小二乘法。其目标是最小化
模型预测值与实际观测值之间的残差平方和。
计算机视觉:在计算机视觉领域,如相机校准、三维重建、图像配准等,非齐次线性最小二乘用于估计几何变换参数,使得模型预测的特征点位置与实际检测到的特征点位置误差最小。
具体来说,假设我们有 (m) 个观测数据点和 (n) 个未知参数,用矩阵表示为:
A
x
=
b
Ax = b
Ax=b
其中,(A) 是一个 (m *n) 的矩阵((m > n)),表示观测数据与未知参数之间的关系;(x) 是一个 (n *1) 的向量,包含我们想要估计的未知参数;(b) 是一个 (m *1) 的向量,代表实际观测值。
非齐次线性最小二乘的目标是找到一个向量 x ^ ,使得模型 A x ^ 尽可能接近实际值 b ,通过最小化残差向量 b − A x ^ 的欧几里得长度的平方,即: min x ∣ ∣ b − A x ∣ ∣ 2 非齐次线性最小二乘的目标是找到一个向量 \hat{x},使得模型 A\hat{x} 尽可能接近实际值 b,通过最小化残差向量 b - A\hat{x} 的欧几里得长度的平方,即: \min_{x} ||b - Ax||^2 非齐次线性最小二乘的目标是找到一个向量x^,使得模型Ax^尽可能接近实际值b,通过最小化残差向量b−Ax^的欧几里得长度的平方,即:xmin∣∣b−Ax∣∣2
具体例子:
假设我们要根据一些学生的考试成绩来估计他们的最终分数。已知学生的历史考试成绩(数学、英语、科学)以及他们最终的综合得分,我们想找到一个线性模型来预测综合得分。给出的数据如下:
学生 | 数学 | 英语 | 科学 | 综合得分 |
---|---|---|---|---|
1 | 80 | 75 | 90 | 85 |
2 | 70 | 85 | 80 | 82 |
3 | 90 | 70 | 75 | 80 |
我们可以建立一个线性模型
y
=
w
1
x
1
+
w
2
x
2
+
w
3
x
3
+
b
,其中
x
1
,
x
2
,
x
3
分别是数学、英语、科学的成绩,
y
是综合得分,
w
1
,
w
2
,
w
3
是权重参数,
b
是偏置项。
我们可以建立一个线性模型 y = w_1x_1 + w_2x_2 + w_3x_3 + b,其中 x_1, x_2, x_3 分别是数学、英语、科学的成绩,y 是综合得分,w_1, w_2, w_3 是权重参数,b 是偏置项。
我们可以建立一个线性模型y=w1x1+w2x2+w3x3+b,其中x1,x2,x3分别是数学、英语、科学的成绩,y是综合得分,w1,w2,w3是权重参数,b是偏置项。我们的任务是找到这些参数
,使得模型预测尽可能接近实际的综合得分。
计算步骤:
-
构造矩阵:首先,我们将数据组织成矩阵形式。
- 设计矩阵 A = ( 80 75 90 70 85 80 90 70 75 ) A = \begin{pmatrix} 80 & 75 & 90 \\ 70 & 85 & 80 \\ 90 & 70 & 75 \end{pmatrix} A= 807090758570908075 (每一列为一个学生的成绩)
- 观测值向量 b = ( 85 82 80 ) b = \begin{pmatrix} 85 \\ 82 \\ 80 \end{pmatrix} b= 858280 (学生的综合得分)
-
解正规方程:为了解非齐次线性最小二乘问题,我们通常解正规方程 (A^TAx = A^Tb)。
-
计算: 计算 A T A 和 A T b 。 计算 A^TA 和 A^Tb。 计算ATA和ATb。
- A T = ( 80 70 90 75 85 70 90 80 75 ) A^T = \begin{pmatrix} 80 & 70 & 90 \\ 75 & 85 & 70 \\ 90 & 80 & 75 \end{pmatrix} AT= 807590708580907075
- A T A = ( 2350 1875 2350 1875 2225 1875 2350 1875 2350 ) A^TA = \begin{pmatrix} 2350 & 1875 & 2350 \\ 1875 & 2225 & 1875 \\ 2350 & 1875 & 2350 \end{pmatrix} ATA= 235018752350187522251875235018752350
- A T b = ( 2355 1925 2355 ) A^Tb = \begin{pmatrix} 2355 \\ 1925 \\ 2355 \end{pmatrix} ATb= 235519252355
-
求解向量 (x):解方程 A T A x = A T b A^TAx = A^Tb ATAx=ATb 得到 (x)。
为了简化计算,可以使用矩阵求逆或更高效的数值方法(如QR分解或SVD分解)求解。 -
结果: 假设我们得到 x = ( w 1 w 2 w 3 b ) ,则 w 1 , w 2 , w 3 分别是数学、英语、科学成绩的权重, b 是偏置项。 假设我们得到 x = \begin{pmatrix} w_1 \\ w_2 \\ w_3 \\ b \end{pmatrix},则 w_1, w_2, w_3 分别是数学、英语、科学成绩的权重,b是偏置项。 假设我们得到x= w1w2w3b ,则w1,w2,w3分别是数学、英语、科学成绩的权重,b是偏置项。利用这些参数,我们可以预测任何学生基于他们的历史考试成绩的综合得分。
请注意,在实际操作中,直接计算 (A^TA) 的逆可能会遇到数值稳定性
问题,特别是在 (A^TA) 几乎奇异时。因此,通常会使用数值线性代数包(如Python的NumPy或SciPy)提供的稳定算法来直接求解最小二乘问题。
import numpy as np
# 数据准备
# 学生历史成绩数据,每一行为一个学生(数学、英语、科学成绩)
scores = np.array([[80, 75, 90],
[70, 85, 80],
[90, 70, 75]])
# 对应的综合得分
final_scores = np.array([85, 82, 80])
# 解非齐次线性最小二乘问题
# 构造设计矩阵A,并添加一列全为1的向量作为偏置项(如果模型需要考虑偏置)
A = np.c_[scores, np.ones(scores.shape[0])]
b = final_scores
# 使用lstsq函数求解,它返回最小二乘解,残差,rank,以及singular values
coefficients, residuals, _, _ = np.linalg.lstsq(A, b, rcond=None)
# 输出权重参数(包括特征权重和偏置项)
w1, w2, w3, bias = coefficients
print(f"权重参数(w1, w2, w3): ({w1}, {w2}, {w3})")
print(f"偏置项(bias): {bias}")
# 使用求得的参数进行预测
# 假设有一个新的学生,数学95分,英语88分,科学82分
new_student_scores = np.array([95, 88, 82])
prediction = np.dot(coefficients, np.append(new_student_scores, 1))
print(f"预测该学生的综合得分: {prediction}")
权重参数(w1, w2, w3): (0.27450066286203956, 0.3681258285775476, 0.39362516571550965)
偏置项(bias): 0.004244913324906249
预测该学生的综合得分: 90.75414438871465
作用
非齐次线性最小二乘(Non-homogeneous Linear Least Squares, NLLS)是一种优化方法,用于解决当线性模型的预测值与实际观测值之间存在偏差时,如何找到模型参数的最佳估计问题。它在众多科学和工程领域有着广泛的应用,主要作用包括但不限于以下几个方面:
-
数据拟合:非齐次线性最小二乘常用于曲线拟合。例如,当我们有一组实验数据点,希望通过这些点拟合出一条直线、抛物线或其他类型的曲线时,可以使用非齐次线性最小二乘方法来确定最佳拟合参数,使得模型曲线与数据点的偏差(通常采用残差平方和作为度量)最小。
-
参数估计:在物理、工程、经济学等领域,我们经常需要从观测数据中估计未知参数。例如,通过观测到的响应数据估计系统模型的参数,非齐次线性最小二乘提供了一种有效的方法来实现这一目的。
-
预测和控制:在预测模型中,如时间序列分析,非齐次线性最小二乘可以帮助建立预测模型,预测未来的趋势或行为。在控制系统设计中,它也用于确定控制器参数,以最小化系统误差。
-
信号处理:在信号处理中,非齐次线性最小二乘用于滤波、去噪和信号重构,通过最小化预测信号与实际信号之间的差异,提高信号质量。
-
计算机视觉:在计算机视觉领域,如相机校准、三维重建、图像配准等,非齐次线性最小二乘用于估计几何变换参数,
使得模型预测的特征点位置与实际检测到的特征点位置误差最小。
-
机器学习:在机器学习的某些模型中,如线性回归,非齐次线性最小二乘是寻找最优模型参数的基础方法,确保模型能够很好地泛化到未见数据。
通过非齐次线性最小二乘方法,我们可以得到一组参数,使得模型预测与实际观测值之间的偏差最小,从而更好地理解数据、做出预测或优化决策。在实际计算中,可以利用正规方程、梯度下降、高斯-牛顿法、列文伯格-马夸特法(LM算法)等多种方法求解。
标签:模型,最小,齐次,线性,80,二乘 From: https://blog.csdn.net/weixin_50569789/article/details/139629719