[这个问题现在也在交叉验证中提出]
我正在研究卷积神经网络,我相信这些网络并不能等价地处理每个输入神经元(像素/参数)。假设我们有一个深层网络(许多层),它在一些输入图像上应用卷积。图像“中间”的神经元有许多通向许多深层神经元的独特路径,这意味着中间神经元的微小变化对输出有很大影响。然而,图像边缘的神经元只有一条路径(或者,根据具体的实现,1的顺序)来传递其信息。看来这些“代表性不足”。
我对此感到担忧,因为边缘神经元的这种辨别能力随着网络的深度(层数)呈指数级增长。即使添加最大池层也不会阻止指数级增长,只有完全连接才能使所有神经元处于平等的地位。不过,我不相信我的推理是正确的,所以我的问题是:
因为我不确定这是否提供了足够的信息,所以我将详细说明问题陈述,以及为什么我认为这是一个问题。
假设我们有一个以图像为输入的深层神经网络。假设我们在图像上应用64x64像素的卷积滤波器,每次将卷积窗口移动4像素。这意味着输入中的每个神经元都将其激活发送到第2层的16x16=265个神经元。这些神经元中的每一个都可能将它们的激活发送给另一个265,这样我们最顶端的神经元就代表在265^2个输出神经元中,依此类推。然而,对于边缘的神经元来说,情况并非如此:这些神经元可能只在少数卷积窗口中表示,从而导致它们只激活下一层的1个神经元(数量级)。使用诸如沿边缘镜像之类的技巧无助于此:投射到第二层的神经元仍在边缘,这意味着第二层神经元的代表性不足(从而限制了边缘神经元的重要性)。可以看出,这种差异随着层数的增加呈指数级增长。
我已经创建了一个图像来可视化问题,可以在这里找到(我不允许在帖子中包含图像)。该网络的卷积窗口大小为3。神经元旁边的数字表示通向最深神经元的通路的数量。这幅图像让人想起帕斯卡的三角形。
https://www.dropbox.com/s/7rbwv7z14j4h0jr/deep_conv_problem_stackxchange.png?dl=0
乍一看,这种影响似乎不是问题:原则上,权重应该自动调整,以便网络完成它的工作。此外,图像的边缘在图像识别中并不那么重要。这种效果在日常的图像识别测试中可能并不明显,但我仍然感到担忧,因为有两个原因:1)推广到其他应用程序,2)在非常深的网络中出现的问题。1) 可能还有其他应用,如语音或声音识别,其中最中间的神经元不是最重要的。应用卷积通常在这个领域进行,但我还没有找到任何论文提到我所关心的效果。2) 非常深的网络会注意到边界神经元辨别的指数级不良影响,这意味着中枢神经元的数量可能会超过多个数量级(假设我们有10层,上面的例子将给出265^10种中枢神经元投射信息的方式)。随着层数的增加,必然会达到一个极限,即权重无法切实补偿这种影响。现在想象一下,我们对所有神经元的干扰都很小。与边缘神经元相比,中央神经元会使输出发生几个数量级的更强烈变化。我相信,对于一般应用程序和非常深入的网络,应该找到解决问题的方法?
我将引用你的句子,并在下面写下我的答案。
>
有没有关于这个的理论,有没有在文献中提到过?有没有克服这种影响的方法?
>
到目前为止,我从未在我看过的任何论文中看到过它。我认为即使对于非常深的网络,这也不是问题。
没有这种影响。假设您学习了64by64补丁的第一层正在运行。如果在最左上角有一个补丁将被触发(激活),那么它将在下一层最左上角显示为1,因此信息将通过网络传播。
(未引用)你不应该认为“当一个像素离中心越来越近时,它对更多的神经元有用”。考虑一下步幅为4的64x64过滤器:
>
这个想法是保持图像中有意义的部分活着,同时抑制无意义的、无趣的部分,并将这些有意义的部分组合在下面的图层中。如果要学习“大写字母a-A”,请只看福岛1980(http://www.cs.princeton.edu/courses/archive/spr08/cos598B/Readings/Fukushima1980.pdf)图7和5中非常旧的论文中的图像。因此像素并不重要,重要的是卷积层大小的图像补丁。
与边缘神经元相比,中央神经元会使输出发生几个数量级的更强烈变化。我相信,对于一般应用程序和非常深入的网络,应该找到解决问题的方法?
>
假设您正在图像中寻找一辆汽车,
假设在第一个示例中,汽车肯定位于200by200图像的最左上方64by64处,在第二个示例中,汽车肯定位于200by200图像的最右下方64by64处
在第二层中,除左上角的图像外,第一个图像的所有像素值几乎为0;除右下角的图像外,第二个图像的所有像素值几乎为0。
现在,图像的中心部分对我的正向和反向传播没有任何意义,因为值已经是0。但角点值永远不会被丢弃,并且会影响我的学习权重。
我正在开发一种卷积神经网络用于图像分类或更好的车牌分类。这些车牌最多包含8个字符,每个字符可以包含37个字符(A-Z、0-9和空格)。我现在想知道如何设计网络中的最后两层。我认为,最后一个必须是具有37个概率的softmax层。这应该完全连接到一个(?)神经元在前一层?我想,在前一层我们需要8个神经元,因为之前的车牌上有8个字符,但我不确定。在此层之前,我添加了一些卷积层和maxPooling层。
注意: 本教程适用于对Tensorflow有丰富经验的用户,并假定用户有机器学习相关领域的专业知识和经验。 概述 对CIFAR-10 数据集的分类是机器学习中一个公开的基准测试问题,其任务是对一组大小为32x32的RGB图像进行分类,这些图像涵盖了10个类别: 飞机, 汽车, 鸟, 猫, 鹿, 狗, 青蛙, 马, 船以及卡车。 想了解更多信息请参考CIFAR-10 page,以及Alex Kriz
卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网络由一个或多个卷积层和顶端的全连通层(对应经典的神经网络)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网络能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网络
在LeNet提出后的将近20年里,神经网络一度被其他机器学习方法超越,如支持向量机。虽然LeNet可以在早期的小数据集上取得好的成绩,但是在更大的真实数据集上的表现并不尽如人意。一方面,神经网络计算复杂。虽然20世纪90年代也有过一些针对神经网络的加速硬件,但并没有像之后GPU那样大量普及。因此,训练一个多通道、多层和有大量参数的卷积神经网络在当年很难完成。另一方面,当年研究者还没有大量深入研究参
在了解了机器学习概念之后,现在可以将注意力转移到深度学习概念上。深度学习是机器学习的一个分支。深度学习实现的示例包括图像识别和语音识别等应用。 以下是两种重要的深度神经网络 - 卷积神经网络 递归神经网络 在本章中,我们将重点介绍CNN - 卷积神经网络。 卷积神经网络 卷积神经网络旨在通过多层阵列处理数据。这种类型的神经网络用于图像识别或面部识别等应用。CNN与其他普通神经网络之间的主要区别在于
主要内容:卷积神经网络深度学习是机器学习的一个分支,它是近几十年来研究人员突破的关键步骤。深度学习实现的示例包括图像识别和语音识别等应用。 下面给出了两种重要的深度神经网络 - 卷积神经网络 递归神经网络。 在本章中,我们将关注第一种类型,即卷积神经网络(CNN)。 卷积神经网络 卷积神经网络旨在通过多层阵列处理数据。这种类型的神经网络用于图像识别或面部识别等应用。 CNN与任何其他普通神经网络之间的主要区别在于CNN