机器学习——循环神经网络(RNN)

相关文章链接:

        机器学习——人工神经网络(NN)

        机器学习——卷积神经网络(CNN)

        机器学习——长短期记忆(LSTM)

        机器学习——决策树(decision tree)

        机器学习——随机森林(Random forest)

        机器学习——梯度提升决策树(GBDT)

        机器学习——XGboost模型

一、概述

循环神经网络(Recurrent Neural Network, RNN)一般是指时间递归神经网络而非结构递归神经网络 (Recursive Neural Network),其主要用于对序列数据进行建模。

RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。理论上,RNN能够对任何长度的序列数据进行处理。但是在实践中,为了降低复杂性往往假设当前的状态只与前面的几个状态相关。

二、与传统神经网络的区别

传统神经网络(包括CNN),输入和输出都是互相独立的。如图像上的猫和狗是分隔开的,但有些任务,后续的输出和之前的内容是相关的。例如:我是中国人,我的母语是____。这是一道填空题,需要依赖之前的输入。

RNN引入“记忆”的概念,也就是输出需要依赖之前的输入序列,并把关键输入记住。循环2字来源于其每个元素都执行相同的任务。它并刚性地记忆所有固定长度的序列,而是通过隐藏状态来存储之前时间步的信息

RNN跟传统神经网络最大的区别在于每次都会将前一次的输出结果,带到下一次的隐藏层中,一起训练。如下图所示:

机器学习——循环神经网络(RNN)_第1张图片

RNN运行原理

三、基本原理

基本循环神经网络结构:一个输入层、一个隐藏层和一个输出层。

机器学习——循环神经网络(RNN)_第2张图片

循环网络结构图

x是输入层的值。s表示隐藏层的值,U是输入层到隐藏层的权重矩阵,O是输出层的值。V是隐藏层到输出层的权重矩阵。循环神经网络的隐藏层的值s不仅仅取决于当前这次的输入x,还取决于上一次隐藏层的值s。权重矩阵W就是隐藏层上一次的值作为这一次的输入的权重。

四、RNN的多种结构

RNN有五种结构。机器学习——循环神经网络(RNN)_第3张图片

RNN的五种结构

(1)one to one:

机器学习——循环神经网络(RNN)_第4张图片

最基本的单层网络,输入是x,经过变换Wx+b和激活函数f得到输出y。

 (2)one to n:

机器学习——循环神经网络(RNN)_第5张图片

(3)n to n:

机器学习——循环神经网络(RNN)_第6张图片

 (4)n to one:

机器学习——循环神经网络(RNN)_第7张图片

(5)n to m:

机器学习——循环神经网络(RNN)_第8张图片 

五、应用领域

RNN常见应用有:

  1. 机器翻译:寻找相同的意义序列在不同语言中的表达。
  2. 诗歌生成:基于一个主题按照一定的规律输出有逻辑的词语序列。
  3. 生成图像描述:改变两端的信息类型,输入图片,输出句子。
  4. 语言识别、语音生成:声音信号按时间顺序组成的序列。
  5. 股票预测等。

六、缺陷

(1)RNN是一种死板的逻辑,越晚的输入影响越大,越早的输入影响越小,且无法改变这个逻辑。短期的记忆影响较大,但是长期的记忆影响就很小,这就是RNN存在的短期记忆问题,无法处理很长的输入序列。

(2)训练RNN需要投入极大的成本。

由于RNN的短期记忆问题,后来又出现了基于RNN的优化算法—LSTM。

你可能感兴趣的:(rnn,神经网络,深度学习,机器学习,人工智能)