揭开卷积神经网络的神秘面纱

回复 星标
更多

揭开卷积神经网络的神秘面纱

510777

卷积神经网络

历史简介

在过去的十年中,计算机视觉领域的进步确实令人惊叹且前所未有。机器现在可以识别视频中的图像和帧,精度(98%)超过人类(97%)。这项惊人壮举背后的机制受到人类大脑功能的启发。

当时神经科医生正在对猫进行实验,因为他们发现图像的相似部分会导致猫的大脑相似部分变得活跃。换句话说,当一只猫看着圆圈时,它的大脑就会激活α区域。当它看到方形时,β区域在大脑中被激活。他们的发现得出结论,动物的大脑包含一个神经元区域,它对图像的特定特征做出反应,即它们通过大脑中神经元的分层结构来感知环境。并且每个图像在进入大脑之前都会通过某种特征提取器。

受到大脑功能的启发,数学家们囤积起来创建了一个系统来模拟不同的神经元群体,这些神经元会针对图像的不同方面进行射击,并相互通信以形成更大的图像。

特征提取器

他们将一组神经元被激活,具有特定输入,实现了多维矩阵的数学概念,表示探测器的特定特征集(也称为滤波器内核)。每个这样的滤波器将用于检测图像中特定的东西,例如用于检测边缘的滤波器。然后,这些学到的特征将通过另一组过滤器,用于检测更高级别的特征,即眼睛,鼻子等。

510777

使用拉普拉斯滤波器对图像进行卷积以检测边缘

在数学上,我们将在给定输入图像(表示为像素强度矩阵)和滤波器之间执行卷积运算以产生所谓的特征映射。此要素图将用作另一层过滤器的输入。

为什么卷积?

卷积是一个过程,网络试图通过参考过去学到的内容来标记输入信号。如果输入信号看起来像之前看到的先前猫图像,则"猫"参考信号将与输入信号进行卷积或混合。然后将得到的输出信号传递到下一层(这里,输入信号是RGB像素强度方面的输入图像的3-D表示,而"cat"参考信号是用于识别猫的内核学习)。

510777

图像和滤波器的卷积运算。

卷积运算的一个很好的特性是它是跨国不变的。这意味着每个卷积滤波器代表特定的特征集,例如眼睛,耳朵等,并且CNN算法擅长于学习哪个特征集包括所得到的参考例如猫。输出信号强度不依赖于特征所在的位置,而仅取决于特征是否存在。因此,猫可能坐在不同的位置,CNN算法仍然能够识别它。

通过跟踪大脑生物功能所规定的轨迹,他们能够设置特征提取所需的数学设备。然而,在了解了他们需要分析的级别和特征的总数以便跟踪复杂的几何形状之后,他们意识到他们将缺乏内存来保存所有这些数据。即使处理所有这些所需的计算能力也会随着特征的数量呈指数级增长。不久,他们想出了一种称为汇集技术来解决这个问题。它的核心思想非常简单。

如果某个区域包含强烈表达的要素,我们可以避免在该区域中搜索其他要素。

510777

演示最大池

这种池化操作除了节省额外的内存和计算能力要求外,还有助于消除图像中的噪声。

完全连接的层

到目前为止一切都那么好,但如果网络最终只能检测到图像中的一组特征,那么网络将会有什么用处。我们需要一种方法让网络能够将给定图像分类为一组类别。这是传统神经网络设置可以使用的地方。特别是,我们可以拥有一个完全连接的图层,从早期图层检测到的要素图到我们用于分类的标签数量。最后一层将最终为输出类别中的每个类分配概率。基于这些输出概率,我们最终可以将图像分类为输出类别之一。

510777

完全连接的层

最终架构

唯一剩下的就是将所有这些学到的概念组合成一个我们称之为卷积神经网络又称CNN的框架。本质上,CNN由一系列卷积层组成,可选地与池化层组合以生成特征图,然后将其馈送到一堆完全连接的层以产生类概率。反向传播输出的错误,我们将能够训练此设置以生成准确的结果。

现在,正确地阐述了功能性观点,让我们稍微深入了解CNN的运营方面。

卷积神经网络

510777

卷积层

卷积层是CNN的主要构建块。每个这样的层由一组独立的滤波器组成,每个滤波器在给定图像中寻找不同的特征集。

510777

卷积运算

在数学上,我们采用固定大小的过滤器并将其滑过整个图像,沿着过滤器和输入图像块之间的点积。此点积的结果将是一个标量,该标量将进入结果特征映射。然后,我们将过滤器向右滑动并执行相同的操作,同时将该结果添加到要素图中。在使用滤镜对完整图像进行卷积之后,我们最终得到一个表示不同特征集的特征图,该特征图再次用作其他图层的输入。

跨越式发展

过滤器移动的量是步幅。在上图中,我们将滑动滤波器的系数设为1.这可能不是我们总是需要的。使用大于1的步幅背后的直觉是相邻像素强相关(特别是在最低层),因此通过应用适当的步幅来减小输出的大小是有意义的。然而,大幅度的步伐可能导致高信息损失。因此,在选择步幅时我们必须小心。

510777

步幅为2的示例

填充

510777

填充一层

步幅的一个不良影响是随着我们一遍又一遍地执行卷积,特征图的大小随后减小。这可能不是一个理想的含义,因为这里的收缩也意味着信息丢失。要了解为什么会出现这种情况,请注意过滤器应用于中间单元格和角落单元格的次数差异。很明显,中间细胞的信息比边缘的细胞更重要,没有特别的原因。为了保留早期图层中的有用信息,我们可以用零层包围给定矩阵。

参数共享

当我们已经有一个很好的深度神经网络设置时为什么CNN。有趣的是,如果我们使用深度神经网络进行图像分类,每层的参数数量将是CNN的数千倍。

510777

CNN中的参数共享

此帖已被锁定,无法回复
新窗口打开 关闭