可以比较 MLP 中的神经元和 CNN 中的过滤器吗?

人工智能 卷积神经网络 多层感知器 人工神经元 权重 过滤器
2021-11-17 06:56:09

我知道它们的工作方式不一样,但是输入层将输入发送到n具有一组权重的神经元,基于这些权重和激活层,它产生一个可以馈送到下一层的输出。

过滤器是否相同,它们根据过滤器中的权重将“图像”转换为新的“图像”?下一层使用这个新的“图像”?

2个回答

tl;dr相当于全连接 (FC) 层中的神经元是卷积层的内核(或滤波器)

差异

这两类层的神经元有两个关键区别。这些是卷积层实现的:

  • 稀疏连接,即每个神经元只连接到输入的一个区域,而不是整个。
  • 权重共享,即相似的连接最终具有相同的权重。这通常被可视化为遍历图像的相同过滤器。

除了这两个关键区别之外,还有一些其他技术细节,例如如何实现偏差除此之外,它们执行相同的操作。

引起一些混乱的是,CNN 的输入通常是 2 或 3 维的,而 FC 通常是 1 维的。然而,这些不是强制性的。为了更好地帮助可视化两者之间的差异,我制作了几张图来说明 conv 层和 FC 层之间的差异,两者都是 1D 的。

稀疏连接

左边是两个 FC 神经网络。右侧是具有稀疏连接的层。

体重共享

左边是一个稀疏连接的网络。颜色代表权重的不同值。右侧是具有权重共享的同一个网络。请注意,相似的权重(即每一层中具有相同方向的箭头)具有相同的值。


要回答您的其他问题:

过滤器根据过滤器中的权重将“图像”转换为新“图像”的方式是否不同?并且下一层使用这些新的“图像”?

是的,如果卷积层的输入是图像,那么输出也是。下一层也将对图像进行操作。

但是,我想指出,并非所有卷积层都接受图像作为输入。还有 1D 和 3D 卷积层。

另一个答案很好地概述了 MLP 和 CNN 之间的差异,它包括 2 个图表,试图说明 MLP 和 CNN 之间的主要差异,即稀疏连接和权重共享。然而,这些图表并没有阐明 CNN 中的神经元可能是什么。下面是一个更好的图表,它从 CNNMLP 的角度说明了 CNN 中的神经元是什么(摘自关于 CNNs 的著名文章)。

在此处输入图像描述

在这里,有 2 个主要块(又名体积):左侧的橙色块(输入)和右侧的蓝色/青色体积(特征图,即卷积层的输出,即在应用具有不同内核的卷积)。

青色块可见堆栈中的圆圈代表神经元(或更准确地说,它们的激活或输出)。我们只看到k=5神经元堆叠:这对应于应用k=5不同的内核(即权重)到输入的特定子集(也称为感受野),因此CNN的稀疏连接性。因此,在同一个堆栈中的这些神经元正在查看输入的相同小子集,但具有不同的权重(即内核)。图中未显示的神经元位于青色体积中同一神经元(例如,我们从左到右看到的第一个)的同一(垂直)2d 平面(称为特征图)上是神经元它们共享相同的权重,即我们使用相同的内核来产生它们的输出。

因此,在 CNN 的这个生物/神经科学视图中,当您使用 1 个特定滤波器(或内核)应用卷积(或互相关)操作时,您正在计算激活(不要与激活函数混淆,即用于计算激活!)即多个神经元的输出,它们都共享相同的权重。您将所有这些激活叠加在输出体积的同一个 2d 平面(称为特征图)上:请注意,此操作只是卷积操作!当您使用另一个内核计算卷积时,您再次计算其他多个神经元的激活,这些神经元共享另一个不同的权重矩阵,依此类推。

一些作者更喜欢使用术语卷积网络,即没有术语神经,可能是因为这个问题,即不清楚,特别是对于新手来说,CNN 中的神经元是什么,所以 CNN 的神经科学/生物学观点不是总是很清楚,尽管重要的是要强调CNN 受到视觉皮层的启发,因此这种生物学解释可能(也应该)更广为人知或更少混淆/误解。

现在,让我们更直接地解决您的问题。

过滤器是否相同,它们根据过滤器中的权重将“图像”转换为新的“图像”?下一层使用这个新的“图像”?

CNN 中的过滤器对应于 MLP 的权重。

CNN 中的神经元可以被视为执行与 MLP 中的神经元完全相同的操作。CNN 和 MLP 之间的巨大差异(如另一个答案中所解释的)是

  • 权重共享:同一卷积层中的一些神经元(不是全部!)共享相同的权重。卷积(或互相关)是实现这种部分前向传递的操作,对于不同的神经元具有相同的权重。

  • CNN 中的神经元只查看输入的一个子集,而不是所有输入(即感受野),这导致了一些稀疏连接的概念

  • CNN 中的卷积层由3d 维体积中的神经元组成(或者更准确地说,它们的激活被组织在 3d 体积中),而不是 MLP 中的 1 维。

  • CNN 可以使用子采样(又名池化)