Image Caption评估指标深入理解

news2024/9/9 4:19:00

前言:刚开始做图像描述的任务就整理了这些评估指标,时间久远有点记不清怎么具体实现原理了,结果面试的时候就问了这个问题,没答上来,郁闷了很久,还是基础不扎实,浅浅记录一下

文章目录

  • BLEU
  • ROUGE
  • METEOR
  • CIDEr
  • 参考

BLEU

BLEU(Biligual Evaluation understudy):是一种用来评估机器翻译的评价指标,广泛出现在文本生成的论文当中,是一种基于单词精确度的度量方式。
BLEU采用一种 N-Gram 的匹配规则,具体来说就是比较 生成文本 和 真实文本 之间的 N组词 的相似度
举个栗子:
有如下两个句子:
其中,真实值是you are a good man,预测值是good man is you

  • 当使用1-Gram匹配时:
    在这里插入图片描述
    在不考虑语序的情况下,预测值4个词命中了真实文本的5个词,所以Score(1-gram)=4/5
  • 当使用3-Gram匹配时:
    在这里插入图片描述
    可以看到预测值中有1个三元词汇命中了真实文本中的3个三元词汇,于是Score(3-gram)=1/3

BLEU还有许多变种。根据n-gram可以划分成多种评价指标,常见的指标有BLEU-1、BLEU-2、BLEU-3、BLEU-4四种,其中n-gram指的是连续的单词个数为n。BLEU-1衡量的是单词级别的准确性,更高阶的bleu可以衡量句子的流畅性

BLEU的优点:

  • (1)速度快、成本低廉
  • (2)容易理解
  • (3)不受语种限制
  • (4)运用广泛
    BLEU的缺点

BLEU的缺点:

  • (1)忽略同义词
  • (2)N-gram的机制会导致某项分数特别低
  • (3)BLEU不考虑意义
  • (4)BLEU不考虑句子的结构,很多时候,只要单词相同BLEU就会给出很高的分数
  • (5)BLEU不能够很好地处理形态丰富的语言
  • (6)BLEU与人类的判断并不相符合

ROUGE

ROUGE(Recall-Oriented Understudy for Gisting Evaluation)也是评估自动文摘以及机器翻译的一组指标。ROUGE基于摘要中n元词(n-gram)的共现信息来评价摘要,是一种面向n元词召回率的评价方法。

基本思想:将模型生成的文本与人工生成的真实文本相对比,通过统计二者之间重叠的基本单元(n元语法、词序列和词对)的数目,来评价生成文本的质量。

举个栗子:
机器生成的自动摘要:
the cat was found under the bed
人工生成的标准摘要:
the cat was under the bed
ROUGE-1的值可以很容易计算出来,生成的六个词六个词都是匹配的,所以score(ROUGE-1)=6/6,
这个值与召回率是一样的,也就是recall = 6/6,percision=6/7

ROUGE-2该如何计算?
自动摘要的Bigrams:
the cat, cat was, was found, found under, under the, the bed
标准摘要的Bigrams:
the cat, cat was, was under, under the, the bed
生成的十个词有八个(两个一组)是匹配的,故score(ROUGE-2)=4/5,也就是recall = 4/5。此时percision = 4/6

  • ROUGE-N优点:直观,简洁,能反映词序。
  • ROUGE-N缺点:区分度不高,且当N>3时,ROUGE-N值通常很小。

ROUGE准则由一系列的评价方法组成,包括ROUGE-N(N是n-gram中n,取值有1,2,3,4),ROUGE-L,ROUGE-S, ROUGE-W,ROUGE-SU等。在自动文摘相关研究中,一般根据自己的具体研究内容选择合适的ROUGE方法。

METEOR

METEOR是一种用于评估文本生成任务,初是为机器翻译而开发的,现在广泛用于图像描述任务中。它基于单词级别准确率和召回率,以及对词序的惩罚,来计算候选文本和参考文本之间的相似度。

