Visualizing and Understanding Convolutional Networks(神经网络可视化)理解

作者的核心思想要点:

feature map的可视化

一般的卷积神经网络某一层的输出,都是将Input Image,经过多次的Conv、ReLU、Pooling作用后的得到的结果。

举个简单又不失一般性的单层卷积神经网络模型:

现在我们想知道Pooling后得到的96个112x112的feature maps中的一个feature map到底学到的是啥?怎么做?

一个直观的想法是将112x112x96的feature maps(除了选定的feature map激活值保留,其他95个112x112的feature map全部置零),原路逆操作回Input,再normalize到图片像素范围,看看得到的是啥图片即可。如下图:

 

想法是很好,但Pooling的的Unpooling,ReLU的UnReLU,Conv的DeConv具体应该怎么做?

UnReLU比较简单,可以也采用ReLU。作者的创意主要在DeConv和Unpooling。

转置卷积

理想的反卷积DeConv,是能够完全由卷积的输出还原输入,但这是做不到的。卷积是一个有信息损失的操作。转置卷积是最接近理想反卷积的。

 如上图,上半部分是正常的卷积,将4x4的feature map映射为2x2的。下半部分就是转置卷积,它将卷积输出,利用相同的卷积核(需做水平和垂直翻转)再映射回输入(可依需添加padding)。需要注意的是,还原的输入跟原始输入是不相等的,这也是转置卷积不是理想的反卷积的原因。

Unpooling

上图给出了Unpooling的基本流程。主要创意在于Pooling过程中,需要记录下Pooling后的每个数据的来源位置,在Unpooling过程中,按位置,将数据还原,其他补零。 

看到了什么?

有了上述的转置卷积和Unpooling,给定卷积神经网络的任一卷积层的输出,都可以将其还原回Input image,再normalize到图片像素范围,即可可视化卷积层的feature map。

下图给出了ZFNet(作者经过可视化分析之后,提出的一个网络)的第三个卷积层随机挑选的12个feature map,在验证集上top9的激活值的可视化,右边是对应的原始输入图片。

作者还进行了其他的对比试验,论文中最详细,这里就不赘述了。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值