USharing
开放博客

一组图诠释CNN及RNN的区别

CNN和RNN是深度学习中运用最多的两种深度学习网络结构,可能有些同学还不太清楚这两种网络的区别,今天刚好看到了一张图可以比较清楚的解释CNN及RNN的区别。

首先,CNN对于输入数据的维度约束是比较严重的,比如用CNN训练一个图像识别的model,训练的图片像素是48*48的,那么在预测的时候,也需要把所有的预测图片转成48*48。这个约束在图像识别方面可能表现的并不是那么明显,人们可以说:大不了预测的时候我做个图片大小转换不就得了?我们再思考另一个场景,比如用CNN去做一个智能问答系统,CNN会需要所有的问答数据都是固定的长度,这就很可怕了,这种模型会让问答变成对对子,必须每句话长短固定。而RNN没有这种约束。

另外,RNN更多的考虑了神经元之间的联系,比如我们训练一个翻译系统,那么对于一个短语的翻译一定要考虑前因后果,这就需要模型对于数据输入的前后因素都要考虑,CNN并不具备这样的特点。

现在再用一张图表示CNN和RNN的具体应用:

 

one to one:表示的是CNN网络的场景,从固定的输入到固定的输出

one to many:RNN的场景,序列输出,有点像看图说话,例如固定了输入的图片,然后输出一段序列描述这个图的意义

many to one:RNN的场景,序列输入,比如我们做语义情感分析,输入一串不定长度的话,返回情绪

many to many:RNN的场景,常见的sequence to sequence,比如之前的一个文章到的,通过周杰伦的歌词数据,模仿写出一首周杰伦风格的歌词,这种场景的输入和输出的长度都是不定的。

赞(0) 打赏
未经允许不得转载:USharing » 一组图诠释CNN及RNN的区别

相关推荐

  • 暂无文章

觉得文章有用就打赏一下文章作者

微信扫一扫打赏