TensorFlow详解4-RNN+LSTM(1)

news2024/11/28 10:42:34

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、背景和知识点
    • 深度学习三大模型:
    • RNN的优势:
  • 二、RNN的局限性
  • 三、LSTM
    • LSTM三重门机制:
    • LSTM解决梯度消失的主要原理:
  • 四、词向量/词嵌入word embedding技术
    • one-hot编码模式
    • 词向量/词嵌入word embedding
    • 相似的有相关性的词相距很近
  • one-hot编码与word embedding编码的转换
    • 词向量里面两种常用的模型:
  • 五、我要构建的循环神经网络模型如图所示


前言

动手实现RNN-LSTM循环神经网络
(目标:预测句子中的单词;比如“我是中国人,我很爱我的祖国,我会说??”那么深度学习之后判断空出的地方填上中文)
(本练习所用的数据集:PTB数据集)

一、背景和知识点

深度学习三大模型:

1、CNN卷积神经网络;(灵感:人脑视觉皮层对外界事物的感知)
2、RNN循环神经网络;(Recurrent循环Neural Network,灵感:来自人类的记忆机制)
3、DBN深度信念网络;(略)

RNN的优势:

1、RNN每一个输出于前面的输出建立起来关联;
2、能够很好的处理序列化的数据(如音乐、文章等)
3、能以前面序列化对象为基础,“生成”新的序列化对象;
在这里插入图片描述
在这里插入图片描述

二、RNN的局限性

步数增多导致梯度消失/爆炸,即梯度的反向传播中假如有很多个神经元相连在反向传播偏导数的过程中,会采用链式法则来进行叠加相乘,假如这些偏导都是一些极小的数的时候就会产生梯度消失(Vanishing),假如这些偏导都比1大会产生梯度爆炸(Exploding)
在这里插入图片描述
梯度消失的原因也与激活函数有一定的关系
在这里插入图片描述
threshold阀值,这样保证g^不会超过阀值,但是梯度消失却没有那么容易解决。
在这里插入图片描述

三、LSTM

梯度消失类似于记忆的消散,
LSTM:一种特殊的RNN循环神经网络,
Long Short-Term Memory:长短期记忆(长的短期记忆)。
1997年首次提出,目前循环神经网络的主要成就是LSTM完成的,RNN的缺陷是层数不能太多,如果层数太多容易造成梯度消失,有了LSTM之后,隐藏层层数可以多一点,这样训练效果可以更好;
目前循环网络的主要成就都是LSTM来完成的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

LSTM三重门机制:

遗忘门、输入门、输出门(按重要性排序);详细学习可查understanding LSTM networks
完全关闭:0;完全开放:1
在这里插入图片描述
在这里插入图片描述

LSTM解决梯度消失的主要原理:

1、对需要的“记忆”保持久一些;
2、对不需要的“记忆”进行遗忘;
遗忘或保持多少都由门来控制;
LSTM也有很多变体比如GRU(门控的循环单元,简化了很多门的参数合并了一些门);

四、词向量/词嵌入word embedding技术

我们要用到的训练数据包含10000个不同单词;假如用cnn识别手写图片,0-9这10个数字,采用的是one-hot编码模式(有多少个不同的字就有多少种二进制编码来表示它,这样做没有效率):其问题是数据量很大时效率很低;而采用词向量/词嵌入技术对于数据量很大的时候效率很高;

one-hot编码模式

在这里插入图片描述

词向量/词嵌入word embedding

在这里插入图片描述

相似的有相关性的词相距很近

在这里插入图片描述

one-hot编码与word embedding编码的转换

在这里插入图片描述

词向量里面两种常用的模型:

CBOW模型(用上下文去预测一个词)和Skip-Gram模型(给出一个词去预测上下文)
在这里插入图片描述

五、我要构建的循环神经网络模型如图所示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/533065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux--进程信号(pending, block, Handler)集

信号在产生之后,到未被处理的这段时间内,是保存在进程的PCB结构体内的一张位图中的,位图的每个比特位的编号就代表着改信号是否产生,比特位为1表示该信号产生,0表示不存在。 本篇文章就来详细的解答信号在内核中具体的…

数字革命下的产品:百数十年变迁的启示与思考。

随着数字化时代的到来,软件开发成为各行各业不可或缺的一部分。然而,传统的软件开发方法需要长时间的开发周期,高昂的成本和大量的人力资源。因此,低代码开发平台应运而生。低代码开发平台通过简化开发人员的工作和加速软件开发流…

故障分析 | 一条本该记录到慢日志的 SQL 是如何被漏掉的

背景 生产环境中 select count(*) from table 语句执行很慢,已经远超 long_query_time 参数定义的慢查询时间值,但是却没有记录到慢日志中。在测试环境也很容易复现出该问题,慢查询日志确实没有记录 select count(*) 语句。 慢查询相关参数…

数据结构入门-排序

排序的概念及其英语 排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的顺序排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录&a…

【网络】计算机中的网络

目录 🍁计算机网络 🍁计算机网络模型 🍁布线工程 🍁布线系统 🦐博客主页:大虾好吃吗的博客 🦐专栏地址:网络专栏 计算机网络 计算机网络的功能 数据通信、资源共享、增加可靠性、提…

Dubbo——SpringBoot集成Dubbo(@Autowired和@Reference的区别、Dubbo的服务治理)

