CNN vs RNN:CNN和RNN之间的区别

已发表: 2021-02-25

目录

介绍

在人工智能领域,受人脑启发的神经网络被广泛用于从各种数据中提取和处理复杂信息,以及卷积神经网络(CNN)和循环神经网络(RNN)在此类应用中的应用被证明是有用的。

在本文中,我们将了解卷积神经网络和循环神经网络背后的概念,了解它们的应用并区分两种流行的神经网络类型之间的差异。

向世界顶尖大学学习机器学习培训获得硕士、Executive PGP 或高级证书课程以加快您的职业生涯。

神经网络和深度学习

在我们进入卷积神经网络和循环神经网络的概念之前,让我们了解神经网络背后的概念以及它如何与深度学习联系起来。

近来,深度学习曾经是一个被广泛应用于许多领域的概念,因此它是当今的热门话题。 但它被如此广泛谈论的原因是什么? 为了回答这个问题,我们将了解神经网络的概念。

简而言之,神经网络是深度学习的支柱。 它们是一组由高度互连的元素组成的层,称为神经元,它们对数据执行一系列转换,从而产生对数据的自己的理解,我们称之为术语特征。

什么是神经网络?

我们需要了解的第一个概念是神经网络。 我们知道人脑是曾经研究过的复杂结构之一。 由于它的复杂性,很难解开它的内部运作,但目前,正在进行多种研究以揭示它的秘密。 这个人脑是神经网络模型背后的灵感。

根据定义,神经网络是深度学习的功能单元,它利用这些神经网络来模拟大脑活动并解决复杂问题。 当输入数据被馈送到神经网络时,它通过感知器层进行处理,最后给出输出。

神经网络基本上由 3 层组成——

  • 输入层
  • 隐藏层
  • 输出层

输入层读取输入神经网络系统的输入数据,以供后续人工神经元层进一步预处理。 输入层和输出层之间存在的所有层称为隐藏层。

正是在这些隐藏层中,其中存在的神经元利用加权输入和偏差,并利用激活函数产生输出。 输出层是为给定程序提供输出的最后一层神经元。

资源

神经网络如何工作?

现在我们已经了解了神经网络的基本结构,我们将继续了解它们是如何工作的。 要了解它的工作原理,我们必须首先了解神经网络的基本结构之一,即感知器。

感知器是一种形式上最基本的神经网络。 它是一个简单的前馈人工神经网络,只有一个隐藏层。 在感知器网络中,每个神经元都在正向连接到每个其他神经元。

这些神经元之间的连接被加权,因为在两个神经元之间传递的信息被这些权重加强或减弱。 在神经网络的训练过程中,正是这些权重被调整以获得正确的值。

感知器使用二进制分类器函数,其中将本质上是二进制的变量向量映射到单个二进制输出。 这也可以用于监督学习。 感知器学习算法的步骤是——

  1. 将所有输入乘以它们的权重 w,其中 w 是可以初始固定或随机化的实数。
  2. 将乘积相加得到加权和,∑ wj xj
  3. 一旦获得输入的加权和,就应用激活函数来确定加权和是否大于特定阈值,具体取决于所应用的激活函数。 根据阈值条件,输出被分配为 1 或 0。 这里的值“-threshold”也指术语偏差,b。

通过这种方式,感知器学习算法可用于激发(值 =1)存在于当今设计和开发的神经网络中的神经元。 感知器学习算法的另一种表示是——

f(x) = 1,如果 ∑ wj xj + b ≥ 0

0,如果 ∑ wj xj + b < 0

尽管感知器现在没有被广泛使用,但它仍然是神经网络中的核心概念之一。 在进一步的研究中,可以理解,即使是一个感知器中权重或偏差的微小变化也可能将输出从 1 极大地改变为 0,反之亦然。 这是感知器的主要缺点之一。 因此,开发了更复杂的激活函数,例如 ReLU、Sigmoid 函数,它们仅在人工神经元的权重和偏差中引入适度的变化。

资源

卷积神经网络

卷积神经网络是一种深度学习算法,它将图像作为输入,为图像的各个部分分配各种权重和偏差,使它们彼此可区分。 一旦它们变得可微,使用各种激活函数,卷积神经网络模型可以在图像处理领域执行多项任务,包括图像识别、图像分类、对象和人脸检测等。

卷积神经网络模型的基础是它接收输入图像。 输入图像可以被标记(例如猫、狗、狮子等)或未标记。 根据这一点,深度学习算法分为两种类型,即图像被标记的监督算法和图像没有被赋予任何特定标签的无监督算法。

对于计算机来说,输入图像被视为像素阵列,更常见的是矩阵形式。 图像大多采用 hxwxd 形式(其中 h = 高度,w = 宽度,d = 尺寸)。 例如,大小为 16 x 16 x 3 的矩阵数组的图像表示 RGB 图像(3 代表 RGB 值)。 另一方面,14 x 14 x 1 矩阵阵列的图像表示灰度图像。

资源

卷积神经网络层

如上述卷积神经网络的基本架构所示,CNN 模型由若干层组成,输入图像通过这些层进行预处理以获得输出。 基本上,这些层分为两部分——

  • 前三层包括输入层、卷积层和池化层,作为特征提取工具,从输入模型的图像中提取基本特征。
  • 最后的全连接层和输出层利用特征提取层的输出,并根据提取的特征预测图像的类别。

第一层是输入层,其中图像以矩阵数组的形式输入卷积神经网络模型,即 32 x 32 x 3,其中 3 表示图像是具有相等高度和宽度的 RGB 图像32 像素。 然后,这些输入图像通过卷积层执行卷积的数学运算。

