RNN vs CNN的高水平


53

我一直在考虑递归神经网络(RNN)及其变种以及卷积神经网络(CNN)及其变种。

这两点是否可以公平地说:

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

如果有人想指出这些陈述中的任何错误之处,我将不胜感激。我的目标是在CNN和RNN的使用上建立更清晰的基础。

Answers:


42

CNN将学习识别跨空间的模式。因此,正如您所说,CNN将学会识别图像的组成部分(例如,直线,曲线等),然后学会组合这些组成部分以识别较大的结构(例如,面孔,物体等)。

您可以说,以一种非常普遍的方式,RNN将同样学习跨时间识别模式。因此,经过训练可以翻译文本的RNN可能会了解到,如果在“狗”之后加上“热”一词,则应该以不同的方式进行翻译。

但是,两种神经网络代表这些模式的机制是不同的。对于CNN,您要在图像的所有不同子字段上寻找相同的图案。对于RNN,(在最简单的情况下)您需要将上一步中的隐藏层作为下一步的附加输入。尽管RNN在此过程中建立内存,但它并没有以与CNN在空间的不同区域内寻找相同模式的相同方式在不同的时间片上寻找相同的模式。

我还应该注意,当我在这里说“时间”和“空间”时,不要太过直白。例如,您可以在单个图像上运行RNN以进行图像字幕,而“时间”的含义将仅仅是处理图像不同部分的顺序。因此,最初处理的对象将通知以后处理的对象的标题。


3
您可以从karpathy.github.io/assets/rnn/diags.jpeg中获得关于RNN模型差异的很好的直觉-大量复制的图形。CNN与MLP和其他非递归模型一起仅实现一对一模型。
尼尔·斯莱特

@NeilSlater我什至知道该图像的原始文章,但是从中无法提取任何有用的信息。请,您能详细说明从图像中学到的东西吗?
Hi-Angel

2
@ Hi-Angel:图像可视化了序列和可以由模型映射的单个实体之间的可能关系。如果您已经很好地理解了排列,那么您可能不会从中得到任何信息。该图片出现在文章中的原因是它展示了RNN的相对灵活性:RNN可以应用于显示的所有不同类型的问题(例如,它可以用于与第4项匹配的语言翻译问题),而前馈网络仅适用于与第一个图像匹配的问题。
尼尔·斯莱特


23

CNN和RNN的区别如下:

CNN:

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

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

  3. CNN在其神经元之间使用连通性模式是受到动物视觉皮层组织的启发的,动物视皮层的排列方式使它们对覆盖视野的重叠区域做出反应。

  4. CNN非常适合图像和视频处理。

RNN:

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

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

  3. 递归神经网络使用时间序列信息(即我最后讲的内容将影响我接下来要讲的内容。)

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



没有密集层的CNN可以采用任意大小的输入。
米凯尔·鲁森

1

我认为这两个陈述是不正确的,因为CNN不会将组件分解为子组件,而是对所有重叠的子组件(重复字段)使用共享权重以找到相同的模式。它不是分而治之的算法。

在一般情况下,CNN倾向于提取局部和位置不变(与位置无关)特征,而RNN倾向于在整个时间范围内找到区分模式,即使它们很远也是如此。

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

因此,当结果是由整个句子或长范围的语义相关性确定为示于CNN不能有效纸其中作者比较了NLP TAKS两个architechrures。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.