卷积到卷积神经网络:从数组运算到深度学习

我们将学习卷积,这是一种流行的数组操作,广泛应用于信号处理、数字录音、图像处理、视频处理和计算机视觉等领域。

· Dev Rishi Khare

在这些应用领域中,卷积通常作为滤波器使用,将信号和像素转换为更理想的数值。

在高性能计算中,卷积模式通常被称为模板计算。卷积通常会对每个数据元素执行大量的算术运算。每个输出数据元素都可以独立计算,这是并行计算的一个理想特性。另一方面,输出数据元素之间存在大量的输入数据共享,且边界条件较为复杂。这使得卷积成为复杂分块方法和输入数据调度方法的一个重要应用场景。

卷积是一种数组运算,其中每个输出数据元素都是相邻输入元素集合的加权和。加权求和计算中使用的权重由输入掩码数组定义,通常称为卷积核。我们将这些掩码数组称为卷积掩码。通常,数组的所有元素都使用相同的卷积掩码

下面展示了一个一维数据的卷积示例,其中将5元卷积掩码数组 M 应用于7元输入数组 N。

在图像处理和计算机视觉中,输入数据通常是二维数组,像素位于 x‑y 平面。因此图像卷积为二维卷积。掩码不必是方形数组。


1.从一维卷积到二维卷积

你知道一维卷积:

对于图像,输入是二维的(高度 × 宽度),因此:

这和你已经知道的想法完全一样,但是:


2.多个通道(例如,RGB)

真实图像不仅仅是二维的,它们通常具有通道

卷积步骤:

因此,从概念上讲:对空间和通道进行3D卷积,但仍然只是“邻域的加权求和”。


3.滤波器(核)与特征图

在卷积神经网络中,并非只使用一个卷积核,而是使用多个

因此,如果输入形状为:

如果你使用 F 内核,输出形状将变为:

每个 F 输出通道捕捉不同类型的模式:

思考: “CNN层 = 对输入应用多种不同的卷积(滤波器)。”


4.步长和填充

两个与数组相关的细节:

从数学角度来看,它仍然是滑动窗口和点积,但可以通过以下方式实现控制:


5.非线性:添加激活函数

到目前为止,一切都是线性的:加权求和。CNN层增加了非线性

因此,单个卷积层是:

  1. 卷积(线性加权求和)。
  2. 激活(非线性)。

这种组合使卷积神经网络能够学习复杂的非线性映射。


6.堆叠层 → 深层特征层次

一个完整的 CNN 仅仅是许多层的:

直觉:

所有这些仍然基于你理解的那个原始元素构建: “取局部邻域并计算加权和。”


7.连接到全连接(稠密)层

全连接层也只是加权求和:

差异

因此可以将CNN视为:


结论:从简单操作到强大网络

"At each position, take neighbors and compute a weighted sum with a kernel,"

那么已经站在CNN核心思想的基础上。

卷积神经网络采用这种简单的构建模块,并:

CNN 的魔力并非全新数学,而是将大量小尺度、局部的卷积操作组合成深层结构,从而学习出强大的视觉表征。

Ready to hire with precision?

Start free, invite your whole team, and see your first scored candidate in 15 minutes.

zh