GAN의 문제
a) Overfitting
b) 상속 부족
c) Mode Collapse
d) Mode Dropping
GAN의 성능 평가
정해진 Label이 없는데 어떤 방식으로 GAN 모델의 성능을 평가해야 할까?
Generative Adversarial Networks의 성능을 평가하는 것을 쉽지 않다.
객관적인 평가 기준이 없기 때문이다
성능 평가를 할 수 없다는 것은
- 훈련 중 최종 GAN 모델 선택
- GAN 기능을 시연하기 위해 생성된 영상을 선택
- GAN의 아키텍처 비교
- GAN의 구성 비교
등을 할 수 없는 문제가 발생하고 가장 최적의 모델을 찾지 못하게 된다.
Manual Evaluation
사람이 직접 평가하는 방법으로 각 epoch 마다 생성된 이미지를 보고 평가한다.
이 방법은 매우 간단하지만 아무리 객관적으로 평가한다고 해도 주관적일 수밖에 없다. 평가하는 사람에 따라 지표가 나눠질 수도 있다. (행복한 이미지, 슬픈 이미지 -> 눈은 웃는데 입은 울고 있다면?)
또한, Mode-collapse을 잡아낼 수 없다.
Mode-collapse
Generator가 Discriminator에게 가장 Real 같은 이미지를 주기 위해 같은 이미지를 생성하는 것
Inception Score(IS)
Improved Techniques for Training GANs (https://arxiv.org/pdf/1606.03498.pdf)논문에서 제안됨
생성된 데이터의 품질(Fidelity), 생성된 데이터의 다양성(Diversity)을 기준으로 평가함
IS는 이미지 목록을 가져와 점수로 단일 소수점 숫자를 반환하며 위의 Fidelity와 Diversity를 동시에 측정한다.
IS는 엔트로피(Entropy) 방식을 통해 얻을 수 있다.
$$ IS = exp(E_{x}KL(p(y|x)||p(y))) = exp(E_{x}E_{p(y|x)}\left [ log(\frac{p(y|x)}{p(y)}) \right ])) $$
KL 발산(Kullback-Leibler Divergence)을 사용하며, KL 발산이란 두 확률 분포가 얼마나 유사한지, 다른지에 대한 척도이다.
작동 방식
먼저 IS는 생성된 이미지를 분류하며 구체적으로 각 이미지가 학습된 클래스들과 얼마나 많이 닮았는지, 얼마나 다양하게 나왔는지를 단일 이미지에 대한 라벨의 확률 분포로 변환한다.
GAN으로부터 만들어진 이미지를 분류기를 통해 Label을 측정하고 생성된 이미지들에 대한 레이블 확률 분포를 결합한다.
결합된 분포를 Marginal 분포라고 하고 Marginal 분포는 생성기의 출력이 얼마나 다양한지를 보여준다.
이상적인 분포로는 아래와 같다
한계점
- 데이터 셋에 없는 이미지를 생성할 경우 (행복, 슬픔만 있을 때 어지러움이 생성된다면 Label로 분류가 되지 않기 때문에 낮은 IS 가 나옴
- 분류기의 훈련 데이터와 다른 레이블 세트를 사용하여 이미지를 생성하는 경우 (개미 데이터 셋을 사용할 경우 개미 사진만 생성을 하기 때문에 다양성이 부족하다고 판단하여 낮은 IS가 나옴)
- 분류기 네트워크가 이미지 품질 개념과 관련된 특징을 감지할 수 없는 경우. 텍스쳐에 focus를 하기 때문에 좋은 결과물이 아니더라도 높은 IS가 나옴
- 생성기가 이미지 클래스 당 하나의 이미지만 생성하고 각 이미지를 여러 번 반복하는 경우(클래스 내의 다양성을 특정할 수 없기에 모델이 Overfitting이 나도 높은 IS를 받음
Fréchet Inception Distance(FID)
- IS의 성능을 개선시키기 위해 고안됨
- IS는 생성된 이미지만을 사용하여 성능을 평가했지만, FID는 대상 Domain의 실제 이미지 모음 통계와 생성된 이미지 모음 통계를 비교하여 평가를 진행함
- 이미지 평균과 공분산을 계산하여 다변향 가우시간(Multivariate Gaussian)으로 요약한 뒤, 분포의 거리를 Frechet distance를 사용하여 측정한다.
- FID 점수가 낮을수록 두 그룹의 이미지가 유사하다는 것을 뜻하기 때문에 성능이 좋다는 것을 나타낸다.(만점은 0.0점)
- FID 점수는 생성된 이미지의 품질을 평가하는데 사용되며, 낮은 점수는 고품질 이미지와 잘 연관된다.
$$ FID = d^{2}((m,C),(m_{w},C_{w})) = ||m-m_{w}||_{2}^{2}+Tr(C+C_{w}-2(CC_{w})^{\frac{1}{2}}) $$
위와 같이 구한 벡터들을 활용해 FID 점수를 구한다.
\( d^{2} \)은 거리이고 \( m \)과 \( m_{c} \)는 각각 실제 이미지, 생성된 이미지의 기능별 평균을 나타낸다.
\( C \)와 \( C_{w} \)는 sigma이며 실제 특징 벡터와 생성된 특징 벡터에 대한 공분산 행렬이다.
\( || m-m_{w}||^{2} \)는 두 평균 벡터 간의 합계 제곱 차이다.
\( Tr \)은 대각합을 나타냄
CID ( Creativity x Inheritance x Diversity)
Notations
\( R = {I_{r}} \) | 실제 이미지들의 집합 |
\( G = {I_{g}} \) | GAN으로 생성된 이미지들의 집합 |
\( G^{rem} = \{Ig|SSIM(I_{g}, I_{r}) < 0.8\} \) | G에서 실제 이미지와 유사도가 80% 보다 낮은 이미지들의 집합 |
\( gc_{r} \) | GLCM-contrast를 적용한 R의 평균 |
\( gc_{g} \) | GLCM-contrast를 적용한 \( G^{rem} \)의 평균 |
\( C_{1} \cdots C_{m} \) | 유사한 이미지들로 구성된 각 Cluster들의 Entropy |
Creativity : 실제 Image와 중복이 있으면 안됨
Creativity에 대한 대표: 전체 생성된 Image 등 중에 실제 Image와 유사한 Imgae들이 Image들의 퍼센트
$$ Creativity = \frac{|G^{rem}|}{|G|} $$
Inheritance : 생성된 Image는 같은 스타일을 가져야 함 (생성된 Image의 분포는 실제 Image의 분포에 가까워야 함)
Inheritance에 대한 지표: GLCM-contrast를 적용한 R와 \( G^{rem} \)의 각 평균 차이를 0 ~ 1 사이의 값으로 정규화한 것
$$ Inheritance = 1-\frac{|gc_{r}-gc_{g}|}{max\{gc_{r}, gc_{g}\}} $$
Diversity : 생성된 Image들은 서로 달라야 함
유사도를 활용하여 생성된 Image들을 Cluster로 그룹화시켜 각 Cluster의 entropy를 계산함
$$ Diversity = -\sum^{m}_{i}p_{i}logp_{i}; p_{i}=\frac{|C_{i}|}{|G^{rem}|} $$
GLCM(Gray Level Co-occurrence Matrix)
통계적 질감 분석 방법으로 현재 픽셀과 그 이웃하는 픽셀의 밝기 값의 관계를 대비, 상관관계, 에너지, 동질성 등과 같은 질감 특징을 결정하는 통계량으로 계산하여 표현하는 것
구하는 과정
- 4x4 image에서 각 픽셀 값은 0~ 3
- 가로로 픽셀 2개씩 읽으면 GLCM의 위치 자표가 됨 (0,0)(0,0)(2,3) -> GLCM도 4x4 Matrix로 나옴
- 대응하는 GLCM 위치에 +1을 카운트해줌
- 정규화 : 각 GLCM / 전체 GLCM 합
Reference
'Generative model' 카테고리의 다른 글
[VAE] VAE(Variational Auto-Encoder) 이론 (0) | 2023.06.19 |
---|---|
[GAN] Simple 1010 pattern (0) | 2022.12.30 |
[GAN] GAN 학습 (1) | 2022.12.29 |
[GAN] 생성 모델 GAN의 이해 (0) | 2022.12.29 |
[GAN] GANs Generative Adversarial Networks (0) | 2022.12.26 |