一步一步建立直观
先预测,再点“演示本步”核对右图。每一步都重设到指定情形,随后可以自由修改参数。
01每一幅图都是一次计算的状态
左图给出原始向量,中图是第一次动作的输出,右图才是最终结果。先让旋转角为零,只保留剪切,确认三幅图的含义。矩阵乘法不是把两个数表逐项相乘,而是把前一步产生的向量交给后一步处理。
02把中间状态代入第二条规则
令 是旋转, 是剪切。先算 ,再将这个新向量当成 的输入,得到 。对每一根标准基箭头重复这个过程,就得到了乘积矩阵的各列。因此列的几何解释直接导出行列求和的计算公式。
03交换顺序是一项可检验的主张
切换为先剪切再旋转,中图首先发生改变,最后的红色向量通常也不同。原因是第二次操作面对的方向已由第一次改变。结合律只改变分组,动作队列不变;交换律却重排了队列,两者不能混为一谈。
1.4.1 从执行顺序推导乘法顺序¶
先把图形横向拉长两倍,再剪切,怎样用一个矩阵保存整个过程?必须知道每根标准基箭头经过两步后落在哪里。第一步的矩阵 已把位置存进自己的列;第二步对每一列作用 。因此复合矩阵的列是 乘以 的各列,这就是矩阵乘法的来源。
的括号是 :书写从左到右,执行从最靠近输入的右端开始,与 一样。把乘法读成动作,还能判断不同形状的矩阵能否相乘:前一步的输出维度必须接上后一步的输入维度。
1.4.2 交换顺序为什么改变结果¶
拿 做实验。先横向拉长时,它在纵轴上,不动;再剪切,横坐标变成 。若先剪切,它先到 ,随后拉长会把刚产生的横坐标放大,结果是 。第二步处理的是已经改变的对象,所以同样两步不必得到同一结果。
再看公式里的求和:第 个输出分量,要累加中间层各分量对它的贡献。下标 标记所有中间通道。神经网络层间计算与换基都会重用这个视角。
三个动作按 执行,先把哪两步打包,不改变实际过程,所以 。结合律允许重新打包,却没有允许交换动作。以后读长矩阵公式时,给每个矩阵配一句实际指令,再决定能怎样移动括号。
定义 1.4.1 映射的复合次序
若 把输入送到中间空间, 再作用于中间结果,则复合映射写成 ,矩阵写成 。最右侧的矩阵先作用。
命题 1.4.1 矩阵乘法的列规则
复合矩阵 的第 列是 作用在 的第 列所得的向量。各矩阵的输入输出维度须匹配。
证明 · 展开纸笔推导
把标准基向量 送入复合映射。第一步得到 ,它就是 的第 列;第二步得到 。
一个矩阵的第 列也等于它作用在 上的结果,所以复合矩阵的各列只能按此规则组成。交换 、 会改变动作顺序,通常也改变结果。
□
数学表述 1.4.1¶
矩阵乘法的列,是后一动作的基向量像经过前一动作后的结果。因此乘法次序有实际意义。
,且 。令
例 1.4.1 把概念用于具体计算
对 ,先 后 得 ,反过来得到 。这是不交换性的直接见证。
练习 1.4.1¶
为什么 ?
展开解答与检查
两边都对向量执行 、、,或展开有限求和验证。
Lean 对照 1.4.1 命题、证明与适用边界
复用 mathlib 的矩阵作用复合定理,在任意实 矩阵和向量上验证等式。
LinearAlgebra.matrix_composition
theorem matrix_composition (A B : Matrix (Fin 2) (Fin 2) ℝ) (v : Fin 2 → ℝ) :
Matrix.mulVec A (Matrix.mulVec B v) = Matrix.mulVec (A * B) v :=
Matrix.mulVec_mulVec v A B