考研学习
补充知识线性代数

矩阵

线性代数补充讲义:矩阵

Last updated on

矩阵可以先理解成“一个按行、按列排列的数表”,但如果只把它看成数表,会错过矩阵最重要的意义。在线性代数里,矩阵真正重要,是因为它可以同时表示:

  • 一组数据;
  • 一组线性方程;
  • 一组向量;
  • 一个线性变换;
  • 从一个坐标系到另一个坐标系的规则;
  • 多个线性变换的复合。

而“矩阵乘法为什么要那样定义”,最深刻的理解恰恰来自你问的两个视角:行视角和列视角。


一、矩阵到底是什么?

例如

这是一个 矩阵。

它有 2 行、3 列。

一般写成

其中 表示:

例如上面

因为 6 位于第 2 行、第 3 列。

但这只是矩阵的“外观”。

更重要的问题是:

这一堆数为什么值得专门研究?

答案是:

因为大量复杂问题,本质上都可以归结为“多个量之间的线性关系”,而矩阵正是描述这些线性关系最自然的工具。


二、为什么要研究矩阵?

先从一个非常普通的问题开始。

假设有三个未知量

满足

我们可以把系数单独提出来:

这就是矩阵。

于是整个方程组可以压缩成

其中

这时矩阵已经不只是“数表”,而是在表示:

输入 ,经过某种线性规则以后,得到两个输出。

也就是说,

矩阵 就代表这个变换。


三、矩阵最核心的理解:一个线性变换

假设

输入向量

那么

也就是说矩阵定义了一个函数:

所以你可以把矩阵理解成:

一种特殊函数的编码方式。

这个函数满足线性性质:

以及

这就是“线性变换”。

所以线性代数里研究矩阵,本质上是在研究:

线性变换如何表示、如何组合、如何求逆、如何改变坐标、如何分析其结构。


四、为什么矩阵有“行”和“列”?

这是理解矩阵最关键的地方之一。

对于

你既可以按行看:

其中

也可以按列看:

其中

这两种视角对应着两种完全不同但等价的理解。


五、列视角:矩阵的列表示“基向量被送到哪里”

这是理解矩阵最重要的观点之一。

假设

它的两列是

对于

有

也就是

所以:

矩阵乘向量,本质上就是用向量中的坐标,对矩阵的列做线性组合。

这是列视角最核心的一句话。


六、为什么矩阵的列特别重要?

因为标准基向量是

任意向量都可以写成

因为线性变换满足线性性,所以

而

恰好就是矩阵 的第一列,

恰好就是第二列。

所以

这意味着:

矩阵的第 列,就是第 个标准基向量经过这个线性变换以后到达的位置。

这是矩阵的几何本质。


七、举一个特别直观的例子

考虑

第一列是

第二列是

因此

被变成

而

被变成

所以这个矩阵代表:

  • 方向放大 2 倍;
  • 方向放大 3 倍。

即

从这个角度,你甚至可以说:

一个 矩阵,就是告诉你原来的两个坐标轴基向量应该变到哪里去。

知道基向量去哪了,所有向量去哪也就知道了。


八、行视角:矩阵的每一行表示“一个测量规则”

现在换一个视角。

仍然考虑

以及

那么

第一项

实际上是第一行

和向量

的点积。

第二项

是第二行和输入向量的点积。

所以

因此行视角是:

矩阵的每一行,都定义了一个对输入向量的“线性测量”。

比如

作用在

上,得到

相当于:

“我要按照 的权重,把 混合成一个数。”


九、行视角和列视角其实是在描述同一件事

对于

从列看

也就是:

输入坐标决定如何组合矩阵的列。

从行看

也就是:

每一行和输入做点积,得到一个输出坐标。

所以一个矩阵乘向量,可以同时看成:

也可以看成

二者完全等价。


十、矩阵乘法为什么定义成“行乘列”?

现在来到核心。

假设

和

那么

是一个

矩阵。

大家最开始学的是:

左矩阵的行乘右矩阵的列。

即

但如果只是背这个公式,会觉得非常奇怪。

为什么不能逐元素乘?

为什么一定“行乘列”?

真正原因是:

矩阵乘法必须表示线性变换的复合。


