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

如何进行卷积特征可视化

大家好啊,我是董董灿。

之前写过很多关于卷积算法的文章:5分钟理解什么是卷积的特征提取。总的来说,卷积算法的本质是一个特征提取器

那么既然卷积神经网络在图像分类、图像检测、图像分割以及其他领域有这么好的表现,卷积到底是提取了图像的什么特征呢?

1、卷积特征可视化

虽然有时候我们说神经网络是个黑盒,但是研究人员一直在探索,如何将卷积学习到的特征给分析出来。

其实就是想要一窥神经网络这个黑盒内部的逻辑:在 CNN 网络中,那些卷积到底提取了哪些特征。

我们可以通过一定的方法,将卷积的输出(也就是特征图)给劫持出来,在利用一些可视化的方法将其显示出来,便可以直观的看到卷积学到了什么特征了。

要做这一步需要做到一点,那就是将一个神经网络中卷积的输出(也就是特征图)可以获取到。

幸运的是,我做的一个开源项目:手写一个神经网络中已经把卷积输出特征图给劫持出来,并且可以很轻松的实现特征的可视化。

项目 github 链接为:https://github.com/dongtuoc/resnet50_zero。

在本篇文章中,我们先借助一个很牛的网站工具,来了解一下,卷积特征可视化之后的效果到底如何。

2、一个神奇的网站实现特征可视化

一个很著名的CNN可视化网站:https://poloclub.github.io/cnn-explainer/

在这个网站中,作者搭建了一个只有 10 层的神经网络,包含 4 层卷积,4 个 relu 的激活函数, 2 层最大池化。

这个神经网络的输入是一张 3 通道的 RGB  图片,然后每一层卷积对每个通道进行卷积运算,完成一些特征的提取。

在这个网站中,你可以非常清晰的看到,一张图片在神经网络中是如何进行特征提取,以及从前往后的每一层卷积各自关注到了什么特征。

网站另一个很友好的地方在于,你可以点击其中的每一个步骤来看计算过程。

图片

比如,我点开一个最大池化的操作,就会出现一个动图来展示最大池化是如何运算的。

从这个网站中,我们可以粗略的看到,前几层卷积关注的特征大多还集中在形状、轮廓这种特征,而越往后特征就会变得越来越抽象,比如第 4 层就已经有点像热力图了。

强烈建议初学者去该网站玩一玩,会刷新你对神经网络的认识。


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

相关文章:

  • 【JavaEE初阶 — 多线程】生产消费模型 阻塞队列
  • 【excel】easy excel如何导出动态列
  • Spring Boot实现文件上传与OSS集成:从基础到应用
  • C++ 并发专题 - 自旋锁的实现(Spinlock)
  • Ceph 中Crush 算法的理解
  • 响应式网页设计--html
  • 解锁网络速度的利器:CDN加速技术探析
  • Docker 安装部署 Sentinel Dashboard
  • 内存是如何工作的
  • (5h)Unity3D快速入门之Roll-A-Ball游戏开发
  • Python——import和from import方法总结
  • Linux进程通信——内存映射mmap
  • 搜索引擎高级用法总结: 谷歌、百度、必应
  • C 语言-结构体
  • Android 各平台推送通知栏点击处理方案
  • Kubernetes实战(六)-多系统架构容器镜像构建实战
  • 深入理解JVM内存空间的担保策略
  • 安卓1.0明显是基于linux内核开发的,安卓1.0是不是linux套壳?
  • 用Python实现石头剪刀布的游戏(扩展)
  • eNSP实验
  • 【unity3D】unity中如何查找和获取游戏物体
  • MQTT协议理解并实践
  • vmware_ubuntu_双向拷贝问题
  • 大数据技术发展
  • spring mvc理解
  • 微信开发者工具请求所有接口都出现502,使用postman测试正常