“没有线性代数,就没有现代深度学习。”
本文用最直观的方式,带你快速掌握深度学习中必备的线性代数核心概念。


🔢 1. 基本数学对象:标量 → 向量 → 矩阵 → 张量

类型 数学表示 形状(shape) 例子
标量 x ∈ R x \in \mathbb{R} xR 0 维 3.0, -2
向量 x ∈ R n \mathbf{x} \in \mathbb{R}^n xRn 1 维(长度 = n n n [1, 2, 3, 4]
矩阵 A ∈ R m × n \mathbf{A} \in \mathbb{R}^{m \times n} ARm×n 2 维( m m m 行 × n n n 列) [[1,2],[3,4]]
张量 X \mathsf{X} X ≥3 维(如图像:H×W×C) (2,3,4) 的三维数组

关键点

  • 标量是“单个数字”;
  • 向量是“一串数字”,默认是列向量;
  • 矩阵是“表格”,行×列;
  • 张量是高维推广——深度学习中图像、批量数据都用它表示

🧮 2. 常见运算(附代码)

✅ 按元素运算(Element-wise)

两个同形状张量可直接加减乘除(广播也支持):

A = np.array([[1, 2], [3, 4]])
B = A.copy()
A + B      # [[2, 4], [6, 8]]
A * B      # Hadamard 积:[[1, 4], [9, 16]]

✅ 求和与均值(降维)

x = np.arange(4)        # [0, 1, 2, 3]
x.sum()                 # 6
x.mean()                # 1.5

A = np.arange(20).reshape(5, 4)
A.sum(axis=0)           # 按列求和 → shape (4,)
A.sum(axis=1)           # 按行求和 → shape (5,)

keepdims=True 可保留轴(方便后续广播计算)。

✅ 点积(Dot Product)

两个向量的加权和:

x, y = np.array([1, 2, 3]), np.ones(3)
np.dot(x, y)            # 6 == 1+2+3
# 等价于:
np.sum(x * y)           # 6

✅ 矩阵-向量积

将矩阵看作“一组行向量”,每行与向量做点积:

A.shape  # (5, 4)
x.shape  # (4,)
np.dot(A, x)  # → shape (5,) 向量

✅ 矩阵-矩阵乘法

⚠️ 注意:不是按元素乘!而是经典线性代数乘法:

A = np.arange(20).reshape(5, 4)   # (5,4)
B = np.ones((4, 3))               # (4,3)
C = np.dot(A, B)                  # (5,3)

这是神经网络前向传播的核心操作!


📏 3. 范数(Norms):衡量“大小”的工具

范数是向量/矩阵的“长度”度量,在优化目标中至关重要。

范数 公式 特点
L 1 L_1 L1 ∑ ∣ x i ∣ \sum \lvert x_i \rvert xi 对异常值鲁棒(稀疏性诱导)
L 2 L_2 L2 ∑ x i 2 \sqrt{\sum x_i^2} xi2 欧氏距离;最常用
Frobenius(矩阵) ∑ i , j x i j 2 \sqrt{\sum_{i,j} x_{ij}^2} i,jxij2 矩阵的“欧氏长度”
u = np.array([3, -4])
np.linalg.norm(u)          # L2: 5.0
np.abs(u).sum()            # L1: 7.0
np.linalg.norm(np.ones((4,9)))  # Frobenius: sqrt(36) = 6.0

💡 深度学习中常最小化 L 2 L_2 L2 范数平方(避免开方,梯度更友好)。


🔄 4. 转置与对称性

  • 转置:行 ↔ 列
    A.Ttf.transpose(A)
  • 对称矩阵 A = A ⊤ \mathbf{A} = \mathbf{A}^\top A=A
    B = np.array([[1,2,3],[2,0,4],[3,4,5]])
    np.allclose(B, B.T)  # True → 是对称矩阵
    

✅ 小练习:

  • ( A ⊤ ) ⊤ = A (\mathbf{A}^\top)^\top = \mathbf{A} (A)=A? ✔️
  • ( A + B ) ⊤ = A ⊤ + B ⊤ (\mathbf{A}+\mathbf{B})^\top = \mathbf{A}^\top + \mathbf{B}^\top (A+B)=A+B? ✔️
  • A + A ⊤ \mathbf{A} + \mathbf{A}^\top A+A 总是对称? ✔️(因为转置后不变)

🧠 为什么这很重要?

  • 数据表示:每个样本 = 向量;一批样本 = 矩阵;图像 = 3D张量。
  • 模型计算:全连接层 = 矩阵-向量积;卷积本质也是张量运算。
  • 损失函数:MSE = L 2 L_2 L2 范数平方;L1正则 = L 1 L_1 L1 范数。
  • 优化基础:梯度下降依赖向量空间中的方向与距离。

📌 小结

概念 关键词
标量 0维,单个数
向量 1维,列表/列
矩阵 2维,表格;乘法 ≠ Hadamard
张量 N维,通用容器
范数 衡量大小; L 1 L_1 L1, L 2 L_2 L2, Frobenius
转置 行列互换;对称矩阵自等于其转置

推荐视频

线性代数的本质 - 系列合集

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