SAM论文翻译

news2024/9/26 3:29:22

文章目录

    • 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.coloradmin.cn/o/985330.html

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

相关文章

SpringBoot粗浅分析

应用分析 1、依赖管理机制 在springBoot项目中,导入starter-web所有想换依赖都会被导入,甚至不用去规定它们的版本号。它是根据Maven的依赖传递原则来设置,只需要导入场景启动器,场景启动器自动把这个场景的所有核心依赖全部导入…

对极几何与三角化求3D空间坐标

一&#xff0c;使用对极几何约束求R,T 第一步&#xff1a;特征匹配。提取出有效的匹配点 void find_feature_matches(const Mat &img_1, const Mat &img_2,std::vector<KeyPoint> &keypoints_1,std::vector<KeyPoint> &keypoints_2,std::vector&l…

管理类联考——数学——汇总篇——知识点突破——数据分析——计数原理——减法原理除法原理

减法原理 正面难则反着做(“ − - −”号) 【思路】当出现“至少、至多”、“否定用语"等正面较难分类的题目&#xff0c;可以采用反面进行求解&#xff0c;注意部分反面的技巧以及“且、或"的反面用法。 除法原理 看到相同&#xff0c;定序用除法消序( “ &quo…

JavaScript中点号运算符与方括号运算符

这篇文章将介绍如何在对象中获取数据、修改数据。在JavaScript中&#xff0c;点号运算符和方括号运算符都可以用于访问对象的属性。 我们还是使用上节课的代码来演示 const ITshareArray { firstname: “张三”, secondname: “二愣子”, age: 2033-1997, job: “程序员”, fr…

自动化运维——ansible (五十二) (01)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、概述 1.1 为什么要用自动化运维软件 1.2 自动化运维 1.3 自动化运维要注意的方面 1.4 自动化运维主要关注的方面 1.5 常见的开源自动化运维软件 1.6 自动化运维软件…

Debian11安装MySQL8.0,链接Navicat

图文小白教程 1 下载安装MySQL1.1 从MySQL官网下载安装文件1.2 安装MySQL1.3 登录MySQL 2 配置Navicat远程访问2.1 修改配置2.2 Navicat 连接 end: 卸载 MySQL 记录于2023年9月&#xff0c;Debian11 、 MySQL 8.0.34 1 下载安装MySQL 1.1 从MySQL官网下载安装文件 打开 MySQ…

Unity 之 利用数组来管理资源

文章目录 在Unity中&#xff0c;资源数组&#xff08;Resource Arrays&#xff09;不是Unity的标准概念。然而&#xff0c;您可能在特定上下文中使用数组来管理资源或游戏对象。我将解释如何在Unity中使用数组来管理资源。 资源管理&#xff1a; 在Unity中&#xff0c;资源通常…

9.7 C高级day2 作业

#!/bin/bash mkdir ~/dir mkdir ~/dir/dir1 mkdir ~/dir/dir2 cp ./* ~/dir/dir1 -r cp ./*.sh ~/dir/dir2 cd ~/dir tar -cJf dir2.tar.xz dir2 mv dir2.tar.xz dir1 cd tar -xJf dir/dir1/dir2.tar.xz -C dir/dir1 tree ~/dir

阿里云2核2G云服务器租用价格表_一年费用_1个月和1小时收费

阿里云2核2G服务器多少钱一年&#xff1f;108元一年&#xff0c;折合9元一个月&#xff0c;配置为2核CPU、2G内存、3M带宽、50GB高效云盘的轻量应用服务器&#xff0c;如果是云服务器ECS&#xff0c;2核2G配置可以选择ECS通用算力型u1实例、突发性能实例t6和t5实例、密集计算型…

接口响应成功未有预期结果排查

最近开发中遇到一个问题&#xff0c;有一个新增接口&#xff0c;请求该接口时响应200但查询相关数据未有预期的数据&#xff0c;且日志中没有任何报错或警告&#xff1b;一般来说响应200认为是成功&#xff0c;但是结果却不符合事实&#xff1b;此时无外乎几种情况&#xff1a;…

