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 中,这些复杂的数学变换都被浓缩成了简单的函数。理解了范数的物理意义和矩阵乘法的几何意义,你就掌握了深度学习算法的"灵魂"

相关推荐
weixin_468466851 小时前
纳米 AI 搜索新手极速上手指南
人工智能·python·深度学习·搜索引擎·ai·语言模型·自然语言处理
逻辑君1 小时前
Foresight研究报告【20260011】
人工智能·线性代数·算法·矩阵
无左无右2 小时前
已知相机到车的rt 4x4矩阵,求pitch和yaw角度
数码相机·线性代数·矩阵
通信小呆呆3 小时前
Vandermonde结构及其快速算法详解
线性代数·算法
春日见4 小时前
五分钟入门 强化学习---DQN(Deep Q Net)算法与实现
人工智能·python·深度学习·算法·microsoft·机器学习
万俟淋曦5 小时前
【论文速递】2026年第02周(Jan-04-10)(Robotics/Embodied AI/LLM)
人工智能·深度学习·机器人·大模型·论文·robotics·具身智能
apcipot_rain5 小时前
计科八股20260530——文本输入模型步骤、CNN权重共享、Resnet、Transformer、RNN
人工智能·深度学习·神经网络·数学建模·自然语言处理
bonechips7 小时前
深入理解 JavaScript的历史包袱——变量提升(Hoisting)
javascript·深度学习
春日见7 小时前
五分钟入门 强化学习---Q-Learning算法与实现
人工智能·python·深度学习·算法·机器学习·计算机视觉
多年小白8 小时前
【周末消息】2026年5月30日-6月1日
大数据·人工智能·深度学习·机器学习·金融