十一、矩阵乘法本质上是“变换的复合”

假设

然后

一个向量 先经过 :

再经过 :

我们希望存在一个矩阵直接完成整个过程:

于是必须要求

所以

表示:

先做 ,再做 。

注意顺序是从右到左。


十二、用列视角理解矩阵乘法

这是最重要的矩阵乘法视角之一。

设

那么

等于

也就是说:

的每一列,就是 作用在 的对应列上。

公式是

所以你可以把 想成:

把 的每一列都送进变换 。


十三、列视角还能得到另一个重要结论

假设

而 的第 列为

那么

因此

的每一列,都是 的列向量的线性组合。

所以:

更准确地说:

这个性质以后学秩的时候极其重要。


十四、从行视角理解矩阵乘法

同样有

我们也可以从 的行出发。

设 的第 行是

那么

的第 行等于

也就是说:

的每一行,是 的各行的线性组合。

例如如果

那么

因此

这和刚才的列结论是对称的:


十五、“行乘列”究竟是什么意思?

取

那么

例如左上角元素:

因此

右上角:

所以

最终

但这里不要把“行乘列”理解成一种人为规定的技巧。

它实际上来自:

作用在

之上。


十六、一个特别适合深刻理解的三层图景

以后看到

你可以同时从三个层面理解。

第一层:计算层面

就是

按行乘列计算。


第二层:列空间层面

如果

那么

所以:

输入 提供权重,矩阵的列提供“材料”。


第三层:几何变换层面

矩阵规定标准基

分别被送到

因为任意向量都是基向量的线性组合,所以整个空间如何变化也就完全确定了。

这其实是最深层的理解。


十七、为什么 矩阵对应 ?

如果

那么它有 列。

输入向量必须有 个分量:

因为要用这 个数字作为权重去组合 个列向量。

而每个列向量都有 个分量,因此输出有 个分量:

所以

可以记成一句口诀:

列数决定输入维度,行数决定输出维度。


十八、为什么矩阵乘法要求“内维相等”?

例如

为什么中间两个 必须一样?

因为

而

输出一个 维向量,而 恰好接受一个 维向量。

所以可以接起来:

于是

因此

这并不是一个需要死背的尺寸规则,它来自“函数复合的输入输出必须匹配”。


十九、为什么一般 ?

这也是矩阵乘法最容易困惑的地方。

如果矩阵表示变换,那么

表示:

先 ,再 。

而

表示:

先 ,再 。

很多变换顺序不同,结果当然不同。

例如:

  1. 先旋转;
  2. 再沿 轴拉伸。

和

  1. 先沿 轴拉伸;
  2. 再旋转。

一般结果完全不同。

所以

其实非常自然。


二十、行和列还对应“方程”和“变量”

对于线性方程组

假设

那么:

从行看

每一行对应一个方程:

所以:

行 = 约束。


从列看

设

那么方程可以写成

于是问题变成:

能不能用矩阵的列向量,通过某种线性组合得到 ?

所以:

列 = 生成空间的方向。

这就是为什么线性方程组、列空间、秩,本质上都是同一件事的不同表达。


二十一、一个非常重要的“行列双重视角”

对于

可以同时问两个问题。

行视角

相当于:

找一个 ,同时满足所有线性约束。


列视角

相当于:

找一组系数,使矩阵的列向量线性组合成 。

这两个问题看起来不同,实际上完全是同一个方程。


二十二、矩阵还可以看成“坐标系统之间的翻译器”

假设有一组新基

把它们放进矩阵:

如果一个向量在新基下坐标是

那么标准坐标就是

所以矩阵可以负责:

把一套坐标表示转换成另一套坐标表示。

以后学相似矩阵

其实本质就是:

同一个线性变换,在不同坐标系下的不同矩阵表达。

所以矩阵不是变换本身,严格来说:

矩阵是线性变换在某组基下的坐标表示。

这个观点到了特征值、相似对角化时非常重要。


二十三、为什么矩阵在数学和现实里这么普遍?

因为很多关系在局部、近似或者本质上都是线性的。

例如:

1. 图像

一张灰度图可以表示为矩阵:

每个元素表示像素。


2. 神经网络

一层神经网络经常有

其中 就是权重矩阵。


