LSTM总结和感悟

        这是在看了台大李宏毅教授的课程之后的一点总结和感想。本文中所使用的图片均来自于李宏毅教授的课程ppt。本篇博客就是对视频的一些记录加上了一些个人的思考。

 一、什么是LSTM

        长短期记忆(Long short-term memory, LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。

二、单个LSTM单元的结构

(1) LSTM单元由四个输入和一个输出组成,输入分别是图中的Z、Zi、Zf、Zo,而输出是图中对应的a。其中输入Zi(输入门)、Zf(遗忘门)、Zo(输出门)分别对应LSTM的三个门。 

(2)Z、Zi、Zf、Zo  的由来:首先将当前的输入向量input与上一轮得到的输出向量a拼接得到一个较长的向量[input,a],暂且称为向量X;将拼接后的向量X经过四次不同的线性变换后即可得到向量Z、Zi、Zf、Zo,其中四次线性变换所使用的参数是网络中带训练的参数。

(3)Z、Zi、Zf、Zo的维数是一样的,Zf 的每一维分别对应一个具体的LSTM单元遗忘门的输入,Zi 的每一维分别对应一个具体的LSTM单元输入们的输入(Z和Zo同理),因此Z、Zi、Zf、Zo的维数和LSTM单元的个数相同。

(4)LSTM单元中有一个memory  cell,该部件主要是存储此刻的输入input之前的所有输入的综合信息

三、LSTM的数据处理流程

preview

        图中的Xt对应t时刻的输入,ht-1对应t-1时刻的输出。假设神经网络的该层是由hidden_size个LSTM排列形成的;该层的输入X的维数是input_size;ht-1是该层之前时刻的输出,故维数和LSTM的个数相同,也是hidden_size维;Ct-1的维数也和LSTM的个数相同是hidden_size维。

        LSTM的数据处理流程如下:

(1)ht-1和Xt拼接形成一个维数是hidden_size+input_size的向量,暂且称为向量IN

(2)向量IN经过四次线性变换后的到Z、Zi、Zf、Zo(即向量IN右乘四个不同的矩阵,即向量IN经过四个不同的全连接层)。参与四次线性变化的参数是一个二维矩阵,形状是[hidden_size+input_size,  hidden_size]。得到的四个向量的维数是hidden_size维。

(3)使向量Zi、Zf、Zo通过sigmoid函数激活,使用sigmoid激活后值会处于0~1之间;使向量Z通过tanh函数激活。

(4)将激活后的Zi与Z进行按位置计算的乘法,由于Zi的值都介于0~1之间,因此得到的结果记为It,可以理解为允许多少输入进入LSTM单元。

(5)将激活后的Zf与Ct-1进行按位置计算的乘法,结果记为Ct-1_temp,该结果可以理解为之前的信息我该保留多少。

(6)将向量Ct-1_temp与向量It进行按位置的加法,形成新的Ct。

(7)将Ct通过tanh函数激活,将激活后的结果与Zo进行按位置操作的乘法形成ht

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值