输入图像与另一个称为内核或滤波器的方阵进行卷积。 通过在输入图像的像素上一一滑动内核,我们获得称为特征图的输出图像,它提供有关图像的基本级别特征(例如边缘和线条)的信息。

卷积层之后是池化层,其目的是减小特征图的大小以降低计算成本。 这是通过几种类型的池来完成的,例如 Max Pooling、Average Pooling 和 Sum Pooling。

连接(FC) 层是卷积神经网络模型的倒数第二层,其中层被展平并馈送到 FC 层。 在这里,通过使用激活函数,如 Sigmoid、ReLU 和 tanH 函数,标签预测发生并在最终输出层中给出

CNN 的不足之处

由于卷积神经网络在视觉图像数据中有如此多的有用应用,CNN 有一个小缺点,即它们不能很好地处理一系列图像(视频),并且无法解释时间信息和文本块。

为了处理诸如句子之类的时间或顺序数据,我们需要从过去数据和序列中的未来数据中学习的算法。 幸运的是,循环神经网络就是这样做的。

递归神经网络

循环神经网络是旨在解释时间或顺序信息的网络。 RNN 使用序列中的其他数据点来做出更好的预测。 他们通过接收输入并重用序列中先前节点或后续节点的激活来影响输出来做到这一点。

资源

由于它们的内部记忆,循环神经网络可以记住重要的细节,例如它们收到的输入,这使得它们能够非常精确地预测接下来会发生什么。 因此,它们是时序数据(如时间序列、语音、文本、音频、视频等)的首选算法。 与其他算法相比,循环神经网络可以对序列及其上下文形成更深入的理解。

循环神经网络如何工作?

理解循环神经网络工作的基础与卷积神经网络相同,即简单的前馈神经网络,也称为感知器。 此外,在循环神经网络中,上一步的输出作为当前步骤的输入。 在大多数神经网络中,输出通常独立于输入,反之亦然,这是 RNN 与其他神经网络的基本区别。

资源

因此,RNN 有两个输入:现在和最近的过去。 这很重要,因为数据序列包含有关接下来会发生什么的关键信息,这就是为什么 RNN 可以做其他算法做不到的事情的原因。 循环神经网络的主要和最重要的特征是隐藏状态,它可以记住有关序列的一些信息。

循环神经网络有一个内存,可以存储有关已计算内容的所有信息。 通过对每个输入使用相同的参数并对所有输入或隐藏层执行相同的任务,可以降低参数的复杂性。

CNN和RNN之间的区别

卷积神经网络递归神经网络
在深度学习中,卷积神经网络(CNN 或 ConvNet)是一类深度神经网络,最常用于分析视觉图像。 循环神经网络 (RNN) 是一类人工神经网络,其中节点之间的连接沿时间序列形成有向图。
它适用于像图像这样的空间数据。 RNN 用于时间数据,也称为顺序数据。
CNN 是一种前馈人工神经网络,具有多层感知器的变体,旨在使用最少的预处理。 与前馈神经网络不同,RNN 可以使用其内部存储器来处理任意输入序列。
CNN被认为比RNN更强大。 与 CNN 相比,RNN 包含较少的功能兼容性。
该 CNN 接受固定大小的输入并生成固定大小的输出。 RNN 可以处理任意输入/输出长度。
CNN 是图像和视频处理的理想选择。 RNN 是文本和语音分析的理想选择。
应用包括图像识别、图像分类、医学图像分析、人脸检测和计算机视觉。 应用包括文本翻译、自然语言处理、语言翻译、情感分析和语音分析。

结论

因此,在这篇关于两种最流行的神经网络类型——卷积神经网络和循环神经网络之间的区别的文章中,我们了解了神经网络的基本结构,以及 CNN 和 RNN 的基础知识,最后总结了一个将两者与它们在现实世界中的应用进行简要比较。

如果您有兴趣了解有关机器学习的更多信息,请查看 IIIT-B 和 upGrad 的机器学习和 AI 执行 PG 计划,该计划专为工作专业人士设计,提供 450 多个小时的严格培训、30 多个案例研究和作业、IIIT -B 校友身份,5 个以上实用的实践顶点项目和顶级公司的工作协助。

为什么CNN比RNN快?

CNN 比 RNN 更快,因为它们旨在处理图像,而 RNN 旨在处理文本。 虽然 RNN 可以被训练来处理图像,但它们仍然很难将更接近的对比特征分开。 例如,如果你有一张有眼睛、鼻子和嘴巴的脸,RNN 很难确定首先显示哪个特征。 CNN 使用点网格,通过使用算法,可以训练它们识别形状和模式。 CNN 在图像分类方面优于 RNN; 它们比 RNN 更快,因为它们计算简单,并且更擅长对图像进行排序。

RNN 是做什么用的?

循环神经网络 (RNN) 是一类人工神经网络,其中单元之间的连接形成有向循环。 一个单元的输出变成另一个单元的输入,以此类推,就像一个神经元的输出变成另一个神经元的输入一样。 RNN 已成功用于执行复杂的任务,例如语音识别和机器翻译,这些任务很难用标准方法执行。

什么是 RNN,它与前馈神经网络有何不同?

循环神经网络 (RNN) 是一种用于处理顺序数据的神经网络。 循环神经网络由一个输入层、一个或多个隐藏层和一个输出层组成。 隐藏层旨在学习输入数据的内部表示,然后将其作为外部表示呈现给输出层。 RNN 在反向传播的帮助下进行训练。 RNN 经常与前馈神经网络 (FNN) 进行比较。 虽然 RNN 和 FNN 都可以学习数据的内部表示,但 RNN 能够学习 FNN 无法做到的长期依赖关系。