FID
GAN 평가 방법:
생성된 샘플에 대해 Parzen window를 피팅하여 log-likelihood를 추정했다.
Parzen window
데이터의 정확한 확률 분포 수식을 모를 때 가지고 있는 샘플을 바탕으로 분포의 모양을 추정하는 방법
생성된 데이터 점 하나하나에 가우시안 커널을 올린다. 모두 더하면 데이터가 밀집된 곳은 높고 없는 곳은 낮다. 이게 모델이 학습한 확률 분포 근사치가 된다.
왜 FID는 안했을까?
GAN은 2014년에 발표 되었다. FID는 2017년.
2014년에는 생성 모델의 성능을 정량적으로 측정할 마땅한 기준이 없었다. 그래서 당시 통계적으로 많이 쓰이던 parzen window 방식을 사용했다.
FID는 Parzen Window 기반 likelihood 비교를 고집하는 대신 사전 학습된 특징 공간에서 실제, 생성 이미지 분포의 거리를 재는 방향으로 전환한 현대적 평가 지표다.
1. 왜 Parzen Window가 밀렸는가
Parzen Window는 저차원에선 쓸 만하지만 이미지처럼 차원이 수천 단위로 올라가면 차원의 저주 때문에 샘플 수를 아무리 늘려도 신뢰할 만한 밀도 추정이 어렵다.
픽셀 공간에서의 likelihood는 작은 translation, 노이즈에도 민감해 사람이 보기엔 비슷한 두 이미지를 전혀 다른 점으로 평가하는 등 시각적 유사성과 잘 맞지 않는다는 비판을 받았다.
translation에 민감
이미지 A: 점이 (10, 10) 좌표에 있음.
이미지 B: 똑같은 점을 오른쪽으로 딱 한 칸 옮겨서 (11, 10) 좌표에 있음.
사람이 보기엔 두 이미지는 거의 똑같다. 하지만 픽셀 공간에서 두 이미지를 비교하면 (10, 10) 위치의 값이 ‘검정’에서 ‘하양’으로 바뀌었고, (11, 10) 위치는 ‘하양’에서 ‘검정’으로 바뀌었다. 컴퓨터는 이를 보고 두 이미지가 겹치는 부분이 하나도 없는 완전히 다른 이미지라고 판단하게 된다.
2. FID
FID는 밀도 추정 자체를 포기하고 사전 학습된 분류기(Inception-v3)의 feature space에서 실제, 생성 이미지 분포를 가우시안으로 근사한 뒤 두 분포 사이의 Fréchet 거리를 계산한다.
구체적으로 Inception-v3의 마지막 global pooling 레이어(2048차원 특징)를 각 이미지의 임베딩으로 보고 실제 데이터와 생성 데이터 각각에 대해 평균 $\mu_r$, $\mu_g$ , 공분산 $\Sigma_r, \Sigma_g$를 추정한다.
$\mu_r$: 실제 이미지들의 평균적인 특징 $\mu_g$: 생성된 이미지들의 평균적인 특징
\[FID = \left\|\mu_r - \mu_g\right\|^2 + \mathrm{Tr}\left(\Sigma_r + \Sigma_g - 2(\Sigma_r \Sigma_g)^{1/2}\right)\]FID 값이 낮을수록 두 분포의 통계적 특성이 비슷하다. 자연 이미지에서는 인간의 시각적 평가와 비교적 높은 상관을 보인다고 보고되었다.
데이터셋, 도메인에 따라 달라질 수 있어 언제나 인간 평가와 잘 맞는다 고 일반화할 수는 없다.
3. FID = 거리 + 특징공간 선택
거리 정의 자체보다 어떤 feature extractor를 쓰느냐의 선택에 있다.
표준 FID는 Inception-v3를 고정해 자연 이미지에 대한 일반적인 시각적 특징을 공통 기준으로 삼기 때문에 서로 다른 모델 간 점수 비교가 가능해진다.
하지만 이 구조를 일반화하면 FID는 사실상 선택한 신경망 특징공간에서 두 분포의 2차 통계량 거리에 불과하다.
4. MobileNetV3 / ResNet으로 백본을 바꾸면
Inception-v3 대신 MobileNetV3나 ResNet의 중간 레이어를 feature extractor로 사용하면 여전히 같은 Fréchet 거리 수식으로 FID를 계산할 수 있다.
장점:
도메인 특화 모델을 쓰면 해당 도메인에서 의미 있는 시각적 차이에 더 민감한 특징공간을 만들 수 있다
단점:
백본을 바꾸는 순간 숫자 스케일과 의미가 달라져 “Inception-FID 10 vs ResNet-FID 10” 식의 서로 다른 백본 간 직접 비교가 원칙적으로 불가능해진다
백본을 바꿔서 실험할 수는 있지만 비교는 항상 동일 백본 내에서만 해야 하며 이때의 점수는 그 백본이 정의한 시각적 기준에 따른 상대적인 유사도 점수이다.
FID 점수가 낮다는 것은 그 백본 AI의 눈을 속이기에 충분할 만큼 닮았다 는 뜻이지 사람이 보기에도 무조건 완벽하다는 뜻은 아니다.