Dubbo——原生API实现远程调用_Strine的博客-CSDN博客 在上一篇文章中我们讲了如何使用原生API发起远程调用,显然这种方式肯定是非常麻烦的,因此我们这里就讲如何使用SpringBoot去集成Dubbo将这些配置简化。 生产者服务 添加配置文件 dubbo:applicat…

如何安装Maven并在IDEA配置

下载 1.进入官网完成下载,下载好后解压到你喜欢的目录中去即可! Maven – Download Apache Maven 2.解压出来就能看到以下目录结构,我们关注conf目录即可 3.配置Maven的本地仓库,进入conf目录并打开settings.xml,往下…

8.3 综合案例2.0-扫码支付二维码生成

综合案例2.0-扫码支付二维码生成 扫码支付完整流程案例说明1.硬件2.连线图 搭建云平台环境1.添加设备2.创建设备类型3.功能定义(创建物模型) 代码1.更改MQTT信息2.测试 扫码支付完整流程 参考链接微信支付开发者文档 (1)商户后台…

数据分析09——Pandas中的索引设置/排序/数据统计(异常值处理)

1、Pandas中的索引设置: Series重置索引 重置索引:s2 s1.reindex([1, 2, 3, 4, 5]) # 这种情况即使列表中索引给多了也没事,会自动填充空值。重置索引:s3 s1.reindex([1, 2, 3, 4, 5], fill_value0) # 这种情况列表中索引给多了…

从0开始 莫比乌斯函数和反演 学习笔记

莫比乌斯 0 前言 建议先看这篇比较简略的文章(有大概了解) 莫比乌斯函数_为最后的荣光的博客-CSDN博客 再根据个人情况食用本篇博客 1 莫比乌斯函数 1 1 定义 首先对 n n n 唯一分解: 唯一分解: 唯一分解定理一篇就够了_求…

Springboot——根据需求创建后端接口

需求分析: 具体返回如下JSON格式数据 含有四个属性列:id 和 username 和photo 和followerCount 第一步: 首先按照下面文章创建一个模板项目 SpingBoot——SB整合MB的web项目模板_北岭山脚鼠鼠的博客-CSDN博客 第二步: 使用如下的建表语句在一个数据库中新建一个用户表 CREA…

【C++进阶之路】类和对象(下)

文章目录 一.再谈构造函数初始化对象的两种方式1.函数体内赋值2.初始化列表深入理解初始化列表 3.explicit隐式类型转换 二.static成员引言static成员static成员函数练习 三.友元引入友元函数友元类 四.内部类基本概念练习 五 .匿名对象引入匿名对象补充:编译器的优…

一百一十三、DBeaver——从hive同步数据到clickhouse

目标:把hive的DM层结果数据导出到clickhouse数据库,试了kettle、sqoop等多种方法都报错,尤其是kettle,搞了大半天发现还是不行。结果目前就只能用DBeaver同步数据。 准备工作:hive和clickhouse中都建好表 第一步&…

$nextTick与原生js先渲染dom再执行函数的方式

$nextTick与原生js先渲染dom再执行函数的方式 vue的$nextTick 简述 Vue.js 的 $nextTick 方法是用于在 DOM 更新后执行延迟回调的方法。 当 Vue.js 更新 DOM 后,有时候需要执行一些操作(如获取更新后的 DOM 元素的位置等),但是…

2023年美国大学生数学建模竞赛C题预测Wordle的结果解题全过程文档及程序

2023年美国大学生数学建模竞赛 C题 预测Wordle的结果 原题再现: 背景介绍   Wordle是纽约时报目前每天提供的一个流行谜题。玩家通过在六次或更短时间内猜出一个至五个字母的单词来解决这个谜题,每次猜测都会得到反馈。在这个版本中, 每个…

30Wqps+闲鱼优惠中台,如何架构的?

说在前面 在尼恩的(50)读者社群中,经常遇到一个 非常、非常高频的一个面试题,但是很不好回答,类似如下: 千万级数据,如何做系统架构?亿级数据,如何做做系统架构&#xf…

2022年美国大学生数学建模竞赛E题森林的碳封存解题全过程文档及程序

2022年美国大学生数学建模竞赛 E题 森林的碳封存 原题再现: 背景   正如我们所知,气候变化对生命构成了巨大威胁。为了减轻气候变化的影响,我们需要采取有效的行动来减少大气中温室气体的含量。仅仅减少温室气体排放是不够的。我们需要努…

Redis可持久化详解2

目录 ​编辑 Redis的持久化配置参数: 2.Redis的性能问题: 3保持久化数据的完整性和正确性: 4.Redis的集群技术: 总结: Redis持久化不得不注意的一些地方。 Redis的持久化配置参数: save:指…

MySQL之InnoDB表空间

前言 本文章收录在MySQL性能优化原理实战专栏,点击此处查看更多优质内容。 本文摘录自 ▪ 小孩子4919《MySQL是怎样运行的:从根儿上理解MySQL》 通过前边的内容,相信大家都知道了表空间是一个抽象的概念,对于系统表空间来说&am…

Unity 全新的输入系统

选new的那个 会重启ide 然后去package manager里把这个装上 创建配置文件 文档地址 https://docs.unity3d.com/Packages/com.unity.inputsystem1.5/manual/index.html 创建完了是这样的 设置成这样 记住 value 和 vector2 然后就可以 选择 上下左右了 之前不设置 value…