CoMER论文翻译

news2024/9/24 17:14:22

文章目录

    • Abstract
    • 1、Introduction
    • 2、Related Work
      • 2.1 HMER Methods
      • 2.2 Coverage Mechanism
    • 3、Methodology
      • 3.1、Background
      • 3.2、CNN Encoder
      • 3.3、Positional Encoding
      • 3.4、Attention Refinement Module
      • 3.5、Coverage
    • 4 Experiments

论文链接:https://arxiv.org/abs/2207.04410
github地址:https://github.com/Green-Wood/CoMER

Abstract

我们提出了一种新的注意细化模块(ARM),在不影响其并行性的情况下,利用过去的对齐信息来细化注意力权重。此外,我们通过自我覆盖和交叉覆盖,将覆盖信息发挥到极致,它利用了当前和过去的对齐信息。

1、Introduction

除了的书写风格,我们还需要建模符号和上下文之间的关系。例如,在Latex中,模型需要生成“ˆ”、“_”、“{”和“}”来描述二维图像中符号之间的位置和层次关系。在HMER任务中广泛使用编码器-解码器的结构,在编码器部分进行特征提取,在解码器部分进行语言建模。

Transformer是一种仅基于注意机制的神经网络结构,它已逐渐取代RNN成为自然语言处理中的首选模型。通过Transformer的自注意机制,建立一对一连接。这种架构时的Transformer能够更好地在token之间建立长期依赖。目前,Transformer在计算机视觉和多模态中受到越来越多的关注。

虽然Transformer已经成为NLP的标准,但它在HMER任务中的性能与RNN相比并不令人满意。我们注意到,使用变压器解码器的模型仍然存在缺乏注意力覆盖问题。主要表现在两个方面:过度解析意味着图像的某些部分被不必要地经过多次,而过度解析则意味着某些区域仍然未被解析。RNN解码器使用覆盖关注来缓解这一问题。然而,当前Transformer解码器使用了普通的点积计算注意力,而没有覆盖机制,这是限制其性能的关键因素。

Transformer中每一步的计算都是相互独立的,而不像RNN那样,其中当前一步的计算取决于上一步的状态。虽然这种性质改进了变压器中的并行性,但它使得Transformer解码器很难利用注意力覆盖。为了解决上述问题,我们提出了一种新的模型来利用转换解码器的覆盖信息,名为CoMER。受到RNN中的覆盖机制的启发,我们希望Transformer将更多的注意力分配到尚未被解析的区域上。具体地说,我们提出了一种新的、通用的注意细化模块(ARM),它可以在不影响其并行性的情况下,动态地利用过去的对齐信息来细化注意力权值。为了充分利用来自不同层的对齐信息,我们提出了自覆盖和交叉覆盖来分别利用来自当前层和上一层的过去对齐信息。我们进一步表明,CoMER在HMER任务中的表现优于普通的Transformer解码器和RNN解码器。我们的工作的主要贡献总结如下:

  • 我们提出了一种新的、通用的注意细化模块(ARM)来细化变压器解码器中的注意权重,在不损害其并行性的情况下,有效地缓解了覆盖缺乏的问题。
  • 我们提出了自覆盖、交叉覆盖和融合覆盖,以充分利用Transformer解码器中不同层生成的过去对齐信息。

2、Related Work

2.1 HMER Methods

2.2 Coverage Mechanism

覆盖机制是为了解决机器翻译任务中的过翻译和翻译不足问题。之前所有在HMER任务使用覆盖机制的RNN中,通过引入覆盖向量来表示图像特征向量是否已经解析,引导模型把更多的注意力放在未解析的区域。这是一个逐步的细化的过程,解码器需要为每一步收集过去的对齐信息。对于RNN模型,解码器可以自然地在每一步中累积注意权值,但对于执行并行译码的变压器解码器则比较困难。

3、Methodology

CoMER主要由四部分组成:

  1. CNN编码器,主要从二维公式图像中提取特征。
  2. 位置编码,为transformer解码器添加位置信息。
  3. 注意细化模块(ARM),用过去的对齐信息对注意权重进行细化。
  4. 自覆盖和交叉覆盖利用了来自当前和之前层的对齐信息。

