Ch.04
矩阵乘法与线性变换:操纵空间的数学
按章节的数学图示
选择章节后,下方图示会切换为该章节内容。可一览中级数学的脉络。
方格 → → 拉歪的格
左边同一坐标的点,右边一步到位;整片格子一起被拉长。
橙色 A 标记: 本图使用的 矩阵 (线性变换)。用它左乘左侧坐标 ,得到右侧的点 。
同一平面上方格经 A 变为平行四边形,点 x 变为 Ax。
输入 / 框能到的面
记住这张图就够
。 表示“用矩阵 做线性变换”的名字(函数记号)。 即“把 经过 变换后的结果”,与 同一含义。
蓝区 = 由 的两列向量张成的平行四边形。 总落在其内(两列线性组合可达的范围)。
矩阵乘法不只是把许多数字加减乘除的枯燥运算。矩阵与数码照片编辑器里的智能滤镜一样,负责旋转、扭曲、压缩原始数据。本章将深入线性变换(Linear Transformation):把一份数据(向量)放进编辑器(矩阵),映射到截然不同的“空间”。我们还会拆解深度学习最根本的骨架 具有怎样的数学含义、如何运作。
矩阵乘法与线性变换:自如编辑空间
1. 线性变换(Linear Transformation):图像编辑里的「自由变换」工具
概念: 想象透明网格上画好的图被放进 Photoshop:拖动角点斜向拉伸、旋转 45°、剪切压扁——几何里说的线性变换就是这类操作。
严格规则: 有两条绝不能破坏的程序规则。第一,图像正中央的原点 变换后仍在原处。第二,原本是直线的仍保持笔直,彼此平行的线变换后仍平行。
2. 矩阵×向量 ():给原图加滤镜
概念: 向量 是尚未加效果的「原始数据(点的位置)」,矩阵 是按特定角度与比例扭曲的智能滤镜(变换规则)。把滤镜套在原图上的操作记为 (矩阵 作用于 )。
深度学习中的用法: 神经网络的一层用同一技巧写出 。
* (权重矩阵):把数据扭成更易分析的角度与比例(线性变换)。
* (偏置向量):像拖动图层那样整体平移。
经过「变形 + 平移」得到的结果 会传到下一层。
3. 矩阵×矩阵 ():多个滤镜按顺序叠上去
概念: 矩阵 与 相乘表示连续应用两种编辑滤镜。注意 的式子从右向左读,所以是先应用 ,再把结果套上 。
核心():「横向拉伸 2 倍再旋转 90°」会得到又高又窄的图;「先旋转 90° 再横向拉伸 2 倍」会得到又宽又扁的图。顺序改变结果就变,因此(交换律一般不成立)非常重要。
4. 矩阵乘法的维度匹配:接对口一致的线缆
概念: 叠多个滤镜时,前后接口规格要对上:左矩阵的列数与右矩阵的行数必须完全一致,运算才能咬合。
核心公式: 与 相乘时,相接的 在计算中被吸收,输出 。实务里常对 做转置,把数据 与权重规格对齐,写成 再计算。
5. 变换示例:把三维“压”到平面上
示例 1 把三维点 映到 的 平面(丢掉第三个坐标)的线性变换可写成:
规则: 。下面把同一乘积按 逐行内积 展开。
第 1 步 — 写出乘积 设 ,则
第 2 步 — 每一行与 内积(第 个分量 = 的第 行 · )
第 3 步 — 结果向量
也就是 保留 ,把 变为 0。 几何上这是过原点的 平面的正交投影;用一次矩阵乘法就表达了“去掉一维信息”的滤镜,并与 Ch.02 的内积、投影直觉相连。
给实务者的要点: 矩阵乘法不是把数据看成一堆一维数字,而是在多维空间里扭、转、压的动态空间变换工具()。堆多层时,规格()先对齐最重要;还要牢记变换顺序()会彻底改变结果。
一次处理数十万像素的并行魔法
编辑高分辨率照片时,若逐像素手写计算,一天都不够。矩阵乘法把无数点收进一张大表(矩阵),变换规则也用另一张矩阵表达,于是「加滤镜」的直觉就落成一次矩阵乘。
GPU 为这种乘法做了成千上万核心并行的设计。TensorFlow、PyTorch 里常见的批量 GEMM,把多样本堆成 ,再乘以 ,用 一口气推过整个小批量。深度学习能高速吞吐数据,归根结底是因为矩阵这一通用格式能把硬件并行性吃满。
贯穿所有人工智能模型的共同语言
无论是 Netflix 推荐、特斯拉车道线,还是 ChatGPT 对话,最底层都在跑 这种矩阵乘。全连接层、嵌入、注意力分数——名字不同,根子都是矩阵×矩阵。
有了这份感觉,遇到 Shape mismatch 时能更快判断哪一块尺寸没对上。左矩阵列数必须等于右矩阵行数,就像线缆规格要对口。习惯这套「共同语言」后,不同领域的论文、代码、日志都能用同一张地图来读。
1)Transformer 与注意力:用词与词之间的「关注地图」
ChatGPT 类模型的核心是注意力:计算句子中词与词该多互相关注。 快速填满「这个词看那个词有多用力」的原始分数;再经 softmax 与 的加权和,得到缩放点积注意力。一句话:先用矩阵乘画关系图,再用同一套代数做加权混合。
2)线性层与批量学习:整批一次算
全连接层重复 。训练时把 个样本排成 ,常写成 一次处理。卷积在展开后也可看成大矩阵乘,所以框架底层大量用 GEMM。
3)嵌入与推荐:语义向量互相对照
词、用户、物品变成向量后,用内积或矩阵乘得到相似度与分数,驱动推荐、搜索、排序——等于用一张矩阵概括「谁离谁近」。
1)PCA 与降维:把千维压成「影子」
人很难直观想象三维以上,但数据常是成百上千维。PCA 把协方差写成矩阵,选特征向量方向(方差大的轴),再把数据投影上去。写成线性变换,就是「压掉无用方向、只留关键轴」。你看到的二维散点图,其实是高维云被矩阵压扁后的影子。
2)几何直觉:为后面的特征值、行列式预习
同一线性变换在不同方向上伸缩不同;特殊方向是特征向量,伸缩比是特征值。本章掌握的「列张成的平行四边形」与合成 ,会让 Ch.05 之后的可逆性、行列式、谱更好理解。
3)计算机图形学:上到屏幕仍是矩阵
游戏、CAD 里旋转、平移、透视用齐次坐标和矩阵乘。「把 3D 场景投到 2D 屏」同样是用矩阵一次搬坐标。深度学习和 CG 看似不同,在用矩阵处理空间上共用同一套工具箱。
下表汇总了维度规则与常用公式。例题按典型类型分步说明。
- 符号
- 含义当 的列数 = 的行数时有定义
- 符号
- 含义 的第 行与 的第 列的内积
- 符号
- 含义由 的各行与 的内积组成的向量
- 符号
- 含义
- 符号合成
- 含义
- 符号线性层
- 含义(权重 ,偏置 )
| 符号 | 含义 |
|---|---|
| 当 的列数 = 的行数时有定义 | |
| 的第 行与 的第 列的内积 | |
| 由 的各行与 的内积组成的向量 | |
| 合成 | |
| 线性层 | (权重 ,偏置 ) |
① 维度 相乘前内侧两个数必须一致。
② 批量 行是样本时,对每行用同一个 ,用 `GEMM` 处理。
例题
例 1 — 乘积形状
问: 为 , 为 ,则 是?
答:。
例 2 — 合成顺序
问:对 先 再 对应的矩阵是?
答:。
例 3 — 转置
问: 是?
答:。
例 4 — 列视角
问: 是?
答: 的第 2 列。
例 5 — 批量
问:行是样本的 上如何一次做线性层?
答:常用 形式。
练习题
对线性映射 ,下列哪一项恒成立?
1 / 10