ICML 2017: 基于卷积的Seq2Seq解决方案
一.文章概述
通常而言,Seq2Seq解决方案一般都采用循环神经网络,但在本文,作者提出了基于卷积神经网络的解决方案ConvS2S。基于卷积神经网络的方案有两大优势:计算并行化更高,优化更容易(非线性的数量是固定的)。
二.卷积框架
ConvS2S的框架如下图所示,在对源语句English(上)进行编码后,对4个德语目标词进行编码(左下)并计算并计算注意力。然后将注意力(中右)计算的条件输入添加到解码器状态,再预测目标单词(右下)。

2.1 位置编码
给定输入序列 x = ( x 1 , . . . , x m ) \mathbf{x} = (x_1,...,x_m) x=(x1,...,xm),其对应的嵌入表示为 w = ( w 1 , … , w m ) \mathbf{w}=\left(w_1, \ldots, w_m\right) w=(w1,…,wm),其中 w j ∈ R f w_j \in \mathbb{R}^f wj∈Rf。对于其嵌入表示,作者加上了绝对位置,即 e = ( w 1 + p 1 , … , w m + p m ) \mathbf{e}=\left(w_1+p_1, \ldots, w_m+p_m\right) e=(w1+p1,…,wm+pm)。
2.2 卷积块结构
Encoder和Decoder都采用卷积块(一维卷积+非线性层)。令Decoder第 l l l块的输出为 h l = ( h 1 l , … , h n l ) \mathbf{h}^l=\left(h_1^l, \ldots, h_n^l\right) hl=(h1l,…,hnl),Encoder第 l l l块输出为 z l = ( z 1 l , … , z m l ) \mathbf{z}^l=\left(z_1^l, \ldots, z_m^l\right) zl=(z1l,…,zml) 。给定输入 X ∈ R k × d X \in \mathbb{R}^{k \times d} X∈Rk×d ,经过卷积神经网络的输出为 Y = [ A B ] ∈ R 2 d Y=[A B] \in \mathbb{R}^{2 d} Y=[AB]∈R2d。对于非线性层,作者采用的是门控线性单元,即:
v ( [ A B ] ) = A ⊗ σ ( B ) v([A B])=A \otimes \sigma(B) v([AB])=A⊗σ(B)
其中 σ ( B ) \sigma(B) σ(B)控制着当前上下文中哪些输入 A A A是相关的。
此外,为了能堆叠更深的卷积层,作者使用了残差连接。
h i l = v ( W l [ h i − k / 2 l − 1 , … , h i + k / 2 l − 1 ] + b w l ) + h i l − 1 h_i^l=v\left(W^l\left[h_{i-k / 2}^{l-1}, \ldots, h_{i+k / 2}^{l-1}\right]+b_w^l\right)+h_i^{l-1} hil=v(Wl[hi−k/2l−1,…,hi+k/2l−1]+bwl)+hil−1
为了避免decoder看到未来的信息,作者在输入的左侧和右侧都pad k − 1 k-1 k−1个 0 0 0,并删除了卷积输出末端的 k k k个元素。
h i l = v ( W l [ h i − k / 2 l − 1 , … , h i + k / 2 l − 1 ] + b w l ) + h i l − 1 h_i^l=v\left(W^l\left[h_{i-k / 2}^{l-1}, \ldots, h_{i+k / 2}^{l-1}\right]+b_w^l\right)+h_i^{l-1} hil=v(Wl[hi−k/2l−1,…,hi+k/2l−1]+bwl)+hil−1
2.3 Multi-step Attention
对于每个decoder层,作者引入了单独的注意力机制。作者组合当前解码器状态 h i l h_i^l hil和先前的目标元素 g i g_i gi来计算注意力:
d i l = W d l h i l + b d l + g i d_i^l=W_d^l h_i^l+b_d^l+g_i dil=Wdlhil+bdl+gi
对于解码层 l l l,状态 i i i和源元素 j j j的注意力 a i j l a_{i j}^l aijl是基于点积计算的:
a i j l = exp ( d i l ⋅ z j u ) ∑ t = 1 m exp ( d i l ⋅ z t u ) a_{i j}^l=\frac{\exp \left(d_i^l \cdot z_j^u\right)}{\sum_{t=1}^m \exp \left(d_i^l \cdot z_t^u\right)} aijl=∑t=1mexp(dil⋅ztu)exp(dil⋅zju)
其中 z j u z_j^u zju表示最后一个编码层的输出。当前解码曾的输入 c i l c_i^l cil即为解码器输出和输入嵌入 e j e_j ej的加权和:
c i l = ∑ j = 1 m a i j l ( z j u + e j ) c_i^l=\sum_{j=1}^m a_{i j}^l\left(z_j^u+e_j\right) cil=j=1∑maijl(zju+ej)
上述注意力的计算方法与传统的seq2seq中的注意力机制有点不太相同,作者还添加了 e j e_j ej,其类似于键值存储网络,其中键是 z j u z_j^u zju ,值是 z j u + e j z_j^u+e_j zju+ej。编码器的输出 z j u z_j^u zju表示潜在的大输入上下文,而 e j e_j ej提供了特定输入元素的点信息,其对预测比较有效。
2.4 正则化策略
通过缩放残差模块的输出和注意力以确保整个网络的方差不会发生剧烈变化。
对于残差块,将残差块的输入和输出的总和乘以 0.5 \sqrt{0.5} 0.5,使总和的方差减半。
由注意力生成的条件输入 c i l c_i^l cil是 m m m个向量的加权和,作者通过乘以 m 1 / m m \sqrt{1 / m} m1/m来抵消方差的变化。
相关文章:
ICML 2017: 基于卷积的Seq2Seq解决方案
一.文章概述 通常而言,Seq2Seq解决方案一般都采用循环神经网络,但在本文,作者提出了基于卷积神经网络的解决方案ConvS2S。基于卷积神经网络的方案有两大优势:计算并行化更高,优化更容易(非线性的数量是固定…...
探索GmSSL+Nginx实践及原理
前言 随着大国崛起步伐的迈进,敏感单位的数据安全问题越发受到重视,数据的加密安全传输尤为重要,对于安全问题,国家自研加密算法提供了有力的保障。 作为信创行业的国有企业,十分有必要在网络通信中使用国密算法加密…...
Mybatis框架学习
什么是mybatis? mybatis是一款用于持久层的、轻量级的半自动化ORM框架,封装了所有jdbc操作以及设置查询参数和获取结果集的操作,支持自定义sql、存储过程和高级映射 mybatis用来干什么? 用于处理java和数据库的交互 使用mybat…...
基于微信小程序的电影院订票系统设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言运行环境说明用户微信小程序端的主要功能有:管理员的主要功能有:具体实现截图详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考论文参考源码获取 前言 💗博主介绍&…...
LeetCode-热题100-笔记-day32
二分查找 今日刷到二分查找,以前做过的题忘的一干二净;庆幸自己用新的方法做了出来两道“中等”题;(我都能做出来我认为应该标“简单”)由于之前题的难度基本在抄答案,所以停更几天。今天没抄答案就更新一…...
STP生成树协议基本配置示例---STP逻辑树产生和修改
STP是用来避免数据链路层出现逻辑环路的协议,运行STP协议的设备通过交互信息发现环路,并通过阻塞特定端口,最终将网络结构修剪成无环路的树形结构。在网络出现故障的时候,STP能快速发现链路故障,并尽快找出另外一条路径…...
Java版企业电子招标采购系统源码—企业战略布局下的采购寻源
项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审…...
华纳云:SQLserver配置远程连接的方法是什么
在 SQL Server 中配置远程连接涉及一些步骤,包括启用远程连接、配置网络协议、设置防火墙规则和授权远程访问。以下是一些配置远程连接的主要步骤: 启用远程连接: 打开 SQL Server Management Studio(SSMS)并连接到你的…...
CryptoCTF easy
文章目录 2023suctionBlue Office 2022Baphomet 2023 suction 题目描述: from Crypto.Util.number import * from flag import flagdef keygen(nbit, r):while True:p, q [getPrime(nbit) for _ in __]e, n getPrime(16), p * qphi (p - 1) * (q - 1)if GCD(e…...
计算机视觉技术的革新:医疗领域的应用
近年来,计算机视觉技术在医疗领域引起了广泛的关注和应用。通过将计算机视觉与医疗技术相结合,我们可以实现更准确、高效的医疗诊断和治疗,为患者提供更好的医疗服务。 首先,计算机视觉在医疗图像分析中的应用是其中的一个重要方…...
python找出文件夹里文件名以特定字符结尾的文件并移动到另一个目录
python找出文件夹里文件名以特定字符结尾的文件并移动到另一个目录 代码 import os import shutil# 源文件夹路径 source_folder "./data/deep/test"# 目标文件夹路径 target_folder "./data/deep/A"# 确保目标文件夹存在,如果不存在则创建…...
面试官问:大量的 TIME_WAIT 状态 TCP 连接,对业务有什么影响?怎么处理?
几个方面: 问题描述:什么现象?什么影响? 问题分析 解决方案 底层原理 1.问题描述 模拟高并发的场景,会出现批量的 TIME_WAIT 的 TCP 连接: 短时间后,所有的 TIME_WAIT 全都消失࿰…...
前端就业宝典---目录
工作时候扭螺丝,面试时候造火箭,现状就是如此。不管是背八股文,还是掌握了知识的精华,对答如流才是硬道理。本专栏就是要集具前端精华,规范、算法、架构、封装、原理等一并汇集,让前端的小伙伴有个思路。 大剑师的微信 gis-dajianshi, 欢迎一起交流,并非常期望您能够提…...
Uniboot 系列光纤跳线简介
飞速(FS)Uniboot 系列光纤跳线产品质量可靠,性能优良,可满足数据中心的各种需求。其中,包括LC、CS™、MDC 和 SN 在内的不同类型的连接器能够满足不同应用的特定需求。下面将进一步介绍飞速(FS)…...
【面试题】Promise只会概念远远不够,还需这17道题目巩固!
前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 表妹一键制作自己的五星红旗国庆头像,超好看 在学习Promise相关题目之前,我们先做一些知识的回顾:JavaScript 是一门单…...
互联网医院牌照|互联网医院牌照审批流程和材料
随着科技的不断进步和社会的发展,互联网医院已经成为了当前的热点。而互联网医院的准入门槛自然也就越来越高。如果您计划成立一个互联网医院,您需要了解申请互联网医院牌照所需要注意的方面以及申请的流程。 一、资质申请前的准备 1、立项阶段准备 在立…...
第五章:C语言的数组
文章目录 1、数组的理解2、各类数组的定义3、变长数组4、字符数组 1、数组的理解 一维数组:比如定义一个int a[3];,那么可以将其看成两部分,a【3】为①,int为②。意思就是有一个数组名字为a,里面包含3个(池࿰…...
Spring面试题3:说一说MVC框架的底层实现
该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一说MVC框架的底层实现 MVC(Model-View-Controller)是一种软件设计模式,常被用于构建用户界面和应用程序的架构。MVC框架的底层实现可以分为…...
云原生周刊:K8s 的 13 个最佳开源监控工具
开源项目推荐 Silver Surfer 该项目旨在检查 Kubernetes 对象的 API 版本兼容性,并为其提供迁移路径,以便为集群升级做好准备。 Actions Runner Controller Actions Runner Controller (ARC) 是一个 Kubernetes 操作器,可为 GitHub Actio…...
怎么克服一篇论文写作前的恐惧感?
作者 代陈锐 中国科学技术大学生命科学与医学部在读博士生,主要探究生理和病理过程中组蛋白翻译后修饰的调控机制。 1. 引言 在我们开始一篇文章的撰写时,往往不知如何下笔或是不停否认自己撰写的内容,最终的结果自然是撰写效率低而且陷入自我纠结。在这里我通过结合平时…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
