图像描述生成

本文章关于神经网络课程设计选题——图像描述生成。

评测指标

BLEU(BiLingual Evaluation Understudy)指标

n-gram 层面指把文本看作连续的词,考察长度为 \(n\) 的连续片段。

在 n-gram 层面的准确率计算公式为:

\[ \text{BLEU}_{n}(a, b) = \frac{\sum\limits_{w_n \in a} \min \biggl(c_a(w_n), \max\limits_{j = 1, \cdots, |b|} c_{b_{j} (w_n)}\biggr)}{\sum\limits_{w_n \in a} c_a(w_n)} \]

其中,\(a\):候选句子(生成句子);\(b\):参考句子集(真实句子集、标注句子集);\(w_n\):n-gram;\(c_x(y_n)\):n-gram \(y_n\) 在句子 \(x\) 中出现的次数。

n-gram 通常用滑动窗口(overlapping)切分连续的 token 序列。

然后简单计算召回率

\[ \text{BLEU} = \text{BP} \cdot \exp \biggl(\sum_{n = 1}^{N} w_n \log \text{BLEU}_n\biggr) \]

其中,\(\text{BP}\) 是短句惩罚项,根据候选句子的长度 \(c\),选择一个最相近的参考句子的长度 \(r\)

\[ \text{BP} = \begin{cases} 1, &c > r \\ \text{e}^{1 - r/c}, & c \leq r \end{cases} \]

衡量的是句子之间的流畅性而非语义相似度

METEOR (Metric for Evaluation of Translation with Explicit ORdering) 指标

考虑同义词的F值,鼓励连续词匹配,其计算过程如下:

  1. 在候选句子和参考句子之间做词到词的映射(根据匹配原则列出所有可能的匹配,然后在所有可能的匹配中选择一个匹配成功词最多的,如果两个匹配成功的词一样多,就选择其中交叉最少的那个)

  2. 计算 METEOR 值,对于多个参考句子,取得分最高的作为最终结果。

    \[ \text{METEOR} = \max_{j = 1, 2, \cdots, |b|} \biggl(\frac{10PR}{R + 9P} \biggr) \biggl(1 - \frac{1}{2} \biggl(\frac{\text{chunks}}{\text{matched unigrams}}\biggr)^3 \biggr) \]

    其中,\(P\) 表示精确率:候选句子(生成句子)中被匹配上的 unigram(单词)数除以候选句子中的总 unigram 数。

    \[ P=\frac{\text{matched\_unigrams}}{\text{候选句子总 unigram}} \]

    \(R\)(Recall,召回率):候选句子中被匹配上的 unigram 数除以参考句子 \(b_j\) 中的总 unigram 数。

    \[ R=\frac{\text{matched\_unigrams}}{\text{参考句子 }b_j\text{ 的总 unigram}} \]

    \(\text{matched unigrams}\):依据第 1 步建立的词到词映射后实际匹配上的 unigram 数目(在所有可能匹配中选择匹配词数最多且交叉最少的映射得到的匹配数)。

    \(\text{chunks}\):在候选句子与参考句子之间按匹配顺序形成的连续匹配段(contiguous matched segments)的数量。若匹配项在序列中是分散的,\(\text{chunks}\) 会较大。

ROUGE (Recall Oriented Understudy of Gisting Evaluation)

在 n-gram 层面的召回率:

\[ \text{ROUGE}_n(a, b) = \frac{\sum\limits_{j = 1}^{|b|} \sum\limits_{w_n \in b_j} c_{b_{j}} \min(c_{a} (w_n), c_{b_{j}} (w_n))}{\sum\limits_{j = 1}^{|b|} \sum\limits_{w_n \in b_j} c_{b_{j}} (w_n)} \]

F 值:

\[ \begin{aligned} \text{ROUGE-L} &= \frac{(1 + \beta^2) R_{lcs} P_{lcs}}{R_{lcs} + \beta^2 P_{lcs}} \\ R_{lcs} &= \frac{\text{LCS}(X, Y)}{m} \\ P_{lcs} &= \frac{\text{LCS}(X, Y)}{n} \\ \beta &= \frac{P_{lcs}}{R_{lcs}} \end{aligned} \]

其中,LCS 为最长公共子序列。

多个参考句子时,单独计算所有的参考句子的 ROUGE-L 值,取最大的一个作为最终的结果。

CIDEr

BLEU + 向量空间模型

\[ \text{CIDEr}_n (a, b) = \frac{1}{|b|} \sum_{j = 1}^{|b|} \frac{g^n(a) \cdot g^n(b_j)}{||g^n(a)|| \cdot ||g^n(b_j)||} \]

其中,\(g^n(x)\) 为句子 \(x\) 的 n-gram 形式的 TF-IDF 表示,对所有词预先执行 stem 操作,变成词根形式。CIDEr 最终是 1 到 4 gram 的结果的平均值。

CIDEr 取词根的操作会让一些动词的原型和名词匹配成功;高置信度的词重复出现的长句的CIDEr得分也很高。

CIDEr-D

\[ \text{CIDEr-D}_n (c_i, S_i) = \frac{10}{m} \sum_{j} \exp \biggl(\frac{-(l(c_i) - l(s_{ij}))^2}{2 \sigma^2} \biggr) \times \frac{\min(g^n(c_i), g^n(s_{ij})) \cdot g^n(s_{ij})}{||g^n(c_i)|| \cdot ||g^n(s_{ij})||} \]

CIDEr-D 也是计算 1 到 4 gram的结果的平均值。

对于动词原形和名词匹配成功的问题,CIDEr-D 不再取词根;对于包括高置信度的词的长句,CIDEr-D 增加了惩罚生成句子和参考句子的长度差别的权重,并且通过对 n-gram 计数的截断操作不再计算生成句子中出现次数超过参考句子的 n-gram。

SPICE(Semantic Propositional Image Caption Evaluation)

计算步骤:

  1. 利用 Stanford Scene Graph Parser 将候选句子和参考句子集转化为场景图。

  2. 比较候选句子和参考句子集中元组的 precision、recall,最终计算出 F1 score。


图像描述生成
https://ddccffq.github.io/2025/10/19/神经网络与深度学习/图像描述生成/
作者
ddccffq
发布于
2025年10月19日
许可协议