线性代数之超定方程使用最小二乘求解

在超定方程中, 线性方程组一般不能被完全精确满足,因此需要使用最小二乘法求解参数 XXX。

假设线性方程组可以写成:

AX≈B AX \approx B AX≈B

其中,AAA 为系数矩阵,XXX 为待求参数向量,BBB 为观测值向量。

定义残差向量为:

r=AX−B r = AX - B r=AX−B

最小二乘法的目标是使残差平方和最小,即:

X=arg⁡min⁡X∥AX−B∥2 X = \arg\min_X \|AX - B\|^2 X=argXmin∥AX−B∥2

为了便于推导,定义目标函数:

J(X)=∥AX−B∥2 J(X) = \|AX - B\|^2 J(X)=∥AX−B∥2

向量二范数的平方可以写成内积形式:

J(X)=(AX−B)T(AX−B) J(X) = (AX - B)^T(AX - B) J(X)=(AX−B)T(AX−B)

展开可得:

J(X)=XTATAX−XTATB−BTAX+BTB J(X) = X^T A^T A X - X^T A^T B - B^T A X + B^T B J(X)=XTATAX−XTATB−BTAX+BTB

由于 XTATBX^T A^T BXTATB 和 BTAXB^T A XBTAX 都是标量,并且二者相等: (计算两者矩阵维度)

XTATB=BTAX X^T A^T B = B^T A X XTATB=BTAX

所以目标函数可以化简为:

J(X)=XTATAX−2XTATB+BTB J(X) = X^T A^T A X - 2X^T A^T B + B^T B J(X)=XTATAX−2XTATB+BTB

下面对 J(X)J(X)J(X) 关于 XXX 求导。

首先有:

∂∂X(XTATAX)=2ATAX \frac{\partial}{\partial X} (X^T A^T A X) = 2A^TAX ∂X∂(XTATAX)=2ATAX

这是因为 ATAA^TAATA 是对称矩阵,即:

(ATA)T=ATA (A^TA)^T = A^TA (ATA)T=ATA

其次有:

∂∂X(−2XTATB)=−2ATB \frac{\partial}{\partial X} (-2X^TA^TB) = -2A^TB ∂X∂(−2XTATB)=−2ATB

最后,BTBB^TBBTB 中不含有待求参数 XXX,因此:

∂∂X(BTB)=0 \frac{\partial}{\partial X} (B^TB) = 0 ∂X∂(BTB)=0

所以目标函数的导数为:

∂J(X)∂X=2ATAX−2ATB \frac{\partial J(X)}{\partial X} = 2A^TAX - 2A^TB ∂X∂J(X)=2ATAX−2ATB

最小二乘问题要求目标函数取得最小值,因此令导数为零:

2ATAX−2ATB=0 2A^TAX - 2A^TB = 0 2ATAX−2ATB=0

化简可得:

ATAX=ATB A^TAX = A^TB ATAX=ATB

这就是最小二乘法对应的正规方程。

当 ATAA^TAATA 可逆时,可以在等式两边左乘 (ATA)−1(A^TA)^{-1}(ATA)−1,得到:

X=(ATA)−1ATB X = (A^TA)^{-1}A^TB X=(ATA)−1ATB

因此,正规方程的本质就是:对最小二乘目标函数 J(X)=∥AX−B∥2J(X)=\|AX-B\|^2J(X)=∥AX−B∥2 关于待求参数 XXX 求导,并令导数为零后得到的方程。

相关推荐
To_OC8 小时前
搞懂 Token 和 Embedding 后,我终于明白大模型是怎么 "读" 文字的
人工智能·llm·agent
冬奇Lab11 小时前
每日一个开源项目(第139篇):Voicebox - 本地运行的开源 ElevenLabs 替代品
人工智能·开源·资讯
冬奇Lab11 小时前
Skill 系列(03):Skill 设计范式——5 个模式让输出从混沌到可预测
人工智能·开源·agent
IT_陈寒13 小时前
Python搞不定字符串编码?这破玩意坑我两小时!
前端·人工智能·后端
大模型真好玩14 小时前
什么是Loop Engineering?最通俗易懂的Loop Engineering核心概念
人工智能·agent·deepseek
叁两15 小时前
前端转型AI Agent该如何学习?(前置篇)
前端·人工智能·node.js
LaiYoung_15 小时前
🎁 送你一套超好用超实用的 FE AI-Coding Skills
前端·人工智能·开源
ZzT17 小时前
怎么做才不会被 AI 替代?
人工智能·程序员
道友可好17 小时前
从今天开始:你的第一个 Harness Engineering 实践
前端·人工智能·后端