일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Object detection article
- vlm 환각이란
- dinov2: learning robust visual features without supervision 논문 리뷰
- 에지 검출
- dinov2 논문 리뷰
- 딥러닝 엔트로피
- dinov2: learning robust visual features without supervision 논문
- 논문 리뷰
- evaluating object hallucination in large vision-language models paper
- mobilenetv1
- 객체 검출
- clip adapter
- 엔트로피란
- 이미지 필터링
- 논문 요약
- blip-2
- clip
- vlm hallucination
- vlm hallucination paper
- evaluating object hallucination in large vision-language models
- 1차 미분 마스크
- object detection
- evaluating object hallucination in large vision-language models 논문
- 딥러닝 목적함수
- vlm 환각
- dinov2: learning robust visual features without supervision
- polling-based object probing evaluation
- 기계학습
- 원격 학습 안끊기게
- vlm
- Today
- Total
My Vision, Computer Vision
[딥러닝 공부] Vision-Language Evaluation Metrics(VLM 벤치마크 평가 지표) 본문
Evaluation Metrics for VLM Benchmark
- VLM 벤치마크에서 자주 사용되는 평가 지표 5가지에 대해 알아보자.
- BLEU, METEOR, ROUGE, CIDEr, SPICE
- 먼저 BLEU와 METEOR는 기계 번역(Machine Translation, MT)의 성능을 측정하기 위해 고안된 지표이다.
- ROUGE는 4가지 버전이 있고, 요약(Summary) 성능을 측정하기 위해 고안된 지표이다.
- CIDEr, SPICE는 이미지 캡셔닝 모델의 평가 지표로, 직접적으로 Vision-Langauge를 타겟팅한 메트릭이다.
Candidation, Reference란?
- 위 평가 지표들은 모두 모델의 성능을 측정하기 위해 만들어진 지표이다.
- 따라서 모델이 출력한 답과 실제 정답을 비교하는 과정이 필요한데, 모델이 출력한 답을 후보 문장(Candidate)이라고 하고 실제 정답, 즉 인간이 직접 생성한 텍스트(번역, 요약, 캡션 등)을 참조 문장(Reference)라고 한다.
- Reference는 1개일 수도 있고, 여러 개일 수도 있다.
- Candidation과 Reference가 얼마나 유사한지를 측정하는 것이 평가 지표들의 역할이다.
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 score는 Candidate와 Reference의 코사인 유사도(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로 매핑하여 계산한다.
- 위 그림처럼, “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 score는 Candidate의 Logical tuple과 Reference의 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)} $$
'공부' 카테고리의 다른 글
[논문 요약/리뷰] Evaluating Object Hallucination in Large Vision-Language Models (0) | 2025.03.31 |
---|---|
[논문 요약/리뷰] ROUGE: A Package for Automatic Evaluation of Summaries (0) | 2025.02.27 |
[논문 리뷰/요약] LLaVA : Visual Instruction Tuning (0) | 2025.02.02 |
[딥러닝 공부] KL Divergence와 Cross Entropy (0) | 2025.01.26 |
[딥러닝 공부] Bernoulli Distribution, Laplace Distribution(베르누이 분포, 라플라스 분포) (0) | 2025.01.15 |