2024.3.17 机器学习周报

引言

Abstract

文献阅读

1、题目

R-TRANSFORMER: RECURRENT NEURAL NETWORK ENHANCED TRANSFORMER

2、引言

递归神经网络长期以来一直是序列建模的主要选择。然而,它严重遭受两个问题:在捕获非常长期的依赖性和无法并行化的顺序计算过程中无能为力。因此,最近提出了许多基于卷积和注意力操作的非递归序列模型。值得注意的是,具有多头注意力的模型(如Transformer)在捕获各种序列建模任务中的长期依赖关系方面表现出了极大的有效性。尽管他们的成功,但是,这些模型缺乏必要的组件来模拟局部结构的序列,并严重依赖于位置嵌入,具有有限的效果,并需要大量的设计工作。在本文中,我们提出了R-Transformer,它既具有RNN和多头注意力机制的优点,又避免了各自的缺点。该模型可以有效地捕捉局部结构和全球长期依赖的序列,而不使用任何位置嵌入。我们通过广泛的实验来评估R-Transformer,实验结果表明,R-Transformer在大多数任务中的表现都远远优于最先进的方法。

3、问题

主要综合了RNN和Transformer两种模型的优点,提出了R-transformer

Transformer虽然在很多模型上表现出了很好的效果,但目前有两个比较致命的问题:

  • 第一是对于位置的编码,虽然transformer引入了Position embedding,但是其效果并不好。并且对于具体的任务还需要设计具体的位置编码方式;
  • 第二是多头注意力机制忽略了很多局部的特征

而RNN主要的问题是难以处理长距离依赖关系和难以实现并行

4、改进方法

将transformer的position embedding替换成局部的RNN,文章中称其为LocalRNN。具体来讲就是对一个序列,在每个位置的一个固定大小窗口范围内跑一个LocalRNN,将其局部的特征也表示到向量中,然后再按照transformer那样进行全局的多头attention和FeedForword

这个模型实际借鉴了TCN模型和标准transformer模型的思想。R-transformer借鉴了TCN层次化的思想,但在局部特征的提取方式上,TCN使用的是卷积核,而该模型使用了LocalRNN,这样可以更好地将位置信息进行提取。

通过以上改进,模型可以通过LocalRNN提取局部特征,弥补标准transformer在这方面的不足,同时在整体框架上依旧保持着transformer模型可并行的特点

5、R-Transformer模型

R-Transformer模型由一系列相同的层组成。每一层包含三个组件,按层次结构组织,层结构的架构如图1所示。较低级别是用于建模序列中的局部结构的本地循环神经网络;中间级别是能够捕捉全局长期依赖性的多头注意力;较高级别是逐位置的前馈网络,进行非线性特征转换。

R-Transformer提出用一个个单独的RNN来对每一个位置进行单独处理 (注:可以是Vanilla RNN,LSTM或者GRU),如下图,最底下的每一个红色圆代表句子中的一个词,最左侧虚线圆是补全上去的,每一个RNN只在一个窗口中运行,窗口的大小为3。假设没有补全,在第一个窗口中第一个红圆在第一位置,论文中需要确保处理每一个词时这个词后面的信息是不能获取到的,即将每一个需要处理的词放到窗口的最后一位,这样前面的都是过去的,不包含后面的信息,因此需要补全。

经过Local RNN之后每三个词就会对应一个隐藏状态,将隐藏状态和原始输入做一次Add & Norm

 

接下来会进入多头注意力层,这里与Transformer中的处理一致,区别是这里q,k,v是用隐藏状态进行初始化的。对于第 t 个时间步,首先初始化q,之后再初始化每一个k,v,然后与它们做点乘运算,形成这个q和整个序列的关系。结束多头注意力之后再过一下Add & Norm。最后经过全连接层和Add & Norm,全连接层的设置与Transformer一致。 

用公式来整体看一下N层的结构,对于 i^{th} 层(i\epsilon \left \{ 1,2,...,N \right \}):

R-Transformer通过单个的RNN捕捉位置信息来代替位置编码,因为每一个词都由不同的RNN处理,避免了传统的“一个接一个”的尴尬处境,进而可以并行化处理(每个RNN处理三个词不算多);另外,传统RNN由于中间传播很多次,很容易产生梯度消失和梯度爆炸的情况,这里的每一个RNN的处理总步长只有3,可以较有效地规避这两个问题。 

6、模型对比

TCN:与R-Transformer不同,TCN采取卷积运算的方式来获得位置信息,卷积的本质即是矩阵做点乘运算,将滤波器中的值换为query就可以获得滤波器窗口内词与词之间的联系,可是滤波器并非横向进行,而是一块窗口在选定范围内进行移动,因而忽略了序列信息。

7、实验

选取了图像,音频和文本数据作为实验对象,通过对照实验R-Transformer在文本领域略输于Transformer-XL,其他领域均优于Transformer-XL,Transformer和TCN。

