[此问题现在也出现在Cross Validated]
我正在研究卷积神经网络,我相信这些网络不会等效地处理每个输入神经元(像素/参数)。想象一下,我们有一个深度网络(许多层),在某些输入图像上应用卷积。 "中间的神经元"图像的许多更深层神经元具有许多独特的通路,这意味着中间神经元的微小变化对输出有很大影响。然而,图像边缘的神经元只有1种方式(或者,取决于确切的实施方式,1种顺序)其信息流过图形的途径。似乎这些"代表不足"。
我对此感到担心,因为边缘神经元的这种区分与网络的深度(层数)成比例地指数。即使添加最大池层也不会停止指数增加,只有完整的连接才能使所有神经元处于平等的基础上。我不相信我的推理是正确的,所以我的问题是:
因为我不确定这是否提供了足够的信息,我将详细阐述问题陈述,以及为什么我认为这是一个问题。
想象一下,我们有一个深度神经网络,它将图像作为输入。假设我们在图像上应用64x64像素的卷积滤波器,我们每次将卷积窗口移动4个像素。这意味着输入中的每个神经元都将它的激活发送到第2层中的16x16 = 265个神经元。这些神经元中的每一个都可能将它们的激活发送到另一个265,这样我们的最顶层神经元就会在265 ^ 2个输出神经元中表示,等等。然而,这对于边缘上的神经元来说并非如此:这些可能仅在少数卷积窗口中表示,因此导致它们在下一层中仅激活(大约)1个神经元。使用沿边缘镜像等技巧不会对此有所帮助:将被投射到的第二层神经元仍处于边缘,这意味着第二层神经元的代表性不足(从而限制了我们边缘神经元的重要性)。可以看出,这种差异随着层数呈指数级增长。
我创建了一个可视化问题的图像,可在此处找到(我不允许在帖子中包含图像)。该网络具有大小为3的卷积窗口。神经元旁边的数字表示直到最深神经元的通路数。该图像让人联想到Pascal's Triangle。
https://www.dropbox.com/s/7rbwv7z14j4h0jr/deep_conv_problem_stackxchange.png?dl=0
这种效果乍一看似乎不是问题:原则上,权重应该以网络完成工作的方式自动调整。而且,图像的边缘在图像识别中无论如何都不重要。这种影响在日常图像识别测试中可能并不明显,但它仍然让我担心,原因有两个:1)对其他应用程序的推广,以及2)非常深度网络时出现的问题。 1)可能还有其他应用,如语音或声音识别,其中最中层神经元不是最重要的。应用卷积通常在这个领域进行,但我还没有找到任何提及我所关注的效果的论文。 2)非常深的网络会注意到边界神经元区分的指数不良影响,这意味着中心神经元可以被多个数量级的过度表示(想象我们有10层,这样上面的例子就会给出265 ^ 10种中心神经元可以投射信息的方式)。随着人们增加层数,人们必然会遇到一个限制,其中权重不能可行地补偿这种影响。现在想象一下,我们会少量扰乱所有神经元。与边缘神经元相比,中枢神经元将使输出更强烈地改变几个数量级。我相信对于一般应用程序和非常深的网络,我应该找到解决问题的方法吗?
答案 0 :(得分:0)
我会引用你的句子,下面我会写下我的答案。
我认为这种效果发生在深度卷积网络中
有没有关于此的理论,是否曾在文献中提及过?有没有办法克服这种影响?
到目前为止,我从未在任何论文中看过它。而且即使对于非常深的网络,我也不认为这会是一个问题。
没有这样的效果。假设您学习64by64补丁的第一层正在运行。如果最左上角有一个补丁会被激活(变为活动状态),那么它将在下一个最左上角的层中显示为1,因此信息将通过网络传播。
(未引用)你不应该认为'当一个像素越来越接近中心时,它就会在更多的神经元中发挥作用'。想想64x64过滤器,步幅为4:
如果您的64x64滤镜所寻找的图案位于图像的最左上角,那么它将传播到下一个图层的最上角,否则下一层中将没有任何内容。
这个想法是保留图像的有意义部分,同时抑制无意义的无聊部分,并在后续层中组合这些有意义的部分。在学习“大写字母aA”的情况下,请仅查看福岛1980年(http://www.cs.princeton.edu/courses/archive/spr08/cos598B/Readings/Fukushima1980.pdf)图7和图5的旧论文中的图像。因此没有像素的重要性,图像的重要性补丁,它是卷积层的大小。
与边缘神经元相比,中枢神经元将使输出更强烈地改变几个数量级。我相信对于一般应用程序和非常深的网络,我应该找到解决问题的方法吗?
假设您正在寻找图像中的汽车,
并且假设在你的第一个例子中,汽车绝对位于200by200图像的64by64左上角部分,在第二个例子中,汽车绝对位于你的200by200的64by64最右下角图像
在第二层中,所有像素值几乎为0,第一张图像除了最左上角和第二张图像之外的一个,除了最右下角的一个
现在,图像的中心部分对我的前向和后向传播没有任何意义,因为这些值已经是0.但是角落值永远不会被丢弃并且会影响我的学习权重。