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

ReactiveX(vnpy的坑)

它专门研究数据序列使其在自然语言处理,机器翻译,时间序列建模和信号处理中特别有用。注意力机制是transformers成功的基石。这些机制研究输入序列并确定最重要的元素。这些元素在


什么是注意力机制? 为什么RFA比Softmax好?


谷歌最近推出了一种新方法-Random Feature Attention-,取代了“转换器”的软件最大提醒机制。 这样可以实现相似性或更好的性能,大大改善时间和空间的复杂性。


在这篇文章中,我们将讨论transformers的背景、注意机制是什么,以及RFA为什么能够代替softmax注意机制。 用RFA的总结结束这篇文章。


背景目前,“变换”是从序列到序列的机器学习模型的最佳模型。 专门研究数据序列,在自然语言处理、机器翻译、时间序列建模、信号处理中特别有用。


注意力机制是transformers成功的基础。 这些机制研究输入序列,确定最重要的因素。 这些元素在编码序列时具有沉重的权重。 也就是说,需要引起更多的关注。


注意机制是什么?被认为就像在会议中写笔记做后续的电子邮件一样。 做笔记的时候,我们几乎写不出所有的内容。 可能需要用缩写或图画代替单词; 可能需要跳过在意义损失最小的情况下可以推断的词语。 在这个过程中,一个小时的会议被压缩为一页笔记本。 本质上,注意力机制在试图通过更重要的嵌入(单词的缩写或图标表示)将序列编码的过程中也是如此。


什么是Softmax注意机制?假设有“注意的结构是什么”这样的句子


注意机制的目标是计算数组的不同部分应该如何相互链接的相对矩阵例如,“注意”和“机制”应该联系在一起,但两者都不应该与“实际”和“是”密切联系在一起。


这个机制以输入语句的数字形式,也就是单词嵌入矩阵开始


请注意,个词的嵌入是包含该词不同属性的词的向量表示。 这些属性太简单的例子有感情、词类、字符数等。


然后,初始化三个权重矩阵:查询Wq、密钥Wk和值W_v。


接着,计算查询矩阵q、密钥矩阵k、值矩阵v,可以分别作为词嵌入矩阵和Wq、Wk、W_v的点积。 如论文所述,最初的注意矩阵可以用以下的:来计算




公式为以下:




为了了解矩阵的操作流程,下面显示了矩阵的图形流程:




这种注意力也被称为softmax注意力。 这是因为使用softmax激活函数将q和k的变焦点积转换为注意力的相对测量值,即a。 其中,各单词共享比率的注意力,合计为1 (或100% )。 softmax结果与v结合,提供基于注意力的语义结果。


但是什么是查询、键和值呢?


要理解查询、键和值xydxg背后的概念,一个过于简单的方法是将转换器理解语句的能力视为最大化以下条件的可能性:


如果输入序列是“y,‘actually’,‘is’,‘注意’,‘机械’”,则y=‘what’的概率


如果输入序列是“['what”、“y”、“is”、“注意”和“机械”,则y=' actually”的概率


如果输入序列是“['what”、“actually”、y、“attention”和“机械”,则y=' is”的概率是多少


如果输入序列是“['what”、“actually”、“is”、y和“机械”,则y=“注意”的概率


输入序列为“['what”、“actually”、“is”、“attention”、“y”时


推测可能性的方法是注意输入句中的其他单词(单词嵌入)。 在训练过程中,“变换器”学习如何基于嵌入细化三个权重矩阵来链接单词。


该体系结构的优点是,可以通过创建多个查询、键和值组或重叠多个注意层来捕获更复杂的语义结构。


为什么Softmax的注意力机制不够好?是典型的转换器

,部署多头注意力来解压缩更复杂的语言模式。softmax注意力机制的时间和空间复杂度变成O(MN),并以输入序列长度的二次速率增长。

为了解决这个问题,来自Google Deepmind的小组利用了Bochner定理,并扩展了Rahmi&Recht(2008)的工作,softmax函数与指数函数的随机特性映射ϕ(独立和正态分布的随机向量w与输入语句x之间的内积的傅立叶特征)。

softmax函数

随机特征映射

随机特征图的点积可用于估计指数函数

在不深入过多数学推导细节的情况下,softmax注意机制可以近似为以下结构:

通过将softmax近似为RFA,谷歌Deepmind将时间和空间复杂度降低到O(M + N),即从二次到线性。

Deepmind的研究成果

由于RFA具有相同的输入和输出尺寸要求,可以作为softmax注意机制的替代。

随着复杂度从二次型下降到线性型,RFA在输入文本序列较长的情况下得到了更显著的改善。

RFA背后的基本原理可以用来近似高斯核之外的其他核函数。在谷歌Deepmind的论文中,他们演示了如何将同样的方法应用于近似弧余弦核。

与softmax一样,RFA本身并不考虑输入句子中的位置距离。在Deepmind的谷歌论文中,他们讨论了如何将递归神经网络的灵感应用于RFA,从而使单词的重要性根据它们在句子中的相对位置呈指数衰减。

最后但并非最不重要的是,机器学习看起来非常出色,但它都是关于数学和统计的。多亏了优秀的研究人员和程序员,我们才有了像TensorFlow和PyTorch这样的高级软件包。尽管如此,我们仍然需要不断学习最新的发展和修改核心概念,以确保我们正在开发可解释的机器学习模型和管道。

作者:Louis Chan

deephub翻译组


推荐阅读
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • 如何撰写适应变化的高效代码:策略与实践
    编写高质量且适应变化的代码是每位程序员的追求。优质代码的关键在于其可维护性和可扩展性。本文将从面向对象编程的角度出发,探讨实现这一目标的具体策略与实践方法,帮助开发者提升代码效率和灵活性。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析Spring Boot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。 ... [详细]
  • Spring框架中枚举参数的正确使用方法与技巧
    本文详细阐述了在Spring Boot框架中正确使用枚举参数的方法与技巧,旨在帮助开发者更高效地掌握和应用枚举类型的数据传递,适合对Spring Boot感兴趣的读者深入学习。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 通过利用代码自动生成技术,旨在减轻软件开发的复杂性,缩短项目周期,减少冗余代码的编写,从而显著提升开发效率。该方法不仅能够降低开发人员的工作强度,还能确保代码的一致性和质量。 ... [详细]
  • 本文深入解析了Django框架中的MVT(Model-View-Template)设计模式,详细阐述了其工作原理和应用流程。通过分析URL模式、视图、模型和模板等关键组件,读者将全面理解Django应用程序的架构体系,掌握如何高效地构建和管理Web应用。 ... [详细]
author-avatar
江游弈一个
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有