卷积神经网络(CNN)、循环神经网络(RNN)和自注意力(self-attention)对比

       考虑同一个的问题:将由n个词元组成的序列映射到另一个长度相同的序列,其中的每个输入词元或输出词元由d维向量表示。

        我们将比较能够解决上述问题的三种常用方法:卷积神经网络(CNN)、循环神经网络(RNN)和自注意力(self-attention),从三个维度比较这三种架构:计算复杂度、顺序操作和最大路径长度。

       其中,讨论顺序操作是因为顺序操作会妨碍并行计算。任意的序列位置组合之间的路径越短,越能更轻松地学习序列中的远距离依赖关系。

1、卷积神经网络(CNN)

考虑⼀个卷积核⼤⼩为k的卷积层。(后续文章中将介绍关于使⽤卷积神经⽹络处理序列的详细信息)⽬前只需要知道的是,由于序列⻓度是n,输⼊和输出的通道数量都是d,所以卷积层的计算复杂度为O\left ( knd^{2} \right )。 如图所⽰,卷积神经⽹络是分层的,因此为有O\left ( 1 \right )个顺序操作,最⼤路径⻓度为O\left ( n/k \right )。例如,\textup{\textbf{}x}_{1}\textup{\textbf{}x}_{5}处于图中卷积核⼤⼩为3的双层卷积神经⽹络的感受野内。

2、循环神经网络(RNN)

       当更新循环神经⽹络的隐状态时,d\times d权重矩阵和d维隐状态的乘法计算复杂度为O\left (d ^{2} \right )。由于序列⻓度为n, 因此循环神经⽹络层的计算复杂度为O\left (nd ^{2} \right )。根据图,有O\left (n \right )个顺序操作⽆法并⾏化,最⼤路径⻓度 也是O\left (n \right )

3、自注意力(self-attention)

        在⾃注意⼒中,查询、键和值都是n\times d矩阵。考虑缩放的”点-积“注意⼒,其中n\times d矩阵乘 以d\times n矩阵。之后输出的n\times n矩阵乘以n\times d矩阵。因此,⾃注意⼒具有O\left (n ^{2} d\right )计算复杂性。正如在图中所讲,每个词元都通过⾃注意⼒直接连接到任何其他词元。因此,有O\left ( 1 \right )个顺序操作可以并⾏计算,最⼤路径⻓度也是O\left ( 1 \right )

4、小结

总⽽⾔之,卷积神经⽹络和⾃注意⼒都拥有并⾏计算的优势,⽽且⾃注意⼒的最⼤路径⻓度最短,但是因为其计算复杂度是关于序列⻓度的⼆次⽅(⾃注意⼒具有O\left (n ^{2} d\right )计算复杂性),所以在很⻓的序列中计算会⾮常慢。

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

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

相关文章

Verifiable Credentials可验证证书 2023 终极指南

1. 引言 Dock公司为去中心化数字身份领域的先驱者,其自2017年以来,已知专注于构建前沿的可验证证书(Verifiable Credentials)技术。本文将阐述何为电子证书、电子证书工作原理、以及其对组合和个人的重要性。 伪造实物证书和数字…

掌握 gRPC:从安装到构建第一个C++ 和Python微服务

文章目录 一、前言1. gRPC的概念和用途2. gRPC的优势3. gRPC的应用场景 二、gRPC的基本原理1. RPC(远程过程调用)简介2. Protocol Buffers的作用3. gRPC与传统HTTP/REST服务的比较 三、安装gRPC1. 系统要求和前置条件2. 安装步骤概述 四、创建第一个gRPC…

单元测试、系统测试、集成测试知识总结

一、单元测试的概念 单元测试是对软件基本组成单元进行的测试,如函数或一个类的方法。当然这里的基本单元不仅仅指的是一个函数或者方法,有可能对应多个程序文件中的一组函数。 单元也具有一些基本的属性。比如:明确的功能、规格定义&#…

【python爬虫】设计自己的爬虫 4. 封装模拟浏览器 PyppeteerSimulate

Pyppeteer是Puppeteer的Python版实现 Pyppeteer的背后实际上有一个类似于Chrome的浏览器–Chromium class PyppeteerSimulate(BrowserSimulateBase):def __init__(self):self.browser Noneself.page None# 启动浏览器# is_headless 是否开启无头模式# is_cdp 是否使用cdp (C…

win10报错“api-ms-win-crt-string-l1-1-0.dll文件丢失,软件无法启动”,快速修复方法,亲测有效

api-ms-win-crt-string-l1-1-0.dll是Windows操作系统中的一个动态链接库文件,属于Microsoft C Runtime Library。它包含了Windows操作系统需要运行C程序的一些基本系统函数,比如字符串处理、内存分配等。 它的作用主要是提供一些基本的、用于支持C语言编…

go语言gin框架的基本使用

1.首先在linux环境上安装go环境,这个网上搜搜就行 2.初始化一个go mod,网上搜搜怎么初始化 3.下面go代码的网址和端口绑定自己本机的就行 4.与另一篇CSDN一起食用,效果更好哟---> libcurl的get、post的使用-CSDN博客 package mainimpo…

