RNN(Recurrent Neural Networks 循环神经网络) 戳进来就赚到了!

前言

    CNN模型主要用到人的视觉中枢,但其有一劣势,无论是人类的视觉神经还是听觉神经,所接受到的都是一个连续的序列,使用CNN相当于割裂了前后的联系。
 CNN,训练样本输入输出确定,(输入连续的序列,长短不一:一段连续的手写文字),比较难切分一个独立样本:
			【我是中国人,我的母语是___。】

RNN

	RNN是一种用来处理和预测序列数据的特殊的神经网络,这种神经网络的功能与人的思考习惯类似。RNN是为了**解决文本中当前输出与当前输入和前一时刻
	输出的关系而诞生的神经网络**。主要应用在语音识别,机器翻译,中文分词和词性标注等序列化数据领域,并在该领域取得了良好的成果。经典的RNN结
	构由输入层,隐含层和输出层组成。RNN可以学习文本上下文的语义信息,抽取到的特征信息可以作为其他神经网络或其他模型的输入,也可以放入softmax
	函数直接进行情感极性的
分类。

RNN在t时刻的展开图如图1所示。

在这里插入图片描述
在这里插入图片描述 在全连接神经网络或卷积神经网络中,网络结果都是从输入层到隐含层再到输出层,层与层之间是全连接或部分连接的,但每层之间的结点是无连接的
考虑这样一个问题,如果要预测句子的下一个单词是什么,一般需要用到当前单词以及前面的单词,因为句子中前后单词并不是独立的,比如,当前单词是“很”,前一个单词是“天空”,那么下一个单词很大概率是“蓝”。
循环神经网络的来源就是为了刻画一个序列当前的输出与之前信息的关系。

在这里插入图片描述

     从网络结果上来说,RNN会记忆之前的信息,并利用之前的信息影响后面的输出。也就是说,RNN的隐藏层之间的结点是有连接的,隐藏层的输入不仅包括
     输入层的输出X(t),还包含上一时刻隐藏层的输出h(t-1)。



   1)x(t)代表在序列索引号t时训练样本的输入。同样的,x(t−1)和x(t+1)代表在序列索引号t−1和t+1时训练样本的输入。
  2)h(t)代表在序列索引号t时模型的隐藏状态。h(t)由x(t)和h(t−1)共同决定。
  3)o(t)代表在序列索引号t时模型的输出。o(t)只由模型当前的隐藏状态h(t)决定。
  4)L(t)代表在序列索引号t时模型的损失函数。
  5)y(t)代表在序列索引号t时训练样本序列的真实输出。
  6)U,W,V,这三个矩阵是我们的模型的线性关系参数,它在整个RNN网络中是共享的,这点和DNN很不相同。 也正因为是共享了,它体现了RNN的模型的“循
  环反馈”的思想。 

长短期记忆神经 LSTM

RNN 基本的算法思想是随时间反向传播算法,但在随时间反向传播过程中,跨时间步和长时间学习使后续节点的梯度往往不能按照初值传到最初的位置,容易出现梯度弥散问题。
为了克服梯度弥散的缺点,RNN的众多变体被提出,其中 LSTM 就是 RNN 变体中一种广泛应用的经典变体。LSTM 单个神经 元的具体结构如图 2 所示。

在这里插入图片描述
LSTM 的具体工作原理可以通过以下几个公式进行理解:

在这里插入图片描述

从图 2 和公式可以看出,LSTM 由输入门、记忆单元、输出门和遗忘门四部分组成。其中, t x 表示 t 时刻的输入向量, ht-1 表示上一个时刻的输出向量, {W f ,W i W c ,W o } 表示各个相应部分 的权重系数矩阵, { bf,bi,bc ,bo } 表示各个相应部分的偏移向量, sigmoid 表示激活函数,
式(1)计算的是遗忘门的值,看有多少 信息可以进行保留,由式(1)的形式可以看出 t 时刻遗忘门的值 由 t x 和 ht-1 共同决定;
式(2)计算的是用 sigmoid 函数去激活的 在这里插入图片描述 细胞状态的值,
式(3)计算的是由 ht-1 和 t x 决定的候选记忆单元的值;
式(4)计算的是记忆状态单元通过 Ct-1 和 Ct 对 tf 和 ti 的调节作用后的值;
式(5)(6)计算的是 t 时刻由 ht-1 和 t x 决 定的经过内部循环和更新的 LSTM 最后的隐层状态的输出 th 。
2、----I grow up in france …I speak fluent france
But,RNN 如果序列过长会导致优化时出现梯度消散的问题
LSTM:Long Short Term Memory 网络—— 一般就叫做 LSTM ——是一种特殊的 RNN 类型,可以学习长期依赖信息
LSTM 通过刻意的设计来避免长期依赖问题。所有 RNN 都具有一种重复神经网络模块的链式的形式。在标准的 RNN 中,这个重复的模块只有一个非常简单的结构,例如一个 tanh 层。
LSTM 同样是这样的结构,但是重复的模块拥有一个不同的结构。不同于 单一神经网络层,这里是有四个,以一种非常特殊的方式进行交互。LSTM是一种拥有三个“门”结构的特殊网络结构。
在这里插入图片描述

之所以该结构叫做门是因为使用sigmod作为激活函数的全连接神经网络层会输出一个0到1 之间的值,描述当前输入有多少信息量可以通过这个结构,于是这个结构的功能就类似于一扇门,当门打开时(sigmod输出为1时),全部信息都可以通过;当门关上时(sigmod输出为0),任何信息都无法通过。
细胞层:—信息交互存放cell
遗忘门:–‘喜新厌旧’【主语更替,产出一个概率值】
输入门:–
输出门:–

 1)更新遗忘门输出:f(t)=σ(Wfh(t−1)+Ufx(t)+bf)f(t)=σ(Wfh(t−1)+Ufx(t)+bf)    
 2)更新输入门两部分输出:i(t)=σ(Wih(t−1)+Uix(t)+bi)i(t)=σ(Wih(t−1)+Uix(t)+bi)a(t)=tanh(Wah(t−1)+Uax(t)+ba)a(t)=tanh(Wah(t−1)+Uax(t)+ba)    
 3)更新细胞状态:C(t)=C(t−1)⊙f(t)+i(t)⊙a(t)C(t)=C(t−1)⊙f(t)+i(t)⊙a(t)    
 4)更新输出门输出:o(t)=σ(Woh(t−1)+Uox(t)+bo)o(t)=σ(Woh(t−1)+Uox(t)+bo)h(t)=o(t)⊙tanh(C(t))h(t)=o(t)⊙tanh(C(t))    
 5)更新当前序列索引预测输出:y^(t)=σ(Vh(t)+c)

没有允许不得转载!!!

猜你喜欢

转载自blog.csdn.net/qq_44803965/article/details/88687771
今日推荐