METEOR的特点是它不仅考虑了单词的精确匹配,还考虑了词干、同义词和其他语言变体的匹配。 它还使用了一个调和平均数来平衡准确率和召回率,以及一个罚分因子来惩罚不流畅或不连贯的文本。
计算公式:
在这里插入图片描述
在这里插入图片描述
其中P是准确率,R是召回率,Fmean是单元词组 对齐 后的准确率和召回率的调和平均,Pen是碎片度惩罚,计算如下:
在这里插入图片描述
m是生成文本中能够被匹配的一元词组的数量,ch是chunk 的数量,怎么理解这个chunk呢,看下面的例子:
在这里插入图片描述
预测值的一元词组数量 m=5,,按照匹配度被分成了三个 chunk,即ch=3
如果超参数 γ=1,β=2,那 Pen=1*(3/5)^2=0.36
召回率: P=匹配的单词数 / 真实文本的单词数=4/5=0.8
精确率: R=匹配的单词数 / 预测文本的单词数=4/5=0.8
假设超参数 α=0.5,则 Fmean=0.80.8/(0.50.8+0.5*0.8)=0.8
所以,最终的 METEOR=(1-0.36)*0.8=0.512

CIDEr

CIDEr是专门用于评价图像描述(image caption)任务的评价指标。相较于常用于文本翻译的评价指标BLEU、ROUGE来说,CIDEr更接近人类去判断两个句子是否相近的原理,因为它利用了TF-IDF来对不同n-gram去赋予不同的权重,直观的来说,即经常出现的词组的权重具有更低的权重,而不常出现的词组则更特殊(具有更大的权重),人们会更注意这些特殊的单词。

CIDEr是利用TF-IDF来给不同长度的n-gram赋予不同的权重,然后计算候选句子和参考句子的n-gram的余弦相似度,再取平均得到最终的评分,计算公式如下:
在这里插入图片描述
其中, c_i是候选句子, s_i 是参考句子集合,m是参考句子的数量,n是n-gram的长度, g_n( c_i)和 g_n( s_i) 是候选句子和参考句子的TF-IDF向量

参考

  • VQA自动评价指标——METEOR
  • METEOR机器翻译指标 灵活的单字准确度、召回率、碎片化综合指标
  • VQA的自动评价指标——CIDEr

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

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

相关文章

C语言的结构体

结构体定义 结构体指针

【优选算法】滑动窗口——leetcode——串联所有单词的⼦串(hard)

目录 1.题目 2,算法原理 ​编辑 1.哈希表 2.left和right指针的移动 3.滑动窗口的执行次数 3.代码实现 1.C代码 2.C语言代码 4.C知识点 1. std::vector 2. std::string 3. std::unordered_map 4. 迭代器 5. 范围循环 (range-based for loop) 6. 动…

0基础学会无代码在亚马逊云科技AWS上利用LLM和智慧体(Agent)开发客服机器人

简介: 小李哥将继续每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案,帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS AI最佳实践,并应用到自己的日常工作里。 本次介绍的是如何利用亚马逊云科技大模型托管服…

【解决方法】git clone出现 curl 56 OpenSSL SSL_read: Connection was reset, errno 10054

当我们克隆别人的项目出现以下提示信息时候 remote: Enumerating objects: 7095, done. error: RPC failed; curl 56 OpenSSL SSL_read: Connection was reset, errno 10054 error: 2292 bytes of body are still expected fetch-pack: unexpected disconnect while reading s…

Python(C++)大尺度分层边值时变图统计推理并行算法

🎯要点 🎯分层结构制定生成模型 | 🎯贝叶斯模型选择程序 | 🎯分层结构图的信息性 | 🎯分层模型适应实值边协变量的网络 | 🎯分层模型适应时变网络,划分层对应于检测变化点 | 🎯定义…

Python中15个让你代码更优雅的上下文管理器用法

文末赠免费精品编程资料~~ 今天,我们要探索的是Python中一个超级实用又往往被低估的特性——上下文管理器。这可不是普通的魔法,它能让你的代码更加整洁、安全,还能自动处理资源,就像变魔术一样。准备好,让我们一起揭…

一分多行列转换(Gbase版)

