3_Long Short Term Memory (LSTM)

一、LSTM核心思想

  • LSTM是一种RNN模型
  • LSTM是对简单循环神经网络的改进
  • LSTM可以避免梯度消失的问题,可以有更长的记忆

image-20210330213707527

1.1 Conveyor Belt(传输带)

  • 传输带记为向量Ct:过去的信息通过传输带直接送到下一个时刻,不会发生太大的变化。
  • LSTM就是靠传输带来避免梯度消失的问题

image-20210330214801982

二、LSTM分布指南

2.1 Forget Gate(遗忘门)

  • 遗忘门有两部门组成;
  • 输入的Sigmoid函数是一个向量a,Sigmoid对向量a中的每一个元素都进行压缩,压缩在(0,1)之间的范围
  • Elementwise multiplication:两个矩阵对应位置元素进行乘积

1

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

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

image-20210330222321423

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

2.2 Input Gate(输入门)

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

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

image-20210331150146737

2.3 New value(新的值)

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

image-20210331150516184

image-20210331152558877

2.4 Output gate(输出门)

输出门(Ot):

image-20210331155021121

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

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

  • 行:shape(h)
  • 列:shape(h)+ shape(x)

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

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

image-20210331160045982

四、LSTM for IMDB Review

image-20210331160242776

# 设置超参数
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()

image-20210331160751270

五、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) ].

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少云清

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值