ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

内积空间完全指南:从Cauchy-Schwarz到最小二乘与傅里叶逼近

内积空间完全指南:从Cauchy-Schwarz到最小二乘与傅里叶逼近 在线性空间里你能做的事只有两件把向量相加或者拿数去乘它。它就像一辆只有底盘、没有仪表盘和方向感的车——结构清清楚楚但你说不出两个向量之间到底有多“近”也说不清什么叫“歪”、什么叫“正”。想要真正把几何搬进抽象空间第一件要装的东西就是内积。整个内积空间理论说白了就是回答一个问题除了有限维坐标运算之外“长度”“夹角”“垂直”这些几何概念到底能不能在一个更一般的线性空间里继续存在并且还像欧几里得几何一样好用。这篇从内积空间的定义出发把内积的公理、Cauchy-Schwarz不等式、正交分解与投影、Gram-Schmidt正交化、Riesz表示定理再到最小二乘和傅里叶逼近这条线完整捋一遍。适合正在学高等代数或线性代数、准备考研复试、或者刚开始接触泛函分析的读者也适合那些做信号处理、机器学习但想补一补数学底子的工程人。1. 为什么线性空间离了内积就不能谈“几何”动机与全景1.1 从二维三维的熟悉几何到抽象线性空间我们在中学就见过点积两个二维或三维向量点积等于分量乘积之和也等于长度乘夹角余弦。那时候你大概没多想觉得这只是计算夹角的一种手段。但如果我们把这个问题反过来问就有意思了长度和夹角明明是更“原始”的几何概念为什么它们却可以由点积算出来因为在线性空间里本质的操作只有加法和数乘。你可以用基向量表示任意一个元素可以判断一组向量是否线性相关也可以讨论维数和子空间但你没有工具去测量一个向量的“大小”也没法讨论两个向量是否“垂直”。这些东西在公理化线性空间里并不是天生的。要定义它们你有两条路一条是额外规定一个范数长度一条是额外规定一个内积点积。而内积这条路的奇妙之处在于一旦有了内积长度、距离、夹角、垂直、投影这一整套几何概念会自己长出来不需要你再一个个另外定义。比如设 V 是一个实线性空间给定内积 ⟨·, ·⟩ 之后你可以定义长度‖x‖ √⟨x, x⟩距离d(x, y) ‖x - y‖夹角cosθ ⟨x, y⟩ / (‖x‖ · ‖y‖)前提是两者都不为零垂直若 ⟨x, y⟩ 0就称 x 与 y 正交这个视角的转换非常关键我们不是在已有的几何空间中“复查”点积的性质而是在一个连几何结构都没有的线性空间中通过引入内积来“创建”几何结构。1.2 内积空间的“家族谱系”从有限维到无穷维内积空间这个词在不同教材里的边界略有差别。有些书里的内积空间默认就是实或复的有限维空间有些书则把完备的内积空间单独拎出来叫Hilbert空间。我自己的理解习惯是欧几里得空间实数域上的有限维内积空间标准例子就是 ℝⁿ 配上点积。酉空间复数域上的有限维内积空间比如 ℂⁿ 配上共轭点积。内积空间不要求完备的内积线性空间可以是无穷维的。Hilbert空间完备的内积空间也就是空间内任何Cauchy列都收敛于空间内的点。这四者的关系就像“有限维的具体坐标”逐步升级到“无限维的抽象结构”。很多人在学这一块时觉得抽象是因为例子不够。实际上最常见的无穷维内积空间例子就是连续函数空间 C[a,b] 配上积分内积⟨f, g⟩ ∫ₐᵇ f(x)g(x) dx在这个空间里两个函数也可以“垂直”比如在区间 [-π, π] 上sin x 和 cos x 就是正交的因为它们的乘积在一个周期内的积分为零。这种几何直觉在有限维里根本没法获得但一旦你接受了“函数也是向量”这件事整个傅里叶分析的大门就打开了。2. 内积的正式定义三条公理与复数域里那个容易踩的共轭坑2.1 正定性、共轭对称性与线性性内积不是随便找个二元函数就能当的。设 V 是实数域 ℝ 上的线性空间一个映射 ⟨·, ·⟩ : V×V → ℝ 要称为内积必须满足三条公理正定性对任意 x ∈ V有 ⟨x, x⟩ ≥ 0且 ⟨x, x⟩ 0 当且仅当 x 0对称性对任意 x, y ∈ V有 ⟨x, y⟩ ⟨y, x⟩线性性对任意 x, y, z ∈ V 和实数 a, b有 ⟨ax bz, y⟩ a⟨x, y⟩ b⟨z, y⟩。三条合起来就足以推出左变量也满足线性、内积关于两个变量都线性双线性等性质。注意正定性里的“当且仅当”非常关键少了它长度定义就会出问题后面我会单独说。到了复数域情况变了一点。设 V 是 ℂ 上的线性空间内积 ⟨·, ·⟩ : V×V → ℂ 要满足正定性⟨x, x⟩ ≥ 0 为实数且 ⟨x, x⟩ 0 当且仅当 x 0共轭对称性⟨x, y⟩ ⟨y, x⟩ 的复共轭即 ⟨x, y⟩ \overline{⟨y, x⟩}对第一个变量的线性性⟨ax bz, y⟩ a⟨x, y⟩ b⟨z, y⟩。这里有个很容易当场的坑由于共轭对称性第二个变量不是线性的而是共轭线性的。也就是说⟨x, ay bz⟩ \bar{a}⟨x, y⟩ \bar{b}⟨x, z⟩。很多初学复内积的人想当然地认为两个变量都线性一做题就错。从几何上讲保证 \bar{⟨x, x⟩} ⟨x, x⟩ 恒成立才能让 ⟨x, x⟩ 是实数进而谈非负和正定性。这是复内积必须带共轭的根本原因。2.2 物理书和数学书的内积约定一场没有对错的“打架”学量子力学的人读到 ⟨φ|ψ⟩ 时往往会被它的运算规则搞晕。物理学家习惯把内积写成 ⟨φ|ψ⟩并且规定左边这个量对 ψ 是线性的对 φ 是共轭线性的数学家的习惯则恰好相反通常默认第一个变量线性、第二个变量共轭线性。两者没有对错只是江湖规矩不同。但这个问题在跨学科阅读时特别致命。比如你拿一本量子力学去对照一本泛函分析会发现同一个公式里的符号顺序稍一变化结果可能差一个共轭。解决方法是不要死记“哪个变量线性”而是每次拿到一个内积先看作者对 ⟨cx, y⟩ 和 ⟨x, cy⟩ 分别等于什么花五秒钟确认约定。这个习惯能帮你省下大量抓耳挠腮的时间。2.3 半内积、退化内积与商空间当“零长度”元素出现时正定性里“⟨x, x⟩ 0 当且仅当 x 0”这个条件在实际应用里经常被悄悄放松成“⟨x, x⟩ ≥ 0”也就是半内积。积分内积就是一个典型如果我们把“函数”放宽为平方可积函数并且允许两个只在个别点上取值不同的函数被认为是不同的那么 ∫|f|²dx 0 只能推出 f 几乎处处为零并不能推出 f 逐点为零。这时候半内积不严格正定。处理退化内积的标准做法是引入商空间把所有“长度为零”的元素看成同一个等价类在新的商空间里重新定义内积退化问题就被消灭了。L² 空间在教科书里严格定义时里面的元素并不是某个具体函数而是“几乎处处相等的函数对”的等价类原因就在这里。做信号处理的人可能觉得这太抠字眼但这其实保证了一个很实际的性质如果一个信号的积分能量为零那它就和一个全零信号在数学上等价。3. Cauchy-Schwarz不等式内积空间一切推导的发动机3.1 用二次函数判别式证明五分钟拿捏它的本质如果要在内积空间里只挑一个最重要的不等式我会选Cauchy-Schwarz不等式。它说的是对任意 x, y有⟨x, y⟩² ≤ ‖x‖² ‖y‖²等号成立当且仅当 x 与 y 线性相关。证明的思路很巧妙。对于任意实数 t考虑向量 x ty 的内积0 ≤ ‖x ty‖² ⟨x ty, x ty⟩ ‖x‖² 2t⟨x, y⟩ t²‖y‖²这个关于 t 的二次函数必须对一切实数 t 非负所以它的判别式必须非正Δ (2⟨x, y⟩)² - 4‖x‖²‖y‖² ≤ 0移项就得到 ⟨x, y⟩² ≤ ‖x‖² ‖y‖²。这个证明不需要任何坐标、不需要正交基纯靠内积公理推出来所以它对有限维和无限维空间同样适用。判别式法在我眼里是内积空间里最优美的证明之一因为它用到了“正定性”的全部力量没有正定性前面那个“≥ 0”就不存在整个不等式失去基础。3.2 从Cauchy-Schwarz到三角不等式和广义勾股定理Cauchy-Schwarz不等式最直接的应用是证明三角不等式‖x y‖ ≤ ‖x‖ ‖y‖把平方展开‖x y‖² ‖x‖² 2⟨x, y⟩ ‖y‖² ≤ ‖x‖² 2‖x‖‖y‖ ‖y‖² (‖x‖ ‖y‖)²两边开方就得到结果。这个不等式保证了内积定义出来的那个东西确实是一个“长度”范数逻辑上环环相扣。再看正交带来的勾股定理如果 x ⊥ y即 ⟨x, y⟩ 0那么‖x y‖² ‖x‖² ‖y‖²这个展开式平凡到像废话但放到函数空间里就变得极为深刻两个正交函数的和的能量等于各自能量之和。傅里叶级数里的帕塞瓦尔恒等式本质上就是无穷维空间里的勾股定理。你只要把函数看成向量把 ∫|f|² 看成能量的平方这条线一下就通了。3.3 平行四边形恒等式与极化恒等式内积的“逆向显影”在一般赋范空间里范数只是一个满足三角不等式的度量工具它不一定来自某个内积。那么问题来了给你一个范数怎么判断它能不能由内积诱导出来答案是平行四边形恒等式‖x y‖² ‖x - y‖² 2‖x‖² 2‖y‖²它的几何意义很好记平行四边形两条对角线长度平方和等于四条边长度平方和。欧氏空间里这是显然的但在一般范数空间里并不天然成立。如果这个恒等式成立还可以用极化恒等式把内积“找回来”。实空间里⟨x, y⟩ (‖x y‖² - ‖x - y‖²) / 4复空间里形式复杂一点⟨x, y⟩ (‖x y‖² - ‖x - y‖² i‖x iy‖² - i‖x - iy‖²) / 4这些公式的实际价值在于遇到一个只知道范数、不知道内积的空间时你可以先用平行四边形恒等式做检验通过了用极化恒等式反推出内积。很多凸优化和逼近论的推导就是这么干的因为工程里经常只方便度量距离不方便直接计算内积。4. 正交、正交补与投影把“垂直”变成一种优化工具4.1 正交补与直和分解有了内积就能定义任意集合 S 的正交补S⊥ { x ∈ V : ⟨x, s⟩ 0 对所有 s ∈ S 成立 }正交补这个概念是内积空间里最具生产力的工具之一因为它把“垂直”变成了一个子空间级的运算。在一个有限维内积空间或完备的Hilbert空间的闭子空间里任何一个子空间 W 都满足V W ⊕ W⊥也就是说空间里的每个向量都可以唯一分解成两部分一部分落在 W 里一部分完全垂直于 W。这个分解不是显而易见的。它依赖投影的存在性而投影的存在性又依赖空间完备性和子空间的封闭性。在无穷维空间里如果 W 不是闭子空间这个直和分解就可能失败。这也是泛函分析课上老师反复强调“闭子空间”的原因。4.2 投影定理最短距离问题的几何解法直和分解的直接推论是投影定理设 W 是内积空间的闭子空间那么对任意 x ∈ V存在唯一的 w₀ ∈ W使得 x - w₀ 垂直于 W并且 w₀ 是 W 中离 x 最近的点。这个定理的重要性怎么强调都不为过。它把一个优化问题——在子空间 W 中找一个离 x 最近的元素——完全等价成了一个几何问题——“让残差 x - w 垂直于 W”。为什么两者等价因为对任意 w ∈ W展开距离平方‖x - w‖² ‖(x - w₀) - (w - w₀)‖² ‖x - w₀‖² ‖w - w₀‖² ≥ ‖x - w₀‖²中间交叉项因为 x - w₀ 垂直 W而 w - w₀ 落在 W 中所以直接消失。这个证明干净利落也再次展示了正交性的力量它能把复杂的平方距离问题拆成互不相干的能量之和。4.3 一个具体的投影算例把三维向量投影到平面上说点能直接落地的。考虑 ℝ³ 中的两个向量 a₁ (1, 1, 0)ᵀa₂ (1, 0, 1)ᵀ它们张成二维子空间 W span{a₁, a₂}。现在要把 b (0, 1, 1)ᵀ 投影到 W 上。设投影为 w₀ c₁a₁ c₂a₂残差 b - w₀ 必须同时垂直于 a₁ 和 a₂于是有⟨b - c₁a₁ - c₂a₂, a₁⟩ 0 ⟨b - c₁a₁ - c₂a₂, a₂⟩ 0把内积逐项展开得到方程组2c₁ c₂ 1 c₁ 2c₂ 1解得 c₁ 1/3c₂ 1/3所以 w₀ (2/3, 1/3, 2/3)ᵀ。这就是 b 在平面 W 上的正交投影同时也是 W 中离 b 最近的向量。上面这个手算过程看起来平淡无奇但把它写成矩阵形式会得到一个极重要的公式。如果 A [a₁, a₂] 是由列向量组成的矩阵则w₀ A(AᵀA)⁻¹Aᵀb这里的 P A(AᵀA)⁻¹Aᵀ 就是投影矩阵。机器学习里线性回归、信号处理里的维纳滤波、数值代数的QR分解背后都是这个公式在反复出现。你把“投影”理解了最小二乘就不再是背法方程的机械操作。5. Gram-Schmidt正交化实操手算流程与数值不稳定的真相5.1 教科书算法与一个三维手算示例Gram-Schmidt正交化把一组线性无关的向量变成一组正交向量再单位化就得到标准正交基。标准步骤是第一个向量直接保留后面的每个向量都减去它在前面的已经正交化向量上的投影。用前面那组向量做例子。设 v₁ (1, 1, 0)ᵀv₂ (1, 0, 1)ᵀv₃ (0, 1, 1)ᵀ它们线性无关。第一步u₁ v₁ (1, 1, 0)ᵀ。第二步把 v₂ 中沿 u₁ 的分量去掉⟨v₂, u₁⟩ 1×1 0×1 1×0 1⟨u₁, u₁⟩ 2u₂ v₂ - (1/2)u₁ (1, 0, 1)ᵀ - (1/2, 1/2, 0)ᵀ (1/2, -1/2, 1)ᵀ第三步把 v₃ 中沿 u₁ 和 u₂ 的分量都去掉⟨v₃, u₁⟩ 0×1 1×1 1×0 1投影分量是 (1/2, 1/2, 0)ᵀ⟨v₃, u₂⟩ 0×(1/2) 1×(-1/2) 1×1 1/2⟨u₂, u₂⟩ 1/4 1/4 1 3/2投影分量是 (1/6, -1/6, 1/3)ᵀ于是 u₃ (0, 1, 1)ᵀ - (1/2, 1/2, 0)ᵀ - (1/6, -1/6, 1/3)ᵀ (-2/3, 2/3, 2/3)ᵀ检查一下⟨u₁, u₃⟩ 0⟨u₂, u₃⟩ 0确实正交。单位化后得到标准正交基q₁ (1/√2, 1/√2, 0)ᵀ q₂ (1/√6, -1/√6, 2/√6)ᵀ q₃ (-1/√3, 1/√3, 1/√3)ᵀ这个手算过程建议每个人都完整走一遍因为只有自己算过一次才能真正理解投影系数的来源而不是把公式背下来。考试时容易被扣分的地方恰恰是中间步骤里忘了减掉前一个分量的投影。5.2 经典GS vs 修正GS教科书到计算机里会翻车教科书版的Gram-Schmidt逻辑清晰但直接搬到计算机上有个臭名昭著的问题数值不稳定。原因不复杂在浮点运算中每次计算投影系数都会引入舍入误差而经典算法中每个新向量只做一次“减法清洗”一旦前面某个正交向量已经被误差污染后面所有向量都会跟着带着这个残留分量最后得到的所谓正交基可能严重不正交。解决办法是修正Gram-SchmidtModified Gram-SchmidtMGS。它的思路不是“等我把所有旧向量都准备好再统一减”而是每获得一个新的单位正交向量 q_k就立刻把它从所有尚未处理的剩余向量中剔除掉。这样误差不会沿着算法链一路滚雪球数值表现明显好很多。对比维度经典Gram-Schmidt修正Gram-Schmidt处理顺序先把所有投影系数算完再一次性更新新向量每得到一个 q_k立即清洗后方所有剩余向量存储方式保持原始向量不变直到被处理剩余向量随计算不断被更新舍入误差大容易出现正交性严重丧失显著改善教学价值高公式直观适合理解原理高适合实际数值计算我在实践中还遇到过另一种情况单纯实现MGS也没救回来。原因是向量组本身接近线性相关Gram-Schmidt过程会产生很大的中间量正交基的系数爆炸。这时候不要死磕正交化应该先重新思考建模看看是不是数据本身冗余了。正交化可以帮你发现病态但不会治愈病态。5.3 QR分解的入口把 Gram-Schmidt 的结果写成矩阵形式就是 QR 分解A QR其中 Q 的列是标准正交的R 是上三角矩阵。R 的元素其实就是每一步的投影系数主对角线是中间向量范数。很多数值线性代数库里的 QR 分解用的是 Householder 变换而不是 MGS因为 Householder 在背靠背浮点运算中更稳定。但如果只是想理解 QR 是什么Gram-Schmidt 是最自然的理解方式。6. Riesz表示定理所有线性泛函都在暗中做内积6.1 有限维情形线性泛函都可以写成内积先看一个具体现象。在 ℝⁿ 上任何一个线性泛函 f : ℝⁿ → ℝ 都可以写成一个行向量与 x 的点积。比如 f(x₁, x₂) 3x₁ - 2x₂那它就等于 ⟨x, y⟩其中 y (3, -2)ᵀ。这是把行向量和列向量对应起来的结果。放到一般有限维内积空间中这个现象仍然成立只要固定一组标准正交基每个线性泛函就对应一个唯一的表示向量 y使得 f(x) ⟨x, y⟩ 对一切 x 成立。这看起来像是坐标表示的废话但代数上却是“对偶空间”这个概念的起点线性泛函的集合本身是一个线性空间而这个空间与原空间通过内积“镜像”在一起。6.2 无穷维空间里的推广为什么Hilbert空间特别可爱无穷维空间里线性泛函绝不是随便写写坐标就能处理的。用一个积分就能构造大量例子在 C[0,1] 上固定一个函数 g定义 f(h) ∫₀¹ h(t)g(t)dt。这个 f 是一个线性泛函而且形式上它就是一个“连续形式”的内积 ⟨h, g⟩。但问题在于是不是所有线性泛函都能写成这种积分形式答案是否定的——如果你不要求泛函连续会有大量完全无法用积分表示的病态线性泛函存在它们的构造还要依赖选择公理。Riesz表示定理说的是如果空间是完备的Hilbert空间那么每一个连续线性泛函f 都存在唯一的元素 y使得 f(x) ⟨x, y⟩ 对一切 x 成立。而且范数还能对上‖f‖ ‖y‖。这个定理把“连续线性泛函”这个抽象概念整个焊死在内积的框架里。从此你不用担心无穷维空间里会有哪个“正经”泛函搞出妖蛾子只要它是连续线性的它本质上就是你熟悉的那个 ⟨x, y⟩。量子力学里每个量子态对应一个线性泛函、每个线性泛函又对应一个态正是Riesz表示定理在物理里投下的影子而工程里常见的匹配滤波器——用某个模板信号和输入信号做内积来检测相关性——本质上也还是这个定理的经验版本。7. 从最小二乘到傅里叶逼近内积空间正是工程数学的底座7.1 最小二乘的几何解释残差必须垂直于数据空间现在把投影的工具用在最经典的工程问题上。考虑超定线性方程组 Ax ≈ bA 是 m×n 矩阵m n方程个数多、未知数少通常没有精确解。最小二乘法的目的是找一个 x̂ 让 ‖Ax - b‖ 最小。用内积空间的眼光看Ax 只能跑遍列空间 Col(A) 这个子空间。要让 ‖Ax - b‖ 最小按照投影定理Ax̂ 就应该是 b 在 Col(A) 上的正交投影。于是残差 b - Ax̂ 必须垂直于 Col(A) 里每一个向量也就是垂直于 A 的每一列Aᵀ(b - Ax̂) 0移项就得到法方程AᵀAx̂ Aᵀb整个过程没有用到任何微积分没有求导没有梯度只有“残差垂直于列空间”这一个几何事实。这就是内积空间给工程数学带来的最大红利无数看起来很复杂的优化问题本质上都是在某个合适的子空间里做一次投影。理解了这一点你会觉得最小二乘不再是背公式而是“本来就应该长这样”。7.2 从连续函数空间看傅里叶级数投影列表直接写到每一项最小二乘不只在有限维线性空间里成立。在连续函数空间里求一个函数的最佳平方逼近多项式也是同一个框架。设我们要在区间 [-π, π] 上用三角函数逼近函数 f内积取 ⟨f, g⟩ ∫ fg。三角函数系 {1, cos nx, sin nx, ...} 是一组正交基f 在这个基上的投影系数就是傅里叶系数aₙ ⟨f, cos nt⟩ / ⟨cos nt, cos nt⟩这跟有限维情况下求投影系数没有任何区别。傅里叶级数的前 N 项和就是 f 在由前 N 个三角函数张成的子空间上的正交投影它天然就是均方误差意义下的最佳逼近。这就是为什么傅里叶分析里“截断”这个概念如此自然——你不是在随便砍掉高频项你是在做一次有明确最优性的投影。7.3 更一般的思路逼近问题 选基 投影把最小二乘和傅里叶放在一起看可以得到一个很有用的操作框架凡是“用一组简单函数逼近一个复杂对象”的问题都可以拆成两步。第一步选一组“基”。有限维向量就用列向量张成子空间函数就用正交多项式或三角基机器学习里的特征映射也是类似角色。第二步把目标对象向这个子空间投影。投影系数就是内积投影过程就是对每个基成分做匹配。这个框架可以套到多项式逼近、样条拟合、信号压缩、降维等等场景里。我在实际处理数据分析时经常用这套思路快速判断一个方法是不是合理先问目标对象所在的“空间”是什么再问候选逼近集张成的“子空间”是否有意义最后问误差方向是不是和子空间正交。如果这三个问题都能答上来那这个逼近方法十有八九不会差。7.4 内积空间教会我的几件事个人经验与注意事项最后说几点看起来是数学、实际上决定你代码能不能跑通的细节。第一写代码做最小二乘时永远不要直接解法方程 AᵀAx̂ Aᵀb。原因是当 A 的病态程度较高时AᵀA 的条件数是原矩阵条件数的平方会让数值误差急剧放大。更稳的做法是直接用QR分解或SVD。这也是内积空间理论告诉我们“投影矩阵 P A(AᵀA)⁻¹Aᵀ”很漂亮但工程实现要绕开 AᵀA 的原因之一——理论简洁和数值稳定是两回事。第二处理复信号时一定要先确认你用的内积是哪个变量共轭。通信和信号处理里经常写 ⟨x, y⟩ xᴴy共轭在第一个变量上而数学书的默认常常是第二个变量共轭。两边混用最容易出的错就是滤波器输出相位反了。第三判断一个范数能不能当内积派生范数用就看平行四边形恒等式。我见过有人把 L¹ 范数直接当内积空间的长度来用一算投影全乱套。L¹ 范数不满足平行四边形恒等式它对应的是一个不来自内积的几何结构很多线性代数里“正交投影”的漂亮性质在那里根本不成立。第四如果做函数逼近尽量选正交基这样投影系数是独立的加减一个基不会牵连其他系数。如果基不正交系数会相互干扰这时候就需要求解一个耦合的线性方程组计算量和病态程度都会上升。常用正交多项式、傅里叶基、小波基强大不是因为它们“看起来好看”而是因为它们让内积空间里的坐标变换变得干净。内积空间这套理论越往下学越觉得它不像数学更像一种“感知几何的方式”。它的对象从坐标向量变成函数、再变成抽象元素但“垂直即无关”的直觉始终通行。无论是做理论推导还是写工程代码把“内积”“投影”“正交”这三件事想透了很多领域的技术细节都会像突然通了电一样连成一片。
返回列表