循环神经网络rnn与长短时记忆神经网络简述(07-2)

RNN

循环神经网络主要适合处理有连续特征的数据(序列数据),比如语音、文本等

   对于自然语言处理来讲,通常我们会首先对一段话进行分词,将分好后的词$X_0,X_1,X_2...X_t$依次输入其中,前面的每个词经过rnn中的A(类似于bp神经网络结构)后,都会对A产生影响,从而对后面词的输出产生影响,来完成对一整段连续数据的处理,例如机器翻译,输出这段文本的分类等。

  rnn在A向后传播的时候,后面词对输出的影响会逐渐减弱,这样就会导致只有前面的词对结果的影响比较大,针对这种缺陷,大神们又推出了rnn的变种LSTM(长短时记忆网络)

 LSTM

        

  上图左边是lstm的基本神经元结构,信号从图的下方输入,从图的上方输出,关键的是 他的三个门,输入门(input Gate)、遗忘门(Forget Gate)、输出门(Output Gate),这三个门的参数初始值都是随机初始化的,

通过带标签的数据进行训练,最终得到相应的值,比如lstm模型中某个神经元的输入门是0.133221,遗忘门是0.233345,输出门是0.89893

扫描二维码关注公众号,回复: 9837642 查看本文章

  在看上图右边,输入数据与各门相乘再向后传播,说实话我没有很清晰的理顺数据传输的过程,然后我又去看了下吴恩达老师的lstm的讲解,很遗憾我还是不能很清晰的理顺,这个之后还需再找些其他的详细资料看一下。

  上图是lstm的整体数据处理的过程,通过各种门可以非常好的控制什么信号可以输入、什么信号不能输入、什么时候能让他输出(序列数据时许很重要,如机器翻译)还有在隐藏层里的数据在向后传的时候让他忘记还是不忘记。

猜你喜欢

转载自www.cnblogs.com/go-ahead-wsg/p/12497806.html