神经网络的可视化

写在前面:
好久没有学习深度学习相关知识了,这几天觉得虽然现在工作跟深度学习无关,可是还是要继续下去,所以还是把最近学习的一些内容总结一下,不一定严谨,只是希望自己可以借此好好整理整理思路。

我们在训练神经网络的时候,需要调节大量的参数,神经网络的可视化对于调整参数有着很好的指导作用。

什么是可视化呢,先举一个简单的例子。
我们可以直接看第一层的feature map来观察神经网络是否取得了较好的效果:
(以下图片来自cs231)
这里写图片描述

这里写图片描述

左边的图片中的feature有很多噪声,这表示网络可能还没有收敛,或者学习速度不太对,或者是正则化没有做好;而右边的feature较为平滑,干净,并且特征也呈现出了多样化,这表示了训练较好。

1.实际上,最直观的可视化手段,就是去看前向传播中神经网络各层的激活(即经过激活函数后的状态)。对于ReLU激活函数而言,在刚开始训练的时候,激活看上去都是呈滴状的,且较为密集,之后会逐渐变得稀疏,呈局部化。如果一些激活值一直是0,那么很有可能说明学习速率太高了。
(图片来源:cs231)
这里写图片描述
上面这幅图是第一层网络,下面这幅图则是第二层网络。
这里写图片描述

2.滤波器的可视化
第二种常见的方法是对权重进行可视化。通常是第一层权重的可读性较好。
训练得较好的网络的权重较为平滑,噪声较少。
(图片来源:CS231)

这里写图片描述
上图为AlexNet第一层权重的可视化
下图为AlexNet第二层权重的可视化
这里写图片描述

可以看出,第一层的权重非常平滑,而且从第一层的各个权重中我们也可以看出,各个滤波器在做什么。

3.提取能够最大激活神经元的图片
还有一种手段,是保持整个网络不变,给网络输入大量的图片,针对某些神经元,观察哪些图片可以使他们激活最大(输出的值最大)
下图为针对AlexNet第五层Pool层的神经元做的可视化,即用下面的图片,可以使他们激活值最高。白色框代表的是感受野(感受野中的像素都会对第五层的一个神经元产生作用,算出来是163*163个像素)
这里写图片描述

下面分别介绍几篇相关的论文

《Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps》

1.这篇文章首先介绍一种通过输入图片进行可视化的技术,也就是神经网络是事先训练好的,固定的,对于指定的一个分类,想办法找出一个一张图片,使得网络在这个分类上得到的分数最高。
对于类别c, 输入图片I, Sc(I) 是相应的得分,我们在此基础上增加一个L2正则项,也就是要找到图片I,可以满足以下式子:
argmaxSc(I)λ||I||22

需要注意的是,我们在

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值