Lecture 8 Deep Learning for NLP: Recurrent Networks

news2024/11/23 16:46:42

目录

      • Problem of N-gram Language Model N-gram 语言模型的问题
      • Recurrent Neural Network(RNN) 循环神经网络
      • RNN Language Model: RNN 语言模型
      • Long Short-Term Memory Model (LSTM) 长短期记忆模型(LSTM)
      • Gating Vector 门向量
      • Forget Gate 忘记门
      • Input Gate 输入门
      • Update Memory Cell 更新记忆单元
      • Output Gate 输出门
      • Disadvantages of LSTM LSTM 的缺点
      • Example Applications 示例应用
      • Variants of LSTM LSTM的变种

Recurrent Networks 循环神经网络

Problem of N-gram Language Model N-gram 语言模型的问题

  • Cen be implemented using counts with smoothing 可以用平滑计数实现

  • Can be implemented using feed-forward neural networks 可以用前馈神经网络实现

  • Problem: limited context 问题:上下文限制

  • E.g. Generate sentences using trigram model: 例如:使用 trigram 模型生成句子:

在这里插入图片描述

Recurrent Neural Network(RNN) 循环神经网络

  • Allow representation of arbitrarily sized inputs 允许表示任意大小的输入

  • Core idea: processes the input sequence one at a time, by applying a recurrence formula 核心思想:一次处理一个输入序列,通过应用递归公式

  • Uses a state vector to represent contexts that have been previously processed 使用状态向量表示之前处理过的上下文

  • RNN Neuron: RNN 神经元

    在这里插入图片描述

  • RNN States: RNN 状态

    在这里插入图片描述


    在这里插入图片描述


    Activation 激活函数:
    在这里插入图片描述

  • RNN Unrolled: 展开的 RNN

    在这里插入图片描述

    • Same parameters are used across all time steps 同一参数 在所有时间步长中都被使用
  • Training RNN: 训练 RNN

    • An unrolled RNN is a very deep neural network. But parameters are shared across all time steps 展开的 RNN 是一个非常深的神经网络。但是参数在所有时间步中都是共享的
    • To train RNN, just need to create the unrolled computation graph given an input sequence and use backpropagation algorithm to compute gradients as usual. 要训练 RNN,只需根据输入序列创建展开的计算图,并使用反向传播算法计算梯度
    • This procedure is called backpropagation through time. 这个过程叫做时间反向传播

      E.g of unrolled equation: 展开方程的例子

      在这里插入图片描述

RNN Language Model: RNN 语言模型

在这里插入图片描述

  • is current word (e.g. eats) mapped to an embedding 是当前词(例如 eats)映射到一个嵌入

  • contains information of the previous words (e.g. a and cow) 包含前面词的信息(例如 a 和 cow)

  • is the next word (e.g. grass) 是下一个词(例如 grass)

  • Training:

    • Vocabulary 词汇: [a, cow, eats, grass]

    • Training example 训练样本: a cow eats grass

    • Training process 训练过程:

      在这里插入图片描述




    • Losses:

      • Total loss:

  • Generation:

    在这里插入图片描述

  • Problems of RNN: RNN 的问题

    • Error Propagation: Unable to recover from errors in intermediate steps 错误传播:无法从中间步骤的错误中恢复
    • Low diversity in generated language 生成的语言多样性低
    • Tend to generate bland or generic language 倾向于生成乏味或通用的语言

Long Short-Term Memory Networks

Long Short-Term Memory Model (LSTM) 长短期记忆模型(LSTM)

  • RNN has the capability to model infinite context. But it cannot capture long-range dependencies in practice due to the vanishing gradients RNN 具有建模无限上下文的能力。但由于梯度消失,实际上无法捕捉长距离依赖性

  • Vanishing Gradient: Gradients in later steps diminish quickly during backpropagation. Earlier inputs do not get much update. 梯度消失:在反向传播过程中,后续步骤的梯度快速减小。较早的输入没有得到太多更新。

  • LSTM is introduced to solve vanishing gradients LSTM 用来解决梯度消失问题

  • Core idea: have memory cells that preserve gradients across time. Access to the memory cells is controlled by gates. 核心思想:拥有跨时间保存梯度的记忆单元。通过门控制对记忆单元的访问。

  • Gates: For each input, a gate decides: 门:对于每个输入,门决定

    • How much the new input should be written to the memory cell 应该将多少新输入写入记忆单元
    • How much content of the current memory cell should be forgotten 应该忘记当前记忆单元的多少内容
  • Comparison between simple RNN and LSTM: 简单 RNN 和 LSTM 的比较

    在这里插入图片描述

Gating Vector 门向量

  • A gate is a vector. Each element of the gate has values between 0 and 1. Use sigmoid function to produce . 门 是一个向量。门的每个元素的值在 0 到 1 之间。使用 sigmoid 函数来产生

  • is multiplied component-wise with vector to determine how much information to keep for 和向量 乘以 component-wise 来确定对 保留多少信息

    在这里插入图片描述

Forget Gate 忘记门

在这里插入图片描述

  • Controls how much information to forget in the memory cell 控制在记忆单元 中忘记多少信息

  • E.g. Given Tha cas that the boy predict the next word likes 例如,给定 Tha cas that the boy 预测下一个词 likes

    • Memory cell was storing noun information cats 记忆单元正在存储名词信息 cats
    • The cell should now forget cats and store boy to correctly predict the singular verb likes 该单元现在应该忘记 cats 并存储 boy 以正确预测单数动词 likes

Input Gate 输入门

在这里插入图片描述

  • Input gate controls how much new information to put to memory cell 输入门控制将多少新信息放入记忆单元

  • is new distilled information to be added 是要添加的新提炼信息

Update Memory Cell 更新记忆单元

在这里插入图片描述

  • Use the forget and input gates to update memory cell 使用忘记门和输入门来更新记忆单元

Output Gate 输出门

在这里插入图片描述

  • Output gate controls how much to distill the content of the memory cell to create the next state 输出门控制如何提炼记忆单元的内容以创建下一个状态

Disadvantages of LSTM LSTM 的缺点

  • Introduces some but not many parameters 引入了一些但并不多的参数
  • Still unable to capture very long range dependencies 仍无法捕获非常长的依赖性
  • Slower but not much slower than simple RNN 比简单的 RNN 慢,但并不比 RNN 慢太多

Applications of RNN RNN 的应用

Example Applications 示例应用

  • Shakespeare Generator 莎士比亚生成器:

    • Training data: all works fo Shakespeare 训练数据:莎士比亚的所有作品
    • Model: Character RNN, hidden dimension = 512 模型:Character RNN,隐藏维度 = 512
  • Wikipedia Generator: 维基百科生成器

    • Training data: 100MB of Wikipedia raw data 训练数据:100MB的维基百科原始数据
  • Code Generator 代码生成器

  • Text Classification 文本分类

    • RNNs can be used in variety NLP tasks. Particularly suited for tasks where order of words matter. E.g. sentiment analysis RNNs可以用于各种NLP任务。特别适合于单词顺序很重要的任务。例如,情感分析

    在这里插入图片描述

  • Sequence Labeling: E.g. POS tagging 序列标记:例如,词性标注

    在这里插入图片描述

Variants of LSTM LSTM的变种

  • Peephole connections: allow gates to look at cell state 窥视孔连接:允许门看到单元状态

  • Gated recurrent unit (GRU): Simplified variant with only 2 gates and no memory cell 门控循环单元(GRU):简化的变体,只有2个门,没有记忆单元

    在这里插入图片描述

  • Multi-layer LSTM 多层LSTM

    在这里插入图片描述

  • Bidirectional LSTM 双向LSTM

    在这里插入图片描述

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

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

相关文章

ChatGPT 使用 拓展资料:大模型时代的开发者新机遇

ChatGPT 使用 拓展资料:大模型时代的开发者新机遇

Nginx-rewrite模块详细介绍

Nginx-rewrite模块 前言一、Nginx-rewrite模块概述1、rewrite场景2、rewrite实现3、rewrite执行顺序4、语法格式 二、rewrite示例1、基于域名的跳转2、基于客户端IP访问跳转3、基于旧域名跳转到新域名后面加目录4、基于参数匹配的跳转5、基于目录下所有 php 结尾的文件跳转6、基…

代码报错 | 出bug-->该如何调试?

代码报错 | 出bug-->该如何调试? 什么叫做bug调试是什么?有多重要?Debug和Release的介绍调试常用的快捷键调试时查看程序当前的信息 如何写出好(易于调试)的代码对const的通俗生活中举例assert的理解 编译常见的错误…

Java程序员面试经验总结

目录 一、企业是如何筛选简历的1.简历筛选流程2.HR如何筛选简历3.部门负责人筛选简历4.总结-简历筛选规则 二、简历注意事项1.简历整体结构2.职业技能3.项目经历4.总结 三、应届毕业生改如何找到合适的练手项目1.项目来源2.如何深入学习项目3.应该学习哪些模块4.模块该如何吃透…

【owt】WebrtcNode, subscribe-sdp offer 流程(1)

sdp offer 流程 1. AmqpClient - New message received sdp offer 的消息 2023-04-26T21:54:19.790 - DEBUG: AmqpClient - RpcServer New message received {method: onTransportSignaling,args: [b149e44bb10d4e91bd162a8c6806ae7b,{sdp: v0\r\n o- 7177131362423164715 …

K8S常见应用场景(六)

Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。 Kubernetes 这个名字源于希腊语,意为“…

【Java系列】Mybatis-Plus 使用介绍二

序言 你只管努力,其他交给时间,时间会证明一切。 MyBatis-Plus 是 MyBatis 的增强工具,它简化了 MyBatis 的开发,并提供了许多实用的功能和工具类。下面是 MyBatis-Plus 的使用方法: 1 使用方法 1. 引入依赖 在 Maven…

MySQL数据库 9.DQL操作

目录 ​编辑 🤔前言: 🤔DQL介绍: 🤔查询种类: 1.基本查询: 🔍1.查询多个字段: 🔍2.查询所有字段: 🔍3.去除重复记录&#xff…

【数据结构】常见排序算法——常见排序介绍、插入排序、直接插入排序、希尔排序

文章目录 1.排序的概念和应用1.1排序的概念1.2排序的运用1.3常见的排序算法 2.常见的排序算法2.1插入排序2.1.1直接插入排序2.1.2希尔排序 1.排序的概念和应用 1.1排序的概念 在计算机科学中,排序是将一组数据按照指定的顺序排列的过程。排序算法由于执行效率的不同…

01_爬虫基础知识和requests模块简介

爬虫基础知识 1、爬虫简介: 爬虫的作用:帮助我们把网站信息快速提取并保存爬虫的分类: 通用爬虫聚集爬虫爬虫的安全知识:目前来说,无明确法律规定,但每个官网都有自己的爬虫协议(网址后面加/robots.txt)爬虫的爬取流程: 1、获取网页2、提取信息3、保存数据2、爬虫必须…

分布式软件架构——远程服务调用

序言 “架构师”可以是做企业战略设计的架构师,也可以说做业务流程分析的架构师。 架构师视角特指软件系统中技术模型的系统设计者。 在做架构设计的时候,架构师应该思考哪些问题、可以选择哪些主流的解决方案和行业标准做法,以及这些主流方…

【自制C++深度学习框架】前言

KuiperCourse 介绍 此GitHub项目是一个初学者的深度学习框架,使用C编写,旨在为用户提供一种简单、易于理解的深度学习实现方式。以下是本项目的主要特点和功能: 计算图:使用计算图来描述深度学习模型的计算过程,利用计…

气球飘飘:用Java Swing创造令人心旷神怡的视觉奇观

✨博主:命运之光 ✨专栏:Java经典程序设计 前言:这篇博客在手机上打开可能会自动播放视频,视频有音乐,请及时关闭手机音乐哈🙂 目录 ✨导语 ✨引言 ✨简单介绍一下Javaswing这项技术简单介绍一下Javaswi…

简单的UDP网络程序·续写

该文承接文章 简单的UDP网络程序 对于客户端和服务端的基本源码参考上文,该文对服务器润色一下,并且实现几个基本的业务服务逻辑 目录 demo1 第一个功能:字典翻译 初始化字典 测试代码:打印 字符串分割 客户端修改 成品效果…

idea如何一个项目启动两个tomcat服务(不同端口)

目录 第一步:创建一个普通的springboot项目 第二步:编写一个controller代码,用来接收请求 第三步:复制服务,端口设置为8081 第四步:依次访问8080、8081两个服务进行测试 第一步:创建一个普通…

基于JavaWeb的保护动物管理系统设计与实现

摘要:随着全球一些稀有物种、野生动物日益稀少,保护动物已经成为全球多个国家开始重视并投入大量物力着手解决的重要课题。动物是大自然的产物,自然界是由许多复杂的生态系统构成的。有一种植物消失了,以这种植物为食的昆虫就会消…

easyExcel导入失败提示用户第几行有误并回滚数据

思路: 在controller定义一个map,将map传入excel监听器,在监听器中处理excel的数据,读取到某一行出现错误就将错误提示信息存入map并抛出一个异常给service。在service方法上开启事务,并将异常出实现数据回滚&#xff0…

vite使用vue3 v-for渲染图片时的写法

写法一 <template><divclass"demo-img"v-for"item in demoOption":key"item.code":style"background-image: url(${getImageUrl(../assets/imge/${item.img}.jpeg)})"></div> </template><script lang&qu…

2023网安最流行的10大工具(附安装包)

从事网络安全工作&#xff0c;手上自然离不开一些重要的网络安全工具。今天&#xff0c;分享10大网络安全工具。 一、Kali Linux Kali 是一个基于 Debian 的 Linux 发行版。它的目标就是为了简单&#xff1a;在一个实用的工具包里尽可能多的包含渗透和审计工具。Kali 实现了这…

Linux 之Python 定制篇-APT 软件管理和远程登录

Linux 之Python 定制篇-APT 软件管理和远程登录 apt 介绍 apt 是Advanced Packaging Tool 的简称&#xff0c;是一款安装包管理工具。在Ubuntu 下&#xff0c;我们可以使用apt 命令进行软件包的安装、删除、清理等&#xff0c;类似于Windows 中的软件管理工具。 unbuntu 软件…