首页 > 编程知识 正文

奈奎斯特图与伯德图对应关系,波特图

时间:2023-05-03 12:04:53 阅读:43697 作者:1243

目录

1前言

1.1 RNN回忆和概述

1.2 LSTM回忆和概述

1.3循环神经网络的几种输入输出结构

2图解LSTM内部结构和数据流

2.1结构图简洁

2.2 LSTM原理分析图

3图解BiLSTM及其应用

3.1看楼的LSTM是如何工作的

3.2看楼STM是如何工作的

3.3看楼STM是如何工作的

前言本文旨在全面分析RNN、LSTM、BiLSTM的内部结构和输入输出,以解决LSTM和BiLSTM的任何问题。

循环神经网络(RNN )长短期记忆网络BiLSTM )双向长短期记忆网络重要的先验知识

可以理解为,本质上单个rnn小区是以多个时间步展开的形式,RNN是神经网络在时序上的权重共享(CNN相当于空间上的权重共享),LSTM也是如此。

1.1 RNN回忆和概述

RNN的不足:它的记忆是短期的。

原因:反向传播过程中,RNN存在梯度消失问题(由于RNN按时间顺序共享参数,梯度在反向传播过程中相继协同,数值时大时小)。 梯度是用于更新神经网络权重的值,梯度消失问题是梯度随时间的推移而传播时降低,梯度值非常小时不继续学习。 因此,在RNN中,梯度略有更新的网络层停止学习,它们通常是较早的层。 因为这些层不学习,所以RNN记不住长序列学习的内容。 因此,它的记忆是短期的。1.2 LSTM回想和概述LSTM内部结构相对于RNN有所改善。 BiLSTM中的Bi是Bi-directional (双向的)的缩写,与前方LSTM

LSTM优点:

LSTM是克服短期记忆问题提出的解决方案,可以引入称为“门”的内部机制,调节信息流。 这些门结构可以学习顺序

列中哪些数据是要保留的重要信息,哪些是要删除的。通过这样做,它可以沿着长链序列传递相关信息来执行预测。1.3 循环神经网络的几种输入输出结构

从RNN或LSTM结构可以看出,它们的输入输出其实很灵活,不同应用场景可以选择不同输入输出方式,例如下:

单输入-多输出:(仅在第一个时间步输入)

 

单输入-多输出:(在多个时间步输入)

多输入-多输出:

 

多输入-单输出:

 

2 图解 LSTM 内部结构和数据流 2.1 简洁的结构图

2.2 LSTM的原理剖析图 3 图解BiLSTM及其应用 3.1 看2层的 LSTM 是如何运转的

3.2 看1层的 BiLSTM 是如何运转的

用一个文本情感分析的例子来说明:

如下图,单层的BiLSTM其实就是2个LSTM,一个正向去处理序列,一个反向去处理序列,处理完后,两个LSTM的输出会拼接起来特别注意:在这个案例中,所有时间步计算完后,才算是下面这个BiLSTM的结果,如下图,正向LSTM经过6个时间步得到一个结果向量,反向LSTM同样经过6个时间步后,得到另一个结果,然后这两个结果向量拼接起来,作为BiLSTM的最终输出。 疑问:是不是NLP里面大多时候只需要最后一个时刻的输出即可?答案:这属于N VS 1结构,即N次输入,1次输出。这种结构通常用来处理序列分类问题。如输入一段文字判别它所属的类别,输入一个句子判断其情感倾向,输入一段视频并判断它的类别等等。

3.3 看2层的 BiLSTM 是如何运转的

用OCR识别算法CRNN来说明,以下是CRNN算法的数据处理流程图:

 

 更详细的说,在CRNN算法中,输入BiLSTM的特征序列,它的维度是(26, 512),长下图这样:

 因为CRNN算法中,图像输入是固定为32(高) x 100(宽)的长条图,经过特征提取器后,高会下采样32倍,宽度方向下采样4倍(由于补边操作,导致w最终=(100/4+1)=26),所以,相当于32 x 100的图像信息,被裁剪成26份,每一份的信息用512个值表示,如下:

 重要解释归纳如下:

关于时间步:26个切片,也即26个序列,也就是26个时间步,即双层的BiLSTM(也就是4个LSTM,每层一个前向LSTM和一个反向LSTM)会自循环计算26次,从物理意义上说,相当于LSTM按顺序(从左往右同时从右往左)遍历计算了上图26个切片信息。关于输入列向量Xt:每个序列由512个元素的向量组成,每个时间步,BiLSTM就是去取这512个元素的向量值丢到LSTM单元中去计算。形象的说,就是3.1节中,input_size也即Xt,变为512维向量。关于输出的拼接:BiLSTM每个时间步其实是由2个相反方向的LSTM在计算结果,它们2个的结果会拼接起来,所以,BiLSTM的输出维度是2 x hidden_size关于全连接层:CRNN算法中,在上下两层BiLSTM中间,穿插了一个全连接层,来过度上下两层BiLSTM的输入输出关系。至于为什么要加全连接层,我目前也不是特别清楚,估计是把向量长度拉回原来长度。理论上,不加全连接层,两层BiLSTM也完全是可以轻松的衔接起来的。

CRNN算法中,双层BiLSTM代码实现如下:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。