文章

07 CNN特征可视化(What are deep ConvNets learning?)

07 CNN特征可视化(What are deep ConvNets learning?)

07 CNN特征可视化(What are deep ConvNets learning?)

一、核心问题:深度卷积神经网络到底在学什么?

深度卷积神经网络(ConvNets)通过多层非线性变换从原始图像中自动提取特征。理解每一层学到的内容,有助于:

  • 解释模型行为
  • 调试网络结构
  • 构建高级应用(如神经风格迁移

本节通过特征可视化方法,揭示不同深度隐藏单元所响应的图像模式。


二、可视化方法:最大化激活图像块(Activation Maximization)

基本思想:

对某个特定隐藏单元 $h^{(l)}_k$(第 $l$ 层第 $k$ 个神经元),在训练集上寻找使其激活值最大的输入图像或图像块:

\[\text{Find } \mathbf{x}^* = \arg\max_{\mathbf{x} \in \mathcal{D}} \, h^{(l)}_k(\mathbf{x})\]

其中:

  • $\mathcal{D}$ 是训练数据集
  • $h^{(l)}_k(\mathbf{x})$ 表示输入 $\mathbf{x}$ 经过前 $l$ 层后第 $k$ 个单元的输出(激活值)

实际操作中,常使用梯度上升法直接优化输入图像以最大化目标神经元响应(但本视频采用更简单的“遍历训练集找最大激活样本”的方式)。


三、各层特征可视化结果分析

1. 第一层(Layer 1):检测简单局部特征

  • 每个神经元的感受区域(Receptive Field)很小(如 $11 \times 11$ 或 $5 \times 5$)
  • 可视化显示:神经元对边缘、颜色、方向性线条敏感

    • 例如:垂直边缘、水平边缘、绿色左侧亮右侧暗等
  • 典型响应模式:

    \[\text{Edge detectors}, \quad \text{Color blobs}, \quad \text{Orientation-selective filters}\]

结论:浅层学习通用低级视觉特征,与生物视觉皮层V1区类似。


2. 第二层(Layer 2):组合边缘 → 纹理与简单形状

  • 感受区域变大,可整合多个第一层特征
  • 可视化显示:

    • 垂直条纹组合(如栅栏)
    • 圆形轮廓(如轮子、眼睛)
    • 更复杂的角点或交叉线
  • 示例:

    • 神经元A:响应密集垂直线
    • 神经元B:左侧有圆形时激活强

结论:中层开始编码局部几何结构重复纹理


3. 第三层(Layer 3):识别语义部件

  • 感受区域覆盖更大图像区域
  • 可视化显示:

    • 车轮(圆形+辐条)
    • 人脸/人体局部(如眼睛、躯干)
    • 规则图案(蜂窝、网格、方格)
  • 部分神经元已具类别倾向性

结论:深层开始捕捉物体组成部分(parts-based representation)。


4. 第四层(Layer 4):检测具体物体类别

  • 可视化显示高度语义化的响应:

    • 狗脸(特定品种,姿态相似)
    • 水面反光区域
    • 鸟类的脚(细长、分趾)
  • 神经元表现出类别选择性(category-selective)

结论:接近分类层,特征具有强语义意义


5. 第五层(Layer 5,如AlexNet最后卷积层):高阶语义概念

  • 可视化显示:

    • 狗检测器:能泛化到多种狗(比Layer 4更鲁棒)
    • 键盘检测器:响应密集按键排列(点阵结构)
    • 文本检测器:对字符区域敏感(需谨慎解读)
    • 花朵检测器:对花瓣、花蕊结构响应

结论:最深层神经元可视为概念检测器(concept detectors),直接关联高层语义。


四、层级特征演进规律总结

网络深度特征类型语义级别典型响应
Layer 1边缘、颜色、方向低级(Low-level)Sobel-like filters
Layer 2纹理、简单形状中低级条纹、圆弧、角点
Layer 3物体部件中级(Mid-level)轮子、眼睛、网格
Layer 4具体物体(受限)中高级狗脸、鸟脚、水面
Layer 5抽象概念/类别高级(High-level)多样狗、键盘、花、文字

📌 关键洞见
卷积网络通过层次化组合,从像素 → 边缘 → 纹理 → 部件 → 物体,逐步构建由简到繁的语义表示


五、技术背景与参考文献

  • 本节可视化方法简化自 Zeiler & Fergus (2013) 的经典工作:

    Zeiler M D, Fergus R. Visualizing and Understanding Convolutional Networks.
    In: ECCV 2014. Lecture Notes in Computer Science, vol 8689. Springer.

  • 他们提出 Deconvolutional Network(反卷积网络) 方法,通过反向映射将高层激活投影回像素空间,实现更精确的特征可视化。


六、与后续内容的联系:神经风格迁移(Neural Style Transfer)

  • 内容表示(Content Representation):通常取自较深卷积层(如Layer 4或5),因其编码高级语义。
  • 风格表示(Style Representation):通常取自多个浅层到中层(如Layer 1~4),因其包含纹理、颜色、笔触等风格信息。

因此,理解各层特征性质是设计风格迁移损失函数的基础。


七、公式汇总(KaTeX 兼容)

  1. 激活最大化目标

    \[\mathbf{x}^* = \underset{\mathbf{x} \in \mathcal{D}}{\arg\max} \; h^{(l)}_k(\mathbf{x})\]
  2. 感受区域增长(近似):

    \[\text{RF}^{(l)} \approx \text{RF}^{(l-1)} + (\text{kernel}_l - 1) \times \prod_{i=1}^{l-1} \text{stride}_i\]
  3. 风格迁移中的Gram矩阵(预告):

    \[G^{(l)}_{ij} = \frac{1}{H_l W_l C_l} \sum_{h=1}^{H_l} \sum_{w=1}^{W_l} F^{(l)}_{hi}(x) F^{(l)}_{hj}(x)\]

    (用于捕获层 $l$ 的特征相关性,即“风格”)


八、学习建议

  • 动手实践:使用 PyTorch/TensorFlow 可视化预训练 ResNet/VGG 各层激活
  • 对比不同网络(AlexNet vs VGG vs ResNet)的特征演化差异
  • 思考:为何浅层特征更适合“风格”,深层更适合“内容”?

✅ 本总结系统梳理了CNN特征可视化的原理、现象与意义,为理解深度学习表征机制及后续应用(如风格迁移、可解释AI)奠定坚实基础。

本文由作者按照 CC BY 4.0 进行授权