卷积神经网络为什么起作用?


22

我经常听到人们说,为什么对卷积神经网络仍然知之甚少。是否知道为什么卷积神经网络总是随着层级的增加而不断学习越来越复杂的功能?是什么导致它们创建了如此多的功能,这对于其他类型的深度神经网络也适用吗?


:从杰里米·霍华德在这段视频的后半部分很好的解释youtube.com/watch?v=ACU-T9L4_lI

2
我觉得你误会了。我们非常清楚地理解为什么convnets是一类算法。另一方面,通常很难理解为什么特定模型做出了特定预测。这就是为什么我们称他们为“黑盒子模型:他们的推理过程是不透明的,我们这并不意味着我们都搞不清楚他们为什么是有效的。
大卫·马克思

Answers:


19

其实我想这个问题有点广泛!无论如何。

了解卷积网

ConvNets尝试将成本函数最小化以在分类任务中对输入进行正确分类的过程中,我们学到了什么。所有参数更改和学习的过滤器都是为了达到上述目的。

不同层次的学习功能

他们试图通过学习低水平(有时无意义)的特征(例如水平线和垂直线)来降低成本,然后在第一层中将它们堆叠起来以形成通常具有意义的抽象形状。为了说明这个图。可以考虑从这里开始使用的1 。输入是总线,并且网格显示输入通过第一层中的不同过滤器后的激活。可以看出,红色框是一个滤波器的激活,它的参数已经被学习,它已经针对相对水平的边缘被激活了。蓝色框已针对相对垂直的边缘被激活。它可能是ConvNets了解有用的未知过滤器,例如计算机视觉从业人员,我们还没有发现它们可能有用。这些网络最好的部分是,它们尝试自己寻找合适的过滤器,而不使用我们有限的发现过滤器。他们学习过滤器以减少成本函数的数量。如上所述,这些过滤器不一定是已知的。

**图1。** *低级别激活*

在更深的层中,在先前的层中学习到的特征会融合在一起,并形成通常具有意义的形状。在本文中,已经讨论了这些层可能具有对我们有意义的激活,或者对人类有意义的概念(作为人类)可以分布在其他激活中。在图。图2中的绿色框显示了过滤器第五层中的过滤器的激活素ConvNet。该滤镜在乎脸部。假设红色的头发在乎。这些具有意义。可以看出,在输入中典型面的位置上还激活了其他激活,绿色框就是其中之一;其他的激活是其中之一。蓝框是这些的另一个示例。因此,可以通过一个或多个过滤器来学习形状的抽象。换句话说,每个概念(如脸部及其组件)都可以分布在过滤器中。如果这些概念分布在不同的层中,那么如果有人看着它们,它们可能会很复杂。信息分布在它们之间,并且为了理解信息,所有这些过滤器及其激活都必须加以考虑,尽管它们看起来可能是如此复杂。

**图2。** *高级激活*

CNNs完全不应视为黑匣子。Zeiler等人这篇惊人的论文中都讨论了如果您不了解在这些网络内部所做的工作,则可以将开发更好的模型简化为反复试验。本文试图以可视化的特征映射ConvNets

处理不同转换的能力

ConvNets使用pooling图层不仅可以减少参数数量,而且还具有对每个要素的确切位置不敏感的功能。而且,使用它们还使图层可以学习不同的特征,这意味着第一层可以学习简单的低级特征(例如边缘或弧形),而较深的图层则可以学习更复杂的特征(例如眼睛或眉毛)。Max Pooling例如,尝试调查特定区域中是否存在特殊功能。pooling层的概念是如此有用,但它仅能处理其他转换之间的转换。尽管不同图层中的滤镜会尝试查找不同的模式,例如,与平常的面孔相比,旋转的面孔是使用不同的图层来学习的,CNNs到那里自己没有任何层可以处理其他转换。为了说明这一点,假设您想学习简单的面孔而无需任何旋转,只需最小的网。在这种情况下,您的模型可以做到完美。假设要求您学习任意旋转的各种面孔。在这种情况下,您的模型必须比以前的学习网络大得多。原因是必须有过滤器才能了解输入中的这些旋转。不幸的是,这些还不是全部转换。您的输入也可能会失真。这些案件使Max Jaderberg等人大为恼火。他们撰写了这篇论文来处理这些问题,以解决我们的愤怒。

