首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卷积神经网络:中央神经元不是在输出中被过度代表了吗?

卷积神经网络:中央神经元不是在输出中被过度代表了吗?
EN

Stack Overflow用户
提问于 2014-10-06 12:18:13
回答 1查看 373关注 0票数 4

这个问题现在也在[交叉验证]提出。

这个问题简单地说

我正在研究卷积神经网络,我相信这些网络并不能等效地对待每个输入神经元(像素/参数)。想象一下,我们有一个深网络(多层),它对一些输入图像应用卷积。图像“中间”的神经元对许多深层神经元有许多独特的通路,这意味着中间神经元的微小变化对输出有很强的影响。然而,在图像边缘的神经元只有一条路(或者,取决于具体的实现,1的顺序),它们的信息在图中流动。看来这些都是“代表性不足”。

我对此表示关注,因为这种对边缘神经元的区分是随着网络的深度(层数)而成指数的。即使增加一个最大池层也不能阻止指数增长,只有完全连接才能使所有神经元处于平等的地位。但我不相信我的推理是正确的,所以我的问题是:

  • 我说得对吗?这种影响发生在深卷积网络中吗?
  • 这方面有什么理论吗,在文学中有提到过吗?
  • 是否有办法克服这种影响?

因为我不确定这是否提供了足够的信息,我将详细阐述问题陈述,以及为什么我认为这是一个关注。

更详细的解释

想象一下,我们有一个深层次的神经网络,它以图像作为输入。假设我们在图像上应用64x64像素的卷积滤波器,每次将卷积窗口移动4个像素。这意味着输入中的每一个神经元都会将它的激活发送给第二层中的16x16 =265个神经元,每个神经元可能会将它们的激活发送到另一个265个,这样我们的最顶端的神经元就被表示在265 ^2个输出神经元中,等等。然而,对于边缘上的神经元来说,情况并非如此:这些神经元可能只在少数卷积窗口中表示,从而导致它们在下一层只激活一个神经元。使用像沿边缘镜像这样的技巧无助于此:第二层神经元将被投射到边缘,这意味着第二层神经元将被低估(从而限制了我们边缘神经元的重要性)。可以看出,这种差异与层数成指数关系。

我创建了一个图像来可视化这个问题,这可以在这里找到(我不允许在文章中包含图片)。这个网络有一个3大小的卷积窗口。神经元旁边的数目表示通向最深神经元的通路数目。这张图片让人想起了帕斯卡三角

stackxchange.png?dl=0

为什么这是个问题?

乍一看,这种影响似乎不是一个问题:原则上,权重应该自动调整,使网络能够完成它的工作。此外,在图像识别中,图像的边缘并不那么重要。这种效果在日常的图像识别测试中可能并不明显,但由于两个原因,我仍然感到担忧: 1)对其他应用的泛化;2)在网络非常深的情况下出现的问题。1)可能还有其他的应用,如语音或声音识别,在这些应用中,中间多数神经元并不是最重要的。在这个领域里,应用卷积通常是可行的,但是我还没有找到任何提到我所关心的影响的论文。2)很深的网络会注意到边界神经元识别的指数效应,这意味着中央神经元可以被多个数量级过度表示(假设我们有10层,上面的例子会给出265^10种中央神经元投射信息的方式)。当一个人增加了层数,一个人必然会达到一个极限,当重量无法有效地补偿这一影响时。现在想象一下,我们用少量干扰所有神经元。与边缘神经元相比,中央神经元会使输出更强烈地变化几个数量级。我认为对于一般的应用程序,对于非常深的网络,应该找到解决我的问题的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-01-08 01:33:00

我会引用你的句子,下面我会写我的答案。

  • 这种效应发生在深卷积网络中,我说得对吗?
代码语言:javascript
复制
- I think you are wrong in general but right according to your 64 by 64 sized convolution filter example. While you are structuring your convolution layer filter sizes, they would never be bigger than what you are looking for in your images. In other words - if your images are 200by200 and you convolve for 64by64 patches, you say that these 64by64 patches will learn some parts or exactly that image patch that identifies your category. The idea in the first layer is to learn edge-like partial important images not the entire cat or car itself.

  • 这方面有什么理论吗,在文学中有提到过吗?是否有办法克服这种影响?
代码语言:javascript
复制
- I never saw it in any paper I have looked through so far. And I do not think that this would be an issue even for very deep networks. 
- There is no such effect. Suppose your first layer which learned 64by64 patches is in action. If there is a patch in the top-left-most corner that would get fired(become active) then it will show up as a 1 in the next layers topmost left corner hence the information will be propagated through the network.

  • (未引用)你不应该认为‘像素是有用的更多的神经元,当它变得更接近中心’。想想64x64过滤器,它的步调为4:
代码语言:javascript
复制
- if the pattern that your 64x64 filter look for is in the top-most-left corner of the image then it will get propagated to the next layers top most corner, otherwise there will be nothing in the next layer.
- the idea is to keep meaningful parts of the image alive while suppressing the non-meaningful, dull parts, and combining these meaningful parts in following layers. In case of learning "an uppercase letter a-A" please look at only the images in the very old paper of Fukushima 1980 ([http://www.cs.princeton.edu/courses/archive/spr08/cos598B/Readings/Fukushima1980.pdf](http://www.cs.princeton.edu/courses/archive/spr08/cos598B/Readings/Fukushima1980.pdf)) figure 7 and 5. Hence there is no importance of a pixel, there is importance of image patch which is the size of your convolution layer.

  • 与边缘神经元相比,中央神经元会使输出更强烈地变化几个数量级。我认为对于一般的应用程序,对于非常深的网络,应该找到解决我的问题的方法吗?
代码语言:javascript
复制
- Suppose you are looking for a car in an image,
- And suppose that in your 1st example the car is definitely in the 64by64 top-left-most part of your 200by200 image, in 2nd example the car is definitely in the 64by64 bottom-right-most part of your 200by200 image
- In the second layer all your pixel values will be almost 0, for 1st image except the one in the very top-left-most corner and for 2nd image except the one in the very bottom-right-most corner.
- Now, the center part of the image will mean nothing to my forward and backward propagation because the values will already be 0. But the corner values will never be discarded and will effect my learning weights.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26216082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档