My Vision, Computer Vision

[딥러닝 공부] Vision-Language Evaluation Metrics(VLM 벤치마크 평가 지표) 본문

공부

[딥러닝 공부] Vision-Language Evaluation Metrics(VLM 벤치마크 평가 지표)

gyuilLim 2025. 2. 28. 15:22

Evaluation Metrics for VLM Benchmark

  • VLM 벤치마크에서 자주 사용되는 평가 지표 5가지에 대해 알아보자.
    • BLEU, METEOR, ROUGE, CIDEr, SPICE
  • 먼저 BLEUMETEOR기계 번역(Machine Translation, MT)의 성능을 측정하기 위해 고안된 지표이다.
  • ROUGE는 4가지 버전이 있고, 요약(Summary) 성능을 측정하기 위해 고안된 지표이다.
  • CIDEr, SPICE는 이미지 캡셔닝 모델의 평가 지표로, 직접적으로 Vision-Langauge를 타겟팅한 메트릭이다.

Candidation, Reference란?

  • 위 평가 지표들은 모두 모델의 성능을 측정하기 위해 만들어진 지표이다.
  • 따라서 모델이 출력한 답과 실제 정답을 비교하는 과정이 필요한데, 모델이 출력한 답을 후보 문장(Candidate)이라고 하고 실제 정답, 즉 인간이 직접 생성한 텍스트(번역, 요약, 캡션 등)을 참조 문장(Reference)라고 한다.
  • Reference는 1개일 수도 있고, 여러 개일 수도 있다.
  • CandidationReference가 얼마나 유사한지를 측정하는 것이 평가 지표들의 역할이다.

N-gram이란?

  • N-gram이란 텍스트에서 연속적인 N개의 토큰(단어 혹은 문자)을 나타내는 말이다.
  • 예를 들어 “Spider man is standing on top of the tower.” 라는 문장에서, N의 크기에 따라 N-gram은 아래와 같다.
  • 1-gram (unigram):
    • "Spider-Man", "is", "standing", "on", "top", "of", "the", "tower"
  • 2-gram (bigram):
    • "Spider-Man is", "is standing", "standing on", "on top", "top of", "of the", "the tower"
  • 3-gram (trigram):
    • "Spider-Man is standing", "is standing on", "standing on top", "on top of", "top of the", "of the tower"
  • 4-gram (four-gram):
    • "Spider-Man is standing on", "is standing on top", "standing on top of", "on top of the", "top of the tower"

BLEU(BiLingual Evaluation)

  • 2002년에 기계 번역 성능을 더 정확하게 측정하기 위해 고안되었다.
  • BLEU는 문장 길이에 대한 패널티 항이 있는데, Candidate의 길이가 Reference보다 짧으면 점수를 덜 준다.
  • 이는 BP(Brevity Penalty)라고 하며, 다음과 같다.

$$ BP=\begin{cases}1 \qquad \qquad \mathrm {if} ; c>r \\ e^{(1-r/c) } \quad,,, \mathrm {if} ; c \le r \end{cases} $$

  • 예를 들어, 후보 번역과 참조 번역이 다음과 같다고 하자.
    • Candidate: "The cat sits on the mat."
    • Reference: "The cat is sitting on the mat."
  • 이 때, 마침표를 제외하면 c = 6, r = 7 이기 때문에, BP는 $e^{(1-7/6)} = 0.8465$ 이다.

$$ \mathrm {BLEU} = \mathrm {BP} \cdot \exp(\sum^N_{n=1} \mathcal W_n \log p_n) $$

  • 위 수식은 최종 BLEU 계산 식이다.
  • $p_n$ 은 N-gram 정밀도이고, $\mathcal W_n$ 은 N-gram별 가중치이다.
  • 다시 위 예시에서, N-gram 정밀도부터 구해보자.
    • Candidate: "The cat sits on the mat."
    • Reference: "The cat is sitting on the mat."
    • N-gram 정밀도란, N개의 연속된 단어(그램)의 일치율이다.
    • N=1 일 때, 후보 번역의 The, cat, on, the, mat 5개가 일치하기 때문에 정밀도는 5/6=0.833이다.
    • N=2 일 때, 후보 번역의 The cat, on the, the mat 3개가 일치하기 때문에 정밀도는 3/5=0.6이다.
      • 분모가 6인 이유는, 단어를 두 개씩 묶었을 때 총 5쌍이 나오기 때문이다.
    • N=3 일 때, 후보 번역의 on the mat 1개가 일치하기 때문에 정밀도는 1/4=0.25이다.
    • N=4 일 때는 일치하는 부분이 없기때문에 0이다.
  • $\mathcal W_n = 1/N$ 이다. 따라서 BLEU에서 BP를 제외한 부분을 구해보면

$$ \exp(\sum^N_{n=1} \mathcal W_n \log p_n) = \exp(1\cdot0.833 + 1/2\cdot0.6+ 1/3\cdot0.25 + 1/4\cdot0) =3.3747 $$

  • 3.3747이고 BP는 0.8465니까 최종 BLEU 스코어는 2.857이 되는 것이다.

