二、ZFNet可视化卷积神经网络——可解释性机器学习(DataWhale组队学习)

news2024/9/23 3:23:07

目录

  • 引言
  • ZFNet的网络结构
  • 可视化反卷积
    • 反池化
    • 反激活
    • 反卷积
  • 训练细节
    • 特征可视化
    • 特征演化
    • 特征不变性
  • 局部遮挡测试
    • 敏感性分析
    • 相关性分析
    • 消融实验
      • 宽度影响
      • 深度影响
      • 迁移学习能力
      • 有效性分析
  • 总结

引言

纽约大学ZFNet,2013年ImageNet图像分类竞赛冠军模型。对AlexNet进行改进的基础上,提出了一系列可视化卷积神经网络中间层特征的方法,并巧妙设置了对照消融实验,从各个角度分析卷积神经网络各层提取的特征及对变换的敏感性。
论文:Visualizing and Understanding Convolutional Networks(可视化并理解卷基神经网络)

课程主页:ZFNet深度学习图像分类算法(反卷积可视化可解释性分析)

在这篇论文中,它提出了一种非常巧妙的可视化卷积神经网络中间层特征的方法和技巧,使用该技巧,可以打破卷积神经网络黑箱子。

  1. 知道中间每一个神经元到底是在提取什么样的特征
  2. 利用这些可视化的技巧和利用这些特征,可以改进之前的网络

ZFNet的网络结构

在AlexNet的基础上进行了一些修改:

  • 网络结构类似于 AlexNet,有两点不同,一是将 3,4,5 层的变成了全连接,二是卷积核的大小减小。
    图像预处理和训练过程中的参数设置也和 AlexNet很像。
    AlexNet 用了1500万张图像,ZFNet 用了 130 万张图像。
  • AlexNet 在第一层中使用了大小为 11×11 的滤波器,而ZF使用的滤波器大小为 7x7,整体处理速度也有所减慢。做此修改的原因是,对于输入数据说,第一层卷积层有助于保留大量的原始象素信息。11×11 的滤波器漏掉了大量相关信息,特别是因为这是第一层卷积层。
  • 随着网络增大,使用的滤波器数量增多。
  • 利用 ReLU 的激活函数,将交叉熵代价函数作为误差函数,使用批处理随机梯度下降进行训练。
  • 使用一台 GTX 580 GPU 训练了 12 天。
  • 开发可视化技术 “解卷积网络”(Deconvolutional Network),有助于检查不同的特征激活和其对输入空间关系。名字之所以称为“deconvnet”,是因为它将特征映射到像素(与卷积层恰好相反)。
    在这里插入图片描述

可视化反卷积

在这里插入图片描述
我们知道输入图像通过卷积神经网络(CNN)提取特征后,输出的尺寸往往会变小,而又是我们需要将图像恢复到原来的尺寸以便进行进一步的计算,整个扩大图像尺寸,实现图像由小分辨率到大分辨率的映射的操作,叫做上采样(Upsample)。
反卷积是上采样的一种方式,反卷积也叫转置卷积。
反卷积可视化:

  1. 一个卷积层加一个对应的反卷积层;
  2. 输入是 feature map,输出是图像像素;
  3. 过程包括反池化操作、relu 和反卷积过程。

反池化

  • 正向池化,以最大池化为例,是把每一个池化窗口里面最大的这个值挑出来
  • 反池化的时候,就把每一个池化窗口按照对应的位置派遣回去

严格意义上的反池化是无法实现的。作者采用近似的实现,在训练过程中记录每一个池化操作的一个 z × z z×z z×z 的区域内输入的最大值的位置,这样在反池化的时候,就将最大值返回到其应该在的位置,其他位置的值补 0。

在这里插入图片描述

反激活

仍然使用ReLU激活函数

反卷积

使用的是原来正向卷积核的转置(也就是行列互换)

  • 转置卷积没有需要学习的参数,是一个完全无监督的过程。
    在这里插入图片描述

训练细节

特征可视化

在这里插入图片描述
在这里插入图片描述
彩色图是能够使得灰色图在卷积核中激活最大的九张图片

特征演化

在这里插入图片描述
第 1 层、第 2 层、第 3 层、第 4 层和第 5 层的五层的六个卷积核

  • 每一行表示一个卷积核
  • 每一列表示训练过程中不同的轮次:第 1 轮、第 2 轮、第5轮、第10轮、第20轮、第30轮、第40轮和第64轮收敛
    • 那底层的卷积核,很快就收敛了
    • 高层的卷积核,它要多轮之后才能收敛
  • 突变:能够使卷积核最大激活的图片变了
  • 第三组第三个:提取眼睛信息;第四个:提取脸的信息

