赞
踩
卷积神经网络 (CNN) 和普通的算法大部分都是输入和输出的一一对应,也就是一个输入得到一个输出。不同的输入之间是没有联系的。
但是在某些场景中,一个输入就不够了!为了填好下面的空,取前面任何一个词都不合适,我们不但需要知道前面所有的词,还需要知道词之间的顺序。
这种需要处理「序列数据 – 一串相互依赖的数据流」的场景就需要使用 RNN 来解决了。
传统神经网络的结构比较简单:输入层 – 隐藏层 – 输出层。每一个时间步都会接收上一个时间步的隐层状态输入,如下图所示:
我们按照顺序,将“time”输入到 RNN 网络,得到输出「02」。这个过程我们可以看到,输入 “time” 的时候,前面 “what” 的输出也产生了影响(隐藏层中有一半是黑色的),因此 RNN 可以处理序列问题。
RNN多个时间步展如下:
计算公式:
RNN 的缺点:
通过隐藏层中的颜色分布可以看出短期的记忆影响较大(如橙色区域),但是长期的记忆影响就很小(如黑色和绿色区域),这就是 RNN 存在的短期记忆问题,无法处理很长的输入序列,并且训练 RNN 需要投入极大的成本。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。