如何解决卷积神经网络的直觉-高内核滤波器大小与大量特征之间的结果差异
我想了解以下差异背后的建筑直觉:
tf.keras.layers.Conv2D(64,(3,3),activation='relu',input_shape=(28,28,1))
和
tf.keras.layers.Conv2D(32,(7,7),1))
假设
- 随着内核大小的增加,可以在卷积步骤中执行更复杂的特征模式匹配。
- 随着要素尺寸的增加,较小要素的较大变化可以定义特定的图层。
我们如何以及何时(如果可能的话,请给出场景)在抽象级别上证明权衡的合理性?
解决方法
这可以从3个不同的角度来回答。
参数:
由于您比较了2个具有不同大小的不同的convolution2D图层,因此重要的是要查看每个图层所需的训练参数?∗(?∗?∗?)+?
的数量,这反过来会使您的模型更复杂,并且难以训练。
在此处,将第二种配置用于conv2d时,可训练参数的数量增加了2.5倍以上
first conv2d layer: 64*(3*3*1)+64 = 640
second conv2d layer: 32*(7*7*1)+32 = 1600
输入:
询问必须使用哪种过滤器大小以及为什么使用过滤器的另一种方法是首先分析输入数据。由于第一个conv2d层(在输入上)的目标是捕获图像中最基本的图案,因此请问自己,图像中图案的MOST基本是否确实需要更大的过滤器来学习?
如果您认为网络需要大量像素才能识别对象,则将使用大型滤镜(如11x11或9x9)。如果您认为区分对象的是一些小的局部特征,则应使用小型过滤器(3x3或5x5)
通常,更好的做法是堆叠conv2d图层以捕获图像中的较大图案,因为它们由较小图案的组合组成,这些较小图案更易于由较小的滤镜捕获。
最终目标:
转换网络通常的目标是将图像的高度和宽度压缩为大量由滤镜组成的通道。
将down sampling
图像转换成代表特征的过程使我们最终可以在最后添加一些密集层来完成分类任务。
第一个conv2d将仅对图像进行少量下采样,并生成大量通道,而第二个conv2d将对其进行大量下采样(因为较大的conv滤镜跨越图像),并且滤镜数量较少。
但是,为了获得具有较少通道(过滤器)数量的较小图像而进行的下采样操作会立即导致信息丢失。因此,建议逐步进行以保留来自原始图像的尽可能多的信息。
然后可以将其与其他conv2d堆叠在一起,以在分类之前获得图像的近似矢量表示。
摘要:
-
与该步骤中的第一个conv2d相比,第二个conv2d能够一次捕获更大,更复杂的模式。
-
第二个conv2d将从原始图像中丢失更多信息,因为它会跳过来自更小和更简单模式的功能。第一个conv2d将能够捕获图像中的更多基本模式,并使用这些模式的组合(在堆叠的Conv图层中)为最终任务构建更强大的功能集。
-
与第一个conv2d相比,第二个conv2d需要更多的参数来学习图像的结构。
实际上,建议使用一堆Conv图层并使用较小的滤镜,以更好地检测图像中较大的更复杂的图案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。