为什么使用卷积神经网络而不是人工神经网络?

635 阅读4分钟

人工神经网络 (ANN) 和卷积神经网络 (CNN) 是两种广泛使用的机器学习模型,它们已经改变了人工智能领域。这两种模型都旨在识别模式和做出预测,但它们在架构和应用方面有所不同。在本文中,我们将探讨 ANN 和 CNN 之间的主要区别,以及 CNN 如何克服 ANN 的问题。

ANN 是一种前馈神经网络,由多层人工神经元组成。每个神经元接收来自前一层的输入信号并计算输入的加权和,然后通过激活函数生成输出。ANN 最适合回归、分类和模式识别等任务,但它可能难以处理需要高度准确性和精确度的复杂视觉任务。

另一方面,CNN 是专为图像和视频识别任务设计的专用神经网络架构。它由多层卷积层和池化层组成,允许网络从输入图像中学习空间模式和特征。CNN 在检测和识别图像中的对象方面非常有效,并且在广泛的计算机视觉任务中取得了最先进的结果。

ANN 的主要问题之一是它无法处理高维输入数据,例如图像和视频。这是因为网络中的参数数量随着输入数据的大小呈指数增长,导致过拟合和泛化能力差。另一方面,CNN 使用共享权重方案,减少了网络中的参数数量,使其更高效地执行图像和视频识别任务。

image.png

为了计算我们网络中自由参数的数量(来自上图,图像大小为 28*28),我们需要考虑需要训练的权重数量。

我们的网络有一个 784 像素 (28x28) 的输入层、一个有 10 个节点的隐藏层和一个有 10 个节点的输出层。

因此,需要训练的总权重数是输入层到隐藏层连接的权重、隐藏层到输出层连接的权重以及隐藏节点和输出节点各自关联的偏置的总和.

具体来说,网络中自由参数的数量由下式给出:

784 x 10 + 10 x 10 + 10 + 10 = 7,960

因此,总共有 7,960 个自由参数需要在我们的网络中进行训练。

让我们考虑一个简单的人工神经网络,用于 1 兆像素的图像,具有 5000 个隐藏节点。在这样的网络中,我们总共需要更新 50 亿个参数,这是图像中像素数(100 万)与隐藏节点数(5000)的乘积。

如果我们训练这个网络进行 1000 次迭代,我们总共需要执行 5 万亿次更新。这个估计是基于我们需要为每次迭代更新所有 50 亿个参数的假设。

显然,执行 5 万亿次更新是一项重大的计算挑战,需要花费大量时间。它强调了训练大型神经网络的计算复杂性以及需要高效算法和专用硬件来加速训练过程。

然而,问题不在于计算本身,而在于“像素级”方法。图像具有空间结构,像素取决于其周围区域,这意味着每个像素的值都与其相邻像素相关。例如,眼睛或鼻子周围的像素是空间相关的。因此,我们需要一种替代方法来考虑图像中像素的空间依赖性。

为了解决这个问题,我们需要超越传统的“像素级”计算,探索其他可以捕获像素之间空间依赖性的技术。其中一种方法是使用卷积神经网络 (CNN),它可以在保留空间依赖性的同时有效地提取局部特征。CNN 使用卷积层将过滤器应用于输入图像的局部区域,这有助于捕获局部特征,同时保持相邻像素之间的空间关系。此外,池化层用于减少特征图的空间维度,同时仍保留一些空间依赖性。通过利用这些技术,我们可以构建能够处理大型图像数据集同时保持高精度的模型。

总之,ANN 和 CNN 是两种强大的机器学习模型,各有优缺点。ANN 最适合一般模式识别任务,而 CNN 专门用于图像和视频识别任务。CNN 通过使用卷积层和共享权重方案克服了 ANN 的许多局限性,使其在检测和识别图像和视频中的对象方面非常有效。