1、源数据表结构 CREATE TABLE "sf_ref_pd_config" ("I_BATCH_NO" decimal(5,0) DEFAULT NULL COMMENT 批次ID,"V_ASSET_CLASS_NAME" varchar(200) DEFAULT NULL COMMENT 资产类型,"N_EXEC_ID" decimal(5,0) DEFAULT NULL COMMENT 执…

pyjwt:Python 中的 JWT 处理专家

文章目录 探索 pyjwt:Python 中的 JWT 处理专家简介:为何选择 pyjwt?什么是 pyjwt?安装 pyjwtpyjwt 的基本使用1. 编码JWT2. 解码JWT3. 验证签名4. 过期时间5. 自定义头部 场景应用场景一:用户登录场景二:A…

深度学习的数据类型总结

文章目录 1.基本概念1.比特(bit):2. **字节**(Byte):2. **数据类型**: 2. 相互转化 1.基本概念 1.比特(bit): 计算机中最小的数据存储单位,用 0 和 1 表示。信息传输速…

python制作一个AI聊天机器人-【python教程】教你用python制作一个AI聊天机器人,源码可分享,零基础也能实现!

要制作一个基本的AI聊天机器人,我们可以使用Python的多个库,其中一个非常流行且易于上手的是Rasa。一个简单的入门示例,我们可以使用pyttsx3,是一个Python库,用于将文本转换为语音。 它提供了一个简单易用的接口&#…

【ThingsBoard初体验】本地运行源码踩坑记录

前言 运行源码之前,请先编译源码。这很重要!!! 官网源码编译教程:http://www.ithingsboard.com/docs/user-guide/contribution/yuanmabianyi/ 如果编译过程中出现报错,请看我上一篇文章:【Thing…

《LeetCode热题100》---<滑动窗口篇两道>

本篇博客讲解LeetCode热题100道滑动窗口篇中的两道题 第一道:无重复字符的最长子串 第二道:找到字符当中的所有字母异位词 第一道:无重复字符的最长子串 哈希滑动窗口 class Solution {public int lengthOfLongestSubstring(String s0) {int…

nginx出现Refused to apply inline style because it violates

Content Security Policy的错误。根据错误提示,nginx拒绝应用内联样式,因为它违反了内容安全策略(Content Security Policy)。内容安全策略是一种浏览器机制,用于防止潜在的安全漏洞,通过限制从外部来源加载…

初步入门C ++之继承的概念

继承 ​ 继承,他的功能就如同他的名字一样,可以继承一个类的数据和方法,然后增添一些自己独有的数据和方法: 根据我们之前讲解初步入门C之类的例子,假如我们现在有一个长方体的类,它和长方型类唯一不一样…

屏幕录制与视频编辑的新纪元Camtasia Studio 2024

在数字化时代,视频已成为我们日常工作和生活中不可或缺的一部分。无论是教育、培训、营销还是娱乐,高质量的视频内容都发挥着至关重要的作用。而提到屏幕录制和视频编辑软件,Camtasia Studio无疑是一个家喻户晓的名字。随着2024年新版本的发布…

【Vue3】自定义组件

【Vue3】自定义组件 背景简介开发环境开发步骤及源码 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的日子。本文…

Java基本语法学习的案例练习

本文是在学习过C语言后,开始进行Java学习时,对于基本语法的一些案例练习。案例内容来自B站黑马编程课 1.HelloWorld 问题介绍;请编写程序输出“HelloWorld”. public class HelloWorld { public static void main(String[] args) { System.out.print…

树状机器学习模型综述(含python代码)

树状机器学习模型综述 树状模型是机器学习中一种非常重要的算法类别,因其直观的结构和良好的可解释性而广泛应用于分类和回归任务。本文将综述几种常见的树状模型,包括决策树、随机森林、LightGBM、XGBoost和CatBoost,讨论它们的原理、用途以…

高品质定制线缆知名智造品牌推荐-精工电联:高压线缆行业定制服务的领航者

定制线缆源头厂家推荐-精工电联:高压线缆行业定制服务的领航者 在当今这个高度信息化的社会,电力传输与分配系统的稳定运行至关重要。作为连接各个电力设备的纽带,高压线缆的质量直接关系到电力系统的安全性和稳定性。在定制高压线缆行业中&a…