神经网络的可视化
来源:互联网 发布:网络授课平台 编辑:程序博客网 时间:2024/05/18 14:14
写在前面:
好久没有学习深度学习相关知识了,这几天觉得虽然现在工作跟深度学习无关,可是还是要继续下去,所以还是把最近学习的一些内容总结一下,不一定严谨,只是希望自己可以借此好好整理整理思路。
我们在训练神经网络的时候,需要调节大量的参数,神经网络的可视化对于调整参数有着很好的指导作用。
什么是可视化呢,先举一个简单的例子。
我们可以直接看第一层的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,
需要注意的是,我们在这里用到的是得分,而不是Softmax层得到的后验概率
我们可以通过back-propagation计算出来一个局部最优的I。
论文中提供了一个例子。可以仔细观察下图片,会发现一张图片中会出现多个物体,从而使得该类别的分数尽可能高。
2.显著性的可视化(原文是saliency visualization,我之前没有接触过机器视觉太多的知识,这里仅凭我自己查了一点资料感觉是应该这样翻译,表示图片中各部分对用户的重要程度,不知道理解是否有误)
给定一个图片
假设网络是线性的,我们可以很容易得到
这时候,
对于卷积神经网络而言,我们可以通过一阶泰勒展开得到一个近似方程
其中,
其实可以把这个公式解读为,优化器试图来寻找得分
根据上述公式,我们不难得到saliency map
这种计算显著图的方法,不需要额外的工具,如bounding box或者segmentation mask,计算起来非常快。
由于像素的位置其实给出了图片中的一些位置信息,因此,我们也可以做物体的定位。
《Visualizing and Understanding Convolutional Networks》
- 卷积神经网络的可视化
- 神经网络的可视化
- 可视化神经网络的一些方法
- 【神经网络】神经网络可视化工具
- 简单卷积神经网络的tensorboard可视化
- 神经网络特征可视化
- 可视化理解卷积神经网络
- 卷积神经网络可视化套路
- 可视化CNN卷积神经网络
- 可视化理解卷积神经网络
- 可视化理解卷积神经网络
- 神经网络可视化工具
- 可视化理解卷积神经网络
- 可视化理解卷积神经网络
- 深度神经网络可视化工具
- 神经网络 数字可视化
- 可视化理解卷积神经网络
- 可视化卷积神经网络
- window API播放pcm格式音频文件,函数waveOutOpen等
- 网格去噪的几种算法(利用Laplacian矩阵)
- c++ 宏
- JDBC中连接池的概述(DataSource)
- scatter函数绘制散点图——MATLAB
- 神经网络的可视化
- org.hibernate.exception.SQLGrammarException: could not extract ResultSet
- CSS 基础
- 6th 【差分数组】数列游戏
- 【数据结构 一】---数组
- SARIMA初步研究
- java中mysql的JDBC的事务管理
- Thymeleaf 之 内置对象、定义变量、URL参数及标签自定义属性
- CentOS7 yum 安装git