一步一步建立直观
先预测,再点“演示本步”核对右图。每一步都重设到指定情形,随后可以自由修改参数。
01输入和输出可以属于不同空间
先观察三维箭头,再启用平面投影。输出只保留横纵两项,所以需要两行记录输出,却仍需三列说明三个输入方向的贡献。一个 行 列矩阵不是残缺的方阵,而是从三维到二维的完整规则。
02寻找消失的自由方向
保持横纵分量不动,只改变高度。平面输出不会移动,因此竖直轴属于核。这个观察说明为什么三维输入无法由二维投影唯一恢复;丢失的是一整份自由信息,而不是计算时偶然漏掉一个数。
03把观察与维数结论分开
每一个平面向量都可由高度为零的三维向量投过去,所以此投影是满射;它同时不是单射。维数论可以推广这种现象,但应先说明映射、定义域和值域。屏幕上的透视缩短只是相机效果,不等同于这个数学投影。
1.8.1 输入与输出不必住在同一空间¶
删掉高度的线性投影 接受三个输入分量,却只给两个输出分量,所以矩阵有两行三列。把它想象成从三维场景保留一个平面视图,比先背矩阵尺寸规则更自然。
矩阵的每一列记录一个输入基方向在 维输出空间中的去向,一共需要记录 根输入基。因此行数是输出维度,列数是输入维度;检查乘法能否进行,也就是检查前一步输出是否能交给后一步。
1.8.2 “撤销”需要说明是哪一边¶
每个平面点 都有原像 ,所以 满射。但 也投到同一点,所以它不单射。反向嵌入 只是约定一个高度,并没有找回输入原来的高度。
先嵌入再投影,平面点原样返回,得到 。先投影再嵌入,三维点变成 ,所以 。一对矩阵能在一边互相撤销,却不能在另一边撤销,这就是左右逆要分别讨论的原因。
画几条平行于高度轴的线,把每条线看成一组无法区分的输入。这些线是核的平移。以后遇到数据降维、神经网络宽窄不同的层或欠定方程,先数维度,再问保留了什么、丢失了什么。维度分析不能独自解出问题,却经常能在计算前排除不可能的答案。
与本图相连的定义与证明:1.10 · 叉积与两个输入都垂直。本节的具体条件与形式化范围见下文。
数学表述 1.8.1¶
矩阵把 维输入映到 维输出。行数与列数分别对应输出和输入维度。
它满射但不单射。相反, 单射但不是到整个 的满射,且 。
例 1.8.1 把概念用于具体计算
和 都被投到 。丢失的 信息无法从输出恢复。
练习 1.8.1¶
是什么?
展开解答与检查
它把 变为 ,不是 。
Lean 对照 1.8.1 命题、证明与适用边界
完整证明这一坐标投影满射,构造每个输出 的原像 。
LinearAlgebra.projection_surjective
theorem projection_surjective :
Function.Surjective (fun v : ℝ × ℝ × ℝ => (v.1, v.2.1)) := by
rintro ⟨x,y⟩
exact ⟨(x,y,0), rfl⟩