关闭

可视化神经网络的一些方法

标签: 神经网络CNN可视化deeplearning可视化网络
797人阅读 评论(0) 收藏 举报
分类:

原文为http://cs231n.github.io/understanding-cnn/   


可视化CNN学到的东西

有一些方法可以用来理解和可视化CNN, 作为对深度学习不可解释的论述的反击。


1. 可视化激活值和第一层卷积的权重

最直接的可视化方法就是展示在前向传播(forward pass)网络中的激活值(activation)

对于带relu的网络,激活值的map在开始的层会密集,之后逐渐稀疏。

一个陷阱是你可以注意到一些map,他们对于不同输入,永远响应是全零图。(换句话说,他们对于网络没有贡献)

他们成为了dead filter,这可能是由于高的learning rate导致的。


第二个方法是可视化网络中的权重。 通常第一个conv的filter是最容易解释的,但也是可以可视化其他filter。

在well-trained的网络中filter往往记忆了一些好看和平滑的filter,如果出现了noise 的可视化结果可能你网络没有train足够,

或者正则项太小了(weight decay),导致过拟合了。


2.找图片中 激活值最大的区域

另一个可视化技巧是 拿一堆图片把它们前馈到网络中,找到图片中哪一部分激活值最大。

然后我们可以画出图片。看看对应的receptive field。

(接受域:这个值之前从那些区域的值计算得到的。比方你一次3*3卷积得到一个value,这个value的接受域是3*3

如果3*3中每个值,是由再之前原图3*3得到的,我们不考虑overlap的话,这个value在原图的接受域就是9*9)


3. 用tSNE来embedding

convent是把图片慢慢变成一个表达(这个表达最后可以用线性分类器分类)的过程。

我们可以把图像embedding到2维表达,然后用二维画到图上表达相似的关系。

在这些embedding 到2维方法中,比较有名的方法是tSNE产生视觉上pleasing的结果。


首先,产生一个embedding,我们需要用一些图片通过CNN(比如Alexnet,最后fc 4096维的结果)

我们把他扔到tSNE中每张图得到对应的一个2维向量。然后我们可以把这个2维向量看成坐标,扔到grid里。


4. 遮挡图片的一部份

假设Convnet识别出了一条狗。那么会不会是狗的背景,让cnn识别出狗,而不是狗本身呢?

一种方法是 遮挡图片的一部分 然后看狗那一类的激活值。

按照我们所想,如果遮住狗的话,那判断为狗的激活值应该显著下降。




0
0
查看评论

发现一个支持神经网络可视化的好工具-Netscope

最近在玩caffe,在网上瞎逛发现一个神经网络可视化的好工具-Netscope(网址:http://ethereon.github.io/netscope/#/editor),只需要把prototxt文件内容复制到左边的框框中即可,然后同时按住shift+enter即可在右边生成网络的结构图,大写的...
  • Toykao
  • Toykao
  • 2016-10-21 10:08
  • 10483

深度学习(二十七)可视化理解卷积神经网络

本篇博文主要讲解2014年ECCV上的一篇经典文献:《Visualizing and Understanding Convolutional Networks》,可以说是CNN领域可视化理解的开山之作。最近两年深层的卷积神经网络,进展非常惊人,在计算机视觉方面,识别精度不断的突破,CVPR上的关于C...
  • hjimce
  • hjimce
  • 2016-01-19 19:30
  • 26469

Netscope:支持Caffe的神经网络结构在线可视化工具

Netscope是个支持prototxt格式描述的神经网络结构的在线可视工具,地址:http://ethereon.github.io/netscope/quickstart.html 它可以用来可视化Caffe结构里prototxt格式的网络结构 使用起来也非常简单,打开这个地址:http:/...
  • 10km
  • 10km
  • 2016-09-30 18:18
  • 18614

深度神经网络可视化工具

TensorBoard:TensorFlow集成可视化工具GitHub官方项目:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tensorboard TensorBoard 涉及到的运算,通常是在训练庞大的深度神经网...
  • dcxhun3
  • dcxhun3
  • 2017-08-31 14:56
  • 486

[TensorFlow]使用Tensorboard实现神经网络可视化

可视化是深度学习神经网络开发、调试、应用中极为重要的手段。Tensorboard是Tensorflow提供的一个可视化工具,本文通过实际代码实验的方式说明使用TensorBoard实现记录变量,实现可视化调试的目的。
  • wangyao_bupt
  • wangyao_bupt
  • 2017-04-22 11:50
  • 3723

深度学习(二十七)可视化理解卷积神经网络-ECCV 2014

可视化理解卷积神经网络 原文地址:http://blog.csdn.net/hjimce/article/details/50544370 作者:hjimce 一、相关理论 本篇博文主要讲解2014年ECCV上的一篇经典文献:《Visualizing and Understanding...
  • GarfieldEr007
  • GarfieldEr007
  • 2016-01-28 08:05
  • 3757

卷积神经网络可视化和理解

神经网络可视化
  • u012609509
  • u012609509
  • 2017-06-05 09:31
  • 1012

可视化理解卷积神经网络

可视化理解卷积神经网络最先提出可视化理解卷积神经网络的是Matthew D. Zeiler在《Visualizing and Understanding Convolutional Networks》。下面的两篇博客可以帮助大家更好地来理解这篇文章,第一篇文章是上面这篇论文的翻译,第二篇文章是博主对...
  • u014088052
  • u014088052
  • 2016-06-22 16:54
  • 2430

Deep Learning论文笔记之(七)深度网络高层特征可视化

Deep Learning论文笔记之(七)深度网络高层特征可视化zouxy09@qq.comhttp://blog.csdn.net/zouxy09          自己平时看了一些论文,但老感觉看完过后就会...
  • zouxy09
  • zouxy09
  • 2013-08-16 23:22
  • 35667

Caffe学习系列——工具篇:神经网络模型结构可视化

在Caffe中,目前有两种可视化prototxt格式网络结构的方法: 使用Netscope在线可视化 使用Caffe提供的draw_net.py 本文将就这两种方法加以介绍 1. Netscope:支持Caffe的神经网络结构在线可视化工具  Netscope...
  • Solomon1558
  • Solomon1558
  • 2016-11-13 10:40
  • 7266
    个人资料
    • 访问:76956次
    • 积分:1155
    • 等级:
    • 排名:千里之外
    • 原创:33篇
    • 转载:0篇
    • 译文:3篇
    • 评论:45条
    文章分类
    关于我