我读了很多有关卷积网络的文章,但我仍然想念一个重要的部分。
假设我们有一个带有32个滤镜的conv2D层:
我知道这些过滤器权重是在开始时随机初始化的,在训练过程中会形成这些过滤器。 因此,在第一层,它们开始检测边缘。
现在,在池化之后,我们有了另一个转换层(再说32个过滤器),它将对上一层的结果应用过滤器。
因此,第2层将对第一层的这32个输出中的任何一个应用32个过滤器。 我看到了许多这些特征贴图的示例:第一层产生边缘的图片,第二层产生形状,耳朵,鼻子等。 我的问题是这怎么可能?
如果第2层在第1层结果上应用了过滤器,而第1层结果是边缘,那么如何从边缘获得表单?
我在这里显然错过了一些事情,请帮助我理解卷积网中的下一层如何使用上一层(线条和边线只是特征)的上一层来生产更丰富的特征,例如形状,眼睛,面部?
在我丢失的过程中是否存在一些信息合并?或者更多?
预先感谢
答案 0 :(得分:2)
简单示例:假设您尝试区分简单的几何形式。例如。钻石制成的矩形。
在第一层上,您具有各种边缘检测器。当他们检测到水平边缘时会触发某些事件,当它们检测到垂直边缘时会触发某些事件,而当看到对角线边缘时就会触发其他事件。
第二层现在可以将这些输入组合成更复杂的形状。 因此,如果在第一层检测到垂直边缘和水平边缘,则会触发一个过滤器/检测器。这是矩形的过滤器。
当第一层检测到对角线边缘时,另一个滤镜将触发。这是钻石的过滤器。
您可能会让自己熟悉卷积层的尺寸和输出。
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
您可能会发现这很有帮助: