Lecture 8 Deep Learning for NLP: Recurrent Networks

目录

      • 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.hqwc.cn/news/1048.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#核心知识回顾——3.继承构造、拆装箱、多态

1.继承中的构造函数: 特点: 当申明一个子类对象时 先执行父类的构造函数,再执行子类的构造函数注意!!: 1.父类的无参构造很重要 2.子类可以通过base关键字代表父类调用父类构造 public class Mot…

2.设计模式之前5种设计模式单例工厂原型建造者适配器

1.怎么掌握设计模式? 独孤5剑 先是锋利的剑 后面是无剑才是最强的 ,GOF四人组写的<设计模式>书,包含了23种,实际可能还有其他,不要被束缚(只是覆盖了大部分).设计模式适合的人群: 1.不知道设计模式 2.有编程经验,但是写的好多代码有设计模式却不知道 3.学习过设计模式,发…

Audio API 实现音频播放器

市面上实现音频播放器的库有很多&#xff0c;比如wavesurfer.js、howler.js等等&#xff0c;但是都不支持大音频文件处理&#xff0c;100多M的文件就有可能导致程序崩溃。总之和我目前的需求不太符合&#xff0c;所以打算自己实现一个音频播放器&#xff0c;这样不管什么需求 在…

建设Web3需要Web2的人才?探索传统技能在Web3时代的作用

摘要&#xff1a;Web3作为下一代互联网技术的前沿&#xff0c;许多人关注着它的发展和应用。然而&#xff0c;建设Web3是否需要Web2的人才仍然是一个有争议的问题。 Web3作为下一代互联网技术&#xff0c;以去中心化、智能合约和用户自治等特点引起了广泛的关注。与此同时&…

JAVA1

文章目录 计算机的硬件与软件DOS命令 计算机的硬件与软件 DOS命令

大数据开发基础-环境配置篇-Hadoop集群安装

鼠鼠接下来将更新一系列自己在学习大数据开发过程中收集的资源、和自己的总结、以及面经答案、LeetCode刷题分析题解。 首先是大数据开发基础篇 环境搭建、组件面试题等 其次是更新大数据开发面经的java面试基础 最后更新一个大数据开发离线数仓的实战项目&#xff0c;自己写入…

Redis的数据类型及对应的数据结构(二)

接上篇&#xff1a;Redis的数据类型及对应的数据结构&#xff08;一&#xff09;_鱼跃鹰飞的博客-CSDN博客 本篇主要讨论剩下的几种数据结构的应用场景 应用场景 集合的主要几个特性&#xff0c;无序、不可重复、支持并交差等操作。 因此 Set 类型比较适合用来数据去重和保…

kafka生产者api和数据操作

Kafka 生产者 发送流程 消息发送过程中涉及到两个线程——main线程和Sender线程 main线程 使用serializer&#xff08;并非java默认&#xff09;序列化数据&#xff0c;使用partitioner确认发送分区 在main线程中创建了一个双端队列RecordAccumulator&#xff0c;main线程将…

【半监督医学图像分割 2023 CVPR】BCP

【半监督医学图像分割 2023 CVPR】BCP 论文题目&#xff1a;Bidirectional Copy-Paste for Semi-Supervised Medical Image Segmentation 中文题目&#xff1a;双向复制粘贴半监督医学图像分割 论文链接&#xff1a;https://arxiv.org/abs/2305.00673 论文代码&#xff1a;http…

新星计划2023【Java基础及数据库Mysql】学习方向报名入口!

新星计划2023【Java基础及数据库Mysql】学习方向报名入口&#xff01; 一、关于本学习方向导师二、关于本学习方向官方微信群三、关于活动时间&奖品&要求四、学习计划五、TOP5评选规则六、活动要求七、注意事项 本赛道是针对那些希望从事Java开发并且想要学习如何与数据…

【TCP/IP】多进程服务器的实现(进阶) - 多进程服务器模型及代码实现

经过前面的铺垫&#xff0c;我们已经具备实现并发服务器的基础了&#xff0c;接下来让我们尝试将之前的单任务回声服务器改装成多任务并发模式吧&#xff01; 多任务回声服务器模型 在编写代码前&#xff0c;先让我们大致将多任务&#xff08;回声&#xff09;服务器的模型抽象…

Jenkins自动化构建

自动化构建 Jenkins 是一款开源 CI&CD 软件&#xff0c;用于自动化各种任务&#xff0c;包括构建、测试和部署软件 Jenkins 支持各种运行方式&#xff0c;可通过系统包、Docker 或者通过一个独立的 Java 程序 安装依赖 安装参考&#xff1a;Windows环境下安装Jenkins **…