이미지 생성 모델의 평가 방법
GAN의 평가
평가를 위해 주로 쓰이는 속성은 충실도와 다양성이 있습니다.
GAN을 어떻게 평가할까..?
주된 기본 속성중 하나는, 기본 목표는 확실히 충실도 또는 생성된 이미지의 품질과 이미지가 얼마나 사실적으로 보이는가 입니다.
두 번째 속성은 다양성입니다. 이 생성기가 생성할 수 있는 범위와 훈련 데이터 세트 또는 원하는 클래스 모델링에 내재된 다양성을 생성이 가능한가.. 이런 다양성입니다!
GAN은 왜 일반모델들 처럼 평가가 어려울까? 이유를 설명하겠습니다.
GAN의 평가가 어려운 이유
우선 실제와 가짜를 구분하는 GAN의 판별자는 완벽에 도달하지 않습니다.
GAN은 생성해야 할 픽셀에 대한 명확한 목표가 없습니다.
GAN을 사용하면 임의의 노이즈를 전달하는데 곧 GAN은 생성해야 할 정확한 픽셀을 모릅니다.
여기서 이 픽셀은 약간 빗겨나가게 되는데, 이렇게 되면... 그곳은 참인데..? 라고 말할 수 없게 되는거죠...
진짜 사진과 가짜사진을 판별하지만 일반 모델의 판별자를 사용하면 참 거짓을 판단을 하며 또한 영역에 대한 문제까지 더해져 완벽에 도달하지 못합니다...
IS (Inception Score)
Inception Score는 원본 이미지(Ground Truth)없이 생성한 이미지의 분포만으로 모델의 성능을 평가합니다.
nseption Score는 Sharpness와 Diversity의 KLDivergence으로 정의되는데, 일단 엔트로피라는 개념을 알아야 합니다!
확률분포에서 특정한 값이 나올 확률이 높아지고 나머지 값의 확률은 낮아진다면 엔트로피가 작아집니다!
반대로 여러가지 값이 나올 확률이 대부분 비슷한 경우에는 엔트로피가 높아집니다!
* KL divergence란?
이 divergence의 의미는 벡터장의 발산 같은 개념이 아니라, “차이”를 뜻하며 특히, 여기서 “차이”라고 말하는 것은 두 확률 분포를 비교한다는 말입니다!
* Sharpness란?
Sharpening이란 주변 pixel과의 차이를 극대화시켜 경계 부분의 명암 비를 증가시키는 작업을 뜻합니다.
* 엔트로피란?
엔트로피는 확률분포가 가지는 정보의 확신도 혹은 정보량을 수치로 표현한 것이다.
Sharpness는 아래와 같이 정의 할 수 있습니다.
classifier의 predictive distribution 의 엔트로피가 낮아질수록, 즉 classifier가 더 확실하게 분류할 수 있는 이미지 일수록 값이 커집니다.
Diversity는 아래와 같이 정의 할 수 있습니다.
여기서, 는 classifier의 marginal distribution 으로 이 값이 큰 엔트로피를 가질수록 diversity가 크다고 할 수 있습니다.
IS의 단점
분류기 모델의 훈련 데이터 세이트에 없는 무언가를 생성하는 경우 분류가 어렵기 때문에 낮은 점수가 나옵니다.
분류기가 분류하는 같은 class 내에서 다양성을 측정 할 수 없습니다!
Frechet Inception Distance (FID)
FID는 생성 이미지와 원본 이미지의 집합을 서로 비교하여 구하며 정의는 아래와 같습니다!
행렬의 대각 성분의 합을 의미!
* 는 생성 이미지(G 집합)와 원본 이미지(T 집합)의 평균의 차를 빼며 제곱합니다!
이 값은 실제 이미지와 생성된 이미지의 차이를 의미하며, 이 값이 작을수록 유사한 이미지이므로 Fidelity(충실도)도 높음을 판별합니다!
아래 그림은! Diversity를 구하는 부분으로 T와 G 집합의 공분산을 구하는 방법입니다.
Diversity도 원본인 T 집합과 비슷할수록 높은 점수가 부여됩니다!
위에 같은 이유로 FID는 원본 이미지셋과 분포가 유사할 수록 점수가 높다고 합니다!
FID는 이미지의 원본과 생성된 이미지의 곡선을 구하여 분포평균과 표준편차를 구한다고 합니다!
Improved Precision and Recall
Precision and Recall은 정밀도와 재현율을 뜻 합니다!
위 그림의 은 실제 집합, 는 가짜로 생성된 집합입니다.
Precision은 fidelity를 의미하는데, 이는 에 포함된 원소의 개수와 같으며, 생성한 가짜 이미지가 실제 집합에 포함된 개수를 의미하게 됩니다!
Recall은 diversity를 의미하고, 이는 에 포함된 의 개수와 같습으며, 가짜 집합에 포함된 실제 이미지의 개수를 의미하여 가짜 집합의 범위가 넓을 수록 더 높은 값을 가지게 된다!
Pr과 Pg가 구해지는 법은 K-Nearest Neighborhood 알고리즘을 사용해서 각 과 의 manifold를 근사하게 합니다.
그리고 아래 함수를 통해서 해당 sample이 집합에 속하는지를 판단합니다!
평가하기 위해 찾아보다 FID를 먼저 알아보다 다른 방법들 또한 찾아 보게 되었습니다.
위에 정의한 부분들은 이해가 되었으며 https://pitas.tistory.com/12
[딥러닝] 이미지 생성 모델의 평가 방법에 대해서
지금까지 여러 Latent Diffusion 모델을 드림부스로 특정 대상에 대한 개념을 파인튜닝 해보면서 어떤 설정이나 데이터셋에 따라서 결과에 차이가 발생한다는 것을 알게되었지만, 어느정도의 유의
pitas.tistory.com
블로그를 보고 새롭게 알게된 평가방법과 논문들을 찾아 볼 수 있게 되었습니다.
다음에는 꼭 위 방법들을 사용하여 Latent-Diffusion을 평가해보겠습니다!