SAM论文翻译

文章目录

    • Abstract
    • 1、Introduction
    • 2、Related Work
    • 3、Methodology
      • 3.1、Semantic Graph
      • 3.2、Semantic Aware Module
      • 3.3、Decoder
      • 3.4、Loss Function
    • 4、Experiments
      • 4.1、Datasets
      • 4.2、Implementation Details
      • 4.3、Evaluation Protocol
      • 4.4、Comparison with State-of-the-Art

论文地址:https://arxiv.org/pdf/2308.10493v1.pdf
代码地址:https://github.com/liuzhuang1024/SAM

Abstract

目前的方法不能明确地学习不同符号之间的相互作用,当面对相似的符号时可能会识别错误。为了缓解这个问题,我们提出了一种简单而有效的方法来增强语义交互学习(SIL)。具体来说,我们首先构造了一个基于统计符号共现概率的语义图。然后设计了一个语义感知模块(SAM),它将视觉和分类特征投射到语义空间中。不同投影向量之间的余弦距离表示符号之间的相关性。联合优化HMER和SIL可以提高模型对符号关系的理解。此外,SAM可以很容易地插入到现有的基于注意力的HMER模型中。

在这里插入图片描述

1、Introduction

本文的主要贡献简要总结如下:

  • 据我们所知,我们是第一个使用共现来表示数学表达式中符号之间的关系,并验证增强语义表示学习的有效性。
  • 我们提出了一种语义感知方法,联合优化符号关系学习和HMER,可以持续提高HMER模型的性能。
  • 我们提出的语义感知模块可以很容易地插入到基于注意力的HMER模型中,并且在推理阶段无需额外的计算。

具体来说,我们采用DWAP 作为基线网络。在SAM的帮助下,SAM-DWAP在2014年、2016年和2019年的CROHME平台上的表现分别超过了DWAP的2.2%、2.8%和4.2%。此外,采用最新的SOTA方法CAN作为基线网络,我们的方法获得了新的SOTA结果(CROHME 2014为58.0%,CROHME 2016为56.7%,CROHME 2019为58.0%)。这表明,我们的方法可以推广到现有的各种HMER编解码器模型中,并提高其性能。

2、Related Work

3、Methodology

我们的方法的总体框架如图所示。该管道包括以下几个部分:采用DenseNet作为编码器来提取特征。输入DenseNet一个大小为H×W×1的灰度图像X,其中H和W分别为图像高度和图像宽度,并返回一个2D特征图 F ∈ R H ′ × W ′ × 684 F \in \R^{H^{'} \times W ^{'} \times 684} FRH×W×684,其中H/H‘=W/W’=16。解码器使用特征映射,并逐步预测Latex标记。语义感知模块(SAM)由两个结构相似的分支(视觉分支和分类分支)组成,它们分别采用了视觉特征和分类特征。将视觉特征和分类特征分别投影到语义空间中,得到投影的视觉向量和分类向量。计算不同时间步长的投影向量之间的余弦距离表示它们之间的相关性。

在这里插入图片描述

3.1、Semantic Graph

捕获全局上下文信息已被证明是提高识别的鲁棒性的有效方法。然而,与单词相比,在数学表达式中使用符号相对比较随意。如何在数学表达式中表达不同符号之间的关系是一个有待解决的问题。我们的直觉是,共现图中的值的大小反映了不同符号之间的关系,就像文本中不同的字符有不同的排列一样。