算法每日一题: 被列覆盖的最多行数 | 二进制 - 状态压缩

大家好,我是星恒 今天的题目又是一道有关二进制的题目,有我们之前做的那道 参加考试的最大学生数的 感觉,哈哈,当然,比那道题简单多了,这道题感觉主要的考点就是二进制,大家可以好好总结一下这道…

04、Kafka ------ CMAK 各个功能的作用解释(Cluster、集群、Broker、位移主题、复制因子、领导者副本、主题)

目录 启动命令:CMAK的用法★ 在CMAK中添加 Cluster★ 在CMAK中查看指定集群★ 在CMAK中查看 Broker★ 位移主题★ 复制因子★ 领导者副本和追随者副本★ 查看主题 启动命令: 1、启动 zookeeper 服务器端 小黑窗输入命令: zkServer 2、启动 …

苹果电脑Markdown写作工具:ulysses mac软件介绍

ulysses for mac是一款Markdown写作工具,支持Markdown拼写检查、语音识别、iCloud同步、版本管理等功能,并且可以导出为 PDF、word、RTF、TXT、Markdown、HTML 和 ePub等文件格式。 ulysses for mac软件介绍 适用于Mac,iPad和iPhone的终极写…

试除法判定质数算法总结

知识概览 质数的定义 在大于1的整数中,如果只包含1和本身这两个约数,就被称为质数,或者叫素数。 质数的判定——试除法 暴力算法 时间复杂度 改进算法 时间复杂度 暴力算法:时间复杂度O(n) 算法模版 bool is_pr…

简单几步使用Spring整合MyBatis(含配置多数据源和多Mapper XML文件路径)

1. 逻辑梳理 我们先分析下使用者视角:代码中使用Mapper接口对数据进行数据库操作,具体的SQL在Mapper xml文件中。可以看到Mapper接口和Mapper xml是有一定的关联关系的,我们的配置思路也是如此,就是把两者绑定起来即可。 首先我…

Idea live template

1:打印入参日志的配置 log.info("$methodName$ 方法入参: $argsLog$",$argsJson$); methodName:methodName() argsLog:groovyScript( "def result; def params\"${_1}\".replaceAll([\\\\[|\\\\]|\\\\s], ).split(,).toList(); for(i 0; i <…

【负载均衡oj】(七)ojserver

一.目的 负责负载均衡&#xff0c;获取网站首页&#xff0c;通过网络罗调用编译并运行并提供结果给用户。根据用户的操作提供不同的功能。采用mvc结构。使用 ctemplate文字模板做数据渲染 m在这里指的是和数据的交互&#xff0c;可以用文件或者sql交互。在使用文件的情况下&a…

CISP-DSG和CDGA该如何选择?

同样是数据治理&#xff0c;CDGA证书和CISP-DSG证书&#xff0c;它们之间有什么区别和各自的优势呢❓ 1️⃣CISP-DSG CISP-DSG证书聚焦于信息an全领域&#xff0c;特别guan注数据an全治理。 国际知名zi询机构Gartner用“风暴之眼”比喻“数据an全治理”&#xff0c;&#x1f44…

hyperf 基础合集

目前合计不包括数据库。 hyperf 一、搭建 -CSDN博客hyperf 二、路由 -CSDN博客hyperf 三、中间件 -CSDN博客hyperf 四、控制器 -CSDN博客hypef 五、请求及响应 -CSDN博客hyperf 六、异常处理 -CSDN博客hypef 七、配置文件的使用_-CSDN博客hypef 八、缓存 -CSDN博客hypef 九、日…

【机器学习】线性回归·可运行源码

一&#xff0c;基础函数库 import numpy as np from utils.features import prepare_for_trainingclass LinearRegression:def __init__(self, data, labels, polynomial_degree0, sinusoid_degree0, normalize_dataTrue):"""1.对数据进行预处理操作2.先得到所…

ssm基于java web 的QQ村旅游网站的设计+vue论文

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统旅游信息管理难度大&#xff0c;容错率低&#xff0c;管理…

el-select下拉框 change事件返回该项所有数据

主要代码 value-key <template><div><el-selectv-model"value"value-key"label"placeholder"请选择"change"selectChange"><el-optionv-for"item in options":key"item.label":label"…

云计算历年题整理

第一大题 第一大题计算 给出计算连接到EC2节点的EBS的高可用性(HA)的数学公式&#xff0c;如场景中所述&#xff1b;计算EC2节点上的EBS的高可用性(HA)&#xff1b;场景中80%的AWS EC2节点用于并行处理&#xff0c;总共有100个虚拟中央处理单元(vCPUs)用于处理数据&#xff0…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)在EventLoop的任务队列中添加新任务

任务队列是一个链表&#xff0c;每个节点包含channel类型、文件描述符和操作类型。在添加节点时&#xff0c;需要考虑线程同步&#xff0c;并确保节点被正确地添加到链表中。节点的操作可以写到另一个函数中&#xff0c;以便于程序的维护。在添加任务节点时&#xff0c;需要加互…