深度学习之CNN可视化

CNN可视化过程

我们现在可以明白,CNN的浅层的filters一般会检测“边缘”、“颜色”等最初级的特征,之后,filters可以识别出各种“纹理纹路”,到深层的时候,filters可以检测出类似“麻花”、“蜘蛛”等等由前面的基础特征组成的图案。

沿着 “将激活值与输入图片对应”这种思路(我的猜测),利用 Deconvnet这种结构,将激活值沿着CNN反向映射到输入空间,并重构输入图像,从而更加清晰明白地知道filters到底识别出了什么
在这里插入图片描述
具体的方法,其实是将原来的CNN的顺序完全反过来,但是组件不变(即filters、POOL等等都不变),

如 原来的顺序是: input–>Conv–>relu–>Pool–>Activation

现在就变成了: Activation–>UnPool–>relu–>DeConv–>input

Conv与DeConv

Conv基本上是把一个大图(input)通过filter变成了小图(activation),DeConv就反过来,从小图(activation)通过filter的转置再变回大图(input):
conv
把每一层的激活值中挑选最大的激活值,通过Deconvnet传回去,映射到输入空间重构输入图像。

总结

CNNs的各层并不是黑箱,每一层都有其特定个功能,分工明确。从浅到深,CNN会逐步提取出边缘、颜色、纹理、各种形状的图案,一直到提取出具体的物体。 也就是说,CNNs在训练的过程中,自动的提取了我们的任务所需要的各种特征:

这些特征,越在浅层,越是普遍和通用;

越在深层,就越接近我们的实际任务场景。

因此,我们可以利用以及训练好的CNNs来进行 迁移学习(transfer learning),也就是直接使用CNNs已经训练好的那些filters(特征提取器),来提取我们自己数据集的特征,然后就可以很容易地实现分类、预测等等目的。

【1】CNN窥探
【2】Visualizing and Understanding Convolutional Networks
【3】A guide to convolution arithmetic for deep learning
【4】Visualizing what convnets learn

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值