DQN算法概述及基于Pytorch的DQN迷宫实战代码

一. DQN算法概述 1.1 算法定义 Q-Learing是在一个表格中存储动作对应的奖励值&#xff0c;即状态-价值函数Q(s,a)&#xff0c;这种算法存在很大的局限性。在现实中很多情况下&#xff0c;强化学习任务所面临的状态空间是连续的&#xff0c;存在无穷多个状态&#xff0c;这种情…

D361周赛复盘:模拟分割整数⭐+变为整除的最小次数⭐

文章目录 2843.统计对称整数的数目&#xff08;模拟&#xff0c;分割整数为两部分&#xff09;思路1.整数换成字符串版本2.直接用整数的版本 2844.生成特殊数字的最小操作(模拟&#xff0c;x能被Num整除的条件)思路完整版 2843.统计对称整数的数目&#xff08;模拟&#xff0c;…

4.矩阵的几何意义、变基与迹

文章目录 变基操作与矩阵矩阵的迹几何意义矩阵迹的几条性质 欢迎访问个人网络日志&#x1f339;&#x1f339;知行空间&#x1f339;&#x1f339; 变基操作与矩阵 我们知道空间中一点的坐标可以表示以原点为起点以该点为终点的向量。 以二维平面为例&#xff0c;如下图 选取…

D1. Too Many Segments (easy version)

题目&#xff1a;样例1&#xff1a; 输入 7 2 11 11 9 11 7 8 8 9 7 8 9 11 7 9输出 3 1 4 7 样例2&#xff1a; 输入 5 1 29 30 30 30 29 29 28 30 30 30输出 3 1 2 4 样例3&#xff1a; 输入 6 1 2 3 3 3 2 3 2 2 2 3 2 3输出 4 1 3 5 6 思路&#xff1a; 这里数据范围是…

React 全栈体系(四)

第二章 React面向组件编程 六、组件的生命周期 1. 效果 需求:定义组件实现以下功能&#xff1a; 让指定的文本做显示 / 隐藏的渐变动画从完全可见&#xff0c;到彻底消失&#xff0c;耗时2S点击“不活了”按钮从界面中卸载组件 <!DOCTYPE html> <html lang"e…

AlexNet 06

一、发展 1989年&#xff0c;Yann LeCun提出了一种用反向传导进行更新的卷积神经网络&#xff0c;称为LeNet。 1998年&#xff0c;Yann LeCun提出了一种用反向传导进行更新的卷积神经网络&#xff0c;称为LeNet-5 AlexNet&#xff0c;VGG&#xff0c;GoogleNet&#xff0c;R…

863. 二叉树中所有距离为 K 的结点

863. 二叉树中所有距离为 K 的结点 C代码&#xff1a;dfs /*** struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/typedef struct {int key;struct TreeNode* node;UT_hash_handle hh; } HashTable;HashTable* head; int* ans…

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

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

Java 多线程系列Ⅴ(常见锁策略+CAS+synchronized原理)

常见锁策略 一、乐观锁 & 悲观锁二、重量级锁 & 轻量级锁三、自旋锁 & 挂起等待锁四、互斥锁 & 读写锁五、可重入锁 & 不可重入锁六、公平锁 & 非公平锁七、CAS1、CAS特点2、CAS的应用3、CAS 实现自旋锁4、CAS的ABA问题 八、synchronized 原理1、synch…

讯飞开放平台--星火认知大模型--开发技术文档--js实例代码详解

阿丹&#xff1a; 之前调用写过调用百度的文心一言写网站&#xff0c;讯飞的星火认知模型开放了&#xff0c;这次尝试一下使用流式来进行用户的交互。 官网&#xff1a; 平台简介 | 讯飞开放平台文档中心 星火认知大模型Web文档 | 讯飞开放平台文档中心 简介&#xff1a; 本…