不管是在Vision Transformer还是卷积神经网络,其实,一直想明白网络层层,到底是如何对图像进行了处理?怎么,一波操作就出了特征图?怎么就实现了目标检测?人脸识别?深度估计?等等,思前想后,就是常提起的特征图feature map在做小动作?真的不理解?那就来好好理解一下吧?到底是why?为什么?
Visualizing Filters and Feature Maps in Convolutional Neural Networks using PyTorch
学习:在深度学习中处理图像数据,卷积神经网络很引人注目,也在深度学习和计算机视觉方面提供了许多先进的解决方案和基准。那么,卷积神经网络怎么决定图像、如何处理图像?它怎么知道图象是猫?它中间都经历了什么?看到了什么?
只能说,目前,只能部分可解释,或许这就是人工智能的智能,是人脑所难以达到的计算?
卷积神经网络中的过滤器,稍微懂一些的人,应该会知道卷积核/Kernels,含义都是过滤器。卷积核常用的是固定大小:3*3、5*5、7*7。当谈论过滤器时,我们更关注的是权重。这些过滤器将确定模型将关注图像的那些像素部分。那么,如何确定模型关注图像的那一部分???
以ResNet-50 卷积神经网络的7*7滤波器为例,确定该特定卷积层将关注输入图像的哪些像素值。
当图像像素值经过过滤器后得到的东西就是特征图,也就是说,在卷积层上看到的:图像经过卷积核后的内容,这一操作也就是所谓的卷积操作。
不妨用上述的7*7的过滤器/卷积核,对图像卷积操作一下,也就是过滤器过一下,得到:
不难发现,经过过滤器的图像——就是特征图啦,可以说是只有黑白?有的部分很暗,有的部分很亮,为什么呢??因为7*7的滤波器有的部分是暗的,有的部分是亮的。当然,滤波器不是简单的叠加上去,第三排也可以看出,简单叠加并不会得到卷积后的图像。因为,卷积是有自己的一套卷积方式的!
具体可学习:深度学习基础笔记——卷积神经网络概念及其计算方式__卷积神经网络计算公式
如果我想详细的看到卷积得到的特征图,那就是可视化观察啦!——Pytorch深度学习库
过滤器图像中,可以看到一些斑块是暗的,而其他斑块是亮的。
特征图:可以看到不同的过滤器在创建图像的特征图时关注不同的方面。
20层特征图:
40层特征图:
44层特征图:
48层特征图:
随着图像在各个层中前进,图像中的细节会慢慢消失。它们看起来像噪音,但在这些特征图中肯定有一种人眼无法检测到的模式,但神经网络可以。(所以难以解释清楚网络有时在干啥)
当图像到达最后一个卷积层(第 48 层)时,人类不可能分辨出里面有一只猫。这些最后一层输出对于在卷积神经网络中基本上形成分类层的完全连接的神经元非常重要。
理解卷积神经网络CNN中的特征图 feature map__卷积特征图
学习: 理论一点的参考?
在每个卷积层,数据都是以三维形式存在,可以看作许多个二维图像叠在一起,每一层称为feature map。
层与层之间会有若干个卷积核(kernel),设依次A层B层C层:
卷积网络在学习过程中保持了图像的空间结构,也就是说最后一层的激活值(feature map)总和原始图像具有空间上的对应关系,具体对应的位置以及大小,可以用感受野来度量。
1 前向计算
2 反向计算
卷积网络的核心思想是将:
这三种结构思想结合起来获得了某种程度的位移、尺度、形变不变性。
嘿,我是小赵,多多关照!
如果好,留个赞哇,助力每一个梦想!