3_Long Short Term Memory (LSTM)

简介: 3_Long Short Term Memory (LSTM)

一、LSTM核心思想


LSTM是一种RNN模型

LSTM是对简单循环神经网络的改进

LSTM可以避免梯度消失的问题,可以有更长的记忆


a4ffb751a4fe5c188646671b6c37b7e5.png


1.1 Conveyor Belt(传输带)


传输带记为向量Ct:过去的信息通过传输带直接送到下一个时刻,不会发生太大的变化。

LSTM就是靠传输带来避免梯度消失的问题


7a12a4c7cbe5f5d7c03dbe2cfe74f472.png


二、LSTM分布指南


2.1 Forget Gate(遗忘门)


遗忘门有两部门组成;

输入的Sigmoid函数是一个向量a,Sigmoid对向量a中的每一个元素都进行压缩,压缩在(0,1)之间的范围

Elementwise multiplication:两个矩阵对应位置元素进行乘积


6618e1f597a89dcc30c7b66e1a2ed37b.jpg


遗忘门(ft):一个向量,有选择的让传输带C的值通过。


假如f的一个元素为0,,则C对应的元素就不能通过,对应的输出为0。

假如f的一个元素为1,,则C对应的元素全部通过,对应的输出为C本身。


1da666da0337431ce13c0b328704a226.png


参数矩阵Wf ,需要通过反向传播从训练数据中学习。


2.2 Input Gate(输入门)


输入门(it):更新传输带的值


参数矩阵Wi ,需要通过反向传播从训练数据中学习。


cc26c973b0dabb47fcada7d4a62f4bfb.png


2.3 New value(新的值)


New value:将值添加到传输带上


9a1ad9caa810bef155936b01da20fcc3.png


4fd27e83d888af5ddee1f0709592bfbd.png


2.4 Output gate(输出门)


输出门(Ot):


f99ef9504d8cb484a34dc1db231c80fa.png


三、LSTM: Number of Parameters(参数数量)


有4个参数矩阵,每个参数矩阵


行:shape(h)

列:shape(h)+ shape(x)

LSTM参数数量(没有统计截距)


4×shape(h)× [ shape(h)+ shape(x) ]


72e1c6a9104581d44c243e63871feb3f.png


四、LSTM for IMDB Review


e8e3bedb752828bb5bf7a3a7c3452da2.png

# 设置超参数
vocabulary = 10000   # 词典里面有10000个词汇
embedding_dim=32     # shape(x)=32,词向量x的维度为32
word_num = 500       # 每个电影评论有500个单词,如果超过500个单词,就会被截掉;如果不到500,就会补够。
state_dim =32        # shape(h) = 32,状态向量h的维度为32
# 开始搭建网络
model = Sequential()     # 建立Sequential()模型
# 往model里面加层,Embedding层,把词映射成向量
model.add(Embedding(vocabulary,embedding_dim,input_length=word_num))
# 需要指定状态向量h的维度,设置RNN层的return_sequences=False,表示RNN只输出最后一个状态向量h,把之前的状态向量舍去
model.add(LSTM(state_dim,return_sequences=False))
# 全连接层,输入RNN的最后一个状态h,输出0-1之间的数
model.add(Dense(1, activation="sigmoid"))
model.summary()

c88f16f62a49885edb52f7e79a1d04d0.png


五、Summary(总结)


LSTM uses a "conveyor belt"to get longer memory than SimpleRNN.


Each of the following blocks has a parameter matrix:


Forget gate(遗忘门)

Input gate (输入门)

New value (新的输入)

Output gate(输出门)

Number of parameters:

4 x shape (h) x [ shape (h) +shape (x) ].


目录
相关文章
|
机器学习/深度学习 自然语言处理 TensorFlow
Long Short-Term Memory,简称 LSTM
长短期记忆(Long Short-Term Memory,简称 LSTM)是一种特殊的循环神经网络(RNN)结构,用于处理序列数据,如语音识别、自然语言处理、视频分析等任务。LSTM 网络的主要目的是解决传统 RNN 在训练过程中遇到的梯度消失和梯度爆炸问题,从而更好地捕捉序列数据中的长期依赖关系。
134 4
|
机器学习/深度学习 自然语言处理 数据挖掘
【文本分类】Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification
【文本分类】Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification
174 0
【文本分类】Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification
JDK源码(11)-Long、Short
JDK源码(11)-Long、Short
115 0
java中整型数据(byte、short、int、long)溢出的现象及原理
java中整型数据(byte、short、int、long)溢出的现象及原理
|
机器学习/深度学习 算法框架/工具
(zhuan) Attention in Long Short-Term Memory Recurrent Neural Networks
Attention in Long Short-Term Memory Recurrent Neural Networks by Jason Brownlee on June 30, 2017 in Deep Learning   The Encoder-Decoder architecture i...
|
Linux C语言 存储
printf中的short int, int, long int和long long int
hd: short int d: int ld: long int lld: long long int Linux基本数据类型大小——int,char,long int,long long int 在Linux操作系统下使用GCC进行编程,目前一般处理器为32位字宽,下面是/usr/include/limit.h文件对Linux下数据类型的限制及存储字节大小的说明。
1185 0
|
SQL Oracle 关系型数据库
long sort 和 short sort
long sort 和 short sort转自 http://www.itpub.net/thread-1266906-1-1.html对这个帖子 http://www.itpub.net/thread-1266765-1-1.html的SQL做了点测试,顺便发现oracle 10g对排序这个操作还是很有点门道值得我们研究的。
1019 0
|
8月前
|
JSON JavaScript 前端开发
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
663 0
|
8月前
|
编译器 C语言
c语言中long的作用类型
c语言中long的作用类型
216 0

热门文章

最新文章