해당 글은 deeplearning.ai의 Generative Adversarial Networks Specialization의 Build Better Generative Adversarial Networks강의 리뷰입니다.
빅데이터 연합동아리 tobigs 생성모델 세미나 자료로 사용되었습니다.
GAN model을 평가하기 어렵다.
why? Universal gold-standard discriminator가 존재하지 않는다.
생성된 이미지 평가의 중요한 두 가지 지표
1. Fidelity : quality of images
2. Diversity : variety of images
Pixel distance
각 픽셀값의 차이를 절대값을 이용해서 구한다. 쉽게 값을 구할 수 있다는 장점이 있지만 위상변화에 매우 취약하다는 단점이 존재하므로 사용하지 않는다.
Feature distance
이미지들을 픽셀 단위로 비교하는 것이 아니라 특징들을 추출해서 비교한다. 따라서 pixel distance보다 위상변화에 대해 믿을만한 값을 얻을 수 있다.
위의 Feature distance를 구하기 위해서는 특징을 나타내는 벡터(연산을 위해)가 필요하다. 특징벡터를 구하기 위해 pre-trained CNN 모델을 이용한다
이미지 분류에서 CNN은 특징을 추출하는 convolutional layers와 분류를 하는 fully connected layers로 구성된다. 따라서 convolutional layers에 이미지의 특징을 표현하는 feature layer가 존재하고 이를 이용해서 이미지를 embedding할 수 있다.
대부분의 경우 fc층 전의 마지막 pooling layer를 feature layer로 사용하나 필요(primitive information)에 따라 앞 부분의 layer를 사용하는 경우도 있다.
ImageNet dataset을 이용해 pre-trained된 CNN을 사용한다.
Feature extraction을 수식으로 표현하면
: Embedding function, : input image
, : 어떠한 특징의 값
Embedding function을 ImageNet으로 학습된 Inception-v3모델의 convolutional layers를 이용한 함수로 정의한다.
이렇게 얻어진 벡터를 이용해서 Euclidean/Cosine distance등을 이용해서 feature distance를 구할 수 있다.
Inception-v3참고: https://static.googleusercontent.com/media/research.google.com/ko//pubs/archive/44903.pdf
두 일변량 정규분포의 FID는 위와 같이 정의된다.
두 다변량 정규분포의 FID는 위와 같이 정의된다. (일변량의 확장버전)
FID의 기본 가정: embedding vector가 다변량 정규분포를 따른다.
정확하게 따른다기 보다는 계산의 편의를 위해서 가정한다.
낮은 FID -> 두 분포의 거리가 가깝다 -> 진짜와 가짜가 유사하다
FID의 단점
1. ImageNet data로 pre-trained된 경우 ImageNet data 이미지의 class와 다른 이미지를 다룰 경우 원하는 특징을 포착하지 못할 수 있다
2. pre-trained가 아닌 경우, 많은 수의 sample로 학습시키지 않으면 biased feature layer가 생겨서 좋지 못한 FID score를 얻게 된다
3. pre-trained가 아닌 경우, 학습을 시키기 위해 시간이 오래 걸린다
4. 표본의 분포가 정규분포가 아닐 경우 제한적인 통계량(평균,분산)만으로는 분포의 차이를 잘못 설명할 수 있다.
FID 이전 많이 사용되던 evaluation metric
Entropy?
정보이론의 대표적인 개념으로 무작위성으로 볼 수 있다
랜덤 변수 X의 값이 예측가능하면 엔트로피가 낮음
예측하기 어렵다면 엔트로피는 높음
Inception Score 이해하기
수식을 보기 전 Inception-v3 model이 어떻게 사용되는지 확인하자
IS: classifier => fc층 사용
FID: feature extractor => fc층 사용 안함
IS는 KL divergence의 expectation의 지수제곱(exp의 역할은 사람이 값을 이해하기 쉽게한다)
KL divergence 내의 두 분포
p(y|x): 주어진 input x에 대해 label y의 확률분포
p(y): label들의 확률분포
위 이미지의 왼쪽은 p(y|x)를 나타내고 한 곳에서 peak한 분포를 보이므로 entropy가 낮다 => Fidelity
위 이미지의 오른쪽은 p(y)를 나타내고 골고루 퍼진 분포(uniform)를 보이므로 entropy가 높다 => Diversity
Fidelity와 Diversity를 나타내는 분포들의 차이를 KL divergence의 기대값을 이용해서 구한 후 지수 제곱을 해주면 Inception Score가 된다.
예시)
fidelity와 diversity 모두 우수한 생성모델을 가정하자
해당 모델에서 생성한 이미지들은 fidelity가 높기 때문에 classifier가 잘 분류해낼 것이다. 따라서 p(y|x)가 한 곳에서 높은 값을 갖는 분포를 갖게 된다.
또한 diversity가 높기 때문에 다양한 label의 이미지를 생성할 것이다. 따라서 p(y)가 uniform distribution과 비슷한 형태의 분포를 갖게 된다.
두 분포의 차이가 크므로 KL divergence가 크다. KL divergence가 커지면 IS가 커진다. 따라서 IS가 큰 값을 갖으면 fidelity와 diversity가 우수한 생성모델이라 할 수 있다.
IS의 단점
1. 생성자가 각 label마다 하나의 이미지만 반복해서 생성하는 경우 IS가 높지만 이는 inner diversity를 고려하지 못한 좋지 못한 생성모델
2. fake image만을 이용한다 -> real image와 비교하지 못 한다.
3. FID와 마찬가지로 ImageNet data로 pre-trained된 경우 ImageNet data 이미지의 class와 다른 이미지를 다룰 경우 원하는 특징을 포착하지 못할 수 있다
GAN을 평가할때 letent vector z의 사전 분포에 맞게 sampling 한다.
근처에서 sampling된 z들을 이용해서 fidelity에 집중해서 평가할 수 있다.
반대로 와 먼 곳까지 포함에서 sampling된 z들을 이용해서 diversity에 집중해서 평가할 수 있다.
truncation trick을 이용해서 z 분포의 양 끝부분을 잘라낸 곳에서 sampling을 한 후 평가를 진행할 수 있다. 잘라내는 지점은 hyperparameter로 사람이 경험에 의해 직접 지정한다.
우수한 fidelity를 원하는 경우 양 끝부분을 많이 잘라내서 sampling을 하면 되고, 우수한 diversity를 원하는 경우 양 끝부분을 적게 잘라내서 sampling하면 된다.
fidelity와 diversity의 trade-off 관계에 맞게 잘라내는 지점을 지정하면 된다.
HYPE(Human eYe Perceptual Evaluation)
HYPE(time)
HYPE(time)의 방법
HYEP(inf)
HYEP(inf)의 방법
precision = 생성된 이미지 중 실제 이미지 분포에 들어가는 이미지들/생성된 이미지들
precision은 fidelity와 연관
recall = 실제 이미지 중 생성된 이미지 분포에 들어가는 이미지들/실제 이미지들
recall은 diversity와 연관
대부분의 경우 recall이 precision보다 높음. 따라서 truncation trick을 이용해서 precision을 높이다.
'Improved Precision and Recll Metric for Assessing Generative Models'논문에서 발전된 precision and recall을 정의했다
식(1): 함수 f에서 특정 벡터 가 해당 분포의 특정 cluster에 들어가는지 여부를 k-nearest neighbors를 이용해서 정의했다. 이를 통해서 특정 feature 벡터가 실제 이미지 분포에 포함되는지 혹은 생성된 이미지 분포에 포함되는지를 판단할 수 있다
식(2): 함수 f를 통해 얻은 값을 통해 recall과 precision을 정의한다. recall과 precision의 원래 정의와 같다.
Advantages of GANs
1. 높은 수준의 이미지 생성
2. 이미지 생성 시간이 빠르다.
Disadvantages
1. 본질적인 evaluation metrics 부족
2. 학습의 불안정성 -> 어느정도 해결됨
3. 명시적인 확률 밀도를 알 수 없다.
4. latent vector로 역변환이 어렵다.
Variational Autoencoder(VAE)
encoder와 decoder로 이루어진 생성 모델로 자세한 설명은 이전 강의
https://velog.io/@tobigs-gm1/Variational-Autoencoder 참조
장점
1. 확률 밀도를 알 수 있다
2. 역변환이 가능하다
3. 학습의 안정성
단점
1. blurry한 생성 결과물
Autoregressive Model
RNN처럼 sequence를 이용해서 이미지를 생성한다. 따라서 GAN이나 VAE와 다르게 latent vector가 존재하지 않는다.
pixelRNN, pixelCNN, GatedpixelCNN 등이 존재한다.
Flow based generative model
다른 모델과 다르게 letent vector z가 input vector x와 같은 차원을 갖는다. 같은 차원을 갖으므로 정보의 손실이 적다.
z의 분포를 표준정규분포로 시작하여 변수변환과 야코비안을 이용해 x의 분포처럼 복잡한 분포로 만든다. 이때 변환에 사용되는 함수는 역함수가 존재해야하고, 야코비안 행렬식 계산이 간단하게 이뤄져야 한다.
이러한 과정을 통해 구한 함수 f를 이용해 생성 결과물을 얻는다.
COMPAS Algorithm
이 알고리즘은 미래에 범죄를 저지를 확률에 따라 점수를 주는 알고리즘이다. ProPublica는 기사에서 해당 알고리즘에 인종차별적 요소가 들어가 있다고 문제를 제기했다.
왼쪽의 백인 남성은 Home Depot에서 대략 $86 가치의 물건을 절도했다. 또한 그는 무장절도 경험과 수감 경험이 있다. 오른쪽의 흑인 여성은 $80 가치의 자전거와 스쿠터 절도를 시도했고, 현장에서 물건을 두고 도주했다. 다른 전과 기록은 없었다. 하지만 흑인 여성의 COMPAS점수가 더 높았다.
이 알고리즘의 사전 질문에 인종에 대한 질문은 존재하지 않지만 인종차별적인 결과가 발생하고 있다. 하지만 알고리즘의 계산과정은 공개되지 않아서 알고리즘 설계에서 인종차별적 결과를 의도했는지 확인하기 어렵다.
알고리즘의 점수는 판사의 판단에 영향을 미쳐 수감 기간에 영향을 준다. 또한 이 수감 기간으로 인해 수감 생활 이후의 삶에 안 좋은 영향을 미친다.
'Fairness Definitions Explained'논문에서 예시를 통해 여러 fairness definitions를 설명하고 있다.
해당 논문에서 German Credit Dataset으로 학습된 로지스틱 회귀 분류기를 사용해 남성과 여성으로 그룹간의 신용 점수 분류 결과의 차이를 확인한다. 이 분류기를 이용해 여러 fairness definition을 각각 설명하고, 어떻게 적용되는지를 확인한다. 이 과정에서 fairness를 무엇으로 정의하냐에 따라 분류기의 fairness는 달라진다.
definitions of fairness
위 표에서 Lilliputian과 Brobdingnagian그룹으로 나뉜다.
Qualified/Unqualified는 ground-truth로 실제 자격인 있는 없는가에 대한 값이다
Admiited/Rejected는 분류의 결과로 예측값이다.
demographic parity: A fairness metric that is satisfied if the results of a model's classification are not dependent on a given sensitive attribute.
Ground-truth에 상관없이 그룹에 따른 분류결과(Admitted/Rejected)의 비율이 같으면 된다. 위의 예시에서 두 그룹의 total percentage of admitted가 다르므로 demographic parity을 만족하지 못 한다.
equality of opportunity: equality of opportunity measures whether the people who should qualify for an opportunity are equally likely to do so regardless of their group membership.
그룹에 상관없이 실제 자격이 있는(qualified)한 학생은 선호되는 결과인 Admitted로 분류될 확률이 같아야 한다.위의 예시에서 두 그룹의 percentage of qulified students admitted가 같으므로 equality of opportuniy가 만족한다.
equality of odds: if, for any particular label and attribute, a classifier predicts that label equally well for all values of that attribute.
그룹에 상관없이 자격이 있는(qualified)한 학생은 Admitted로 분류될 확률이 같고, 또한 자격이 없는(unqualified)한 학생은 rejected로 분류될 확률이 같아야 한다. 즉, equality of opportunity에서 부정적인 결과에 대한 확률도 같아햐 하는 제약조건이 추가된 fairness이다. 위의 예시에서 두 그룹 각각 percentage of qualified students admitted와 percentage of unqualified students가 같으므로 equality of odds를 만족한다.
fairness through unawareness: A model is fair if the protected attribute differentiating Class A and Class B is not given to the model.
그룹 조건이 포함되지 않았을 때 분류 결과 비율이 같으면 만족한다.
Machine Learning Glossary: Fairness (2020):https://developers.google.com/machine-learning/glossary/fairness 에서 더 많은 정의 확인할 수 있다.
'A Survey on Bias and Fairness in Machine Learning' 논문에서는 Bias와 Fairness의 정의에 대해 상세히 나와있다. 또한 Bias문제가 없는 fair machine learning methods에 대해서 소개하고 있다.
여기서는 fair한 생성모델을 하나 소개한다.
위 그림은 FairGAN의 구조이다. FairGAN은 한 개의 생성자와 두 개의 구별자로 이루어진다. 생성자는 이산적이고 연속적인 데이터 둘 다 생성하기 위해 medGAN의 생성자를 수정해서 사용한다. 구별자1과 생성자의 적대적 관계는 conditionalGAN과 유사한 형태를 갖고 있다. 또한 구별자2와 생성자의 적대적 관계는 생성된 샘플이 proteced속성(s)의 값을 예측하기 위해 지원하는 정보를 인코딩하지 않도록 하는 것이 목표로 한다.
FairGAN 논문: https://arxiv.org/pdf/1805.11202.pdf
Training Bias
Evaluation Bias
Model Architecture Bias
모델의 구조 만들거나 최적화 코드를 만드는 코딩하는 사람에게 영향을 받아 편향될 수 있다.
PULSE
styleGAN을 이용해서 pixelated blurry image에서 high resolution image을 생성한다.
왼쪽사람 부터 former president of U.S.A Barack Obama(African-American), politician Alexandria Ocasio Cortez(Hispanic), actress Lucy Liu(Asian-American)
이들은 모두 유색인종이다. 하지만 생성된 이미지를 보면 백인의 특성을 많이 갖는 이미지들이 생성되었다. 이를 통해서 해당 모델에 bias가 존재함을 알 수 있다. 해당 프로그램 개발자는 모델 적용시의 주의사항을 명시하였다.
머신러닝 알고리즘을 개발할 때 데이터 수집부터 평가 및 활용 등 개발 전과정에서 bias가 생길 수 있다. bias에 관한 문제는 현재 ML community에서 뜨거운 논쟁거리이다. 따라서 이를 극복하기 위한 연구도 진행되고 있다.