语义图被定义为G =(S,E),其中S = {s1,s2,…,sN }表示符号节点的集合,E表示边,表示任意两个符号之间的依赖性。图G的相关矩阵 R = { r i , j } i , j = 1 N R=\{r_{i,j}\}^{N}_{i,j=1} R={ri,j}i,j=1N包含与每条边相关的非负权值。相关矩阵是一个条件概率矩阵, r i j r_{ij} rij设为 P ( s i / s j ) P(si/sj) P(si/sj),其中P通过训练集计算。然而,R是一个非对称矩阵,即rij = rji。为了便于计算,我们将非对称矩阵转化为一个对称矩阵如下:
R ′ = 1 2 ( R + R T ) R^{'}=\frac{1}{2}(R+R_{T}) R=21(R+RT)

3.2、Semantic Aware Module

如图3所示,语义感知模块(SAM)包含两个分支,即视觉特征分支和分类特征分支。每个分支包括两个“LBR”块,然后是一个线性层。通过叠加线性层、批量归一化和ReLU激活来建立一个“LBR”块。我们使用SAM模块将视觉向量 v v i s v_{vis} vvis和分类向量 v c l s v_{cls} vcls投影语义空间中,得到映射后的视觉向量 v v i s ′ v^{'}_{vis} vvis和分类向量 v c l s ′ v^{'}_{cls} vcls,计算公式如下:
v v i s ′ = W 3 v i s ( σ ( ϵ ( W 2 v i s ( σ ( ϵ ( W 1 v i s v v i s + b 1 v i s ) ) ) ) + b 2 v i s ) ) ) + b 3 v i s v c l s ′ = W 3 c l s ( σ ( ϵ ( W 2 c l s ( σ ( ϵ ( W 1 c l s v c l s + b 1 c l s ) ) ) ) + b 2 c l s ) ) ) + b 3 c l s v^{'}_{vis} =W^{vis}_{3}( \sigma (\epsilon (W^{vis}_2(\sigma (\epsilon (W^{vis}_1v_{vis}+b^{vis}_1))))+b^{vis}_2)))+b^{vis}_3 \\ v^{'}_{cls} =W^{cls}_{3}( \sigma (\epsilon (W^{cls}_2(\sigma (\epsilon (W^{cls}_1v_{cls}+b^{cls}_1))))+b^{cls}_2)))+b^{cls}_3 vvis=W3vis(σ(ϵ(W2vis(σ(ϵ(W1visvvis+b1vis))))+b2vis)))+b3visvcls=W3cls(σ(ϵ(W2cls(σ(ϵ(W1clsvcls+b1cls))))+b2cls)))+b3cls
在这里插入图片描述

