最近深度学习的普及很明显,在深度学习领域,卷积网络是很多惊人结果的主要原因。自从2012年AlexNet公开亮相以来,很难列出一个完全不使用卷积架构的突破性计算机视觉架构。
在现有的深度学习框架下,我们写的卷积层往往是单行语句,可以抽象出很多结构细节。但是,有时候退一步,揭开一些抽象的概念,是个不错的选择。本文试图解释卷积层的一个特定解剖特征,这一特征在大多数文章和相关讨论中被忽略。
很多卷积架构都是从一个外部卷积单元开始,将RGB通道的输入图像映射到一系列内部滤波器。在目前最常见的深度学习框架中,这段代码可能如下:
out_1=Conv2d(输入=图像,过滤器=32,内核_大小=(3,3),步长=(1,1))
relu_out=relu(out_1)
pool_out=MaxPool(relu_out,kernel_size=(2,2),steps = 2)
对于很多人来说,我们很清楚上面的结果是一系列32层深度的滤镜。我们不知道的是如何将3通道的图像精确的映射到这32层!此外,我们不知道如何应用最大池运算符。例如,是否一次将一个大池应用于所有过滤层,以有效生成单个过滤图?或者,更大的池是否独立应用于每个过滤器,以产生相同的32层池化过滤器?
如何做
一图胜千言。下面的图表显示了上述代码片段中的所有操作。
卷积层的应用
从上图可以看出,最值得注意的一点是,步骤1中的每个过滤器(即过滤器-1、过滤器-2...)实际上包含一组三个卷积核(Wt-R,Wt-G,WT-B)。这些核心中的每一个分别存储为输入图像中的红色(R)、绿色(G)和蓝色(B)通道。
在前向传播期间,图像中的R、G和B像素值分别乘以Wt-R、Wt-G和Wt-B核,以生成间歇激活图(图中未示出)。然后将三个内核的输出相加,为每个过滤器生成一个激活图。
随后,这些激活中的每一个都由ReLu函数支配,最后运行到更大的池层,主要负责降低输出激活映射的维数。最后,我们得到一组激活图,其维数通常是输入图像的一半,但现在它的信号跨越了一组32个选择(我们选择的滤波器数量)作为二维张量。
卷积层的输出通常用作后续卷积层的输入。因此,如果我们的第二个卷积单位如下:
conv_out_2 = Conv2d(输入= relu_out,滤波器= 64)
然后框架需要实例化64个过滤器,每个过滤器使用一组32个唯一的核心。
为什么
另一个微妙但重要的一点是,为什么我们在第一个卷积层使用了32个滤波器。在许多常用的体系结构中,随着我们深入网络,使用的过滤器数量在增加(例如,第二个是64个,第三个是128个,以此类推)。
在本文中,马特·泽勒使用了一种反卷积算子,从而可以在训练过程中对视觉深度卷积结构的不同层次和深度的核进行调谐。一般认为,在最佳训练的卷积网络中,边缘(靠近图像)的滤波器对基本边缘和图案变得敏感。深层过滤器对逐渐增加的有序形状和模式很敏感。马特论文的图表很好地总结了这些现象:
第一层和第二层(最外层)上过滤器激活的可视化
第三层过滤器激活的可视化
第4层和第5层过滤器的视觉激活
我思考了很久的另一个问题是,为什么不同的滤镜,即使是在任何给定的层,也会被调整到特定的形状或图案。毕竟任何内核的重量都没有什么异常,可以保证观测结果。正是在这一点上,随机梯度下降(SGD)过程自动校正权重,使核获得上述特征。重要的是:
内核(或权重矩阵)是随机初始化的,以确保每个内核都针对唯一的解决方案进行了优化空。
我们已经定义了足够的过滤器来在很大程度上捕捉我们的数据集中的各种特征,同时,我们已经实现了与产生的计算成本的平衡。
最后,许多论文还提出滤波器激活的可视化为卷积结构的性能提供了一个窗口。平衡的高性能网络通常显示如上所述的激活,具有清晰的边缘和形状检测器的外观。过拟合、欠拟合和广义网络通常不能显示这些观测值。因此,使用(2)中使用的过程来测试网络以查看实验卷积网络是否产生良好的结果是一个好主意。
参考文献:
深度卷积神经网络的ImageNet分类,Alex Krizhevsky,Ilya Sutskever,Geoffrey E. Hinton,https://papers . nips . cc/paper/4824-ImageNet-classification-with-deep-volcular-neural-networks
卷积网络的可视化和理解
1.《卷积层 深度学习中的「卷积层」如何深入理解?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《卷积层 深度学习中的「卷积层」如何深入理解?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/770480.html