Hello,又是一个分享的日子,今天博主给大家分享的是深度学习的RNN循环神经网络与RNN结构变种LSTM长短期记忆网络。
本文内容概要:
-
RNN原理
-
RNN的各种结构以及应用
-
RNN的Seq2Seq结构
-
加入attention机制的Seq2Seq结构
-
LSTM原理
RNN循环神经网络
原理
简单BP神经网络结构
简单RNN结构
首先我们来对比简单的BP和RNN的结构有啥异同,我们会发现RNN比BP多了参数h0,因此RNN的神经元公式会比BP神经元多一项(f为激励函数),如下图。至于训练过程,和BP神经网络并没有区别,都是是基于梯度下降的方法去不断缩小预测值与真实值之间差值的过程。
已经关注这个公号比较久的小伙伴应该也知道博主之前写了一篇深度学习开端---BP神经网络,这是深度学习的开端课程,几乎所有的神经网络训练过程的数学核心原理(梯度下降)都与BP神经网络类似,RNN也不例外,因此还不熟悉的小伙伴可以花上几分钟去翻阅一下。
上面只是演示了简单的RNN结构,它的隐藏层h与输出y相同,我们常用的RNN结构当然不会这么简单,因此我们对上面的RNN结构进一步的拓展,如下图。这是一个经典的多输入单输出的结构。
多输入单输出的RNN结构
此时输出层的神经元公式为
由结构和公式可知,整一个RNN结构共享1组(U, W, b),这是RNN结构最重要的特性,且每一个隐藏层神经元h的计算公式是由当前输入X与上一个隐藏层神经元的输出组成。
这里为了方便起见,博主只是画了序列长度为3的RNN结构,大家可以按照这样的结构,可以将整个RNN结构无限扩大,最后接一个分类输出层或者回归输出层即可。
优势
到这里,RNN循环神经网络的原理也就讲完了,那么相比于BP神经网络和CNN卷积神经网络,RNN的优势又在哪呢?我们可以看到上面的RNN结构,输入是可以多个且有序的,它可以模拟人类阅读的顺序去读取文本或者别的序列化数据,且通过隐藏层神经元的编码,上一个隐藏层神经元的信息可以传递到下一个隐藏层神经元,因而形成一定的记忆能力,能够更好地