热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PytorchNLP部分

感谢伯禹平台举办的活动,本文记录学习SequencetoSequence模型,包含如下:1.Encoder-Decoder结构传统的RNN模型一般是给定输入,然后会有一个对应的输出

感谢伯禹平台举办的活动,本文记录学习Sequence to Sequence模型,包含如下:

1.Encoder-Decoder结构

传统的RNN模型一般是给定输入,然后会有一个对应的输出,对于自然语言处理中的生成任务来说,输出不限定长度的序列有点难以处理,这时候encoder-decoder结构就可以很好的解决这个问题。如下图所示:
Pytorch-NLP 部分
encoder部分和decoder部分都是RNN网络,其中Encoder部分将输入的序列编码成一个向量,即隐藏层的输出hidden_state,再将这个hidden_state输入decoder中逐步生成序列,直到输出停止符号, 这种结构可以有效的解决不定长的输出问题,但是在生成序列的时候每一步都是用的encoder结构输出的hidden_state作为背景变量C来输入,但是翻译的过程中,一个目标词可能只对应输入序列的个别词,这时候,带有注意力机制的Encoder-Decoder结构就可以有效的解决这个问题

2.Encoder-Decoder with attention结构

Pytorch-NLP 部分
attention机制就是在Decoder中生成每一个新的状态时,每一步都会采用不同的背景变量Ci,所以attention机制的一个重点就是如何计算第i步的背景向量Ci。如下图所示,在第i步时,用第i-1步的隐藏输出状态充当一个查询变量query来和encoder编码器的每一个隐藏层状态h1,h2,…(这时这些隐藏状态充当keys)来进行计算(一般是相似度计算或者其他计算),得到与每一个hi的分数,然后进行softmax运算生成一个概率分布,然后将这个概率分布于隐藏状态hi(这时这些隐藏状态充当valuess)相结合,生成attention输出,用作第i步的背景向量Ci。
Pytorch-NLP 部分

3.transformer(Encoder-Decoder with self-attention)

传统的Encoder-decoder结构中的模块用的都是RNN模块,但是RNN的问题在于无法并行化计算,而且对于较长的序列问题不能很好的处理,为了解决这个问题transformer中采用了一种self-attention的机制来解决这个问题,做到可以并行化处理,又能保持句子间的依赖关系。
Pytorch-NLP 部分
在self-attention中,每一个句子的输入都会同时被编码然后经过矩阵运算同时生成每一个词的qi,ki,vi.
Pytorch-NLP 部分
在计算第一个词的attention时,让qi和其他的kj进行相似度计算,生成当前这个词的attention输出,可以发现,这里的每一个词都是可以同时计算的,这样在保证了并行化处理的同时,也解决了句子的内部的依赖问题。

参考文章:
1.讲解attention非常详细的文章https://blog.csdn.net/malefactor/article/details/78767781
2.李宏毅老师讲解transformer
https://www.you tu be.com/watch?v=ugWDIIOHtPA
3.https://leemeng.tw/neural-machine-translation-with-transformer-and-tensorflow2.html


推荐阅读
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • 如何使用 net.sf.extjwnl.data.Word 类及其代码示例详解 ... [详细]
  • 2019年斯坦福大学CS224n课程笔记:深度学习在自然语言处理中的应用——Word2Vec与GloVe模型解析
    本文详细解析了2019年斯坦福大学CS224n课程中关于深度学习在自然语言处理(NLP)领域的应用,重点探讨了Word2Vec和GloVe两种词嵌入模型的原理与实现方法。通过具体案例分析,深入阐述了这两种模型在提升NLP任务性能方面的优势与应用场景。 ... [详细]
  • GCC(GNU Compiler Collection)是GNU项目下的一款功能全面且高效的多平台编译工具,广泛应用于Linux操作系统中。本文将详细介绍GCC的特点及其基本使用方法。 ... [详细]
  • 如何在Win10系统下通过VMware 14 Pro安装CentOS 7
    本文详细介绍了在Windows 10操作系统中使用VMware Workstation 14 Pro搭建CentOS 7虚拟环境的步骤,包括所需工具、安装过程及系统配置等。 ... [详细]
  • 在使用 Nginx 作为服务器时,发现 Chrome 能正确从缓存中读取 CSS 和 JS 文件,而 Firefox 却无法有效利用缓存,导致加载速度显著变慢。 ... [详细]
  • 分层学习率衰减在NLP预训练模型中的应用
    本文探讨了如何通过分层学习率衰减技术来优化NLP预训练模型的微调过程,特别是针对BERT模型。通过调整不同层的学习率,可以有效提高模型性能。 ... [详细]
  • 本文介绍了实时流协议(RTSP)的基本概念、组成部分及其与RTCP的交互过程,详细解析了客户端请求格式、服务器响应格式、常用方法分类及协议流程,并提供了SDP格式的深入解析。 ... [详细]
  • 前端开发PPT页面与评论区展示优化
    本文介绍了如何在前端开发中实现一个类似于StackOverflow样式的PPT展示页面和评论区,提供了项目源代码及在线演示链接,并分享了开发过程中遇到的挑战及其解决方案。 ... [详细]
  • 图数据库与传统数仓实现联邦查询使用CYPHER实现从关系数据库过滤时间序列指标一、MySQL得到研报实体在Oracle中的唯一ID二、Oracle中过滤时间序列数据三、CYPHER ... [详细]
  • 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
    目录一、2020数学建模美赛C题简介需求评价内容提供数据二、解题思路三、LDA简介四、代码实现1.数据预处理1.1剔除无用信息1.1.1剔除掉不需要的列1.1.2找出无效评论并剔除 ... [详细]
  • 计算机视觉领域介绍 | 自然语言驱动的跨模态行人重识别前沿技术综述(上篇)
    本文介绍了计算机视觉领域的最新进展,特别是自然语言驱动的跨模态行人重识别技术。上篇内容详细探讨了该领域的基础理论、关键技术及当前的研究热点,为读者提供了全面的概述。 ... [详细]
  • 在 Kubernetes 中,Pod 的调度通常由集群的自动调度策略决定,这些策略主要关注资源充足性和负载均衡。然而,在某些场景下,用户可能需要更精细地控制 Pod 的调度行为,例如将特定的服务(如 GitLab)部署到特定节点上,以提高性能或满足特定需求。本文深入解析了 Kubernetes 的亲和性调度机制,并探讨了多种优化策略,帮助用户实现更高效、更灵活的资源管理。 ... [详细]
  • 视觉图像的生成机制与英文术语解析
    近期,Google Brain、牛津大学和清华大学等多家研究机构相继发布了关于多层感知机(MLP)在视觉图像分类中的应用成果。这些研究深入探讨了MLP在视觉任务中的工作机制,并解析了相关技术术语,为理解视觉图像生成提供了新的视角和方法。 ... [详细]
  • 本文通过复旦大学自然语言处理课程中的一个具体案例,详细解析了中文词汇分割技术的实现方法。该案例利用Java编程语言,结合词典和算法模型,展示了如何高效地进行中文文本的词汇分割,为相关研究和应用提供了宝贵的参考。 ... [详细]
author-avatar
真理难辩_175
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有