Press "Enter" to skip to content

深度学习揭秘:解开带有CIFAR-10数据集的CNN架构的秘密

Tobias Reich在Unsplash上的照片

在不断发展的人工智能世界中,卷积神经网络(CNN)已经成为一项革命性的技术,重塑了计算机视觉和图像识别领域。通过自动学习和识别图像中的模式,CNN可以解锁许多应用的新可能性,从自动驾驶汽车到医疗诊断。在本文中,我们将深入探讨CNN架构的工作原理,并以流行的CIFAR-10数据集作为我们的测试基准。

在这里,我有一个目标,即将理论+实践的思想应用到实际中,所以在完成理论部分后,将展示TensorFlow代码,以便您可以实际应用这些理论。

卷积到底是什么?

步骤1:了解图像和滤波器:

让我们从一个灰度图像开始,它可以表示为一个2D的像素网格,其中每个像素的强度对应于其灰度值。为了简单起见,让我们拿一个小的3×3灰度图像:

图像:[ 1  2  3 ][ 4  5  6 ][ 7  8  9 ]

现在,我们将使用一个2×2的滤波器:

滤波器:[ 1  0 ][ 0  1 ]

步骤2:应用卷积:我们将在图像的左上角放置2×2的滤波器,执行卷积运算。

卷积运算如下:

(1*1) + (2*0) +(4*0) + (5*1) = 1 + 0 + 0 + 5 = 6

因此,输出特征图中左上角像素的值为6。

步骤3:滑动滤波器:接下来,我们将滑动2×2的滤波器覆盖整个图像,在滤波器的每个位置执行卷积运算。

输出特征图:[ 6  8 ][ 3  5 ]

卷积的模式?

在图像处理和信号处理的上下文中,卷积可以以不同的模式进行,这决定了如何处理输入数据边界处的卷积运算。最常见的卷积模式有:

1. 相同模式

在“相同”模式下,卷积的输出与输入具有相同的空间尺寸。为了实现这一点,通常在应用卷积操作之前,在边界处用零填充输入数据。

2. 有效模式

在“有效”模式下,卷积仅在滤波器完全与输入数据重叠的位置执行。这意味着滤波器不会位于输入的边界像素的中心,因此输出特征图的空间尺寸将比输入减小。

3. 完全模式

在“完全”模式下,滤波器被允许超出输入的边界,并且卷积运算在滤波器和输入数据重叠的每个可能位置上执行。因此,输出特征图的空间尺寸将大于输入。

滤波器在卷积中的本质是什么?

我们已经了解到,卷积实际上只是输入数据和滤波器之间的简单矩阵运算。但是滤波器在卷积神经网络(CNN)中的本质在于它们能够从输入数据中检测和学习有意义的特征,特别是在图像处理和计算机视觉任务的上下文中。滤波器也被称为卷积核。

滤波器充当模式检测器,帮助网络识别输入数据中的特定模式、纹理和结构。通过在训练过程中学习适当的滤波器,CNN可以从原始输入中提取相关和独特的特征,这对于解决复杂的任务,如图像识别、对象检测和分割至关重要。

所以您可以将过滤器(Filter)视为模型训练过程中调整的权重。

从2D到3D: 解密卷积层中的维度编码

卷积神经网络的问题在于图像和卷积核(过滤器)之间的卷积输出是2D的,由此引发了不兼容性问题,因为这些数据需要传递给接受3D输入的其他层。

那么如何解决这个问题呢?

为了解决这个问题,多个过滤器之间进行卷积,将结果堆叠起来,从而可以将这个新的3D输入传递给下一层。

揭示卷积神经网络的复杂性:结构和操作

深度学习揭秘:解开带有CIFAR-10数据集的CNN架构的秘密 四海 第2张

架构:

CNN由不同的层组成,每个层针对视觉识别过程中的特定任务进行了设计。CNN的基本层包括:

a) 输入层:

CNN的首层是输入层,负责接受原始输入图像。它将图像转换为像素值的矩阵,其中每个像素保存颜色信息(例如红色、绿色、蓝色)。

b) 卷积层:

在随后的卷积层中,小的过滤器(称为卷积核)在输入图像上进行卷积。这些过滤器识别局部模式,例如边缘或纹理,生成特征图。特征图的深度对应于应用的过滤器数量。

c) 激活层:

在完成卷积步骤后,激活函数(例如ReLU)引入非线性,增强CNN学习特征之间的复杂关系并有效提取抽象表示。

d) 池化层:

池化层对特征图进行空间维度的降低。最大池化和平均池化等技术分别从相邻像素中选择最大和平均值。这种降采样减少了计算复杂度,同时保留了重要的特征。

e) 全连接层:

CNN特征提取过程的最后阶段涉及全连接层。这些层解释学习到的特征,类似于传统神经网络层的功能。它们在基于提取的特征进行分类决策方面起着重要作用。

卷积神经网络的工作原理:

通过以下步骤可以理解CNN的工作原理:

步骤1:接收输入图像:

CNN通过接收一个输入图像开始,该图像被表示为像素值的矩阵,每个像素编码颜色通道(例如红色、绿色、蓝色)。

步骤2:特征提取:

进入卷积层后,过滤器在输入图像上扫过,创建突出显示图像中重要模式和特征的特征图。

步骤3:引入非线性:

激活层对特征图引入非线性,使CNN能够学习特征之间的复杂关系。

步骤4:减少空间维度:

池化层减小了特征图的空间维度,减少了计算负载,同时保留了关键信息。

步骤5:分类:

在最后阶段,全连接层处理已学习到的特征并相应地进行预测。CNN的输出表示其分类决策。

全连接层的问题

全连接层接收到1D输入,但正如我们之前讨论的那样,输出是3D的,通过堆叠特征图来将其转换为1D,我们将使用TensorFlow的flatten()函数。

代码:-

Google Colaboratory

colab.research.google.com

由于文章已经太长,我在上面的链接中包含了代码

使用的数据集是CIFAR-10

CIFAR-10 – 图像中的物体识别

识别60,000张带标签的图像的主题

www.kaggle.com

此外,我们还进行了批归一化和数据增强以提高我们的结果。我将以简短的句子尽可能简单地完成这个过程

批归一化

简单来说,批归一化是将值转换为特定范围(例如0到1)。例如,如果有两个值A=2,B=2000,那么机器学习模型将无法接受它们,两个值应该接近,这是归一化背后的主要概念,而批归一化只是在卷积之后对批次应用归一化。

数据增强

数据增强是通过对现有数据应用各种变换来人为扩大训练数据集的过程。这些变换包括旋转、缩放、翻转、裁剪和其他图像处理操作。通过增强数据,模型变得更加稳健,更好地适应未见过的示例,从而提高性能并减少过拟合。

结论

卷积神经网络已经改变了计算机视觉和图像识别,为现实世界的应用开辟了巨大的潜力。对它们的架构和功能有清晰的理解对于利用它们在创建精确和高效的视觉识别系统方面至关重要。拥抱CNN的力量使我们能够踏上一个揭示视觉数据中隐藏的奥秘的开创性之旅。

YO WAI MO

感谢您抽出宝贵的时间阅读我的文章

Leave a Reply

Your email address will not be published. Required fields are marked *