卷积神经网络确实有效

最后,在参考了这些要点之后,它们便起作用了,因为它们试图在输入数据中查找模式。他们通过卷积层将它们堆叠起来以形成抽象概念。他们试图找出输入数据是否在这些密集的层中具有这些概念中的每一个,以找出输入数据所属的类别。

我添加了一些有用的链接:


12

ConvNets之所以起作用,是因为它们利用了功能局部性。他们以不同的粒度进行处理,因此能够对更高层次的功能进行分层建模。由于合并单元,它们是翻译不变的。它们不是旋转不变的本身,但他们通常收敛到的过滤器相同的过滤器的旋转版本,因此支持旋转输入。

我知道没有其他神经体系结构可以像ConvNets一样从特征局部性中获利。


1
我要说的是,RNN与CNN的受益方式相似,在时间序列中重用权重。CNN也可以认为不一定是翻译不变的,而是“维度不变的”(尽管我不确定这是一个正确的术语还是公认的术语)
Neil Slater

感谢您的回答。如果我对以下结论不正确,请纠正我-1.似乎我们已经隐式设计了ConvNet,以通过池学习更高层次的功能。功能变得更加复杂并非偶然。2.将域信息包含在一个人的神经网络设计中会极大地影响学习效率。ConvNets和RNN正在尝试这样做。
赞美耶和华

您的陈述1和2对我来说似乎是正确的。
ncasas

1
我认为胶囊网络应该以类似的方式利用特征局部性
David Marx

3

永远不要忘记典型ConvNet中的其他组件。卷积滤波器挑选出空间不变特征,例如边和圆。这些特征在C层之后的合并层中进行量化。最后,它们被馈入(通常)多个完全连接的层(fc)。必须对这些完全连接的层给予信任,这些层无非是您在任何普通MLP中发现的。


3

卷积神经网络之所以起作用,是因为它是对标准深度学习算法的良好扩展。

有了无限的资源和金钱,就不需要卷积,因为标准算法也可以使用。但是,卷积效率更高,因为它减少了参数的数量。减少是可能的,因为它充分利用了@ncasas所写的功能局部性。


这应该是最好的答案
Jie.Zhou

1

是否知道为什么卷积神经网络总是随着层级的增加而不断学习越来越复杂的功能?

这是纯数学。归根结底,神经网络是一项重要的数学功能。网络越深,它代表的功能就越大。从更大的角度来说,我显然是指高维。所学习的功能更加复杂,因为它们是更复杂功能的结果。

是什么原因导致他们创建了如此多的功能

有趣的是,传统的神经网络受到了我们自己(实际上是猫的)生物学的启发。Hubel和Wiesel在猫的视觉皮层上进行了实验,他们意识到光是由成堆的视场感知的。这就是启发卷积层和更深层次的体系结构的原因。


0

基于ncasashoraceT答案,ConvNets非常高效,因为:

  1. 它们侵入几何变换并学习越来越复杂和详细的特征,因此是功能强大的分层特征提取器由于卷积层。
  2. 它们结合了提取的特征,并以非线性方式对其进行汇总,以预测输出,因此,由于具有完全连接的层,因此它们是可靠的分类器

如果您想了解更多有关卷积网络,构建它们的不同要素以及其内在的直觉的信息,那么我最近在我的个人博客上写了一篇文章,详细介绍了这些内容。


3
请注意,如果您要推广自己的产品/博客,则必须在答案中公开您的隶属关系,否则,您的答案可能会被标记为垃圾邮件。如果您不隶属于该网站,建议您这样说以防止出现这种情况。请阅读如何不是垃圾邮件发送者
AJ
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.