论文阅读和分析:A Tree-Structured Decoder for Image-to-Markup Generation
Posted KPer_Yang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论文阅读和分析:A Tree-Structured Decoder for Image-to-Markup Generation相关的知识,希望对你有一定的参考价值。
HMER论文系列
1、论文阅读和分析:When Counting Meets HMER Counting-Aware Network for HMER_KPer_Yang的博客-CSDN博客
2、论文阅读和分析:Syntax-Aware Network for Handwritten Mathematical Expression Recognition_KPer_Yang的博客-CSDN博客
3、论文阅读和分析:A Tree-Structured Decoder for Image-to-Markup Generation_KPer_Yang的博客-CSDN博客
4、 论文阅读和分析:Watch, attend and parse An end-to-end neural network based approach to HMER_KPer_Yang的博客-CSDN博客
5、 论文阅读和分析:Multi-Scale Attention with Dense Encoder for Handwritten Mathematical Expression Recognition_KPer_Yang的博客-CSDN博客
6、 论文阅读和分析:Mathematical formula recognition using graph grammar_KPer_Yang的博客-CSDN博客
7、 论文阅读和分析:Hybrid Mathematical Symbol Recognition using Support Vector Machines_KPer_Yang的博客-CSDN博客
8、论文阅读和分析:HMM-BASED HANDWRITTEN SYMBOL RECOGNITION USING ON-LINE AND OFF-LINE FEATURES_KPer_Yang的博客-CSDN博客
目录
1.主要内容:
(1、提出创新的树结构解码器来表示树、输出树、优化基于注意力的编解码框架;
(2、设计一个问题说明特别是在复杂结构时字符解码失败的背后原因,图示解释为什么树结构在解码过程中使得更优的解码能力;
(3、证明在化学式识别和数学公式识别上,树解码器的有效性;
2.树解码器
Figure 5. Illustration of tree decoder, including parent decoder part, child decoder part, memory attention part and an optional relation prediction part. “Pred” is short for “prediction”
树解码器使用GRU和注意力机制生成一系列的子树结构:
(
o
1
c
,
o
1
p
)
,
(
o
2
c
,
o
2
p
)
,
…
,
(
o
T
c
,
o
T
p
)
.
(o_1^\\mathrmc,o_1^\\mathrmp),(o_2^\\mathrmc,o_2^\\mathrmp),\\ldots,(o_T^\\mathrmc,o_T^\\mathrmp).
(o1c,o1p),(o2c,o2p),…,(oTc,oTp).
需要添加一些规则,限制:
(1、每个孩子节点必须有一个父节点,因此不存在孤立节点;
(2、父节点必须是一个现存的节点;
2.1、parent解码器
当前父亲节点的隐藏层状态
s
~
t
p
\\tilde\\mathbfs_t^\\mathbfp
s~tp:
s
~
t
p
=
G
R
U
(
o
t
−
1
c
,
s
t
−
1
c
)
\\tilde\\mathbfs_t^p=GRU(o_t-1^c,\\mathbfs_t-1^c)
s~tp=GRU(ot−1c,st−1c)
o
t
−
1
c
o_t-1^c
ot−1c:前面孩子节点;
s t − 1 c \\mathbfs_t-1^c st−1c:前面孩子节点的隐藏层;
计算注意力部分:
α t p = f a t t p ( A , s ~ t p ) c t p = ∑ i α t i p a i \\beginarrayc\\alpha_t^p=f_\\mathrmatt^p(\\mathbfA,\\tilde\\mathbfs_t^\\mathrmp)\\\\ \\mathbfc_t^p=\\sum_i\\alpha_ti^p\\mathbfa_i\\endarray αtp=fattp(A,s~tp)ctp=∑iαtipai
A A A:编码器(DenseNet)生成的特征图 A = a i . \\mathbfA=\\\\mathbfa_i\\. A=ai.
α t P \\alpha_t^P αtP:父亲注意力概率;
c t P c_t^P ctP:父亲上下文向量;
f a t t P f_att^P fattP:注意力函数:
α t i P \\alpha_ti^P αtiP:在 t t t步解码的 i − t h i-th i−th元素的父亲节点注意力概率;
∗ * ∗:卷积层;
∑ l = 1 t − 1 α l p \\sum_l=1^t-1\\alpha_l^p ∑l=1t−1αlp:过去父亲注意力概率和;
e t i P e_ti^P etiP:输出energy;
f i P \\mathbff_i^P fiP: F P \\mathbfF^P FP的元素,可以帮助添加历史信息到标准注意力机制;
使用父亲上下文向量
c
t
P
\\mathbfc_t^P
ctP,计算父亲解码器:
s
t
p
=
G
R
U
(
c
p
,
s
~
t
)
\\mathbfs^p_t=GRU(\\mathbfc^p,\\tilde\\mathbfs_t)
stp=GRU(cp,s~t)
类似于父解码器,还有孩子解码器、记忆注意力、关系预测;
2.2、child解码器
计算子节点隐状态:
s
~
t
c
=
G
R
U
(
o
t
−
1
p
,
S
t
−
1
p
)
\\tilde\\mathbfs_t^c=GRU(o_t-1^p,\\mathbfS_t-1^p)
s~tc=GRU(ot−1p,St−1p)
使用和父亲相同的注意力机制计算孩子注意力概率和上下文向量:
α
t
c
=
f
a
t
t
c
(
A
,
s
~
t
c
)
\\boldsymbol\\alpha_t^c=f_\\mathrmatt^c(\\mathbfA,\\tilde\\mathbfs_t^c)
αtc=fattc(A,s~tc)
c
t
c
=
∑
i
α
t
i
c
a
i
\\mathbfc_t^\\mathsfc=\\sum_i\\alpha_ti^\\mathsfc\\mathbfa_i
ctc=i∑αticai
计算孩子节点隐藏状态:
s
t
c
=
G
R
U
(
c
t
c
,
s
~
t
c
)
\\mathbfs_t^c = G RU(\\mathbfc_t^c,\\tilde\\mathbfs_t^c)
s前文详细介绍了向量表征系列文章,从Word2vec和Doc2vec到Deepwalk和Graph2vec,再到Asm2vec和Log2vec。这篇文章将描述Excel可视化分析的基本知识,以2022年电影市场为例。在论文中,一个好的图表胜千言万语,而实验数据生成后如何可视化表示至关重要,之前作者通常利用Python、Echarts等编写代码实现,而这篇文章将利用Excel生成,不论是代码、工具还是Office,它们都只是论文的辅助工具,更重要的是论文的创新和实验所生成的结果。基础性文章,希望您喜欢。一方面自己英文太差,只能通过最土的办法慢慢提升,另一方面是自己的个人学习笔记,并分享出来希望大家批评和指正。希望这篇文章对您有所帮助,这些大佬是真的值得我们去学习,献上小弟的膝盖~fighting!
文章目录
前文赏析:
- [论文阅读] (01) 拿什么来拯救我的拖延症?初学者如何提升编程兴趣及LATEX入门详解
- [论文阅读] (02) SP2019-Neural Cleanse: Identifying and Mitigating Backdoor Attacks in DNN
- [论文阅读] (03) 清华张超老师 - GreyOne: Discover Vulnerabilities with Data Flow Sensitive Fuzzing
- [论文阅读] (04) 人工智能真的安全吗?浙大团队外滩大会分享AI对抗样本技术
- [论文阅读] (05) NLP知识总结及NLP论文撰写之道——Pvop老师
- [论文阅读] (06) 万字详解什么是生成对抗网络GAN?经典论文及案例普及
- [论文阅读] (07) RAID2020 Cyber Threat Intelligence Modeling Based on Heterogeneous GCN
- [论文阅读] (08) NDSS2020 UNICORN: Runtime Provenance-Based Detector for Advanced Persistent Threats
- [论文阅读] (09)S&P2019 HOLMES Real-time APT Detection through Correlation of Suspicious Information Flow
- [论文阅读] (10)基于溯源图的APT攻击检测安全顶会总结
- [论文阅读] (11)ACE算法和暗通道先验图像去雾算法(Rizzi | 何恺明老师)
- [论文阅读] (12)英文论文引言introduction如何撰写及精句摘抄——以入侵检测系统(IDS)为例
- [论文阅读] (13)英文论文模型设计(Model Design)如何撰写及精句摘抄——以入侵检测系统(IDS)为例
- [论文阅读] (14)英文论文实验评估(Evaluation)如何撰写及精句摘抄(上)——以入侵检测系统(IDS)为例
- [论文阅读] (15)英文SCI论文审稿意见及应对策略学习笔记总结
- [论文阅读] (16)Powershell恶意代码检测论文总结及抽象语法树(AST)提取
- [论文阅读] (17)CCS2019 针对PowerShell脚本的轻量级去混淆和语义感知攻击检测
- [论文阅读] (18)英文论文Model Design和Overview如何撰写及精句摘抄——以系统AI安全顶会为例
- [论文阅读] (19)英文论文Evaluation(实验数据集、指标和环境)如何描述及精句摘抄——以系统AI安全顶会为例
- [论文阅读] (20)USENIXSec21 DeepReflect:通过二进制重构发现恶意功能(恶意代码ROI分析经典)
- [论文阅读] (21)S&P21 Survivalism: Systematic Analysis of Windows Malware Living-Off-The-Land (经典离地攻击)
- [论文阅读] (22)图神经网络及认知推理总结和普及-清华唐杰老师
- [论文阅读] (23)恶意代码作者溯源(去匿名化)经典论文阅读:二进制和源代码对比
- [论文阅读] (24)向量表征:从Word2vec和Doc2vec到Deepwalk和Graph2vec,再到Asm2vec和Log2vec(一)
- [论文阅读] (25)向量表征经典之DeepWalk:从Word2vec到DeepWalk,再到Asm2vec和Log2vec(二)
- [论文阅读] (26) 基于Excel可视化分析的论文实验图表绘制总结——以电影市场为例
一.论文实验图表的重要性
个人认为,实验部分同样重要,更重要是如何通过实验结果、对比实验、图表描述来支撑你的创新点,让审稿老师觉得,就应该这么做,amazing的工作。作为初学者,我们可能还不能做到非常完美的实验,但一定要让文章的实验足够详细,力争像该领域的顶级期刊或会议一样,并且能够很好的和论文主题相契合,这样文章的价值也体现出来了。
- 对于结果的呈现,作图是特别重要的,一张好图胜过千言万语。
图/表的十个关键点(10 key points)
- 说明部分要尽量把相应图表的内容表达清楚
- 图的说明一般在图的下边
- 表的说明一般在标的上边
- 表示整体数据的分布趋势的图不需太大
- 表示不同方法间细微差别的图不能太小
- 几个图并排放在一起,如果有可比性,并排图的取值范围最好一致,利于比较
- 实验结果跟baseline在绝对数值上差别不大,用列表价黑体字
- 实验结果跟baseline在绝对数值上差别较大,用柱状图/折线图视觉表现力更好
- 折线图要选择适当的颜色和图标,颜色选择要考虑黑白打印的效果
- 折线图的图标选择要有针对性:比如对比A, A+B, B+四种方法:
A和A+的图标要相对应(例如实心圆和空心圆),B和B+的图标相对应(例如实心三角形和空心三角形)
说明部分要尽量把相应图表的内容表达清楚
图的说明一般在图的下边;表的说明一般在表的上边;表示整体数据的分布趋势的图不需太大;表示不同方法间细微差别的图不能太小。
几个图并排放在一起,如果有可比性,并排图的x/y轴的取值范围最好一致,利于比
较。
实验结果跟baseline在绝对数值上差别不大,用列表加黑体字;实验结果跟baseline在绝对数值上差别较大,用柱状图/折线图视觉表现力更好。
折线图要选择适当的颜色和图标,颜色选择要考虑黑白打印的效果;折线图的图标选择要有针对性,比如对比A, A+,B, B+四种方法。
二.柱状图绘制
Office办公软件具有强大的功能,尤其是绘图方面,包括Excel、PPT、Visio等。下图展示WPS Excel常见的图表类型。
本文以2022年中国电影市场数据为例,介绍基于Excel可视化分析的论文实验图表绘制方法。首先是柱状图,其效果如下图所示。
第一步:假设存在如图所示的近十年总票房、国产片票房和票房过亿元电影数量。
第二步:选中表格数据,点击“插入”=>“全部图表”,然后选择包含柱状图和折线图的组合图。
生成结果如下图所示。
第三步:选中图片,右键“设置数据系列格式”,然后设置字体颜色、表格线条等内容。
设置颜色如下图所示:
第四步:设置柱状图的填充图案、间距、线条等内容,设置左右坐标轴的刻度,让图像更饱满。
此时效果图如下所示:
第五步:添加数据标签,这里需要设置折线图节点的形状,在“填充与线条”=>“标记”的“数据标记选项”中设置,如下图所示:
最终效果如图所示:
三.饼图绘制
饼图绘制效果如下图所示:
第一步:假设存在2022年国产片和进口片的占比。
第二步:选中表格数据,点击“插入”=>“全部图表”,然后选择饼图。
第三步:为更好地区分区域,设置形状及格式即可。
四.折线图绘制
折线图绘制效果如下图所示:
第一步:假设存在近四年中国内地电影市场每月票房数据,如下图所示,我们需要对比折线图变化趋势。
第二步:选中表格数据,点击“插入”=>“全部图表”,然后选择带节点的平缓折线图。
如下图所示:
第三步:设置折线的形状、格式并添加数据标签。
五.条形图绘制
为更好地比较近四年三大黄金档期票房,绘制如下图所示的条形图。
第一步:假设存在近四年中国内地电影市场三大黄金档期票房。
第二步:选中表格数据,点击“插入”=>“全部图表”,然后选择条形图。
第三步:设置条形图的格式即可。
六.词云图绘制
为更好地评估影投公司2022年对中国电影的贡献,绘制如下图所示的词云图。先前的词云通常利用Python调用WordCloud库或PyEcharts实现,Excel如今也具备该功能。
第一步:假设存在影投公司的综合票房数据。
第二步:选中表格数据,点击“插入”=>“全部图表”,然后从其它图表中选择词云图。
此时的效果如下图所示:
第三步:选择图像右键,设置不同字体的颜色及格式。
七.方框图绘制
玫瑰方框图绘制效果如下图所示:
第一步:假设2022年总票房前十的观众年龄画像如下图所示。
第二步:选中表格数据,点击“插入”=>“全部图表”,然后从其它图表中选择方框图。
第三步:设置字体大小及垂直居中即可。
八.重点:四象限图绘制
如果读者认为Excel仅能绘制简单的图形,那就错了。接下来我们利用Excel绘制一个比较难的图形——四象限图,通过该图来评估电影的用户画像,从票房和豆瓣评分两个角度介绍,也是本文的重点。效果图如下所示:
第一步:假设存在春节档和国庆档电影票房超10亿元的影评信息,如下图所示。我们将票房大于30亿元的定位超高票房电影,豆瓣评分大于7的认为高质量电影。那么,如何绘制四象限图呢?
第二步:选中春节档票房和豆瓣评分两列电影数据,然后添加带坐标的散点图。
如下图所示:
第三步:选中坐标轴右键“设置坐标轴格式”,设置横坐标(票房)“坐标轴值”为30亿元。
接着设置评分为7,此时效果如图所示。
第四步:为节点添加标签,即电影名称。右键选中节点,然后添加数据标签,如下图所示。那么,如何将评分替换为电影名称呢?
第五步:继续选中节点,右键“设置数据标签格式”。在“标签包括”选项中勾选“单元格中的值”。
然后选择在弹出的数据标签区域中选择电影名称,如下图所示:
接着在右类标签设置中仅显示“单元格中的值”,显示效果如下图所示:
第六步:设置坐标轴的格式,含颜色、字体、线条等类型,并添加箭头。
此外,重合的标签区分下,显示效果如下图所示:
第七步:添加国庆档的数据,按照上述方法再进行设置。右键“选择数据”。
添加数据。
选择两列对应数据。
点击确定后新增节点,如下图所示。
第八步:设置节点格式,以区分春节档和国庆档。
最终通过上述设置如下图所示:
三个档期对比图如下所示:
九.重点:演员关系图谱绘制
最后,本文将补充演员关系图谱,它也是电影产业分析的重要内容,如下图所示。
- 利用Gephi实现,而非Excel
第一步:假设存在2022年所有电影的演员统计表,如下图所示。演员和导演可以通过豆瓣填写。
第二步:将演员信息复制到data.txt中(仅部分),然后撰写代码提取演员两两合作关系。
#coding:utf-8
import csv
import os
import time
import numpy as np
from scipy.sparse import coo_matrix
from collections import Counter
def get_feature(fr_name,fw_name):
#记录关键词
word = []
all_str = ""
fr = open(fr_name,"r",encoding="utf-8")
#---------------------------------------------------------------------------
#读取数据
for line in fr.readlines():
line = line.strip()
line = line.replace("\\n", "")
all_str += line + "/"
for n in line.split("/"):
if n not in word:
word.append(n)
fr.close()
print(len(word)) #关键词总数
print(word)
#数量统计
all_words = all_str.split("/")
c = Counter()
for x in all_words:
if len(x)>1 and x != '\\r\\n':
c[x] += 1
print('\\n词频统计结果:')
for (k,v) in c.most_common(20):
print("%s:%d"%(k,v))
#采用coo_matrix函数解决该MemoryError矩阵过大汇报内存错误
word_vector = coo_matrix((len(word),len(word)), dtype=np.int32).toarray()
print(word_vector.shape)
#---------------------------------------------------------------------------
#计算共现矩阵
fr = open(fr_name,"r",encoding="utf-8")
num = 0
line = fr.readline()
while line:
line = line.strip()
line = line.replace("\\n", "")
nums = line.split("/")
#print(nums)
#循环遍历关键词所在位置 设置word_vector计数
i,j = 0,0
while i<len(nums): #ABCD共现 AB AC AD BC BD CD加1
j = i + 1
w1 = nums[i] #第一个单词
while j<len(nums):
w2 = nums[j] #第二个单词
k = 0
n1 = 0
while k<len(word): #从word数组中找到单词对应的下标
if w1==word[k]:
n1 = k
break
k = k +1
#寻找第二个关键字位置
k = 0
n2 = 0
while k<len(word):
if w2==word[k]:
n2 = k
break
k = k +1
#重点:词频矩阵赋值 只计算上三角
if n1<=n2:
word_vector[n1][n2] = word_vector[n1][n2] + 1
else:
word_vector[n2][n1] = word_vector[n2][n1] + 1
j = j + 1
#print(w1,w2,n1,n2)
i = i + 1
num += 1
line = fr.readline()
fr.close()
print("next:",num)
#---------------------------------------------------------------------------
#CSV文件写入
fw = open(fw_name,"w",encoding="utf-8",newline="")
writer = csv.writer(fw)
writer.writerow(['Word1', 'Word2', 'Weight'])
i = 0
while i<len(word):
w1 = word[i]
j = 0
while j<len(word):
w2 = word[j]
#判断两个词是否共现 共现词频不为0的写入文件
if word_vector[i][j]>0:
#写入文件
templist = []
templist.append(w1)
templist.append(w2)
templist.append(str(int(word_vector[i][j])))
writer.writerow(templist)
j = j + 1
i = i + 1
else:
fw.close()
#共现分析
fr_name = "data.txt"
fw_name = "keywords-rela.csv"
get_feature(fr_name,fw_name)
print(fw_name)
代码的运行结果如下图所示,可以看到两两合作演员信息。
第三步:构建实体和关系数据集,按照gephi格式,如下图所示。
第四步:利用Gephi绘制知识图谱,导入数据至该软件并调整参数,详见作者前文。
最终结果如下图所示:
十.总结
写到这里,这篇文章就分享结束了,希望对您有所帮助,写得不好的地方,还请各位老师和博友批评指正。
提前祝大家新年快乐,也祝大家在读博和科研的路上不断前行。项目学习再忙,也要花点时间读论文和思考,这些大佬真心值得我们学习,加油!这篇文章就写到这里,希望对您有所帮助。由于作者英语实在太差,论文的水平也很低,写得不好的地方还请海涵和批评。同时,也欢迎大家讨论,继续努力!感恩遇见,且看且珍惜。
(By:Eastmount 2023-01-18 周三夜于贵阳 http://blog.csdn.net/eastmount/ )
以上是关于论文阅读和分析:A Tree-Structured Decoder for Image-to-Markup Generation的主要内容,如果未能解决你的问题,请参考以下文章
论文阅读和分析:Hybrid Mathematical Symbol Recognition using Support Vector Machines
[论文阅读] (26) 基于Excel可视化分析的论文实验图表绘制总结——以电影市场为例
[论文阅读] (26) 基于Excel可视化分析的论文实验图表绘制总结——以电影市场为例