METEOR

  • BLEU가 Recall을 고려하지 않는데, 이를 보완하기 위해 제안된 지표가 METEOR이다.

First step - Mapping

  • 먼저 첫번째 단계는 세 가지 모듈을 통해 기계 번역을 참조 번역으로 매핑한다.
  • 예를 들어 Cadidate와 Reference가 다음과 같다고 하자.
    • Candidate : The cat is sleeping on the mat.
    • Reference : The feline sleeps on that mat.
  • Candidate를 Reference에 매핑시키기 위해 사용되는 세가지 모듈은 다음과 같다.
    • Exact 모듈 : 단어와 단어가 정확이 일치할 경우 매핑.
    • Porter stem 모듈 : 형태소가 동일한 경우 매핑.
    • WN synonymy 모듈 : 동의어인 경우 매핑.
  • 결과적으로 The(Exact), cat(feline, WN synonymy), sleeping(sleeps, Porter stem), on(Exact), mat(Exact) 가 매핑된다.

Second step - Alignment

  • 만약 여러 개의 매핑 집합이 만들어지는 경우, 더 많은 유니그램이 매핑된 집합을 선택한다.
  • 매핑된 유니그램의 개수도 같은 경우, Cross가 더 적은 쪽을 선택한다.
  • Cross란, 기계 번역과 참조 번역 사이 매핑된 단어를 직선으로 연결한다고 할 때, 순서가 바뀌어 생기는 교차점을 말한다.
  • $(t_i, r_j), (t_k, r_l)$ 이렇게 두 개의 매핑쌍이 만들어졌다고 할 때,

$$ (pos(t_i)-pos(t_k)) *(pos(r_j)-pos(r_l)) $$

  • 위의 결과가 음수인 경우, Cross로 카운트한다.
  • $t_i, t_k$ 는 기계 번역의 인덱스, $r_j, r_l$ 은 참조 번역의 인덱스이다.
  • 최종적으로 선택된 매핑 집합을 Alignment라고 한다.

Fmean

$$ Fmean = \frac{10PR}{R+9P} $$

  • Fmean은 Precision과 Recall의 조화평균으로 계산하는데, Recall에 가중치를 더 부여한다.
  • 다시 위의 예시를 가져와서,
    • Candidate : The cat is sleeping on the mat.
    • Reference : The feline sleeps on that mat.
  • 매핑된 단어 수는 The, cat, sleeping, on, mat로 5이다.
  • 이 때 Precision은 참이라고 예측한 것 중 실제 참인 비율이니까 Candidate의 길이가 분모가 되어 5/7, Recall은 실제 참인 것 중 참이라고 예측한 비율이니까 Reference의 길이가 분모가 되어 5/6이다.
  • 따라서 Fmean = 0.8197 이다.

Penalty

  • Candidate과 Reference 사이, 연속된 매칭을 고려하기 위해 패널티 점수를 부여한다.

 