3.1、Background

  • Coverage Attention in RNN

注意力覆盖在基于RNN的HMER模型中得到了广泛的应用。覆盖向量为注意力模型提供了一个区域是否已被解析的信息。让编码器产生扁平的输出图像特征 X f ∈ R L × d m o d e l X_{f}\in R^{L\times d_{model}} XfRL×dmodel模型,序列长度为 L = h o × w o L = h_{o}×w_{o} L=ho×wo。在每一步t中,将之前的注意权值 a k a_{k} ak累积为注意力向量 c t c_{t} ct,然后转化为覆盖矩阵 F t F_{t} Ft
c t = ∑ k = 1 t − 1 a k ∈ R L F t = c o n v ( c t ) ∈ R L × d a t t n c_{t} = \sum^{t-1}_{k=1}a_{k} \in R^{L} \\ F_{t}=conv(c_{t}) \in R^{L \times d_{attn}} ct=k=1t1akRLFt=conv(ct)RL×dattn
这里cov(·)表示11×11卷积层和线性层函数。

在注意机制中,我们可以计算每个图像特征的相似度得分 e t , i e_{t,i} et,i。当前步骤t时的注意权重计算如下:
e t = t a n h ( H t W h + X f W x + F t ) V a (等式 3 ) a t = s o f t m a x ( e t ) ∈ R L e_{t}=tanh(H_{t}W_{h}+X_{f}W_{x}+F_{t})V_{a} (等式3)\\ a_{t}=softmax(e_{t}) \in R^{L} et=tanh(HtWh+XfWx+Ft)Va(等式3at=softmax(et)RL

  • Multi-Head Attention

多头注意点是Transformer中最关键的组成部分。使用模型维度大小 d m o d e l d_{model} dmodel、查询序列长度 L L L和键序列长度 L L L,我们将多头注意力计算分为四个部分:

  1. 将Q、K和V投影到相同的子空间;
  2. 计算比例点积 E i E_{i} Ei
  3. 计算注意权值 A i A_{i} Ai
  4. 将注意权值 A i A_{i} Ai与值 V i V_{i} Vi相乘。

Q i , K i , V i = Q W i Q , K W i K , V W i V E i = Q i K i T d k ∈ R T × L A i = s o f t m a x ( E i ) ∈ R T × L H e a d i = A i V i M u l t i H e a d ( Q , K , V ) = [ H e a d 1 , … , H e a d h ] Q_{i},K_{i},V_{i}=QW^{Q}_{i},KW^{K}_{i},VW^{V}_{i} \\ E_{i}=\frac{Q_{i}K^{T}_{i}}{\sqrt d_{k}} \in R^{T \times L} \\ A_{i}=softmax(E_{i}) \in R^{T \times L} \\ Head_{i}=A_{i}V_{i}\\ MultiHead(Q,K,V)=[Head_{1},\dots,Head_{h}] Qi,Ki,Vi=QWiQKWiKVWiVEi=d kQiKiTRT×LAi=softmax(Ei)RT×LHeadi=AiViMultiHead(Q,K,V)=[Head1,,Headh]

3.2、CNN Encoder

我们使用DenseNet 来提取二维公式图像中的特征。图像输出特征为 X a ∈ R h o × w o × d m o d e l X_{a} \in R^{h_{o} \times w_{o} \times d_{model}} XaRho×wo×dmodel

3.3、Positional Encoding

3.4、Attention Refinement Module

虽然覆盖问题在RNN解码器中得到了广泛的应用,但由于Transformer的并行解码,很难在Transformer解码器中直接使用。由于不能直接在Transformer中建模覆盖信息,导致其在HMER任务中的性能不理想。我们将首先在本小节中介绍在变压器中使用覆盖信息的困难,然后提出一种新的注意力细化模块(ARM)来解决这个问题。

一个简单的解决方案是利用多头注意力权重A,将其累积为C,并使用等式中的conv(.)函数将其转化为覆盖矩阵F。然而考虑到空间复杂性,这种方法不可接受的。如果多头注意力权重 A ∈ R T × L × h A \in R^{T \times L \times h } ART×L×h,conv(.)函数将作用于每一个时间步长和图像特征,这将产生空间复杂度为 O ( T L h d ) O(TLhd) O(TLhd)的覆盖矩阵F。

我们可以看到,瓶颈来自于等式中的tanh(·)函数(见Coverage Attention in RNN小节中的等式3),其中覆盖矩阵需要先与其他特征向量求和,然后乘以向量va。如果我们能先将覆盖矩阵与va相乘,再加上注意的结果,空间复杂度将大大降低到 O ( T L h ) O(TLh) O(TLh)。所以我们修改了等式(3)具体内容如下:

e t ′ = t a n h ( H t W h + X f W x ) v a + F t V a = t a n h ( H t W h + X f W x ) v a + r t e^{'}_{t}=tanh(H_tW_h+X_fW_x)v_a+F_tVa=tanh(H_tW_h+X_fW_x)v_a+r_t et=tanh(HtWh+XfWx)va+FtVa=tanh(HtWh+XfWx)va+rt
其中, e t ′ e^{'}_{t} et可以被分为注意项和细化项 r t r_{t} rt,细化项可以由覆盖建模函数直接生成,我们将上述等式命名为ARM(Attention Refinement Framework)

在这里插入图片描述

图1 注意力细化模块(ARM)

为了在Transform中使用ARM,点积矩阵可以被用来作为注意力项,细化项的矩阵R通过注意力权重计算得到。注意,我们在这里使用一般的注意权重A来提供过去的对齐信息。

我们定义一个函数 ϕ : R T × L × h ⟼ R T × L × h \phi:R^{T \times L \times h} \longmapsto R^{T \times L \times h} ϕ:RT×L×hRT×L×h,它的输入为注意力权重A,输出为细化矩阵R。使用核大小为 k c k_{c} kc,中间维度为 d c ≪ h × d a t t n d_{c} \ll h \times d_{attn} dch×dattn,输出特征的维度为 L = h o × w o L=h_{o} \times w_{o} L=ho×wo,函数 ϕ \phi ϕ的定义如下:
R = ϕ ( A ) = n o r m ( m a x ( 0 , K ∗ C ~ + b c ) W c ) C ~ = r e s h a p e ( C ) ∈ R T × h o × w o × h c t = ∑ k = 1 t − 1 a k ∈ R L × h R = \phi(A)=norm(max(0,K* \tilde{C}+b_{c})W_{c}) \\ \tilde{C}=reshape(C)\in R^{T \times h_{o} \times w_{o} \times h} \\ c_{t} = \sum^{t-1}_{k=1}a_{k} \in R^{L \times h} R=ϕ(A)=norm(max(0,KC~+bc)Wc)C~=reshape(C)RT×ho×wo×hct=k=1t1akRL×h
我们认为函数 ϕ \phi ϕ可以提取局部覆盖特征来检测待识别区域的边缘,并识别未解析区域。最后,我们通过减去细化项R来细化注意项E。
A R M ( E , A ) = E − R = E − ϕ ( A ) ARM(E,A)=E-R=E-\phi(A) ARM(E,A)=ER=Eϕ(A)

3.5、Coverage

在本节中,我们将讨论在等式中的一般注意权重A的具体选择,我们提出了自覆盖和交叉覆盖来利用来自不同阶段的对齐信息,并在模型中引入了不同的过去对齐信息。

Self-coverage 自覆盖是指使用当前图层生成的对齐信息作为注意力细化模块的输入。对于当前的层j,我们首先计算注意权重A (j),然后对自己进行细化。
A ( j ) = s o f t m a x ( E ( j ) ) ∈ R T × L × h E ^ ( j ) = A R M ( E ( j ) , A ( j ) ) A ^ ( j ) = s o f t m a x ( E ^ ( j ) ) A^{(j)} = softmax(E^{(j)}) \in R^{T \times L \times h} \\ \hat{E}^{(j)}=ARM(E^{(j)},A^{(j)}) \\ \hat{A}^{(j)}=softmax(\hat{E}^{(j)}) A(j)=softmax(E(j))RT×L×hE^(j)=ARM(E(j),A(j))A^(j)=softmax(E^(j))
Fusion-coverage 结合自覆盖和交叉覆盖,我们提出了一种新的融合覆盖方法,以充分利用从不同层生成的过去对齐信息。
E ^ ( j ) = A R M ( E ( j ) , [ A ( j ) ; A ^ ( j − 1 ) ] ) A ^ ( j ) = s o f t m a x ( E ^ ( j ) ) \hat{E}^{(j)}=ARM(E^{(j)},[A^{(j)};\hat{A}^{(j-1)}]) \\ \hat{A}^{(j)}=softmax(\hat{E}^{(j)}) E^(j)=ARM(E(j),[A(j);A^(j1)])A^(j)=softmax(E^(j))

4 Experiments

在这里插入图片描述

图2 与CROHME2014/2016/2019测试集上当前方法的性能比较(以%计算)

在这里插入图片描述

图3 在CROHME2014测试集上,不同长度的识别精度(%)

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

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

相关文章

数字图像处理 图像对比度增强算法概览

一、图像对比度增强 图像对比度增强又叫作图像对比度拉伸或者直接称为点运算。图像亮度和对比度调整的目的之一是在合适的亮度上提供最大的细节信息,细节纹理的沟纹越深,图像越清晰。在图像处理中,图像对比度增强是最基本的、原理比较简单却很…

【前端】Vuex模块化和持久化应用示例

概述 Vuex作为VUE状态管理组件,能够将项目公共数据进行统一管理。而且可以按照不同的业务功能将数据状态分模块管理。另外,对于网页刷新导致Vuex状态丢失的问题可以使用vuex-persistedstate插件配置将数据保存在localStorage或者sessionStorage中。 本…

「Python|场景案例」如何给图片添加水印

本文主要介绍如何使用python的PIL库给图片增加水印 文章目录背景说明工具准备处理步骤源代码处理效果展示背景说明 当我们想给一些图片添加水印的时候,尤其是图片数量较多的时候,就可以使用python进行自动化处理。包括但不限于在自媒体上发布自己的各种…

如何使用自助式商业智能 (BI) 避免组织中的数据孤岛

许多组织都存在数据问题。当许多员工远程工作(或在混合环境中)并在多个位置使用多个设备访问公司数据时,他们正在处理信息过载问题。这只会加剧数据孤岛的问题。 数据孤岛正是它听起来的样子:孤立在一个孤立的用户/环境中的数据&…

jdk版本和Class编译版本对应关系

JDK version和class file version(Class编译版本号)对应关系 JDK 17 61, JDK 16 60, JDK 15 59, JDK 14 58, JDK 13 57, JDK 12 56, JDK 11 55, JDK 10 54, JDK 9 53, JDK 8 52, JDK 7 51, JDK 6.0 50, JDK 5.0 …

数据结构-归并排序

一、概念及其介绍 归并排序(Merge sort)是建立在归并操作上的一种有效、稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每…

三年“云改”,移动云这份答卷有多“硬”?

作者 | 曾响铃 文 | 响铃说 云计算是推动数字经济与实体经济深度融合的催化剂,是重点领域数字产业发展的助推器。近年来我国云计算产业发展提速,加快推动实体企业转型升级和创新发展。 2022年是移动云实施“云改”战略的第3年,也是移动云全…

【人工智能】基于五笔字型规范和人工神经网络的简中汉字识别【二】

环境搭建 一、NVIDIA驱动安装与更新二、Anaconda安装三、Pytorch安装四、验证CUDA和cudnn版本一、NVIDIA驱动安装与更新 显卡驱动就是用来驱动显卡的程序,它是硬件所对应的软件。 正常情况下,配有显卡的电脑都是安装有驱动程序的,但是有的时候驱动可能版本较低,所支持的 …

爬虫内容学习-工具类---Selenium

一、爬虫学习建议: 在编写python爬虫程序时,只需要做以下两件事: 发送GET请求,获取HTML [第一类] 解析HTML,获取数据 [第二类] 这两件事,python都有相应的库帮你去做,你只需要知道…

关乎你我,2022年都经历了哪些安全事件?|上云那些事

2022年,网络安全跟人们的工作生活关联愈发紧密。腾讯安全联合南方日报、南方,携手共建《上云那些事》栏目,为企业提供网络安全建设新思路,帮助大家及时发现身边的网络安全陷阱,提升安全意识和防范能力,减少…

论文阅读-虚假信息检测综述 - Fake News Detection on Social Media: A Data Mining Perspective

论文链接:https://arxiv.org/pdf/1708.01967.pdf 目录 摘要 1 引言 2. 假新闻定义 2.1 假新闻的定义 2.2 传统新闻媒体上的假新闻 2.3社交媒体上的假新闻 3.假新闻检测 3.1问题定义 3.2 特征提取 3.2.1 新闻内容特征 3.2.2 社会语境特征 3.3 模型构建 …

浅谈DNS域名解析的过程

用户在浏览器输入www.baidu.com时,DNS域名解析大致分为以下几个过程: 浏览器客户端检查自身有没有该域名的缓存: 如果浏览器有命中,直接返回该域名对应的IP地址,解析结束; (这个缓存可以设置TTL来控制有效时间,有点像A…

用C++求两个数的最大公约数和最小公倍数。(数论的基础思想)

目录原理最大公约数最小公倍数代码运行结果原理 最大公约数 有两个数字n和m。现在要求两个数字的最大公约数。 例如:n为18,m为4. 正常我们的思路求解最大公约数是暴力破解,遍历一遍公约数,取最大的那个,但是这样有一…

关闭Mac的Microsoft AutoUpdate弹框提示

macOS安装Microsoft Office for Mac之后,有时候会弹出Microsoft Auto Update微软应用自动更新工具。就像下面这样:(我不知道您会不会烦,我是烦了) 如果您也和我一样,不喜欢这样不经过允许就自动弹框的提示&…

【uiautomator2】 Android自动化测试框架

UiAutomator是Google提供的用来做安卓自动化测试的一个Java库. Uiautomator工作流程 1.在移动设备上安装atx-agent(守护进程),随后atx-agent启动uiautomator2服务(默认7912端口)进行监听 2.在PC上编写测试脚本并执行(相当于发送HTTP请求到移动设备的server端) 3.移动设备通过Wi…

python import失败解决方案

错误从何而起? 此时有这么一个目录结构 我们从a/b下执行python.exe ./main.py命令开始 案例: a/b/main.py导入a/package if __name__ "__main__":# 报错 ModuleNotFoundError: No module named packageimport package # 报错 ImportError: attempted relative…

Netty网络编程 - NIO基础

一. NIO 基础 non-blocking io 非阻塞 IO 1. 三大组件 1.1 Channel & Buffer channel 有一点类似于 stream,它就是读写数据的双向通道,可以从 channel 将数据读入 buffer,也可以将 buffer 的数据写入 channel,而之前的 st…

时间序列分析之auto_arima自动调参

背景 我们在进行ARIMA建模时,有一个非常重要的事情就是确定其中超参数p, d, q。 一般的流程需要先根据平稳性来确认差分的阶数d,然后根据平稳序列来观察ACF图和PACF图来确认p和q,当然中间还要根据网格训练查看AIC的值来确认,真个…

软件设计模式-行为型模式

行为型模式 行为型模式是对在不同的对象之间划分责任和算法的抽象化通过行为型模式,可以更加清晰地划分类与对象的职责,并研究系统在运行时实例对象之间的交互。在系统运行时,对象并不是孤立的,他们可以通过相互通信与协作完成某…

数据赋能的未来,看向嵌入式BI

数据分析能力越来越成为消费者和企业的必备品应用程序,复杂程度各不相同,从简单地一个网页或门户上托管一个可视化或仪表板,到在一个云服务上实现数据探索、建模、报告和可视化创建的应用程序。BI的实现方式越来越多,无论规模大小…