浅谈对LSTM的理解与Keras代码实现

本文介绍了LSTM的概念,旨在解决RNN的长期依赖问题。通过遗忘门、输入门和输出门控制细胞状态,以保留历史信息。在Keras中,LSTM可用于回归和分类问题,通过设置timestep和units参数调整模型。文章提供了LSTM模型的构建示例,展示了如何在实际应用中使用LSTM。
摘要由CSDN通过智能技术生成

浅谈对LSTM的理解与Keras代码实现

LSTM这东西,仔细想来我已经看了不下三四遍了,本科毕业设计做的也是用LSTM去检测网络异常流量。但总觉得对LSTM的理解还是非常表面,很多细节的东西并不是很清楚。最近在准备NLP的大作业,再次回顾了一下LSTM,觉得对很多问题有了新的认识。下面简单谈谈我对LSTM的理解及其在Keras中的实现。

直观理解

Long Short Term Memory,即我们所称呼的LSTM,是为了解决RNN中的长期依赖问题而专门设计出来的。这里假设大家都了解RNN的基本原理,即递归神经网络(或循环神经网络)。RNN最大的问题是,当序列很长的时候,很容易出现梯度消失(Gradient Vanishing)从而导致学习无法继续进行。LSTM通过引入遗忘门、输入门、输出门来控制一个Cell在 t t t时刻的输出,使得模型能更关注离 t t t时刻近的历史信息,但又不完全丢弃远的历史信息。

先来张经典的LSTM Cell图。
LSTM结构图
图中的主要要点有几个: h h h状态, C C C状态和四个激活函数(三个sigmoid和一个tanh)。标准的RNN中只有一个 h h h状态,它是当前时刻LSTM的输出,它的取值依赖于上一个时刻的 h h h状态( h t − 1 h_{t-1} ht1)和当前时刻的输入 x t x_t xt。LSTM中引入了新的参数 C C C,这个东西比较抽象,可以将它理解为当前Cell的状态。 C t C_t Ct是怎么生成的呢?它由输入门和遗忘门共同作用,决定以前的东西哪些要忘记,新的东西哪些要进来,最终生成当前的 C t C_t Ct。而 C t C_t Ct通过输出门的作用,决定哪些东西要最终输出,从而产生 h t h_t ht

好了,总结一下就是, C C C状态其实就是一个中介,通过它我们可以实现输入、遗忘和输出的加权控制,从而生成 h t h_t ht,而不是像RNN那样直接通过 h t − 1 h_{t-1} ht1 x t x_t x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值