AI知识分享AI知识分享
✿导航
  • 人工智能
  • 神经网络
  • 机器学习
  • 深度学习
  • 强化学习
  • 自然语言处理
  • 计算机视觉
  • 大模型基础
  • 动手学深度学习
  • 理论理解
  • 工程实践
  • 应用开发
  • AI For Everyone
  • AIGC_2024大会
  • AIGC_2025大会
  • Transformer
  • Pytorch
  • HuggingFace
  • 蒸馏
  • RAG
  • 目标检测
  • MCP
  • 概念
  • 意图识别
  • 工具
✿导航
  • 人工智能
  • 神经网络
  • 机器学习
  • 深度学习
  • 强化学习
  • 自然语言处理
  • 计算机视觉
  • 大模型基础
  • 动手学深度学习
  • 理论理解
  • 工程实践
  • 应用开发
  • AI For Everyone
  • AIGC_2024大会
  • AIGC_2025大会
  • Transformer
  • Pytorch
  • HuggingFace
  • 蒸馏
  • RAG
  • 目标检测
  • MCP
  • 概念
  • 意图识别
  • 工具
  • 大模型基础

    • 语言模型基础

      • 概述
      • 基于统计方法的语言模型
      • 基于神经网络的语言模型
      • 语言模型的采样方法
      • 语言模型的评测
    • 大语言模型架构

      • 概述
      • 主流模型架构
      • Encoder-only
      • Encoder-Decoder
      • Decoder-only
      • 非Transformer 架构
    • Prompt工程

      • 工程简介
      • 上下文学习
      • 思维链
      • 技巧
    • 参数高效微调

      • 概述
      • 参数附加方法
      • 参数选择方法
      • 低秩适配方法
      • 实践与应用
    • 模型编辑

      • 简介
      • 方法
      • 附加参数法
      • 定位编辑法
    • RAG

      • 基础
      • 架构
      • 知识检索
      • 生成增强
  • 动手学深度学习

    • 深度学习基础

      • 引言
      • 数据操作
      • 数据预处理
      • 数学知识(线代、矩阵计算、求导)
      • 线性回归
      • 基础优化方法
      • Softmax回归
      • 感知机
      • 模型选择
      • 过拟合和欠拟合
      • 环境和分布偏移
      • 权重衰减
      • Dropout
      • 数值稳定性
    • 卷积神经网络

      • 模型基本操作
      • 从全连接层到卷积
      • 填充和步长
      • 多个输入和输出通道
      • 池化层
      • LeNet
      • AlexNet
      • VGG
      • NiN网络
      • GoogleNet
      • 批量归一化
      • ResNet
    • 计算机视觉

      • 图像增广
      • 微调
      • 目标检测
      • 锚框
      • 区域卷积神经网络
      • 单发多框检测
      • 一次看完
      • 语义分割
      • 转置卷积
      • 全连接卷积神经网络
      • 样式迁移
    • 循环神经网络

      • 序列模型
      • 语言模型
      • 循环神经网络
      • 序列到序列学习
      • 搜索策略
    • 注意力机制

      • 优化算法

卷积

分类猫和狗的图片

  • 使用一个还不错的相机采集图片(12M像素)
  • RGB图片有36M元素
  • 使用100大小的单隐藏层 MLP,模型有3.6B元素
  • 远多世界上所有猫和狗总数(900M狗,600M猫)

单隐藏层MLP:

精度类型每参数字节数总内存估算
FP32(32位浮点)4 字节3.6B × 4 ≈ 14.4 GB
FP16 / BF16(16位)2 字节3.6B × 2 ≈ 7.2 GB
INT8(8位整型)1 字节3.6B × 1 ≈ 3.6 GB
MXFP4(4位混合精度)0.5 字节3.6B × 0.5 ≈ 1.8 GB

图像处理

图像具有平移不变性(translation invariance)和局部性(locality),这两个特性是卷积神经网络(CNN) 能在计算机视觉任务中取得巨大成功的重要理论基础。

局部性(Locality)

图像中的一个像素通常只与其邻近的像素有强相关性,而与远处的像素关系较弱。也就是说,有意义的视觉模式(如边缘、角点、纹理)往往出现在局部区域内。

举例

  • 识别“猫的眼睛”不需要看整张图,只需关注局部区域。
  • 边缘检测滤波器(如 Sobel 算子)只作用于 3×3 或 5×5 的小窗口。

CNN 如何利用局部性?

  • 使用小尺寸卷积核(如 3×3、5×5)只处理局部感受野。
  • 通过堆叠多层卷积,逐步扩大感受野,从局部特征组合成全局语义。

✅ 优势:大幅减少参数量,避免全连接带来的过拟合和计算爆炸。

平移不变性(Translation Invariance)

更准确地说,CNN 具备一定程度的平移等变性(equivariance),最终通过池化等操作实现近似平移不变性。

定义

  • 平移等变性(Translation Equivariance):
    如果输入图像中的某个模式(如边缘)发生平移,那么特征图中的响应也会以相同方式平移。

    即:f(x shifted) = f(x) shifted

  • 平移不变性(Translation Invariance):
    无论目标出现在图像哪个位置,模型都能识别出它是同一类对象(输出类别不变)。

    即:classifier(x shifted) = classifier(x)