我们的目标是优化投影的视觉向量 v v i s ′ v^{'}_{vis} vvis和投影的分类向量 v c l s v_{cls} vcls。通过计算 c o s ( v i ′ , v j ′ ) cos(v^{'}_{i},v^{'}_{j}) cos(vivj)使所有i,j都接近相关矩阵 R i j R_{ij} Rij,其中 c o s ( v i ′ , v j ′ ) cos(v^{'}_{i},v^{'}_{j}) cos(vivj)表示 v i ′ v^{'}_{i} vi v j ′ v^{'}_{j} vj之间的余弦相似性:
c o s ( v i ′ , v i ′ ) = v ′ T v j ∥ v ′ T ∥ ∥ v j ∥ cos(v^{'}_{i},v^{'}_{i}) = \frac{{v^{'}}^{T}v_{j}}{\left \| {v^{'}}^{T}\right \| \left \|v_{j}\right \|} cos(vi,vi)= vT vjvTvj

3.3、Decoder

上图3为解码器的结构。该解码器主要包含两个门控循环单元(GRU)单元和一个注意模块。第一个GRU以符号嵌入 E ( y t − 1 ) E(y_{t-1}) E(yt1)和最后一步预测的历史状态 h t − 1 h_{t-1} ht1作为输入,输出一个新的隐藏状态向量 h t ′ h^{'}_{t} ht
h t ′ = G R U ( E ( y t − 1 ) , h t − 1 ) h^{'}_{t} =GRU(E(y_{t-1}),h_{t-1}) ht=GRU(E(yt1),ht1)
然后,注意模块通过其注意机制计算出注意权重 α t \alpha _{t} αt
e t = W ω ( t a n h ( W h ′ h t ′ + W f F + W α a t t t ) ) α t = e x p ( e t ) / ∑ e x p ( e t ) e_{t} = W_{\omega}(tanh(W^{'}_{h}h^{'}_{t}+W_{f}F+W_{\alpha}att_{t})) \\ \alpha_{t}=exp(e_{t})/\sum exp(e_{t}) et=Wω(tanh(Whht+WfF+Wαattt))αt=exp(et)/exp(et)
F表示特征图,attt表示覆盖注意,等于过去所有注意概率之和:
a t t t = ∑ i α i , i ∈ [ o , t − 1 ] att_{t}=\sum_{i}\alpha_{i},i\in[o,t-1] attt=iαi,i[o,t1]
α t \alpha _{t} αt和F相乘得到视觉特征向量 v v i s v_{vis} vvis
v v i s = α t ⨂ F v_{vis}=\alpha_{t}\bigotimes F vvis=αtF
第二个GRU将 v v i s v_{vis} vvis h t ′ h^{'}_{t} ht作为输入,返回隐藏状态 h t h_{t} ht
KaTeX parse error: Can't use function '$' in math mode at position 20: …t}=GRU(v_{vis},$̲h^{'}_{t})
然后将 E ( y t − 1 ) E(y_{t-1}) E(yt1) v v i s v_{vis} vvis h t h_{t} ht聚合,得到分类特征向量和符号概率:
v c l s = W e E ( y t − 1 ) + W h h t + W v V v i s p s y m b o l = s o f t m a x ( W s v c l s ) v_{cls}=W_{e}E(y_{t-1})+W_{h}h_{t}+W_{v}V_{vis} \\ p_{symbol} = softmax(W_{s}v_{cls}) vcls=WeE(yt1)+Whht+WvVvispsymbol=softmax(Wsvcls)

3.4、Loss Function

整体函数由三个部分组成,定义如下:
L = L s y m b o l + L v i s + L c l s \mathcal{L} = \mathcal{L}_{symbol} + \mathcal{L}_{vis} + \mathcal{L}_{cls} L=Lsymbol+Lvis+Lcls
其中$ \mathcal{L}{symbol} 符号是预测与标签的交叉熵分类损失。 符号是预测与标签的交叉熵分类损失。 符号是预测与标签的交叉熵分类损失。\mathcal{L}{vis} 和 和 \mathcal{L}_{cls}$为L2回归损失定义如下:
L v i s = ∑ i n ∑ j n ( c o s ( v v i s , i , v v i s , j ) − R i , j ) 2 L c l s = ∑ i n ∑ j n ( c o s ( v c l s , i , v c l s , j ) − R i , j ) 2 \mathcal{L}_{vis} =\sum^{n}_{i}\sum^{n}_{j}(cos(v_{vis,i},v_{vis,j})-R_{i,j})^{2} \\ \mathcal{L}_{cls}=\sum^{n}_{i}\sum^{n}_{j}(cos(v_{cls,i},v_{cls,j})-R_{i,j})^{2} Lvis=injn(cos(vvis,i,vvis,j)Ri,j)2Lcls=injn(cos(vcls,i,vcls,j)Ri,j)2

4、Experiments

4.1、Datasets

在这里插入图片描述

4.2、Implementation Details

使用一个32GB内V100进行实验。批处理大小设置为8。两个gru的隐藏状态大小和单词嵌入的维数均设为256。在训练过程中使用 Adadelta优化器,其中ρ设置为0.95,ϵ设置为10−6。学习速率从0开始,并在第一个阶段结束时单调地增加到1。之后,随着余弦学习时间表衰减到0。对于CROHME数据集,epoch设置为240,而对于HME100K数据集,epoch设置为40。

4.3、Evaluation Protocol

4.4、Comparison with State-of-the-Art

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

STM32WB55开发(1)----套件概述

STM32WB55开发----1.套件概述 所用器件视频教学样品申请优势支持协议系统控制和生态系统访问功能示意图系统框图跳线设置开发板原理图 所用器件 所使用的器件是我们自行设计的开发板,该开发板是基于 STM32WB55 系列微控制器所构建。STM32WBXX_VFQFPN68 不仅是一款评…

Win10右键 nvidia rtx desktop manager 怎么删除(最新)

在更新了最新的 nvidia后原来的隐藏鼠标右键菜单后不行了,新方法如下: 步骤一:在键盘“WINR”键同时操作下,启动运行框,在框内输入“regedit”,打开深度系统win7 的注册表编辑器。 步骤二:为防…

maven配置nexus私服详解

maven配置nexus私服详解 简介:配置步骤1、本地maven settings.xml配置1.1配置本地仓库位置1.2 server配置1.3 镜像配置1.4 私服仓库配置 2、maven项目pom.xml配置 完整配置模板 简介: 前提是已经搭建好了私服,我们需要在本地maven中配置相关…

半导体厂务液体泄漏问题的挑战与解决方案

在半导体制造领域,液体泄漏是一项极具挑战性的问题。半导体工厂内有着大量的化学品、工艺液体和废水系统,这些液体在制造过程中扮演着至关重要的角色。然而,液体泄漏可能会导致严重的生产中断、环境污染和安全风险。本文将探讨半导体厂务中的…

Qt 5.15编译(MinGW)及集成Crypto++ 8.7.0笔记

一、背景 为使用AES加密库(AES/CBC加解密),选用Crypto 库(官网)。   最新Crypto C库依次为:8.8.0版本(2023-6-25)、8.7.0(2022-8-7)和8.6.0(202…

c++ day 2

1、封装一个结构体,结构体中包含一个私有数组,用来存放学生的成绩,包含一个私有变量,用来记录学生个数, 提供一个公有成员函数,void setNum(int num)用于设置学生个数 提供一个公有成员函数:v…

新能源商用车软件开发设计规范

目 录 前 言.............................................................................................................. 1 1 范围............................................................................................................... 2 2 规范性…

【前端demo】CSS border-radius可视化 原生实现

文章目录 效果原理代码 前端demo系列目录:https://blog.csdn.net/karshey/article/details/132585901 效果 效果预览:https://codepen.io/karshey/pen/zYyBPBR 参考: Fancy Border Radius Generator (9elements.github.io) https://borde…

zabbix 自动发现

哈喽大家好,我是咸鱼 昨天老大让我初始化一批服务器,吭哧吭哧弄完之后需要把这批机器添加到 zabbix 上去 但是我发现一台一台添加效率好低,而且特别繁琐,当时我没有想出有什么好的方法,今天上网搜了一下相关资料之后…

本地电脑搭建web服务器、个人博客网站并发布公网访问 【无公网IP】(1)

文章目录 前言1. 安装套件软件2. 创建网页运行环境 指定网页输出的端口号3. 让WordPress在所需环境中安装并运行 生成网页4. “装修”个人网站5. 将位于本地电脑上的网页发布到公共互联网上 前言 在现代社会,网络已经成为我们生活离不开的必需品,而纷繁…

系统学习Linux-ELK日志收集系统

ELK日志收集系统集群实验 实验环境 角色主机名IP接口httpd192.168.31.50ens33node1192.168.31.51ens33noed2192.168.31.53ens33 环境配置 设置各个主机的ip地址为拓扑中的静态ip,并修改主机名 #httpd [rootlocalhost ~]# hostnamectl set-hostname httpd [root…

【opencv】多版本安装

安装opencv3.2.0以及对应的付费模块 一、安装多版本OpenCV如何切换 按照如下步骤安装的OpenCV,在CMakeLists.txt文件中,直接指定opencv的版本就可以找到相应版本的OpenCV,为了验证可以在CMakeLists.txt文件中使用如下指令输出版本验证&…

C#写一个UDP程序判断延迟并运行在Centos上

服务端 using System.Net.Sockets; using System.Net;int serverPort 50001; Socket server; EndPoint client new IPEndPoint(IPAddress.Any, 0);//用来保存发送方的ip和端口号CreateSocket();void CreateSocket() {server new Socket(AddressFamily.InterNetwork, SocketT…

SolVES4.1学习1——安装与使用教程

1、下载并安装 SolVES 4版本是QGIS插件,但实际使用过程中发现在最新版的QGIS安装该插件过程中,会报错或异常。因此需安装特定版本的软件。共需安装如下图软件及Java环境等。 根据官方文档安装好后,可以进行相关操作。 2、设置QGIS环境 QG…

消息队列理解

rocketMQ RocketMQ消息存储原理_码上得天下的博客-CSDN博客 领域模型概述 | RocketMQ kafka Kafka基本架构介绍-腾讯云开发者社区-腾讯云 看完这篇Kafka,你也许就会了Kafka_心的步伐的博客-CSDN博客 Apache Kafka

PaddleX:一站式、全流程、高效率的飞桨AI套件

随着ChatGPT引领的AI破圈,各行各业掀起了AI落地的潮流,从智能客服、智能写作、智能监控,到智能医疗、智能家居、智能金融、智能农业,谁能快速将AI与传统业务相结合,谁就将成为企业数字化和智能化变革的优胜者。然而&am…

CLIP:连接文本-图像

Contrastive Language-Image Pre-Training CLIP的主要目标是通过对比学习,学习匹配图像和文本。CLIP最主要的作用:可以将文本和图像表征映射到同一个表示空间 这是通过训练模型来预测哪个图像属于给定的文本,反之亦然。在训练过程中&#…

【Axure教程】中继器网格拖动摆放

拖动摆放图标在移动端操作中扮演了重要的角色,允许用户自定义其设备的界面,使其更符合其偏好和使用习惯。这可以提高用户对设备的满意度和舒适度,将最常用的应用放置在易于访问的位置,从而提高使用效率。所以拖动摆放这类型操作不…

ESP32C3 LuatOS RC522①写入数据并读取M1卡

LuatOS RC522官方示例 官方示例没有针对具体开发板,现以ESP32C3开发板为例。 选用的RC522模块 ESP32C3-CORE开发板 注意ESP32C3的 SPI引脚位置,SPI的id2 示例代码 -- LuaTools需要PROJECT和VERSION这两个信息 PROJECT "helloworld" VERSIO…

Android逆向学习(二)vscode进行双开与图标修改

Android逆向学习(二)vscode进行双开与图标修改 写在前面 这其实应该还是吾爱的第一个作业,但是写完上一个博客的时候已经比较晚了,如果继续敲机械键盘吵到室友,我怕我看不到明天的太阳,所以我决定分成两篇…