关于最近2020年5月1日《CNN EXPLAINER》学习笔记

关于中国博士作的一个CNN可视化《CNN EXPLAINER》的学习笔记。如果有问题,也欢迎交流指正。

我是在CVer微信公众号上看到的,有几个传送门。

CNN解释器
https://poloclub.github.io/cnn-explainer/

论文
https://arxiv.org/abs/2004.15004

GitHub
https://github.com/poloclub/cnn-explainer

1.CNN解释器

首先https://poloclub.github.io/cnn-explainer/,由这里进入后,等待刷新一段时间,会出现下面的这个界面:

1.1 conv

以conv_1_1为例,该工作可视化了conv的计算过程。

卷积核大小:由64*64->62*62可以推断出,卷积核大小应该是3*3,步长应该是1。

卷积核个数:10个卷积核。输入是个RGB图像,有3维;经过深度为10的卷积核,得到10个特征图(feather map)。

关于最近2020年5月1日《CNN EXPLAINER》学习笔记_第1张图片

由动态图,我们可以发现单个卷积核计算,通过3*3卷积分别以相同的权重在RGB每个通道上求乘积之和,然后三个通道求和再加上偏置Bias,就得到一个conv_1_1其中一个特征图的像素,通过滑动得到一个特征图。10个卷积得到10张特征图。

参数量也可以计算出来,由于每个卷积核的权重共享,所以单个卷积核的参数就是3*3,输入有三个颜色通道、10个卷积核,还有一个Bias的参数就是(3*3*3+1)*10。

1.2 relu

激活函数的目的是,主要是可以引入非线性因素,解决线性模型所不能解决的问题。参考知乎。为了引入非线性、以及从几乎处处可微、计算简单、非饱和性、单调性、输出范围有限、参数少等多个方面出发,不断有新的激活函数被提出。

关于最近2020年5月1日《CNN EXPLAINER》学习笔记_第2张图片

 

                                                                                           f(x)=max(0,x)       

 

关于最近2020年5月1日《CNN EXPLAINER》学习笔记_第3张图片

激活函数,比较好理解,输入像素值在自变量的范围内,经过激活函数,输出函数值。 

1.3 max pooling

一般情况下,池化的作用是保留显著特征、降低特征维度,增大kernel的感受野。也可以提供一些旋转不变性。

池化有最大池化、平均池化等。

卷积核大小:由60*60->30*30,卷积核大小是2*2,步长是2。

卷积核个数:10个卷积核。前一层的输入是10张特征图,输出也为10张特征图。

关于最近2020年5月1日《CNN EXPLAINER》学习笔记_第4张图片

 

由动态图,我们可以发现单个卷积核计算,通过max求每个2*2卷积小方块中最大的像素,值赋给对应坐标位置上的一个像素点。

这一层是不需要保留参数的。

2.论文

2.1 摘要

    由于深度学习的复杂性与不可解释性,作者为学生或者非专家提出了交互式可视化工具--CNN EXPLAINER。

2.2 介绍

    由于CNN作为比较常见的网络结构、且入门阶段必学习的。但是呢?

     A student who wants to learn about CNNs needs to develop a mental model of not only how each layer operates, but also how different layers together affect data transformation.

译:想要了解CNNs的学生需要建立一个心理预期,不仅要了解每一层是如何运作的,还要了解不同的层是如何一起影响数据转换的。

    one of the main challenges in learning about CNNs is the intricate interplay between low-level mathematical operations and high-level integration of such operations within the network.

译:学习CNNs的一个主要挑战是低层次数学运算和网络中这些运算的高层次集成之间复杂的相互作用。

    接下来主要说明,现有的帮助人们理解深度学习的一些工具,并争对这些说明其论文要提出该可视化工具的目的,以及总结了该文献的贡献。包括CNN EXPLAINER可视化工具、以及开源代码等等。

2.3.论文

    下图(截取自CNN EXPLAINER论文)是19个已经学习过CNN的被测试者的调研结果。(关于学习CNN过程中最大的挑战、可视化工具最被渴望的功能)

关于最近2020年5月1日《CNN EXPLAINER》学习笔记_第5张图片

 在第1节中,我们也可以看到论文采用的10层的网络结构,包含了最基本的网络结构,卷积、池化、激活函数等,包含学习CNN过程中的挑战点。下面的图主要输入经过10层简单的VGG模型训练,结果分为十类。

关于最近2020年5月1日《CNN EXPLAINER》学习笔记_第6张图片

 

你可能感兴趣的:(关于最近2020年5月1日《CNN EXPLAINER》学习笔记)