高级别的 RNN 与 CNN

数据挖掘 机器学习 神经网络 初学者
2021-09-27 20:11:29

我一直在思考循环神经网络 (RNN) 及其变体和卷积神经网络 (CNN) 及其变体。

这两点是否公平地说:

  • 使用 CNN 将一个组件(例如图像)分解为子组件(例如图像中的对象,例如图像中对象的轮廓等)
  • 使用 RNN 创建子组件的组合(图像字幕、文本生成、语言翻译等)

如果有人想指出这些陈述中的任何不准确之处,我将不胜感激。我的目标是更清楚地了解 CNN 和 RNN 的使用。

4个回答

CNN 将学习识别跨空间的模式。因此,正如您所说,CNN 将学习识别图像的组件(例如,线条、曲线等),然后学习组合这些组件以识别更大的结构(例如,面部、对象等)。

你可以用一种非常笼统的方式说,RNN 将类似地学习识别跨时间的模式。因此,经过训练以翻译文本的 RNN 可能会了解到,如果“dog”前面带有“hot”一词,则应该以不同的方式翻译。

然而,这两种 NN 表示这些模式的机制是不同的。对于 CNN,您要在图像的所有不同子字段上寻找相同的模式。对于 RNN,您(在最简单的情况下)将上一步的隐藏层作为附加输入提供给下一步。虽然 RNN 在这个过程中建立了记忆,但它不会像 CNN 在不同的空间区域中寻找相同的模式那样在不同的时间片上寻找相同的模式。

我还应该注意,当我在这里说“时间”和“空间”时,不应该太从字面上理解。例如,您可以在单个图像上运行 RNN 用于图像字幕,“时间”的含义只是处理图像不同部分的顺序。因此,最初处理的对象将通知后来处理的对象的字幕。

CNN和RNN的区别如下:

美国有线电视新闻网:

  1. CNN 采用固定大小的输入并生成固定大小的输出。

  2. CNN 是一种前馈人工神经网络 - 是多层感知器的变体,旨在使用最少的预处理。

  3. CNN 使用其神经元之间的连接模式,其灵感来自动物视觉皮层的组织,其单个神经元的排列方式使得它们对重叠的视野区域做出反应。

  4. CNN 是图像和视频处理的理想选择。

循环神经网络:

  1. RNN 可以处理任意输入/输出长度。

  2. 与前馈神经网络不同,RNN 可以使用其内部存储器来处理任意输入序列。

  3. 循环神经网络使用时间序列信息(即我最后说的内容会影响我接下来说的内容。)

  4. RNN 是文本和语音分析的理想选择。

从一般的角度来看,CNN 不会将组件分解为子组件,而是在所有重叠的子组件(感受野)上使用共享权重来找到相同的模式。它不是分而治之的算法。

在一般情况下,CNN 倾向于提取局部和位置不变(与其位置无关)的特征,而 RNN 倾向于在时间上找到不同的模式,即使它们很远。

例如,在将两者都应用于自然语言的情况下,CNN 擅长提取局部和位置不变的特征,但它不能捕获长范围的语义依赖。它只考虑本地关键短语。

因此,当结果由整个句子或远程语义依赖决定时,CNN 并不有效,如本文所示,作者比较了 NLP 上的两种架构。

如果我要告诉你,两者都是基于同一个概念,那就是权重共享最好以这种方式考虑它们。

在 CNN 中,我们尝试在整个输入中找到相似的模式,可以是图像、文本或其他内容。这可以通过滑动相同的过滤器来完成,该过滤器在扫描图像时其参数不会改变以找到相似的模式。由于图像可以有多种模式,我们将这个想法与多个过滤器一起使用。

另一方面,在 RNN 中,我们希望在整个序列中找到相似的模式。例如,无论你在句子中看到一只猫,它仍然是一只猫。因此,您在哪里看到它并不重要。RNN 还采用了权重共享的思想。他们使用一个网络分别面对序列中的每个输入,以查看是否观察到类似的模式。但是,CNN 和 RNN 之间存在差异。RNN 的输入是一个序列,顺序很重要因此,在每个时间步,RNN 都会遇到该时间步的输入,并且它还接收到一些过去的信息。

你可以看到这些直觉与你的不同。