李博Garvin的专栏

阿里云机器学习PD

一组图诠释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,比如之前的一个文章到的,通过周杰伦的歌词数据,模仿写出一首周杰伦风格的歌词,这种场景的输入和输出的长度都是不定的。


作者微信公众号:凡人机器学习


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gshengod/article/details/78362575
个人分类: 机器学习
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

一组图诠释CNN及RNN的区别

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