CNN与RNN的区别

从应用方面上来看,我了解到的CNN用到做图像识别比较多,而RNN在做到语言处理多一点,如果拿来比喻的话,CNN如同眼睛一样,正是目前机器用来识别对象的图像处理器。相应地,RNN则是用于解析语言模式的数学引擎,就像耳朵和嘴巴。

对于CNN神经网络,有一个基础的假设——人类的视觉总是会关注视线内特征最明显的点
RNN的假设——事物的发展是按照时间序列展开的,即前一刻发生的事物会对未来的事情的发展产生影响。

CNN

人眼对明显的特征最敏感,人眼解析食物的时候,相当于用滤镜扫过图像。CNN正是利用了这样的一种特性,来扫描并记录图片信息。
首先生成一个滤镜,并对图像整体进行扫描过滤,通过这个滤镜filter解析,得到很多个扫描后的图片分支结果。
在这里插入图片描述
上图中的convolutions 就是在进行图像叠加滤镜扫描,得到一系列结果的工作。

接下来,在得到一系列卷积之后的结果后,我们进行特征的提取,也就是上图中的subsampling。
在这里插入图片描述
这里有个max pool的概念,也就是提取每个小特征当中,值最大的那个。(值越大说明特征越明显,越符合上文说的人眼特性)

通过不停的特征抽取,得到最后的结果,如果这个结果与我们的预期不符,则计算误差值,反馈给每一层的卷积网络,进行微调整,再重复上面的步骤。

CNN过程中,对于边界值的处理。

第一种是在边界之外填充0,以保证滤镜可以像多次扫过中间值一样的扫过边界值。但是这样做容易产生噪声(后添加进去的值)。

第二种是边界停止,即滤镜边缘触碰到图片边界就认为这一侧过滤结束。

RNN

RNN的假设——事物的发展是按照时间序列展开的,即前一刻发生的事物会对未来的事情的发展产生影响。

所以,在处理过程中,每一刻的输出都是带着之前输出值加权之后的结果。
在这里插入图片描述
公式表示t时刻的输出:

在这里插入图片描述

st为当前时刻的输出,xt为当前时刻的输入,U为当前时刻输入值的加权计算,st-1为上一时刻的输出,W为上一时刻输出的权重。

通过这样的计算方式,我们可以认为,当前的结果包含之前的结果,或者说受到之前结果的影响。

但是,RNN对于短期记忆的模型效果很好,却无法进行长期记忆的输出,因为权重累加过于庞大,可能导致结果失真、运算效率低下。

所以LSTM应运而生。
在这里插入图片描述
整个单元内主要包含异或门和与门。

1 异或 1 = 0 认为是相同的信息,舍弃

1 与 0 = 1 将不同的信息叠加

通过这两部运算就能减少我们的数据量,将重复信息遗忘,将未知信息记录下来,将结果更新之后,再输出。

————————————
版权声明:本文为CSDN博主「高斯拟合的周萌萌」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_35227692/article/details/79223536

  • 17
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值