深层如何从卷积网络中的前一层特征映射中学习
How deeper layers learn from previous layers feature maps in Conv nets
我读了很多关于 convnets 的文章,但我仍然错过了一个重要的部分。
假设我们有一个包含 32 个过滤器的 conv2D 层:
我知道这些过滤器权重在开始时是随机初始化的,并且在训练过程中形成了这些过滤器。
所以在第一层他们开始检测边缘。
现在在池化之后我们有另一个 conv 层(假设又是 32 个过滤器),它将对前一层的结果应用过滤器。
因此第 2 层将对来自第一层的这 32 个输出中的任何一个应用 32 个过滤器。
我看到了很多这些特征图的例子:第一层产生边缘图片,下一层图片是形状、耳朵、鼻子等。
我的问题是这怎么可能?
如果第 2 层在第 1 层结果上应用过滤器,而第 1 层结果是边缘,那么如何从边缘获取表单?
我显然在这里遗漏了一些东西,请帮助我理解 conv 网络中的每一下一层如何产生更丰富的特征,如形式、眼睛、面部,以防它使用前一层的生产,其中特征只是线条和边缘?
在我丢失的过程中是否有一些信息合并,或者是更多?
提前致谢
简单示例:假设您尝试区分简单的几何形状。例如。钻石矩形。
在第一层你有各种边缘检测器。有些在检测到水平边缘时触发,有些在检测到垂直边缘时触发,有些在检测到对角线边缘时触发。
第二层现在可以将这些输入组合成更复杂的形状。
因此,如果在第一层检测到垂直和水平边缘,一个 filter/detector 将触发。这是矩形的过滤器。
当第一层告诉它检测到对角线边缘时,另一个过滤器将触发。这是钻石的过滤器。
您可能会熟悉卷积层的输入和输出维度。
Input = W1xW1xD1
Output:
W2 = (W1 - F + 2P)/S + 1
D2 = K
Terminology: K = Number of Filters, F= Spatial Size of Filter, P=ZeroPadding, S=Stride
您可能会发现这有帮助:
我读了很多关于 convnets 的文章,但我仍然错过了一个重要的部分。
假设我们有一个包含 32 个过滤器的 conv2D 层:
我知道这些过滤器权重在开始时是随机初始化的,并且在训练过程中形成了这些过滤器。 所以在第一层他们开始检测边缘。
现在在池化之后我们有另一个 conv 层(假设又是 32 个过滤器),它将对前一层的结果应用过滤器。
因此第 2 层将对来自第一层的这 32 个输出中的任何一个应用 32 个过滤器。 我看到了很多这些特征图的例子:第一层产生边缘图片,下一层图片是形状、耳朵、鼻子等。 我的问题是这怎么可能?
如果第 2 层在第 1 层结果上应用过滤器,而第 1 层结果是边缘,那么如何从边缘获取表单?
我显然在这里遗漏了一些东西,请帮助我理解 conv 网络中的每一下一层如何产生更丰富的特征,如形式、眼睛、面部,以防它使用前一层的生产,其中特征只是线条和边缘?
在我丢失的过程中是否有一些信息合并,或者是更多?
提前致谢
简单示例:假设您尝试区分简单的几何形状。例如。钻石矩形。
在第一层你有各种边缘检测器。有些在检测到水平边缘时触发,有些在检测到垂直边缘时触发,有些在检测到对角线边缘时触发。
第二层现在可以将这些输入组合成更复杂的形状。 因此,如果在第一层检测到垂直和水平边缘,一个 filter/detector 将触发。这是矩形的过滤器。
当第一层告诉它检测到对角线边缘时,另一个过滤器将触发。这是钻石的过滤器。
您可能会熟悉卷积层的输入和输出维度。
Input = W1xW1xD1
Output:
W2 = (W1 - F + 2P)/S + 1
D2 = K
Terminology: K = Number of Filters, F= Spatial Size of Filter, P=ZeroPadding, S=Stride
您可能会发现这有帮助: