飞道的博客

一篇文章“简单”认识《循环神经网络》

737人阅读  评论(0)

一、概念了解

前言

循环神经网络Recurrent Neural Networks,RNN),是一种反馈网络,模拟“人脑记忆功能”,常用于语言识别、机器翻译、视频分析、生成图像描述等。

循环神经网络通过使用带自反馈的神经元,使得网络的输出不仅和当前的输入有关,还和上一时刻的输出相关,于是在处理任意长度的时序数据时,就具有短期记忆能力。

RNN能有效处理序列特性的数据,它能挖掘数据中的时序信息以及语义信息

序列特性:符合时间顺序,逻辑顺序,或者其它顺序

  1. 循环神经网络的隐藏层之间的结点是有连接的,隐藏层的输入不仅包括输入层的输出,还包括上一时刻隐藏层的输出。
  2. 即:网络对前面信息进行记忆,并应用于当前输出的计算中;当前神经元的输出与当前输入、和之前输出有关。

 

循环体

由输入层、一个隐藏层和一个输出层组成

特征:

  1. 网络对前面信息进行记忆,并应用于当前输出的计算中
  2. 当前输出与当前输入、和之前输出有关
  3. 隐藏层之间的节点不在无连接而是有连接的;
  4. 隐藏层的输入包括输入层以及上一时刻隐藏层的输出

 

循环神经网络

循环神经网络由循环体堆叠而成,为了方便折叠,循环体有两类输出:隐藏层输出、最终输出。

隐藏层输出:包括各时间步的输出。最终输出:只是最后一个时间步的输出

 

LSTM网络

长短期记忆神经网络(Long short-term memory,LSTM),是RNN的一种,该网络是对简单循环神经网络改进。

LSTM是一种拥有三个“门”结构的特殊网络结构。LSTM结构可以更加有效的决定哪些信息应该被遗忘,哪些信息应该被保留

  • 遗忘门:让循环神经网络”忘记“之前没有用的信息。
  • 输入门:在循环神经网络"忘记"了部分之前的状态后,它还需要从当前的输入补充最新的记忆,这个过程需要”输入门“完成。
  • 输出门:LSTM结构在计算得到新的状态Ct后需要产生当前时刻的输出,这个过程是由”输出门“完成。

LSTM通过它的“门控装置”有效的缓解了梯度消失和爆炸的问题。

 

循环神经网络应用

主要在自然语言处理方向应用;

  • 文档分类和时间序列分析(识别文章的主题)
  • 时间序列对比  (比较两个文档的相关程度)
  • 序列到序列的学习(中文翻译为英文)
  • 情感分析    (推文或电影评论的情感划分为正面或负面)
  • 世间序列预测  (根据最近的天气数据来预测未来天气)

 

二、进一步认识

前言

循环神经网络Recurrent Neural Networks,RNN),是一种反馈网络,模拟“人脑记忆功能”,常用于语言识别、机器翻译、视频分析等。

循环神经网络通过使用带自反馈的神经元,使得网络的输出不仅和当前的输入有关,还和上一时刻的输出相关,于是在处理任意长度的时序数据时,就具有短期记忆能力。

RNN能有效处理序列特性的数据,它能挖掘数据中的时序信息以及语义信息

序列特性:符合时间顺序,逻辑顺序,或者其它顺序

在序列数据中,各元素之间具有一定的相关性;处理序列数据时,不仅要考虑当前时间步的数据,还需要考虑之前时间步的数据。

循环神经网络可以记录各个时间步的输出,并且之间时间步的输出会影响后续时间步的输出,能用来处理序列数据。

 

循环神经网络及其按时间展开后的效果图:

 

循环神经网络的隐藏层之间的结点是有连接的,隐藏层的输入不仅包括输入层的输出,还包括上一时刻隐藏层的输出。

网络对前面信息进行记忆,并应用于当前输出的计算中;当前神经元的输出与当前输入、和之前输出有关。

隐藏层的输入包括输入层以及上一时刻隐藏层的输出。

 

循环体

由输入层、一个隐藏层和一个输出层组成

网络对前面信息进行记忆,并应用于当前输出的计算中;当前输出与当前输入、和之前输出有关。

隐藏层之间的节点不在无连接而是有连接的;隐藏层的输入包括输入层以及上一时刻隐藏层的输出。

 

循环神经网络

循环神经网络由循环体堆叠而成,为了方便折叠,循环体有两类输出:隐藏层输出、最终输出。

隐藏层输出:包括各时间步的输出

最终输出:只是最后一个时间步的输出

循环神经网络及其按时间展开: 

训练算法:RNN通常采用时序反向传播算法(BPTT)。

BPTT的基本原理和BP算法是一样的,分位三步:

  • 1.前向计算每个神经元的输出值;
  • 2.反向计算每个神经元的误差项值,它是误差函数E对神经元j的加权输入的偏导数;
  • 3.计算每个权重的梯度。

最后再用随机梯度下降算法更新权重。

 

输入和输出可能因长度而异,不同类型的 RNN 用于不同的使用案例,如音乐生成、情绪分类和机器翻译。不同类型的 RNN :

1)一对一:

单个输入映射到单个输出;应用:文本生成、词语预测、股市预测。

2)一对多:

单个输入映射到不同的输出值;应用:自动图像标题。

3)多对一:

将一系列输入映射成单个产值;应用:情绪分析。

4)多对多:

任意长度的输入序列映射成任意长度输出序列;应用:聊天机器人。

 

LSTM网络

长短期记忆神经网络(Long short-term memory,LSTM),是RNN的一种,该网络是对简单循环神经网络改进;

循环神经网络的参数学习可以通过随时间反向传播算法来学习,即按照时间的逆序把误差一步步往前传递。而当输入序列比较长时,会产生梯度爆炸或梯度消失问题,这也叫做长期依赖问题。为了解决这个问题,门控机制被引入来改进循环神经网络,也就是长短期记忆网络(LSTM)和门控循环单元(GRU)。

LSTM是一种拥有三个“门”结构的特殊网络结构。LSTM结构可以更加有效的决定哪些信息应该被遗忘,哪些信息应该被保留

遗忘门:让循环神经网络”忘记“之前没有用的信息。遗忘门会根据当前的输入Xt、上一时刻状态Ct-1、上一时刻的输出Ht-1共同决定哪一部分记忆需要被遗忘。

输入门:在循环神经网络"忘记"了部分之前的状态后,它还需要从当前的输入补充最新的记忆,这个过程需要”输入门“完成。输入门会根据Xt、Ct-1、Ht-1决定哪些部分将进入当前时刻的状态Ct。

输出门:LSTM结构在计算得到新的状态Ct后需要产生当前时刻的输出,这个过程是由”输出门“完成。输出门根据最新的状态Ct、上一时刻的输出Ht-1和当前的输入Xt来决定该时刻的输出Ht。

LSTM通过它的“门控装置”有效的缓解了梯度消失和爆炸的问题。

即:

 

循环神经网络应用

主要在自然语言处理方向应用;

  • 文档分类和时间序列分析(识别文章的主题)
  • 时间序列对比     (比较两个文档的相关程度)
  • 序列到序列的学习   (中文翻译为英文)
  • 情感分析       (推文或电影评论的情感划分为正面或负面)
  • 世间序列预测     (根据最近的天气数据来预测未来天气)

 

参考:

1)西安电子科技大学《人工智能导论》课程;

2)北京交通大学《图像处理与机器学习》课程;

3)https://zhuanlan.zhihu.com/p/123211148

4)https://blog.csdn.net/hellowuxia/article/details/86529575

5)https://www.cnblogs.com/Luv-GEM/p/10703906.html

6)https://www.ibm.com/cloud/learn/recurrent-neural-networks

 

如有错误,欢迎指出;欢迎交流~

如果大家想实践一下,可看看Tensorflow官方的案例:https://www.tensorflow.org/guide/keras/rnn

 

温故而知新

一篇文章“简单”认识《人工神经网络》

人工神经网络 (Artificial Neural Network, ANN),由人工神经元构成的网络,模拟人类的大脑;它模拟生物过程以反映人脑某些特征的计算结构。

神经元及其突触是神经网络的基本器件;模拟生物网络首先模拟生物神经元。

 

一篇文章“简单”认识《卷积神经网络》

卷积神经网络(Convolutional Neural Network, CNN),在计算机视觉中得到了广泛的应用。

卷积神经网络通过卷积层池化层的叠加实现对输入数据的特征提取,最后连接全连接层实现分类。

卷积神经网络是前馈网络;前馈神经网络是一个静态网络,信息的传递是单向的,网络的输出只依赖于当前的输入,不具备记忆能力。

它适合静态数据,常用于计算机视觉,处理图像问题。

 

 


转载:https://blog.csdn.net/qq_41204464/article/details/115532353
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场