特征不变性

在这里插入图片描述
平移
深蓝紫 - 除草机:随着除草机进入和移出视野,它的概率先升高后变得很低。
深蓝色 - 吸食犬:随着吸食犬不断露出身体,它的概率也会变高
缩放
娱乐中心对缩放非常敏感
除草机和鹦鹉,在图像中始终出现,所以缩放对它们的影响是不大的。
旋转
每旋转90度,就有一个尖峰,准确率就会出现一个峰值,说明它每旋转90度就出现了一个对称性,网络能捕获同样的特征

在这里插入图片描述

局部遮挡测试

敏感性分析

在这里插入图片描述
通过一系列特别巧妙的对照实验表明了这个神经网络对遮挡的敏感性

相关性分析

在这里插入图片描述

  • 不同狗的图片,遮住相同部位,探究遮挡对不同类别的影响。表格说明了遮挡相同部位对不同狗的影响是接近的。
  • 随机遮挡对第 5 层影响较大,第 7 层影响较小,网络越到深层,他提越提取的是语义特征

消融实验

宽度影响

在这里插入图片描述
测试:2012年的图像分类数据

  • a模型是原始ZFNet模型
  • b模型在a基础上,把3、4、5层卷积核增加到512、1024和512
  • 将6个模型集成在一起,效果不错,超过AlexNet,模型错误率是亚军的一半
    在这里插入图片描述

深度影响

去除某些层

  • 去除这个两个卷积层,影响不是特别大
  • 去掉全连接层,影响也不是特别大
  • 既去掉卷积层又去掉全连接层,影响非常大
    结论:网络的深度非常重要
    在这里插入图片描述

迁移学习能力

对于Caltech-101数据集:

  • 保留这个模型之前的部分,只改动这个最后的softmax分类层。然后在Caltech-101上重新训练我们新加的softmax分类层。效果是非常不错的,是比原有的模型效果要好很多的
  • 只保留网络的结构。不要原来的参数完全随机初始化,然后再开后,他给101数据上重新训练这个网络,我们会发现效果是不太好的
    在这里插入图片描述
    对于Caltech-256数据集:
    类似
    在这里插入图片描述
    在Caltech-256,只需要每一个类别只用六张图片训练。训练好处的模型就能够达到原来最佳的这个数据上模型的精度。
    使用迁移学习,我们可以使用很少量的数据就可以达到非常好的性能。
    在这里插入图片描述
    对于和ImageNet差别比较大的数据集,效果会差些。

有效性分析

在这里插入图片描述
模型越深越有分类有效性。

总结

​ 本次学习了ZFNet,它是在AlexNet之后新的改进,它主要提出了一种反卷积的思想,使用一个多层的反卷积网络来可视化训练过程中特征的演化及发现潜在的问题。

  • 发现学习到的特征远不是无法解释的,而是特征间存在层次性,层数越深,特征不变性越强,类别的判别能力越强;
  • 通过可视化模型中间层,在 alexnet 基础上进一步提升了分类效果;
  • 遮挡实验表明分类时模型和局部块的特征高度相关;
  • 预训练模型可以在其他数据集上fine-tuning得到很好的结果。
  • 模型越深越有分类有效性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/98775.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AOP 操作

AOP 操作AOP 操作(准备)1. Spring 框架一般是基于 AspectJ 实现 AOP 操作(1)什么是 AspectJ2. 基于 AspectJ 实现 AOP 操作3. 在项目工程里面引入 AOP 先关的依赖4. 切入点表达式举例1:对 com.fairykunkun.dao.UserDao…

谈谈自己对依赖注入的理解

1. 絮絮叨叨 1.1 想学习Google Guice 在工作的过程中,发现有名的大数据组件Presto大量使用Google Guice实现各种Module的构建 很多bind(interface).to(implementClass).in(scope)语句,实现接口与实现类的绑定,并指定实现类是单例还是多例 /…

Service的绑定过程

