Keras学习:06.LSTM和双向LSTM讲解及实践

2023-11-16

本文主要介绍了LSTM双向LSTM网路的原理和具体代码实现。长短期记忆(Long Short Term Memory, LSTM)也是一种时间递归神经网络,最早由 Hochreiter & Schmidhuber 在1997年提出,设计初衷是希望能够解决RNN中的长期依赖问题,让记住长期信息成为神经网络的默认行为,而不是需要很大力气才能学会。

一、RNN的长期依赖问题

在上篇文章中介绍的循环神经网络RNN在训练的过程中会有长期依赖的问题,这是由于RNN模型在训练时会遇到梯度消失(大部分情况)或者梯度爆炸(很少,但对优化过程影响很大)的问题。对于梯度爆炸是很好解决的,可以使用梯度修剪(Gradient Clipping),即当梯度向量大于某个阈值,缩放梯度向量。但对于梯度消失是很难解决的。所谓的梯度消失或梯度爆炸是指训练时计算和反向传播,梯度倾向于在每一时刻递减或递增,经过一段时间后,梯度就会收敛到零(消失)或发散到无穷大(爆炸)。简单来说,长期依赖的问题就是在每一个时间的间隔不断增大时,RNN会丧失到连接到远处信息的能力。

如下图,随着时间点t的不断递增,当t时刻和0时刻的时间间隔较大的时候,t时刻的记忆ht可能已经丧失了学习连接到远处0时刻的信息的能力了。

假设X0的输入为”我住在深圳”,后面插入了很多其他的句子,然后在Xt输入了“我在市政府上班”。由于X0与Xt相差很远,当RNN输入到Xt时,t时刻的记忆ht已经丧失了X0时保存的信息了。因此在Xt时刻神经网络无法理解到我是在哪一个城市的市政府上班了。

 

二、LSTM原理讲解

在理论上,RNN绝对可以处理这样的长期依赖问题。人们可以仔细挑选参数来解决这类问题中的最初级形式,但在实践中,RNN却不能够成功学习到这些知识。因此,LSTM就是为了解决长期依赖问题而生的,LSTM通过刻意的设计来避免长期依赖问题。记住长期的信息在实践中是 LSTM的默认行为,而非需要付出很大代价才能获得的能力!

所有RNN都具有一种重复神经网络模块的链式的形式。在标准的RNN 中,这个重复的模块只有一个非常简单的结构,例如一个tanh层。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Keras学习:06.LSTM和双向LSTM讲解及实践 的相关文章