$$ Penalty = 0.5 * (\frac{\# \mathrm{chunks}}{\#\mathrm{unigrams_matched}}) $$

  • Chunks는 연속된 매칭의 개수, 즉 단어 덩어리의 개수이다.
  • 밑의 예시에서 Chunks는 3개이다.
    • Candidate : The cat is sleeping on the mat.
    • Reference : The feline sleeps on that mat.
  • 매칭된 유니그램은 5개니까, Penalty = 0.5 * (3/5) = 0.3 인 것이다.
  • Chunk가 많아질수록 페널티는 0.5에 가까워진다.

METEOR score

$$ Score = Fmean*(1-Penalty) $$

  • METEOR score는 최종적으로 위와 같이 계산된다.
  • 위 예제의 경우 0.8197 * (1 - 0.3) = 0.5738 이 된다.
  • Bi-gram 이상의 매칭이 없으면 최소 50%만 반영하는 것이다.

ROUGE

  • ROUGE는 기계 번역의 성능 측정을 위해 고안된 지표로 4가지 버전(N, L, W, S)이 있다.
  • 그 중에서 가장 많이 쓰이는 ROUGE-L에 대해 알아보자.

ROUGE-L : Longest Common Subsequence

  • LCS(Longest Common Subsequence)란 최장 공통 수열로, 두 개의 문장 $X, Y$ 가 있을 때, 공통 부분의 최대 길이를 의미한다.
  • 예를 들어 “나는 학교에 간다.”“나는 친구와 학교에 간다.” 라는 두 개의 문장에서 LCS는 “나는 학교에 간다.”인 것이다.
  • Reference $X$ 의 길이를 $m$, Candidate $Y$ 의 길이를 $n$ 이라고 할 때, Recall, Precision, F-measure은 아래와 같다.

$$ R_{lcs} = \frac{\mathrm {LCS}(X, Y)}{m} \ P_{lcs} = \frac{\mathrm {LCS}(X,Y)}{n} \ F_{cls} = \frac{(1+\beta^2)R_{lcs}P_{lcs}}{R_{lcs}+ \beta^2P_{lcs}} $$

  • 아래 예시에서 LCS를 구해보자.
    • Candidate : “Spider-man is standing on top of the tower.”
    • Reference : "Spider-Man is positioned on top of the tower."
  • “on top of the tower.” 가 LCS로, 길이는 5이다.
  • 따라서 $n=m=6$ 이기 때문에, $R_{cls} = 6/8, \ P_{lcs} = 6/8$ 이다.
  • $\beta=1$ 이라고 하면, $F_{lcs} = \frac{(1+1)6/8 \cdot6/8}{6/8 + 6/8} = 0.75$ 이다.
  • 즉 ROUGE-L score는 0.75가 되는 것이다.

CIDEr

  • CIDEr은 2014년에 고안된 이미지 캡션 모델의 평가 지표이다.

TF-IDF

  • 하나의 이미지 내에서 자주 반복되는 단어는 높은 가중치를, 모든 이미지에서 자주 등장하는 단어는 낮은 가중치를 부여하는 것이다.
  • $\mathrm{TF}(t, d) = \frac{단어\ t가\ 문서\ d에서\ 나타나는\ 횟수}{문서\ d의\ 총\ 단어\ 수}$
  • $\mathrm{IDF}(t) = \log(\frac{N}{1+\mathrm{df}(t)})$, $df(t)$는 단어 $t$ 가 등장한 문서의 수.
  • $\mathrm{TF-IDF}(t,d) = \mathrm{TF}(t,d) \times \mathrm{IDF}(t)$
  • 따라서 N-gram에 대한 TF-IDF를 계산하여, 가중치로 사용.
  • N-gram($w_k$)이 Reference($s_{ij}$)에서 등장하는 횟수를 $h_k(s_{ij})$,
  • N-gram($w_k$)이 Candidation($c_i$)에서 등장하는 횟수를 $h_k(c_i)$ 라 할 때,

$$ g_k(s_{ij})=\frac{h_k(s_{ij})}{\sum_{w_l \in \Omega}h_l(s_{ij})}\mathrm{log}(\frac{|I|}{\sum_{I_p \in I}\mathrm {min}(1, \sum_q h_k(s_{pq}))}) $$

  • TF-IDF 가중치($g_k$)는 위와 같다. $\Omega$ 는 N-gram의 Vocab, $I$ 는 이미지셋이다.
  • 첫번째 항은 TF에, 두번째 항은 IDF에 대응된다.

CIDEr score

  • CIDEr scoreCandidateReference코사인 유사도(L2 norm)로 계산된다.

$$ \mathrm{CIDEr}n(c_i, S_i) = \frac{1}{m}\sum_j\frac{\mathbf g^n(c_i)\cdot \mathbf g^n(s_ij)}{||\mathbf g^n(c_i)||\ ||\mathbf g^n(s{ij})||} $$

  • $n$ 은 N-gram에서 길이(N)을 의미한다.
  • $g_n(c_i)$ 는 Candidate($c_i$)의 모든 N-gram에 해당하는 가중치로 구성된 벡터 $g_k(c_i)$ 이다. $s_{ij}$ 도 동일하게 적용된다.
  • $n$ 을 여러 길이로 확장하면 아래와 같다.

$$ \mathrm{CIDEr}(c_i, S_i) = \sum^N_{n=1} w_n \mathrm{CIDEr}_n(c_i, S_i) $$

  • N=4로 설정하고, $w_n = 1/N$ 이다. 즉 N이 증가할수록 반영을 적게한다.

SPICE

  • SPICE는 캡션을 Scene graph로 매핑하여 계산한다.

Scene Graph 예시

  • 위 그림처럼, “A young girl standing on top of a tennis court” 라는 캡션을 Object(객체), Relations(관계), Attributes(속성)로 파싱하여 오른쪽 Scene graph로 변환한다.
  • 만들어진 Scene graph에서 Logical Tuple을 추출한다.
  • “A young girl standing on top of a tennis court”의 Logical tuple은 { (girl), (court), (girl, young), (girl, standing), (court, tennis), (girl, on-top-of, court) }이다.
    • Object : girl, court
    • Relations : on top of
    • Attributes : young, standing, tennis

F-score Calculation

  • 최종적으로 SPICE scoreCandidate의 Logical tupleReference의 Logical tuple일치율을 토대로 Precision, Recall, F-score를 계산한다.

$$ P(c,S)=\frac{|T(G(c)) \otimes T(G(S))|}{|T(G(c))|} \\
R(c,S)=\frac{|T(G(c)) \otimes T(G(S))|}{|T(G(S))|} \\
SPICE(c,S) = F_1(c,S)=\frac{2 \cdot P(c,S) \cdot R(c,S)}{P(c,S) + R(c,S)} $$

 

 

728x90