CNN 如何实现?

  • 卷积操作本身具有平移等变性:同一个卷积核在图像所有位置滑动,对相同模式产生相同响应。
  • 池化(如最大池化)和深层结构逐渐增强对位置变化的鲁棒性,趋向平移不变。
  • 全连接分类头最终将空间信息“压缩”为类别概率,忽略精确位置。

全连接层 ——> 卷积层

通过对全连接层施加“平移不变性”和“局部性”这两个先验约束,推导出卷积层的结构。

🧩 背景回顾:全连接层的权重长什么样?

假设你有一个 2×2 的输入图像(为了简单),即:

x=[x0,0x0,1x1,0x1,1]x = \begin{bmatrix} x_{0,0} & x_{0,1} \\ x_{1,0} & x_{1,1} \end{bmatrix} x=[x0,0​x1,0​​x0,1​x1,1​​]

把它拉成向量:

x=[x0,0,x0,1,x1,0,x1,1]⊤∈R4\mathbf{x} = [x_{0,0}, x_{0,1}, x_{1,0}, x_{1,1}]^\top \in \mathbb{R}^4 x=[x0,0​,x0,1​,x1,0​,x1,1​]⊤∈R4

再假设输出也是一个 2×2 的特征图,拉成向量 h∈R4\mathbf{h} \in \mathbb{R}^4h∈R4。

那么全连接层就是:

h=Wx,其中 W∈R4×4\mathbf{h} = \mathbf{W} \mathbf{x}, \quad \text{其中 } \mathbf{W} \in \mathbb{R}^{4 \times 4} h=Wx,其中 W∈R4×4

也就是说,每个输出神经元 hih_ihi​ 都和所有 4 个输入相连,共 16 个权重。

但这样完全忽略了“空间位置”——比如 x0,0x_{0,0}x0,0​ 是左上角,x1,1x_{1,1}x1,1​ 是右下角,但在向量里它们只是第1个和第4个元素,没有几何意义。

🔁 现在:不拉平!保留二维结构

我们不把输入/输出拉成向量,而是保持它们是二维矩阵:

  • 输入:xk,lx_{k,l}xk,l​,其中 k=0,1k=0,1k=0,1(高),l=0,1l=0,1l=0,1(宽)
  • 输出:hi,jh_{i,j}hi,j​,其中 i=0,1i=0,1i=0,1,j=0,1j=0,1j=0,1

那么,全连接操作可以写成:

hi,j=∑k=01∑l=01w(i,j),(k,l)⋅xk,lh_{i,j} = \sum_{k=0}^{1} \sum_{l=0}^{1} w_{(i,j),(k,l)} \cdot x_{k,l} hi,j​=k=0∑1​l=0∑1​w(i,j),(k,l)​⋅xk,l​

👉 这里 w(i,j),(k,l)w_{(i,j),(k,l)}w(i,j),(k,l)​ 表示:从输入位置 (k,l)(k,l)(k,l) 到输出位置 (i,j)(i,j)(i,j) 的连接权重。


📦 权重现在是一个 4-D 张量!

因为:

  • 输出有两个索引:(i,j)(i, j)(i,j)
  • 输入有两个索引:(k,l)(k, l)(k,l)

所以权重自然是一个 四维数组(张量):

wi,j,k,lw_{i,j,k,l} wi,j,k,l​

维度是:

(out_height, out_width, in_height, in_width)=(2,2,2,2)(\text{out\_height},\ \text{out\_width},\ \text{in\_height},\ \text{in\_width}) = (2,2,2,2) (out_height, out_width, in_height, in_width)=(2,2,2,2)

你可以想象这是一个“超立方体”,每个元素 wi,j,k,lw_{i,j,k,l}wi,j,k,l​ 告诉你:

“当计算输出位置 (i,j)(i,j)(i,j) 时,输入位置 (k,l)(k,l)(k,l) 应该贡献多少”。

✅ 这就是“将权重变形为 4-D 张量 (h,w)→(h′,w′)(h,w) \to (h',w')(h,w)→(h′,w′)”的意思:

  • 不再是扁平的 Wm,nW_{m,n}Wm,n​,
  • 而是结构化的 wi,j,k,lw_{i,j,k,l}wi,j,k,l​,显式记录了空间到空间的映射。

转换过程

TODO: 需要理解重新索引

小结

卷积神经网络(CNN)通过利用图像的平移不变性和局部性,成功地解决了全连接层在处理图像时的局限性。卷积操作能够通过减少参数数量、提高计算效率来有效提取图像特征,成为计算机视觉领域的核心技术。

  • 平移不变性:图像中的物体位置不会影响卷积神经网络的识别能力。
  • 局部性:卷积神经网络专注于图像的局部区域,以便提取有效的局部特征。
  • 权重共享:卷积核在整个图像中共享相同的权重,减少了模型的参数数量。
最近更新: 2026/3/11 20:33
Contributors: klc407073648
Prev
模型基本操作
Next
填充和步长