3. 计算机图形学

旋转、缩放、投影都可以由矩阵表示。

比如二维旋转:


4. 数据科学

假设有 个样本,每个样本有 个特征:

那么通常:

  • 一行 = 一个样本;
  • 一列 = 一个特征。

5. 微分方程

很多系统最终可以写成

于是矩阵 决定系统怎样演化。


6. 马尔可夫链

状态转移可以写成

矩阵 描述状态之间如何转移。


二十四、再给你一个非常漂亮的矩阵乘法分解

设

和

把 按列写:

把 按行写:

那么

这里每一个

都是一个秩 1 矩阵。

比如

所以矩阵乘法还可以理解成:

若干个“列向量 × 行向量”的外积叠加。

这个视角以后在:

  • 秩;
  • 奇异值分解;
  • 低秩近似;
  • 机器学习;

里极其重要。


二十五、把矩阵的四种理解统一起来

你以后看到矩阵

最好脑子里同时存在下面四层理解。

第一层:数表

这是最表面的。

第二层:方程系数

每一行代表一个方程。

第三层:向量集合

每一列是一个向量。

第四层:线性变换

这是最深刻、最统一的理解。


二十六、最值得记住的“行列哲学”

可以把整个矩阵思想压缩成几句话。

行是什么?

行是在“读取输入”。

对于

每一行都和 做点积。

所以:


列是什么?

列是在“构造输出”。

所以:


矩阵乘向量是什么?

同时也是


矩阵乘矩阵是什么?

同时:

以及


二十七、最后给你一个整体心智模型

我建议以后不要把矩阵想成一张死板的数字表,而想成一个“机器”。

假设

那么:

          输入 n 个坐标
               │
               ▼
         ┌───────────┐
         │   矩阵 A   │
         │ 线性变换器 │
         └───────────┘
               │
               ▼
          输出 m 个坐标

从列视角看:

输入坐标
x₁, x₂, ..., xₙ
     │
     ▼
给矩阵各列分配权重
     │
     ▼
x₁a₁ + x₂a₂ + ... + xₙaₙ
     │
     ▼
输出向量

从行视角看:

输入向量 x
   │
   ├── 第1行与 x 点积 ──→ y₁
   │
   ├── 第2行与 x 点积 ──→ y₂
   │
   ├── ...
   │
   └── 第m行与 x 点积 ──→ yₘ

所以真正掌握矩阵以后,你看到

脑子里不应该只出现“行乘列”。

而应该同时看到:

而看到

则应该想到:

这基本就是理解整个线性代数的入口。

On this page

一、矩阵到底是什么?二、为什么要研究矩阵?三、矩阵最核心的理解:一个线性变换四、为什么矩阵有“行”和“列”?五、列视角:矩阵的列表示“基向量被送到哪里”六、为什么矩阵的列特别重要?七、举一个特别直观的例子八、行视角:矩阵的每一行表示“一个测量规则”九、行视角和列视角其实是在描述同一件事从列看从行看十、矩阵乘法为什么定义成“行乘列”?十一、矩阵乘法本质上是“变换的复合”十二、用列视角理解矩阵乘法十三、列视角还能得到另一个重要结论十四、从行视角理解矩阵乘法十五、“行乘列”究竟是什么意思?十六、一个特别适合深刻理解的三层图景第一层:计算层面第二层:列空间层面第三层:几何变换层面十七、为什么 矩阵对应 ?十八、为什么矩阵乘法要求“内维相等”?十九、为什么一般 ?二十、行和列还对应“方程”和“变量”从行看从列看二十一、一个非常重要的“行列双重视角”行视角列视角二十二、矩阵还可以看成“坐标系统之间的翻译器”二十三、为什么矩阵在数学和现实里这么普遍?1. 图像2. 神经网络3. 计算机图形学4. 数据科学5. 微分方程6. 马尔可夫链二十四、再给你一个非常漂亮的矩阵乘法分解二十五、把矩阵的四种理解统一起来第一层:数表第二层:方程系数第三层:向量集合第四层:线性变换二十六、最值得记住的“行列哲学”行是什么?列是什么?矩阵乘向量是什么?矩阵乘矩阵是什么?二十七、最后给你一个整体心智模型