深度学习数学基础(一)——线性代数、线性代数和微积分

目录

深度学习数学基础------线性代数、线性代数和微积分

[1.1 线性代数(深度学习的底层语言)](#1.1 线性代数(深度学习的底层语言))

[🔹 1.1.1 向量、矩阵、张量的概念](#🔹 1.1.1 向量、矩阵、张量的概念)

[✔ 向量(Vector)](#✔ 向量(Vector))

[✔ 矩阵(Matrix)](#✔ 矩阵(Matrix))

[✔ 张量(Tensor)](#✔ 张量(Tensor))

[🔹 1.1.2 矩阵乘法、张量 reshape / transpose / broadcast](#🔹 1.1.2 矩阵乘法、张量 reshape / transpose / broadcast)

[✔ 矩阵乘法(核心)](#✔ 矩阵乘法(核心))

给定矩阵:

计算过程(按点积理解):

[第一步:计算 c11​](#第一步:计算 c11)

[第二步:计算 c12​](#第二步:计算 c12)

[第三步:计算 c21​](#第三步:计算 c21)

[第四步:计算 c22​](#第四步:计算 c22)

最终结果:

[✔ 张量 reshape(改变形状)](#✔ 张量 reshape(改变形状))

[reshape 操作:](#reshape 操作:)

为什么这对多头注意力有用?

[✔ transpose(转置、维度交换)](#✔ transpose(转置、维度交换))

[✔ broadcast(广播机制)](#✔ broadcast(广播机制))

[🔹 1.1.3 特征值、奇异值分解 SVD(理解模型的重要工具)](#🔹 1.1.3 特征值、奇异值分解 SVD(理解模型的重要工具))

[✔ 特征值(Eigenvalue)](#✔ 特征值(Eigenvalue))

[✔ 奇异值分解 SVD](#✔ 奇异值分解 SVD)

[🔹 1.1.4 点积(Dot product)与范数(Norm)](#🔹 1.1.4 点积(Dot product)与范数(Norm))

[✔ 点积(Attention 的灵魂)](#✔ 点积(Attention 的灵魂))

[✔ 范数(Norm)](#✔ 范数(Norm))

[1.2 概率与统计(理解 Loss 和 Training 的关键)](#1.2 概率与统计(理解 Loss 和 Training 的关键))

[1.2.1 概率分布](#1.2.1 概率分布)

[✔ 常见分布:](#✔ 常见分布:)

为什么是多项分布?

用实际例子说明

为什么多项分布如此重要?

[1. 生成文本的数学基础](#1. 生成文本的数学基础)

[2. 与人类语言学习的类比](#2. 与人类语言学习的类比)

[3. 与神经网络的完美结合](#3. 与神经网络的完美结合)

为什么不是其他分布?

实际应用示例

[1.2.2 最大似然估计 MLE(训练神经网络的数学本质)](#1.2.2 最大似然估计 MLE(训练神经网络的数学本质))

[🔹 1.2.3 KL 散度(Transformer 的 Loss 本质)](#🔹 1.2.3 KL 散度(Transformer 的 Loss 本质))

[🔹 1.2.4 联合概率 / 条件概率](#🔹 1.2.4 联合概率 / 条件概率)

[1.3 微积分(模型训练的引擎)](#1.3 微积分(模型训练的引擎))

[🔹 1.3.1 偏导数、链式法则](#🔹 1.3.1 偏导数、链式法则)

[🔹 1.3.2 梯度下降(Gradient Descent)](#🔹 1.3.2 梯度下降(Gradient Descent))

[🔹 1.3.3 损失函数的优化](#🔹 1.3.3 损失函数的优化)


深度学习数学基础------线性代数、线性代数和微积分

每一小节都包含:是什么 → 为什么重要 → 深度学习中的关键用法 → 示例或公式

我会尽量讲得"刚刚好深入",既不会太浅,也不会让你一下看不懂。


1.1 线性代数(深度学习的底层语言)


🔹 1.1.1 向量、矩阵、张量的概念

✔ 向量(Vector)

  • 一组有序的数

  • 通常记作一维数组 shape = (d,)

  • 可以理解为"表示某种特征的一条记录"

示例:

假设我们正在记录一个人的身高、体重和年龄这三个特征,那么这一组有序的数可以表示为一个一维数组(向量):

python 复制代码
person_features = [175, 68, 30]
  • shape = (3,):表示这个数组有 3 个元素。
  • 每个位置对应一个特定的特征(比如:[身高(cm), 体重(kg), 年龄(岁)])。
  • 这就是"表示某种特征的一条记录"。

在机器学习或数据分析中,这样的向量通常代表数据集中的一行(一个样本)。例如,在一个包含多个人的数据表中,每个人都可以用这样一个一维数组来表示。


✔ 矩阵(Matrix)

  • 二维数据结构,shape = (m, n)

  • 可以表示:

    • 多条样本 → 每行一个样本

    • 神经网络参数(如全连接层的权重)

示例:

全连接层:

其中 W 是矩阵,shape = (输出维度, 输入维度)


✔ 张量(Tensor)

  • 可以理解为"任意维度的数组"

  • 深度学习中所有数据都是张量

    • 图像: (Batch, Channel, H, W) → 4维

    • NLP 模型输入: (Batch, SeqLen, Hidden) → 3维

张量是向量和矩阵的拓展版本。


🔹 1.1.2 矩阵乘法、张量 reshape / transpose / broadcast

✔ 矩阵乘法(核心)

矩阵乘法就是多个向量点积组成的新矩阵。

如果

A: (m × k)

B: (k × n)

C = AB: (m × n)

神经网络中几乎所有线性层都是矩阵乘法。

示例:

给定矩阵:

那么

C=A B shape: (2×2)


计算过程(按点积理解):

矩阵乘法中,结果矩阵 C 的每个元素 cij​ 是 A 的第 i 行B 的第 j 列点积

第一步:计算 c11​
  • A 的第 1 行:[1,2,3]
  • B 的第 1 列:
  • 点积:1⋅7+2⋅9+3⋅11=7+18+33=58
第二步:计算 c12​
  • A 的第 1 行:[1,2,3]
  • B 的第 2 列:
  • 点积:1⋅8+2⋅10+3⋅12=8+20+36=64
第三步:计算 c21​
  • A 的第 2 行:[4,5,6]
  • B 的第 1 列:
  • 点积:4⋅7+5⋅9+6⋅11=28+45+66=139
第四步:计算 c22​
  • A 的第 2 行:[4,5,6]
  • B 的第 2 列:
  • 点积:4⋅8+5⋅10+6⋅12=32+50+72=154

最终结果:


✔ 张量 reshape(改变形状)

reshape不改变数据,只改变形状。

就像把一排积木重新摆成不同行列的矩形,积木本身没变,只是摆放形状变了。

示例:

把 3D tensor (batch, seq, hidden)

分成多头:(batch, seq, n_heads, head_dim)

Transformer 的多头注意力 全靠 reshape

假设我们有一个张量(tensor):

python 复制代码
x.shape = (2, 4, 12)   # (batch=2, seq_len=4, hidden_dim=12)

这表示:

  • 2 个样本(比如两句话)
  • 每句话有 4 个词(token)
  • 每个词用 12 维向量表示

现在我们要做 多头注意力 ,比如分成 3 个头(n_heads=3),那么每个头的维度就是:

复制代码
head_dim = hidden_dim // n_heads = 12 // 3 = 4

目标:把 (2, 4, 12) → reshape 成 (2, 4, 3, 4)

reshape 操作:

python 复制代码
x_reshaped = x.reshape(2, 4, 3, 4)   # 或者用 .view() in PyTorch

这一步没有复制数据,也没有改变数值,只是告诉程序:"现在请把每 12 维看成 3 组,每组 4 维"。


为什么这对多头注意力有用?

在 Transformer 中,Q、K、V 都是通过线性变换得到的,比如:

python 复制代码
Q = x @ W_Q    # shape: (batch, seq, hidden) = (2, 4, 12)

但我们希望 每个 attention head 独立计算自己的 Q、K、V

所以:

  1. 先让 W_Q 输出 12 维(其实是 3 个头 × 每个头 4 维)
  2. 然后 reshape(2, 4, 3, 4)
  3. transpose(2, 3, 4, 4) ------ 把 head 维度提到前面
  4. 这样就可以对每个 head 单独做矩阵乘(attention)
python 复制代码
# PyTorch 风格伪代码
Q = x @ W_Q                      # (2, 4, 12)
Q = Q.reshape(2, 4, 3, 4)        # (batch, seq, n_heads, head_dim)
Q = Q.transpose(1, 2)            # (batch, n_heads, seq, head_dim)

现在,Q[0, 1] 就是第 0 个样本、第 1 个 attention head 的所有 token 的 query 向量(shape: 4×4)。


✔ transpose(转置、维度交换)

常见:

(batch, seq, heads, dim) → (batch, heads, seq, dim)

多头注意力要计算:

Q 与 Kᵀ 的点积

所以 transpose 非常常用。


✔ broadcast(广播机制)

让小张量自动扩展到大张量的维度。

示例:

加上 bias:

(batch, seq, hidden) + (hidden)

→ 自动扩展 bias 维度

→ 深度学习中加权、加偏置都依赖 broadcast。


🔹 1.1.3 特征值、奇异值分解 SVD(理解模型的重要工具)

✔ 特征值(Eigenvalue)

矩阵 A 对向量 x 做线性变换时,如果满足:

则 x 是特征向量,λ 是特征值。

深度学习中的作用:

  • 模型的稳定性分析

  • Hessian 矩阵的主方向

  • 卷积核的特征分析


✔ 奇异值分解 SVD

矩阵 A 分解为:

其中

  • U/V 为正交矩阵

  • Σ 为奇异值对角矩阵(重要!)

深度学习用处:

  • 矩阵低秩近似:LLM 量化的基础

  • LoRA 本质:对 W 做低秩分解(r 很小)

  • 判断模型训练不稳定:奇异值过大 → 梯度爆炸


🔹 1.1.4 点积(Dot product)与范数(Norm)

✔ 点积(Attention 的灵魂)

两个向量 a, b 的点积:

在自注意力中:

点积越大 → Token 越相似(因为这里余弦值的原因,可以理解为方向相似) → 注意力权重越高。


✔ 范数(Norm)

衡量向量大小。

常见:

L2 范数:

深度学习用途:

  • 权重衰减(Weight Decay)

  • 归一化(Normalization)

  • 稳定模型训练


1.2 概率与统计(理解 Loss 和 Training 的关键)


1.2.1 概率分布

✔ 常见分布:

  • 高斯分布:模型噪声假设

  • 伯努利分布:分类任务

  • 多项分布 Softmax:Transformer 输出分布

语言模型最后一层输出:

这本质是 多项分布 multinomial distribution

语言模型最后一层的输出确实是多项分布,这正是Transformer等现代语言模型能够生成自然文本的核心数学原理。


为什么是多项分布?

在语言模型中,模型会预测下一个词的概率分布。具体来说:

  1. 模型输出:一个长度为V的向量(V是词汇表大小),每个元素是该词的logits(未归一化的得分)

    复制代码
    z = [z₁, z₂, ..., zᵥ]
  2. Softmax转换:将logits转换为概率分布

    复制代码
    P(yₜ=i) = e^{zᵢ} / Σⱼ e^{zⱼ}
  3. 结果:得到一个概率向量,其中每个元素表示对应词被选中的概率

    复制代码
    p = [p₁, p₂, ..., pᵥ], 且 Σpᵢ = 1

这就是典型的多项分布:在V个互斥类别(词汇)中,每个类别被选中的概率。


用实际例子说明

假设词汇表大小V=5,模型预测下一个词的概率分布为:

复制代码
p = [0.6, 0.25, 0.1, 0.04, 0.01]
# 对应词汇:["今天", "天气", "真", "好", "啊"]

这意味着:

  • 模型认为"今天"最可能出现在下一个位置(60%概率)
  • "天气"有25%概率
  • "真"有10%概率
  • 依此类推

这完全符合多项分布的定义

  • 有V个可能的结果(5个词汇)
  • 每个结果有对应的概率
  • 所有概率之和为1

为什么多项分布如此重要?

1. 生成文本的数学基础

  • 模型通过采样(如多项式采样)从这个分布中选择下一个词
  • 这就是为什么我们能通过调整参数(如温度、Top-K)控制生成的多样性和确定性

2. 与人类语言学习的类比

  • 就像人类学习语言时,听到"今天天气"后,大脑会预测"真好"的概率高于"真坏"
  • 模型通过学习大量文本,将这种概率关系编码为多项分布

3. 与神经网络的完美结合

  • 神经网络通过训练,学习到如何将上下文映射为正确的多项分布
  • 这正是Transformer的核心能力:预测下一个词的概率分布

为什么不是其他分布?

  • 高斯分布:连续变量,不适合离散的词汇预测
  • 伯努利分布:只有两个结果,无法表示多词汇选择
  • 多项分布:完美匹配词汇选择问题(多个离散类别,概率和为1)

实际应用示例

在PyTorch中,我们这样实现语言模型的输出:

复制代码
import torch

# 模型输出的logits
logits = torch.tensor([2.0, 1.0, 0.5, 0.1, -1.0])

# 转换为概率分布(多项分布)
probs = torch.softmax(logits, dim=0)
print(probs)
# 输出: tensor([0.6592, 0.2415, 0.0721, 0.0216, 0.0056])

# 从多项分布中采样
next_token = torch.multinomial(probs, num_samples=1)
print(next_token)
# 输出: tensor([0])  # 选择了第一个词("今天")

1.2.2 最大似然估计 MLE(训练神经网络的数学本质)

神经网络"训练"就是求参数 θ,让训练数据出现概率最大:

θ\*=arg⁡max⁡θp(x∣θ)\theta^\* = \arg\max_\theta p(x|\theta)θ\*=argmaxθ​p(x∣θ)

通常取负对数:

这就是 交叉熵损失的来源

训练深度学习 = 最大似然估计 = 最小化交叉熵


🔹 1.2.3 KL 散度(Transformer 的 Loss 本质)

KL 散度用于衡量两个分布的差异:

语言模型的训练目标:

  • P:真实分布(one-hot / dataset)

  • Q:模型预测分布(softmax 输出)

所以 LLM 的 loss 实际就是 KL 散度。


🔹 1.2.4 联合概率 / 条件概率

条件概率:

P(A∣B)=P(A,B)P(B)P(A|B)=\frac{P(A,B)}{P(B)}P(A∣B)=P(B)P(A,B)​

语言模型本质是预测下一个词:

P(x_t∣x1,x2,...,xt−1)P(x\t | x_1, x_2, ..., x{t-1})P(x_t∣x1​,x2​,...,xt−1​)

自回归模型 (如 GPT) 的数学基石:

P(x)=∏t=1TP(xt∣x<t)P(x) = \prod_{t=1}^{T} P(x_t | x_{<t})P(x)=∏t=1T​P(xt​∣x<t​)

理解这个式子,你就懂语言模型。


📘 1.3 微积分(模型训练的引擎)


🔹 1.3.1 偏导数、链式法则

偏导数:

测量某个变量改变一点会让函数改变多少。

链式法则:

神经网络层层相连,梯度必须一层层往回传:

∂L∂x=∂L∂y∂y∂x\frac{\partial L}{\partial x}=\frac{\partial L}{\partial y} \frac{\partial y}{\partial x}∂x∂L​=∂y∂L​∂x∂y​

Backpropagation 的数学核心就是链式法则。


🔹 1.3.2 梯度下降(Gradient Descent)

神经网络训练,就是不断沿着负梯度方向走:

θ←θ−η∂L∂θ\theta \leftarrow \theta - \eta \frac{\partial L}{\partial \theta}θ←θ−η∂θ∂L​

  • η:学习率

  • ∂L/∂θ:梯度

方向对 → loss 会下降。


🔹 1.3.3 损失函数的优化

常见 Loss:

  • MSE(回归)

  • CrossEntropy(分类 / NLP)

  • KL Loss(模型蒸馏)

  • NLL Loss(语言模型)

优化就是:

找参数 θ,让损失 L(θ) 最小。

相关推荐
musk12121 小时前
YOLOv8n模型微调全指南:从环境搭建到技能储备 (内容由 AI 生成)
人工智能·yolo
JeffyW1 小时前
Claude Agent 长时间运行实践指南
人工智能
爱笑的眼睛111 小时前
Flask应用API深度开发:从单体架构到微服务设计模式
java·人工智能·python·ai
LHZSMASH!1 小时前
基于动态图卷积与时间自注意力的EEG情绪识别混合网络——深度技术解析
人工智能·深度学习
彼岸花开了吗1 小时前
构建AI智能体:四十、K-Means++与RAG的融合创新:智能聚类与检索增强生成的深度应用
人工智能·python
趁你还年轻_1 小时前
检索增强生成 RAG
人工智能
蒙奇·D·路飞-1 小时前
大模型领域的较量与发展趋势:从技术突破到产业变革
人工智能
da_vinci_x1 小时前
Sampler 风格化滤镜:拒绝“写实”,AI 一键生成“塞尔达”风草地
人工智能·游戏·aigc·材质·技术美术·游戏美术·pbr
AI浩1 小时前
基于检测变换器的无源目标检测
人工智能·目标检测·目标跟踪