选取了MNIST作为数据集,有趣的是这里把28 * 28的像素矩阵转为784 * 1的长序列矩阵,这样就使得原本靠的很近的像素离的很远,这样用以测试模型是否能够捕捉长距离依赖。

选取了Nottingham作为数据集,每个乐符与它附近的乐符都有较深的联系,这也就考验了模型捕捉本地序列关系信息的能力。实验中,学习率选自 \left \{ 5e^{-4},5e^{-5},5e^{-6} \right \},Dropout的概率为0.1,此外训练时还选取了梯度裁剪,用负对数似然(negative log likelihood)作为损失函数。 

这里选取了字符级(character-level)和词级(word-level)的文本,数据集为 PennTreebank,,任务是给定句子的前 N 个位置,预测下一个字符/词。

在字符级的任务中,学习率属于 {1,2,3} ,Dropout的概率为0.35,梯度裁剪同样用到,选取了bpc(bits-per-character)作为语言评价指标,先介绍困惑度(perplexity),对于一个长度为 � 的字符串,这里 w_{i} ​是字符。

 

在词级别的任务中,上面选择的参数不变,同时选取了Transformer-XL(SOTA)作为基例,对于它来说学习率选自于 {0.01,0.001,0.0001},结果是0.001效果最好。这里用的是困惑度(perplexity)作为评价指标,这里 w_{i} ​是词。对于Transformer-XL超过R-Transformer可以理解,毕竟是专门为该领域涉及的SOTA版。 

 8、结果

在本文中,我们提出了一种新的通用序列模型,它既具有RNN和多头注意力的优点,又减轻了它们的缺点。具体来说,它由一个LocalRNN和一个多头注意力池组成,LocalRNN学习局部结构,而不会受到RNN的任何弱点的影响,多头注意力池可以有效地捕获长期依赖关系,而无需任何位置嵌入的帮助。此外,该模型可以很容易地实现与序列中的位置完全并行化。来自广泛领域的序列建模任务的实证结果表明,R-Transformer比最先进的非递归序列模型(如TCN和标准Transformer以及规范递归架构)具有显着的优势。

总结

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

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

相关文章

云服务器2核4G能支持多少人同时访问?拿本记上!

腾讯云轻量2核4G5M带宽服务器支持多少人在线访问?5M带宽下载速度峰值可达640KB/秒,阿腾云以搭建网站为例,假设优化后平均大小为60KB,则5M带宽可支撑10个用户同时在1秒内打开网站,并发数为10,经阿腾云测试&a…

[蓝桥杯练习题]确定字符串是否包含唯一字符/确定字符串是否是另一个的排列

确定字符串是否包含唯一字符 #include<bits/stdc.h> using namespace std; int main(){ios::sync_with_stdio(0);cin.tie(nullptr);cout.tie(nullptr);map<char,int>m;string s;cin>>s;for(int i0;i<s.size();i){if(isalpha(s[i]))s[i]tolower(s[i]);if(…

如何使用“Docker registry创建本地仓库,在服务器之间进行文件push和pull”?

1.1、在服务器1&#xff0c;运行registry docker run -d -p 5000:5000 -v ${PWD}/registry:/var/lib/registry --restart always --name registry registry:2.7.11.2、编辑/etc/docker/daemon.json 文件&#xff0c; 192.168.xxx.xxx 换成你自己 registry 服务的地址 sudo na…

印度交易所股票行情数据API接口

1. 历史日线 # Restful API https://tsanghi.com/api/fin/stock/XNSE/daily?token{token}&ticker{ticker}默认返回全部历史数据&#xff0c;也可以使用参数start_date和end_date选择特定时间段。 更新时间&#xff1a;收盘后3~4小时。 更新周期&#xff1a;每天。 请求方式…

下载程序到嵌入式开发板教程

一、设置共享目录 ubuntu与Window共同拥有的目录。 第一步&#xff1a;在Windows下创建一个文件夹share 第二部&#xff1a;点击虚拟机--->设置--->选项--->共享文件夹 进入共享目录的命令&#xff1a;cd/mnt/hgfs/share 二、C语言编译器 使用Linux平台下的gcc编…

MyBatis Plus(代码生成器)

一、安装 安装MyBatisPlus插件 二、配置 1、 在生成代码之前首先需要配置所要连接的数据库 下面所对应的分别是&#xff1a; 所要连接的数据库 数据库驱动 用户名 密码 2、 点击Other->Code Generator 开始配置所需选项

【NR 定位】3GPP NR Positioning 5G定位标准解读(十四)-DL-TDOA 定位

前言 3GPP NR Positioning 5G定位标准&#xff1a;3GPP TS 38.305 V18 3GPP 标准网址&#xff1a;Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;一&#xff09;-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;…

基于卷积神经网络实现手写数字识别

基于卷积神经网络实现手写数字识别 基于卷积神经网络实现手写数字识别。具体过程如下&#xff1a; &#xff08;1&#xff09; 定义ConvNet结构类及其前向传播方式 &#xff08;2&#xff09; 设置超参数以及导入相关的包。 &#xff08;3&#xff09; 定义训练网络函数和绘…