前言 Service的绑定过程将分为两个部分来进行讲解;分别是Contextlmpl到AMS的调用过程和Service的绑定过程。 frameworks/base/core/java/android/content/ContextWrapper.javapublic boolean bindService(Intent service, ServiceConnection conn,int flags) {ret…

计算机毕设Python+Vue-新型冠状病毒防控咨询网站(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

根据端口划分虚拟局域、集线器、中继器、交换机、路由器、网桥----计算机网络

集线器: 连接计算机和交换机,类似于多台中继器。 实现多台电脑的同时使用一个进线接口来上网或组成局域网 中继器: 连接两条电缆,作用是放大前一条电缆里面的信号并传入下一条电缆。 是对接收到的信息进行再生放大,以…

Jenkins + Jmeter + Ant 持续集成

搭建提前安装好:ant Jenkins 环境 一、Jenkins 安装 Ant 插件: 进入Jenkins 配置插件页面,安装ant 插件: 打开插件配置页面,如下图: 点击“Available” 在输入框搜索 ant 安装即可: 二、安装…

计算机毕业设计springboot+vue基本微信小程序的透析耗材管理系统

项目介绍 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理程序应运而生,各行各业相继进入信息管理时代,透析耗材管理小程序就是信息时代变革中的产物之一。 任何程序都要遵循…

vue前端案例教学:动态获取最新疫情数据展示(代码详解)

【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、…

[leetcode.4]寻找两个正序数组的中位数 多思考边界

题目展示 题目要点 题目其实本身的思路非常简单,就是把两个数组给合并起来,然后寻找中位数,具体可以参考我们使用归并排序时候的最后一步,这题的难点其实在于(1)时间压缩到lognm(2)…

[附源码]Nodejs计算机毕业设计基于与协同过滤算法的竞赛项目管理Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

基于MMEngine和MMDet搭建目标跟踪框架MMTracking-1.0.0rc1-Win10

缘由: 1. 目标跟踪是工业检测和学术研究的基础课题,其pipeline通常分为视频目标检测、视频实例分割、单目标跟踪、多目标跟踪和Re-ID五类,同时,还细分为在线检测和离线检测两种任务模式。由于现阶段关于目标跟踪的教程较少&#…

机器学习 KNN算法原理

目录 一:KNN算法概念 二:KNN原理 三:KNN超参数 四:KNN算法选择 一:KNN算法概念 KNN(K-Nearest Neighbor)法即K最邻近法,最初由Cover和Hart于1968年提出,是最简单的机器学习算法之一 算法思路…

NNDL 作业9:分别使用numpy和pytorch实现BPTT

6-1P:推导RNN反向传播算法BPTT. 6-2P:设计简单RNN模型,分别用Numpy、Pytorch实现反向传播算子,并代入数值测试.、 forward: 我们知道循环卷积网络的cell的计算公式为: stf(UxtWst−1)\mathrm{s}_tf(…

UML学习入门

UML 举一个简单的例子,来看这样一副图,其中就包括了UML类图中的基本图示法。 首先,看动物矩形框,它代表一个类(Class)。类图分三层,第一层显示类的名称,如果是抽象类,则…

多模块之前的消息引用问题

多模块引用之前的问题目录概述需求:设计思路实现思路分析1.在第一个模块中调用另一个调用模块的Bean2.普通java类 如何获取另一个模块的Bean3.启用消息机制4.为什么普通java类很难调用SpringBean的?参考资料和推荐阅读Survive by day and develop by nig…

机器学习快速上手基础

努力是为了不平庸~ 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。 目录 一、简介与应该明确的学习方法 1、学习方法 2、简介 二、学习机器学习的优势 三、机器学习的内核 1、学习术语 2、内核 四、机器学习…

IT团队自动化端点管理解决方案—基于虹科Chef工具

企业如何简化端点管理工作流程? 如何解决安全事件?如何生成审计报告?如何处理大量账单?这些都是企业IT团队需要考虑的问题。然而,IT人员每天有大量的事情需要处理,如何自动化、标准化、及时性的处理这些问…

(最优化理论与方法)第六章无约束优化算法-第二节:梯度类算法

文章目录一:次梯度算法(1)次梯度算法结构(2)应用举例-LASSO问题求解二:牛顿法(1)经典牛顿法(2)修正牛顿法三:拟牛顿法(1)拟…

知到/智慧树——英语听说:实境主题与技能(参考答案)

目录 第一章测试 第二章测试 第三章测试 第四章测试 第五章测试 第六章测试 第七章测试 第八章测试 第九章测试 第十章测试 第一章测试 第1部分总题数: 10 1 【多选题】 (10分) What does this chapter mainly teach ( )? A. T…

生成树(基础)

目录 一、生成树的相关概念 二、最小生成树的相关概念 最小生成树的性质(MST性质): MST性质解释: 三、Prim算法(普里姆算法) 动态演示 关键算法: 完整代码: 四、Kruskal(克鲁斯卡尔)算法 动态演示&…