이번 포스팅에서는 GAN을 평가하는 데 주로 사용되는 metric인 IS, FID 그리고 LPIPS에 대해 알아보도록 하겠습니다.
GAN은 두가지 관점에서 평가됩니다.
- Quality: 실제 이미지와 유사한 이미지가 생성되는가
- Diversity: 여러 noise vector에 걸쳐 다양한 이미지가 생성되는가
앞으로 소개해 드릴 metric들은 위 두가지 관점에서 GAN을 평가하기 위해 사용됩니다.
Inception Score (IS)
IS는 ImageNet pretrained model인 inception-v3를 이용하여 GAN을 측정합니다. IS를 계산하기 위해 두가지 확률이 필요한데 하나는 조건부 확률
Frechet Inception Distance (FID)
FID를 측정하기 위해 ImageNet으로 pretrain된 Inception-v3 모델이 필요합니다.
Inception-v3 모델을 feature extractor로 사용하여 실제 이미지와 생성된 이미지 사이의 activation map을 추출합니다. Activation map을 통해 multivariate gaussian distribution을 구할 수 있습니다. 그럼 이제 실제 이미지의 확률 분포와와 생성된 이미지의 확률 분포 사이의 Wassertein-2 distance를 측정하여 FID를 구할 수 있습니다:
여기서
FID가 낮게 나온 생성된 이미지는 실제 이미지와 확률 분포적으로 유사하다고 볼 수 있습니다.
따라서 GAN의 FID가 낮게 측정될 수록 high-quality의 이미지를 생성한다고 평가됩니다.
Pytorch의 경우 https://github.com/mseitzer/pytorch-fid의 라이브러리를 주로 사용합니다.
Learned Perceptual Image Patch Similarity (LPIPS)
LPIPS는 비교적 초기의 ImageNet classsification 모델인 AlexNet, VGG, SqueezeNet을 사용합니다. LPIPS는 "The Unresonable Effectiveness of Deep Features as a Perceptual Metric"에서 처음 소개된 것인데, 기존의 IS나 FID와는 다르게 유사도를 사람의 인식에 기반하여 측정하려 시도했습니다. 그 과정에서 AlexNet, VGG, SqueezeNet의 feature map이 사람의 인식과 유사하기 때문에 이를 활용하고자 하였습니다.
두 이미지
낮은 LPIPS는 두 이미지가 perceptually similar하다고 볼 수 있습니다.
Pytorch의 경우 https://github.com/richzhang/PerceptualSimilarity의 라이브러리를 주로 사용합니다.
References
[1] https://m.blog.naver.com/chrhdhkd/222013835684
[2] https://github.com/mseitzer/pytorch-fid
[3] https://arxiv.org/abs/1801.03924
[4] https://github.com/richzhang/PerceptualSimilarity
댓글