桌面待办,电脑桌面待办事项便利贴怎么搞的

电脑桌面待办事项贴便利&#xff0c;是一款非常实用的小工具&#xff0c;可以帮助我们高效管理工作和生活中的各种任务。通过简单的操作&#xff0c;你可以在电脑桌面上添加待办事项&#xff0c;随时提醒自己完成任务&#xff0c;提高工作效率。那么&#xff0c;桌面待办&#…

Hack The Box-Jab

目录 信息收集 nmap enum4linux 服务信息收集 Pidgin kerbrute hashcat 反弹shell & get user 提权 系统信息收集 端口转发 漏洞利用 get root 信息收集 nmap 端口探测┌──(root㉿ru)-[~/kali/hackthebox] └─# nmap -p- 10.10.11.4 --min-rate 10000 -oA…

vitepress里使用gitalk(图文教程)

vitepress里使用gitalk Gitalk 是一个基于 GitHub Issue 和 Preact 开发的评论插件 生成client配置 创建OAuth application 填写完毕&#xff0c;点击 Register application 即可 生成client secrets 一开始没有自动生成 Client secrets&#xff0c;需要手动生成&#xff…

Day17 深入类加载机制

Day17 深入类加载机制 文章目录 Day17 深入类加载机制一、初识类加载过程二、深入类加载过程三、利用类加载过程理解面试题四、类加载器五、类加载器分类六、类加载器之间的层次关系七、双亲委派模型 - 概念八、双亲委派模型 - 工作过程九、双亲委派模型 - 好处十、双亲委派原则…

MySQL:视图

1. 概述 在MySQL中&#xff0c;视图&#xff08;View&#xff09;是一个虚拟存在的表&#xff0c;其内容是由查询定义的。视图本身并不包含数据&#xff0c;它只包含一条SQL查询语句&#xff08;即定义视图的SELECT语句&#xff09;。当通过视图访问数据时&#xff0c;MySQL会执…

【软考高项】八、信息技术发展之新一代信息技术及应用

1、物联网 定义&#xff1a;通过信息传感设备&#xff0c;按约定的协议将任何物品与互联网相连接&#xff0c;进行信息交换和通信&#xff0c;以实现智能化识别、定位、跟踪、监控和管理的网络 分层&#xff1a; 感知层---各种传感器构成 网络层---物联网的中枢&#xff0c…

西门子TIA中配置Anybus PROFINET IO Slave 模块

1、所需产品 Siemens S7 PLC CPU 315-2 PN/DP 6ES7 315-2EH-0AB0 Siemens PLC 编程电缆 n.a. n.a. PC ,并安装Siemens PLC编程软件 TIA Portal V11 X-gateway Slave 接口的GSDML文件 根据网关的软件版本而定 Anybus Communicator GSD文件 GSDML-V1.0-HMS-ABCPRT-20050317.xl…

win下 VirtualBox 自动启动脚本脚本

文章目录 一、找到VBoxManage二、测试脚本1、打开cmd2、输入命令 (直接把上面找到的VBoxManage.exe 拖入到cmd中&#xff0c;这样就不用输入路径了)3、效果展示 比如虚拟机中的系统名称叫“centos-mini” 三、设置自动启动脚本1、复制刚才测试好的命令到新建文本中2、修改文本名…

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

Golang实现Redis分布式锁&#xff08;Lua脚本可重入自动续期&#xff09; 1 概念 应用场景 Golang自带的Lock锁单机版OK&#xff08;存储在程序的内存中&#xff09;&#xff0c;分布式不行 分布式锁&#xff1a; 简单版&#xff1a;redis setnx》加锁设置过期时间需要保证原…

Unity3d版白银城地图

将老外之前拼接的Unity3d版白银城地图&#xff0c;导入到国内某手游里&#xff0c;改成它的客户端地图模式&#xff0c;可以体验一把手游的快乐。 人物角色用的是它原版的手游默认的&#xff0c;城内显示效果很好&#xff0c;大家可以仔细看看。 由于前期在导入时遇到重大挫折&…

PMP的学习方法

PMBOK编撰了管理项目需要的49个过程&#xff08;输入、工具技术、输出&#xff09;。工具技术文件&#xff0c;林林总总百余个。第一部分&#xff0c;按照十大知识领域顺序从前到后编排&#xff1b;第二部分&#xff0c;按照五大过程组顺序重新编排了一遍。 一&#xff0c;PMB…

xray问题排查,curl: (35) Encountered end of file(已解决)

经过了好几次排查&#xff0c;都没找到问题&#xff0c;先说问题的排查过程&#xff0c;多次确认了user信息&#xff0c;包括用户id和alterid&#xff0c;都没问题&#xff0c;头大的一逼 问题排查过程 确保本地的xray服务是正常的 [rootk8s-master01 xray]# systemctl stat…