Machine learning 为什么我在同一张图片上得到了两个不同的特征映射,它们具有相同的内核?

Machine learning 为什么我在同一张图片上得到了两个不同的特征映射,它们具有相同的内核?,machine-learning,deep-learning,feature-detection,Machine Learning,Deep Learning,Feature Detection,我随机选取了一个内核,并将其应用到一个padding='valid',stride=(1,1)的图像中,该内核的大小为=(3,3) 这是正常的图像: 这是应用过滤器后的图像: 然后我将原始图像旋转了90度,它变为: 然后我在这个旋转的图像上应用了相同的过滤器,得到了这个作为输出: 然后我旋转了这个输出图像,这样它的旋转和之前的特征图是一样的。 当我旋转这个旋转的特征图,并将其与之前的特征图进行比较后,我注意到,它们不一样 以下是两个要素地图的图像: 正如你所看到的,它们显然是不同的

我随机选取了一个内核,并将其应用到一个padding='valid',stride=(1,1)的图像中,该内核的大小为=(3,3)

这是正常的图像:

这是应用过滤器后的图像:

然后我将原始图像旋转了90度,它变为:

然后我在这个旋转的图像上应用了相同的过滤器,得到了这个作为输出:

然后我旋转了这个输出图像,这样它的旋转和之前的特征图是一样的。 当我旋转这个旋转的特征图,并将其与之前的特征图进行比较后,我注意到,它们不一样

以下是两个要素地图的图像:

正如你所看到的,它们显然是不同的

这意味着特征映射会随着特征在输入图像中的位置的变化而变化

但为什么会发生这种情况? 例如:假设我们有一个检测“眼睛”的内核,在对内核进行图像中心的“眼睛”图像训练后,我们给它一个图像,此时,“眼睛”出现在图像的左上角。它仍然会做得很好,因为它会搜索图像的每个(5,5)部分(假设内核的大小为(5,5)),所以该功能在图像中的位置并不重要


那么,在“5”的示例中,当我们更改输入图像中特征的位置时,为什么特征映射呢?

过滤器对旋转没有不变性:对于3×3像素的窗口,您有9个权重,表示窗口中有多少像素将在输出中表示,而这些权重对旋转没有不变性。如果旋转内核权重,输出将是相同的

假设您有一个具有这样权重的内核:

010
000
000

结果是将所有像素移动到底部的一个位置。如果旋转图像,应用过滤器并向后旋转,则所有像素都会向左移动。

Hey Dhruv,您是否尝试打印像素值?你能给我们提供你的代码吗?我认为当你的滤镜在图像上移动时,它会对滤镜选择的像素值应用一些函数。如果现在旋转该图像,则过滤器将选择一组不同的像素,因为过滤器仍以与您所说的“如果旋转内核权重,输出将相同”相同的方式(或更好的方向)在图像上移动,但是我不认为输出是相同的,因为这次不同的值将乘以窗口中的像素值,因此我们将得到不同的输出像素。