深度学习预备知识:数据操作、线性代数与微积分基础

深度学习预备知识:数据操作、线性代数与微积分基础

作为入门深度学习的第一步,扎实的数学和数据操作基础必不可少。这篇笔记整理了深度学习核心的预备知识,涵盖数据结构、线性代数、降维方法和微积分等内容,是入门的“打底”内容。

一、数据操作:N维数组(张量)是核心

在机器学习和神经网络中,N维数组(也称为张量) 是承载数据的核心结构。不同维度的张量对应不同的应用场景:

维度名称应用场景示例
0-d标量表示一个类别(如“猫”“狗”的标签)
1-d向量一个样本的特征向量(如一个人的身高、体重等特征)
2-d矩阵样本-特征矩阵(多行样本+多列特征)
3-d3维张量RGB图片(宽 × 高 × 颜色通道)
4-d4维张量RGB图片批量(批量大小 × 宽 × 高 × 通道)
5-d5维张量视频批量(批量大小 × 时间 × 宽 × 高 × 通道)

张量元素的访问(以4×4矩阵为例)

对于一个4×4的矩阵,我们可以通过索引灵活访问元素、行、列或子区域:

  • 单个元素[1,2] → 比如取到值7(注:索引规则依工具而定,通常从0或1开始)
  • 整行[1,:] → 访问第1行的所有列,比如得到(5,6,7,8)
  • 整列[:,1] → 访问第1列的所有行,比如得到(2,6,10,14)
  • 子区域
    • [1:3,1:](左闭右开)→ 取第1-2行、第1列之后的区域,得到(6,7,8,10,11,12)
    • [:,1:3,:2](步长)→ 每3行取一次、每2列取一次,得到(1,3,13,15)

二、线性代数:标量、向量与矩阵运算

线性代数是深度学习的“数学骨架”,核心是标量、向量、矩阵的操作。

1. 标量(0维张量)

标量是单个数值,基础操作包括:

  • 简单运算 C = a + b C = a+b C=a+b c = a ⋅ b c=a\cdot b c=ab c = sin ⁡ a c=\sin a c=sina
  • 长度(绝对值)
    ∣ a ∣ = { a i f   a > 0 − a o t h e r w i s e |a|=\begin{cases}a & if\ a>0 \\ -a & otherwise\end{cases} a={aaif a>0otherwise
  • 不等式性质 ∣ a + b ∣ ≤ ∣ a ∣ + ∣ b ∣ |a+b|≤|a|+|b| a+ba+b ∣ a ⋅ b ∣ = ∣ a ∣ ⋅ ∣ b ∣ |a\cdot b|=|a|\cdot |b| ab=ab

2. 向量(1维张量)

向量是有序的数值集合,操作包括:

  • 逐元素运算
    • 加法: c = a + b c = a+b c=a+b c i = a i + b i c_i = a_i + b_i ci=ai+bi
    • 乘法: c = a ⋅ b c = a\cdot b c=ab c i = a i b i c_i = a_i b_i ci=aibi
    • 函数映射: c = sin ⁡ a c = \sin a c=sina c i = sin ⁡ a i c_i = \sin a_i ci=sinai
  • 长度(L2范数)
    ∣ ∣ a ∣ ∣ 2 = [ ∑ i n a i 2 ] 1 2 ||a||_2 = \left[\sum_{i}^{n} a_i^2\right]^{\frac{1}{2}} ∣∣a2=[inai2]21
    性质: ∣ ∣ a ∣ ∣ ≥ 0 ||a|| ≥ 0 ∣∣a∣∣0 ∣ ∣ a + b ∣ ∣ ≤ ∣ ∣ a ∣ ∣ + ∣ ∣ b ∣ ∣ ||a+b|| ≤ ||a|| + ||b|| ∣∣a+b∣∣∣∣a∣∣+∣∣b∣∣ ∣ ∣ a ⋅ b ∣ ∣ ≤ ∣ a ∣ ⋅ ∣ ∣ b ∣ ∣ ||a\cdot b|| ≤ |a| \cdot ||b|| ∣∣ab∣∣a∣∣b∣∣
  • 点乘:两个向量的对应元素相乘再求和
    a T b = ∑ i n a i b i a^T b = \sum_{i}^{n} a_i b_i aTb=inaibi
  • 正交:若两个向量点乘为0,则它们正交
    a T b = ∑ i n a i b i = 0 a^T b = \sum_{i}^{n} a_i b_i = 0 aTb=inaibi=0

3. 矩阵(2维张量)

矩阵是二维的数值表格,操作包括:

  • 逐元素运算
    • 加法: C = A + B C = A+B C=A+B C i j = A i j + B i j C_{ij} = A_{ij} + B_{ij} Cij=Aij+Bij
    • 数乘: C = α ⋅ B C = \alpha \cdot B C=αB C i j = α B i j C_{ij} = \alpha B_{ij} Cij=αBij
    • 函数映射: C = sin ⁡ A C = \sin A C=sinA C i j = sin ⁡ A i j C_{ij} = \sin A_{ij} Cij=sinAij
  • 矩阵乘法
    • 矩阵×向量: c = A b c = Ab c=Ab c i = ∑ j n A i j b j c_i = \sum_{j}^{n} A_{ij} b_j ci=jnAijbj
    • 矩阵×矩阵: C = A B C = AB C=AB C i k = ∑ j n A i j B j k C_{ik} = \sum_{j}^{n} A_{ij} B_{jk} Cik=jnAijBjk

三、降维方法:高维数据的简化

深度学习中常处理高维数据,降维是关键步骤,常见方法有3类:

1. 聚合降维(Aggregation)

通过统计聚合操作(求和、平均、最大/最小值)直接降低维度,比如对图片的像素求平均得到一个标量。

2. 投影降维(Projection)

通过变换映射将高维数据投射到低维空间:

  • 线性变换:如PCA(主成分分析),比如将100维数据投影到3维,保留主要信息
  • 非线性变换:如t-SNE,用于高维数据可视化(比如把MNIST手写数字降到2D展示)

3. 特征选择降维(Feature Selection)

直接删除不重要的特征列

  • 删去方差接近0的特征(无变化的数据,无区分度)
  • 用统计方法(如卡方检验)筛选核心特征

四、范数:衡量向量的“大小”

范数是将向量(或矩阵)映射为非负标量的函数,核心作用是量化向量的“模长”或矩阵的“复杂度”,是深度学习中正则化、距离度量、优化目标的核心工具。一个函数 f ( x ) f(\boldsymbol{x}) f(x) 要成为范数,必须满足以下3个刚性性质:

  1. 缩放性 f ( α x ) = ∣ α ∣ ⋅ f ( x ) f(\alpha \boldsymbol{x}) = |\alpha| \cdot f(\boldsymbol{x}) f(αx)=αf(x) α \alpha α 为任意常数)
    含义:向量缩放 ∣ α ∣ |\alpha| α 倍,其范数也缩放 ∣ α ∣ |\alpha| α 倍,保证范数与向量的缩放比例一致。
  2. 三角不等式 f ( x + y ) ≤ f ( x ) + f ( y ) f(\boldsymbol{x}+\boldsymbol{y}) \leq f(\boldsymbol{x})+f(\boldsymbol{y}) f(x+y)f(x)+f(y)
    含义:两个向量和的范数,不大于两个向量范数的和,对应几何中的“三角形两边之和大于第三边”。
  3. 非负性 f ( x ) ≥ 0 f(\boldsymbol{x}) \geq 0 f(x)0,且当且仅当 x = 0 \boldsymbol{x}=\boldsymbol{0} x=0(零向量)时, f ( x ) = 0 f(\boldsymbol{x})=0 f(x)=0
    含义:范数的结果是一个非负数,只有零向量的范数为0,保证范数能有效衡量“大小”。

1. 常见的 L-P 范数

对于 n n n 维向量 X = ( x 1 , x 2 , ⋯   , x n ) \boldsymbol{X}=(x_1,x_2,\cdots,x_n) X=(x1,x2,,xn),L-P 范数的通用定义为:
L p = ∣ ∣ X ∣ ∣ p = [ ∑ i = 1 n ∣ x i ∣ p ] 1 p L_p = ||\boldsymbol{X}||_p = \left[\sum_{i=1}^{n} |x_i|^p\right]^{\frac{1}{p}} Lp=∣∣Xp=[i=1nxip]p1
其中 p ≥ 1 p\geq1 p1,不同的 p p p 值对应不同的范数,各有其几何意义和应用场景。

(1)L1 范数(曼哈顿距离)

p = 1 p=1 p=1 时,得到 L1 范数,其定义为:
∣ ∣ X ∣ ∣ 1 = ∑ i = 1 n ∣ x i ∣ ||\boldsymbol{X}||_1 = \sum_{i=1}^{n} |x_i| ∣∣X1=i=1nxi

  • 几何意义:在二维空间中,L1 范数对应两点沿坐标轴的“直角距离”(如从 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) ( x 2 , y 2 ) (x_2,y_2) (x2,y2) 的距离为 ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ |x_1-x_2|+|y_1-y_2| x1x2+y1y2),因类似曼哈顿街区的路径而得名。
  • 核心特点:对向量中的异常值敏感度较低,且具有稀疏性诱导能力——优化过程中会倾向于让向量的部分元素变为 0,保留关键元素。
  • 深度学习应用
    • L1 正则化:在损失函数中添加 L1 范数项,迫使模型的部分权重变为 0,实现特征选择,简化模型结构。
    • 鲁棒性模型:处理含噪声或离群点的数据时,L1 范数能降低异常值对模型的干扰。
(2)L2 范数(欧氏距离)

p = 2 p=2 p=2 时,得到 L2 范数,其定义为:
∣ ∣ X ∣ ∣ 2 = ∑ i = 1 n x i 2 ||\boldsymbol{X}||_2 = \sqrt{\sum_{i=1}^{n} x_i^2} ∣∣X2=i=1nxi2

  • 几何意义:对应二维/三维空间中两点的直线距离,是最直观的“向量长度”度量方式。
  • 核心特点:对向量中的异常值敏感度较高(平方运算会放大异常值的影响),优化过程中会让向量的所有元素均匀趋近于 0(而非直接置 0)。
  • 深度学习应用
    • L2 正则化(权重衰减):在损失函数中添加 L2 范数项,限制模型权重的大小,防止过拟合,使模型更稳定。
    • 距离度量:KNN、K-Means 等算法中,用 L2 范数计算样本间的相似度。
    • 梯度下降优化:通过计算损失函数的 L2 范数,衡量梯度的大小,调整学习率。
(3)L∞ 范数(无穷范数)

p → ∞ p\to\infty p 时,L-P 范数收敛到 L∞ 范数,其定义为:
∣ ∣ X ∣ ∣ ∞ = max ⁡ ( ∣ x 1 ∣ , ∣ x 2 ∣ , … , ∣ x n ∣ ) ||\boldsymbol{X}||_\infty = \max(|x_1|,|x_2|,\dots,|x_n|) ∣∣X=max(x1,x2,,xn)

  • 几何意义:L∞ 范数只关注向量中绝对值最大的元素,忽略其他元素的影响,对应二维空间中以原点为中心的“正方形”距离边界。
  • 核心特点:极端关注向量的“峰值”,能快速衡量向量的最大幅值。
  • 深度学习应用
    • 对抗性攻击:衡量模型输入的最大扰动幅度,评估模型的鲁棒性。
    • 梯度裁剪:限制梯度的 L∞ 范数,防止梯度爆炸。

2. 矩阵的范数

范数的概念可扩展到矩阵,深度学习中最常用的是 F-范数(弗罗贝尼乌斯范数),对于 m × n m\times n m×n 矩阵 A \boldsymbol{A} A,其定义为:
∣ ∣ A ∣ ∣ F = ∑ i = 1 m ∑ j = 1 n A i j 2 ||\boldsymbol{A}||_F = \sqrt{\sum_{i=1}^{m} \sum_{j=1}^{n} A_{ij}^2} ∣∣AF=i=1mj=1nAij2

  • 核心特点:等价于将矩阵拉伸为一个长向量后计算 L2 范数,满足范数的三个基本性质。
  • 深度学习应用
    • 矩阵近似:衡量原始矩阵与低秩矩阵的差异,用于主成分分析(PCA)、奇异值分解(SVD)等降维算法。
    • 模型参数正则化:限制神经网络中权重矩阵的 F-范数,防止参数过大导致的过拟合。

3. 范数的核心应用总结

范数类型核心特点典型应用场景
L1 范数诱导稀疏性、对异常值鲁棒特征选择、L1 正则化
L2 范数衡量欧氏长度、平滑权重权重衰减、距离度量
L∞ 范数关注最大幅值梯度裁剪、对抗性攻击评估
F-范数矩阵的整体大小度量低秩矩阵近似、权重正则化

五、微积分:深度学习的“优化工具”

微积分用于求解函数的变化率,是梯度下降等优化算法的基础。

1. 函数

函数是“输入→输出”的映射关系,比如深度学习中常用的线性函数
y = w x + b y = wx + b y=wx+b
w w w是权重, b b b是偏置)

2. 导数与偏导数

  • 导数:函数在某一点的斜率,衡量单变量函数的变化率
  • 偏导数:针对多元函数(如 z = x 2 + y 2 z = x^2 + y^2 z=x2+y2),对其中一个变量求导时,将其他变量视为常数
    示例: ∂ z ∂ x = 2 x \frac{\partial z}{\partial x} = 2x xz=2x ∂ z ∂ y = 2 y \frac{\partial z}{\partial y} = 2y yz=2y

3. 梯度(Gradient)

梯度是多元函数的偏导数组成的向量,表示函数变化最快的方向:
设输入是n维向量 X = [ x 1 , x 2 , ⋯   , x n ] T X = [x_1,x_2,\cdots,x_n]^T X=[x1,x2,,xn]T,输出是标量,则梯度为:
∇ X f ( x ) = [ ∂ f ( x ) ∂ x 1 , ∂ f ( x ) ∂ x 2 , ⋯   , ∂ f ( x ) ∂ x n ] T \nabla_X f(x) = \left[\frac{\partial f(x)}{\partial x_1}, \frac{\partial f(x)}{\partial x_2}, \cdots, \frac{\partial f(x)}{\partial x_n}\right]^T Xf(x)=[x1f(x),x2f(x),,xnf(x)]T

4. 链式法则

用于求解复合函数的导数(深度学习反向传播的核心):
y = f ( u ) y=f(u) y=f(u) u = g ( x ) u=g(x) u=g(x)都可微,则:
d y d x = d y d u ⋅ d u d x \frac{dy}{dx} = \frac{dy}{du} \cdot \frac{du}{dx} dxdy=dudydxdu


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值