CNN 中的注意力机制

CNN 中的注意力机制#

摘要#

还记得 实验设计 中的消融实验吗?我们发现不同通道和空间位置的特征重要性差异很大。但 CNN 有一个根本局限:它对所有输入特征一视同仁

卷积核滑过图像时,无论当前区域是背景还是关键目标,都使用相同的权重计算。这就像阅读时每个字都用同样的精力,不分重点——显然效率低下。

本章要回答的核心问题是:如何让网络动态地知道"哪些特征更重要"?

卷积神经网络 中讨论的 归纳偏置(Inductive Bias) 告诉我们,好的架构设计能把先验知识内置到网络中。注意力机制正是这种思想的延续——通过增加"动态权重"组件,让网络学会关注重要特征、抑制无关特征。它不替换现有的卷积或池化,而是在它们之上叠加一层"可学习的放大镜"。

学习目标

完成本章后,你将能够:

  1. 理解为什么需要注意力:解释 CNN 平等对待所有特征的局限性

  2. 掌握通道注意力:理解 SE-Net 的 Squeeze-Excitation 机制及其实现

  3. 掌握空间注意力:理解空间注意力的作用"哪里重要"和实现方式

  4. 理解 CBAM:掌握通道与空间注意力的组合策略

  5. 学会选择:根据任务特点选择适合的注意力模块

本章概览#

章节

内容

与前面章节的联系

为什么CNN需要注意力机制?

为什么 CNN 需要注意力?

实验设计 的问题驱动

通道注意力:SE-Net

通道注意力(SE-Net)

压缩→激励→缩放的直觉

空间注意力

空间注意力

关注"哪里重要"

通道+空间注意力:CBAM

通道+空间注意力(CBAM)

两种注意力的组合策略

注意力机制的选择与应用

选择与应用

不同注意力的适用场景和性能数据

实践指南

实践指南

超参数调优、常见陷阱

学习路径#

本章是在 CNN 基础上的能力增强

graph LR A[CNN基础<br/>平等对待特征] --> B[发现问题<br/>不同特征重要性不同] B --> C[通道注意力<br/>SE-Net] C --> D[空间注意力<br/>关注哪里] D --> E[CBAM<br/>两者结合] E --> F[选择与应用<br/>实践指南]

核心认知:注意力不是替代 CNN,而是让 CNN "学会看重点"的可学习组件。

本章定位#

前面章节我们学习了 CNN 的工作原理和各组件的贡献——卷积核提取特征、池化降维、激活函数引入非线性、批归一化加速训练。但所有这些组件都有一个共同点:它们对所有输入特征一视同仁

注意力机制的解决方案:

  • 通道注意力:让网络学会"哪些特征通道更重要"(SE-Net)

  • 空间注意力:让网络学会"图像的哪些位置更重要"

  • 组合注意力:同时关注"什么"和"哪里"(CBAM)

学习路径:理解局限 → 掌握机制 → 动手实现 → 学会选择

前置章节

本章应用

实验设计

各组件贡献分析 → 注意力能进一步提升

卷积神经网络

卷积特征提取 → 通道/空间的重要性差异

神经网络模块:搭建计算图

nn.Module 实现注意力模块

前置要求#

学习本章前,请确保你已经掌握

本章假设你已掌握以下内容:

  1. CNN 基础知识:卷积层、池化层、全连接层的作用(卷积神经网络

  2. CNN 各组件的贡献:通过消融研究理解每个组件的重要性(CNN 消融研究:理解卷积神经网络各组件的作用

  3. PyTorch 基础:能独立搭建和训练模型(神经网络模块:搭建计算图

还没掌握?

建议先完成 CNN 消融研究:理解卷积神经网络各组件的作用 的学习,理解为什么不同特征的重要性会有差异。

目录#

贡献者与修订历史

查看详细修订记录
  • bba351e 2026-04-29 - Heyan Zhu: docs: update chapter summaries and learning paths for consistency
  • 2231276 2026-04-28 - Heyan Zhu: feat(attention-mechanisms): restructure and enhance attention mechanisms documentation
  • 0c291d7 2025-12-10 - Heyan Zhu: docs: restructure course materials and add new content