为什么卷积神经网络有效?

数据挖掘 机器学习 深度学习 神经网络 美国有线电视新闻网 卷积神经网络
2021-09-17 21:33:04

我经常听到有人说为什么卷积神经网络仍然知之甚少。是否知道为什么卷积神经网络总是随着我们上层而学习越来越复杂的特征?是什么导致他们创建了如此多的特征,其他类型的深度神经网络也是如此吗?

4个回答

其实我想这个问题有点宽泛!反正。

了解卷积网络

尝试ConvNets最小化成本函数以在分类任务中正确分类输入。所有参数更改和学习过滤器都是为了实现上述目标。

不同层的学习特征

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

**图 1.** *低级激活*

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

**图 2.** *高级激活*

CNNs根本不应被视为黑匣子。Zeiler 等人在这篇令人惊叹的论文中讨论了如果您不了解这些网络中所做的事情,更好的模型的开发将减少为反复试验。本文试图可视化ConvNets.

处理不同转换以进行泛化的能力

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

卷积神经网络确实有效

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

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

卷积网络之所以有效,是因为它们利用了特征局部性。它们以不同的粒度进行,因此能够对更高层次的特征进行分层建模。由于池化单元,它们是平移不变的。它们本身不是旋转不变,但它们通常会收敛到相同过滤器的旋转版本的过滤器,因此支持旋转输入。

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

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

给定无限的资源和金钱,不需要卷积,因为标准算法也可以工作。然而,卷积更有效,因为它减少了参数的数量减少是可能的,因为它利用了特征局部性,这正是@ncasas 所写的。

永远不要忘记典型 ConvNet 中的其他组件。卷积过滤器挑选出空间不变的特征,如边缘和圆。这些特征在 C 层之后的池化层中进行量化。最后,它们被送入(通常)多个全连接层(fc)。必须归功于这些完全连接的层,它们只不过是您在任何普通 MLP 中发现的。