201_深度学习的数学底座:PyTorch 线性代数与范数实战

在深度学习中,数据以张量(Tensor)的形式流动,而模型参数的更新则依赖于矩阵运算。掌握 PyTorch 中的线性代数操作,不仅能帮你理解算法原理,更能让你写出高性能的计算代码。

1. 核心数学对象:从标量到张量

笔记中详细介绍了四种基础数学对象的定义与操作:

  • 标量 (Scalar):只有一个元素的张量。
  • 向量 (Vector):一阶张量,通常表示特征。
  • 矩阵 (Matrix):二阶张量,用于表示权重或数据集。
  • 张量 (Tensor):更一般的 N 维数组。

2. 核心代码:特征值与特征向量

在线性变换中,特征值和特征向量揭示了矩阵变换的方向和缩放比例,这在主成分分析(PCA)等降维算法中至关重要。

Python

复制代码
import torch

# 定义一个方阵
A = torch.tensor([[1.0, 2.0], [2.0, 1.0]])

# 求解特征值 (eigenvalues) 和 特征向量 (eigenvectors)
# 在新版 PyTorch 中建议使用 torch.linalg.eig
eigenvalues, eigenvectors = torch.linalg.eig(A)

print(f"特征值: {eigenvalues}")
print(f"特征向量: {eigenvectors}")

3. 范数(Norm):衡量"大小"的尺度

在深度学习的**正则化(Regularization)**中,我们经常听到 L1 范数和 L2 范数。它们本质上是衡量向量或矩阵"长度"或"大小"的函数。

① L1 范数

  • 定义:向量元素的绝对值之和。
  • 用途:倾向于产生稀疏解(让不重要的权重变为 0)。
  • 代码torch.abs(u).sum()

② L2 范数

  • 定义:向量元素平方和的平方根(欧几里得距离)。
  • 用途:最常用的权值衰减方式,防止过拟合。
  • 代码torch.norm(u)

③ 矩阵 F 范数 (Frobenius norm)

  • 定义:矩阵所有元素平方和的平方根。
  • 代码实现

Python

复制代码
# 将矩阵拉成向量求 L2 范数,即为 F 范数
X = torch.ones((4, 9))
f_norm = torch.norm(X) 
print(f"矩阵的 Frobenius 范数: {f_norm}") # 输出应为 6.0 (sqrt(36))

4. 常见的矩阵运算技巧

笔记中还涵盖了一些高频使用的矩阵函数:

  • 转置 (Transpose)A.T,交换行与列。
  • 对称矩阵 :如果 A == A.T,则 A 是对称矩阵。
  • 哈达玛积 (Hadamard Product)A * B,两个形状相同的矩阵对应元素相乘。
  • 点积 (Dot Product)torch.dot(x, y),两个向量的内积。
  • 矩阵-向量积torch.mv(A, x)
  • 矩阵-矩阵乘法torch.mm(A, B)

5. 总结:线性代数如何赋能深度学习?

分析该文件后,我们可以发现线性代数在深度学习中的具体应用点:

  1. 参数存储:权重 W 和偏置 b 全部存储在矩阵和向量中。
  2. 损失控制 :通过计算权重的 范数 并将其加入损失函数,实现模型正则化。
  3. 降维与压缩 :利用 特征值分解 或 SVD 压缩模型参数,减少计算量。

💡 学习小结

不要被复杂的公式吓倒,在 PyTorch 中,这些复杂的数学变换都被浓缩成了简单的函数。理解了范数的物理意义和矩阵乘法的几何意义,你就掌握了深度学习算法的"灵魂"

相关推荐
jinanwuhuaguo3 小时前
Ollama 全方位深度剖析:大模型时代的“Docker化”革命、算力普惠基础设施与安全边界重构
运维·开发语言·人工智能·深度学习·安全·docker·重构
盼小辉丶3 小时前
视觉Transformer实战 | Swin Transformer详解与实现
深度学习·计算机视觉·transformer
橙露14 小时前
特征选择实战:方差、卡方、互信息法筛选有效特征
人工智能·深度学习·机器学习
努力学习_小白15 小时前
ResNet-50——pytorch版
人工智能·pytorch·python
高洁0116 小时前
大模型微调进阶:多任务微调实战
人工智能·python·深度学习·机器学习·transformer
强盛小灵通专卖员17 小时前
基于深度学习 的急性阑尾炎CT 影像诊断
人工智能·深度学习·医学影像·ei会议
小超同学你好19 小时前
OpenClaw 深度解析与源代码导读 · 第3篇:Gateway——常驻控制面、单端口多协议与进程骨架
人工智能·深度学习·语言模型·gateway
yunhuibin20 小时前
videopipe学习之demo运行
人工智能·深度学习·学习
AGV算法笔记20 小时前
GaussianWorld:多帧融合到世界建模的跃迁
人工智能·深度学习·计算机视觉·自动驾驶·感知算法·三维感知
mailangduoduo20 小时前
实战对比PyTorch VS PyTorch Lighting以MNIST为例
人工智能·pytorch·python·深度学习·图像分类·全连接网络