随机推荐

  • 趣味算法:探索栈和队列的神秘之旅

    文章目录 前言 一 栈和队列 从历史到理论 二 栈和队列 实际例子和代码 1 栈在后缀表达式求解中的应用 2 队列在打印任务调度中的应用 三 栈和队列 更多的应用场景 四 栈和队列 如何选择 五 栈和队列的变体 六 性能分析 结语 前言 编
  • spring boot 统一JSON格式的接口返回结果

    前后端分离的项目开发前 会提前规定好数据返回格式 本文以JSON为例 第一步 定义好JavaBean package com yclouds myhelper web response import com fasterxml jackso
  • 输入商品数量和单价,计算商品总额。(C语言)

    代码 define CRT SECURE NO WARNINGS 1 include
  • 【PyTorch】使用 Mac GPUs (Apple silicon GPUs) 训练模型

    根据 PyTorch 官网的文章 Introducing Accelerated PyTorch Training on Mac1 从 PyTorch v1 12 release 开始支持使用 Apple silicon GPUs 加速训练
  • ML-熵、条件熵、信息增益

    通俗理解条件熵 特征选择之信息增益法 必看 系统介绍了熵 条件熵 信息增益的概念及推导 条件熵的计算 必看 知乎前三个回答都看一下 有关于熵 条件熵 信息增益的实践 我通过例子一步一步讲解这个概念 在决策树算法的学习过程中 信息增益是特征选
  • stm32实现网页服务器,STM32实现Web服务器

    实例简介 有例程及详细的讲解 适用于初学嵌入式WebServer的同学下载 实例截图 核心代码 ourdev 682501O2PDF8 10M以太网 WEB服务器 源码 PDF教程 以太网ENC28J60 pdf 以太网ENC28J60源码
  • KNN分类——matlab(转载)

    KNN分类 matlab 时间 2016 09 06 标签 matlab knn算法 算法 栏目 MATLAB 原文 http blog csdn net lwwangfang article details 52452429 adsbyg
  • elasticSearch 设置用户名密码 && 查询

    一 设置密码 1 需要在配置文件中开启x pack验证 修改config目录下面的elasticsearch yml文件 在里面添加如下内容 并重启 xpack security enabled true xpack license sel
  • SpringBoot集成RabbitMQ生产消费消息(简单实用版)

    概要 要使用RabbitMQ消息队列主要有两个步骤 一个是搭建RabbitMQ服务 需下载安装 二是代码添加依赖开始编码 一 安装RabbitMQ服务 以docker安装为例 其他安装方式自行百度 下载镜像 docker pull rabb
  • Java中的链表——LinkedList解析

    LinkedList类结构 LinkedList
  • TCP思维导图总结

    TCP 可靠性 为什么网络中会存在不可靠 根本原因就是距离太远 不可控因素太多 TCP因此就应运而生 是一种保证可靠性的协议 TCP协议格式 源 目的端口 表示数据从那个进程来 要到对端的那个进程去 32位序号 32位确认序号 分别代表TC
  • Authing 入选长城战略咨询《2023 中国潜在独角兽企业》报告

    2023 年 6 月 20 日 长城战略咨询 GEI 发布 2023 中国潜在独角兽企业研究 报告 Authing 作为国内首家身份云 IDaaS 厂商入选中国潜在独角兽企业榜单 独角兽企业指具有发展速度快 数量稀少 备受投资者青睐等属性的
  • 面试必备的红黑树,这可能是最容易理解的一篇了!

    点击上方 Java之间 选择 置顶或者星标 你关注的就是我关心的 来源 linux内核 红黑树是一个平衡的二叉树 但不是一个完美的平衡二叉树 虽然我们希望一个所有查找都能在 lgN次比较内结束 但是这样在动态插入中保持树的完美平衡代价太高
  • luffy前传

    目录 企业的web项目类型 商城 门户网站 企业站和门户站 企业项目开发流程 pip永久换源 虚拟环境搭建 使用虚拟环境 新建项目 luffy后台创建目录调整 企业的web项目类型 商城 B2C 直销商城 商家与会员直接交易 Busines
  • 2020国内十大API接口服务平台

    API的概念早在上世纪60年代就已经出现 其代表的是应用程序的编程接口 是一些预先定义的函数 或指软件系统不同组成部分衔接的约定 换句话说 API是一个信使 它将用户的请求交付给用户所请求的提供者 然后将响应交付给用户 打个简单的比喻 日常
  • 【CVPR2023 Best Paper】Planning-oriented Autonomous Driving 阅读笔记

    Paper https openaccess thecvf com content CVPR2023 papers Hu Planning Oriented Autonomous Driving CVPR 2023 paper pdf Gi
  • 链圈的朋友们值得收藏!腾讯首席架构师教你两种区块链设计思路

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由敖萌发表于云 社区专栏 区块链发展到了现在 产生了很多不同形式的区块链技术 随着技术的发展 目前比较公认的看法是区块链已经走进了2 0时代 区块链1 0是以比特币为代表的去中心
  • 文件编码格式

    大家可能都知道文件编码格式 如gbk格式 ansi格式 字符以1byte编码 中文字符以2字节编码 unicode格式无论是字符还是中文字符都以2字节统一编码 utf 8格式则是可变长编码 不同编码格式的文件都有开头相应的字符标记来标识 如
  • pikachu靶场搭建教程(以物理主机访问虚拟机为例)

    1 提前下载好所需软件 pikachu phpstudy 服务器集成软件 2 在虚拟机上完成phpstudy的安装 并将下载好的pikachu文件夹放置于phpstudy的根目录下 例如我的是C phpstudy phpstudy pro
  • Keras学习:06.LSTM和双向LSTM讲解及实践

    本文主要介绍了LSTM与双向LSTM网路的原理和具体代码实现 长短期记忆 Long Short Term Memory LSTM 也是一种时间递归神经网络 最早由 Hochreiter Schmidhuber 在1997年提出 设计初衷是希