当前位置: 首页 > article >正文

深度学习|表示学习|卷积神经网络|DeconvNet是什么?|18

如是我闻: DeconvNet(反卷积网络)是一种可视化 CNN(卷积神经网络)内部特征的方法,用于理解 CNN 是如何提取图像特征的。这个方法由 Zeiler & Fergus(2013) 提出,目的是通过反向传播特征图,恢复输入图像中的显著区域
在这里插入图片描述


1. DeconvNet 的核心思想

DeconvNet 并不是一个新的神经网络结构,而是一种分析 CNN 内部特征的工具,它的基本原理是:

  • 给定 CNN 中某一层的激活特征图(即网络中某个卷积层的输出)。
  • 将其他位置的激活值清零,只保留一个特定的激活区域。
  • 使用 DeconvNet 逐步反向恢复输入图像的相关区域,即:
    1. 反向 Unpooling(反池化)
    2. 反向 ReLU(非线性激活反向映射)
    3. 反向 Convolution(转置卷积)
  • 最终可视化 CNN 关注的输入图像部分

2. CNN 处理图像的过程

为了理解 DeconvNet,我们先回顾 CNN 处理图像的方式:

(1) CNN 的前向传播

CNN 主要由以下几部分组成:

  1. 卷积(Convolution)
    • 使用卷积核(filter)扫描输入图像,提取局部特征。
  2. ReLU(非线性激活)
    • 对卷积后的值进行非线性变换,增加模型的表达能力。
  3. 池化(Pooling)
    • 例如 最大池化(Max Pooling),用来减少特征图的大小,同时保留最重要的特征。

在 CNN 计算的过程中,每一层的输出都是低维度的、提取了高级特征的表示


3. DeconvNet 如何可视化 CNN

DeconvNet 通过 逆向操作 来还原 CNN 关注的输入图像部分。它的主要步骤如下:

(1) 选择某一层的激活特征图

  • 选定 CNN 训练好的某一层(例如 conv3),并只保留某个特定通道的激活值,其余位置置零。

(2) 反向计算特征图(DeconvNet 操作)

  1. Unpooling(反池化)

    • CNN 在前向传播时使用 Max Pooling(最大池化) 来降低特征图的分辨率。
    • DeconvNet 通过记录池化时的位置(Switches),在 Unpooling 过程中,将激活值放回原来的位置,其余填充 0。
    • 作用:恢复特征图的空间分辨率
  2. ReLU 反向映射

    • CNN 采用 ReLU 进行非线性变换(负数变为 0)。
    • DeconvNet 仅保留正数部分,确保可视化的特征仍然是原始网络激活的部分
    • 作用:保持原始网络的非线性信息
  3. 转置卷积(Transpose Convolution)

    • CNN 在前向传播时使用卷积核进行特征提取。
    • DeconvNet 采用 卷积核的转置(Transposed Convolution),从特征图反推回去,恢复更原始的图像信息。
    • 作用:重建输入图像的结构

(3) 迭代执行,直到恢复到输入空间

  • DeconvNet 反向经过多个层,最终可以得到 CNN 某个特定神经元 对输入图像的响应区域,从而可视化 CNN 关注的特征。

4. 图示解析

在这里插入图片描述

(1) 右上角的流程图

它展示了 CNN(右侧)和 DeconvNet(左侧)的对应关系:

  • CNN 处理过程
    • 卷积(Convolution)
    • ReLU 非线性变换
    • 最大池化(Max Pooling)
  • DeconvNet 反向过程
    • 反池化(Max Unpooling)
    • ReLU 反向变换
    • 转置卷积(Convolution Filtering {Fᵀ})

在这里插入图片描述

(2) 右下角的示意图

  • CNN 在前向传播时,池化层(Pooling)会记录最大值的位置(Max Locations “Switches”)
  • DeconvNet 反向传播时,通过这些开关(Switches)进行 Unpooling,把原来的信息放回正确的位置
  • 然后逐步恢复到输入图像的像素空间

5. DeconvNet 的作用

  1. 可视化 CNN 的特征学习过程

    • 通过 DeconvNet,我们可以看到 CNN 关注的图像区域,从而理解 CNN 是如何做出决策的。
  2. 分析 CNN 提取的模式

    • 例如:
      • 低层 CNN 学习到的是边缘、颜色、纹理等低级特征
      • 高层 CNN 学习到的是物体的形状、轮廓、复杂结构
  3. 调试和改进 CNN 结构

    • 通过 DeconvNet 的可视化结果,我们可以检查 CNN 关注的区域是否合理,以便调整网络结构。

6. DeconvNet 和其他可视化方法的对比

方法原理优点缺点
DeconvNet反向传播特征图能清晰显示 CNN 关注的图像区域依赖于 Unpooling 记录的位置
Grad-CAM计算梯度加权特征图适用于不同网络架构,直观只能产生粗略的热图
Saliency Map计算输入对输出的梯度细粒度分析 CNN 关注的像素计算量较大

7. 总的来说

  • DeconvNet 是一种 CNN 可视化工具,用于理解 CNN 内部的特征表示。
  • 主要包括:
    1. Unpooling(反池化):恢复池化层的信息。
    2. ReLU 反向映射:仅保留正值,保持非线性信息。
    3. 转置卷积(Transpose Convolution):从高层特征恢复到原始图像。
  • 通过 DeconvNet,我们可以看到 CNN 在输入图像中关注的部分,从而解释 CNN 的决策机制。

以上


http://www.kler.cn/a/535210.html

相关文章:

  • Yageo国巨的RC系列0402封装1%电阻库来了
  • 算法日记12:SC40树状数组(单点修改)
  • w193基于Spring Boot的秒杀系统设计与实现
  • 解锁.NET Fiddle:在线编程的神奇之旅
  • PostgreSQL技术内幕24:定时任务调度插件pg_cron
  • Linux 的 sysfs 伪文件系统介绍【用户可以通过文件操作与内核交互(如调用内核函数),而无需编写内核代码】
  • Android studio 编译速度增加
  • 微服务中服务治理都包含什么
  • 【回溯+剪枝】单词搜索,你能用递归解决吗?
  • [原创](Modern C++)现代C++的关键性概念: 文件编码细节之一:BOM(Byte Order Mark, 字节顺序标记)
  • 分库分表详解
  • 02.06 网络编程_概述
  • 补小识JVM中的分代收集理论
  • 离线安装Appium Server
  • 结合R语言、ArcGIS Pro、ChatGPT+生态学模型(PLUS模型、InVEST模型)的生态系统服务的多情景模拟预测及其应用
  • K8S组件架构
  • Eureka 高频考点
  • 网络工程师 (22)网络协议
  • C# foreach循环:性能提升
  • JAVA异步的UDP 通讯-服务端
  • WGCLOUD监控系统部署教程
  • WPS计算机二级•幻灯片的输出、打印与分享
  • 本地部署DeepSeek(Mac版本,带图形化操作界面)
  • MyBatis.XML文件之insert新增获取数据库自动生成的主键并映射到指定字段
  • DeepSeek辅助学术写作【句子重写】效果如何?
  • Unity接入deepseek聊天