일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Latent space
- PatchGAN
- PatchDiscriminator
- Unsupervised learning
- GAN
- Gradien Vanishing
- Mutual Information
- LSGAN
- Generative model
- StarGAN
- ICLR
- Unsupervised Representation Learning
- Computer Vision
- conditional GAN
- DCGAN
- pix2pix
- xai
- Representation learning
- Image-to-image translation
- self-supervised learning
- Ian GoodFellow
- Markov Random field
- Styletransfer
- clova
- PGGAN
- InfoGAN
- Today
- Total
AI with U-Seminar, Daneil Jeong
StarGAN(2018) 본문
생성 네트워크(Generative model)과 함께 많이 거론되던 연구 분야는 style transfer입니다.
정확히는 서로 다른 두 domain에서 이미지를 바꾸는 과정이라 하여 image-to-image translation이라 불립니다.
GAN 등장 이전에는 통계적인 방법(e.g. gram matrix)으로 style transfer를 해결하려 했습니다.
style feature를 직접 구하는 방법인데 아래와 같은 결과를 만드는 것이 목표였습니다.
image에서 픽셀 값들 간의 상관관계, 혹은 특정 모델에 존재하는 특정 은닉층(hidden layer)의 representation을 활용하여 style 값들을 조정하는 시도가 있었습니다.
GAN에서도 이러한 image-to-image translation 연구가 진행되었는데요,
대표적으로 다음과 같은 두 논문이 있습니다.
https://aijyh0725.tistory.com/17
https://aijyh0725.tistory.com/18
특히나 CycleGAN의 방법론은 굉장히 좋은 결과를 얻었는데요, 다만 기존에 존재하던 GAN을 이용하연 style transfer의 단점은 특정 domain들끼리만 학습이 가능하다는 것입니다. 즉, 두 도메인 간의 관계를 파악하기 위해 훈련시킨 어느 한 모델은 다른 도메인에서 사용하기 어렵다는 것입니다. 연구에서 사용하는 용어로는, generalization이 힘들다 혹은 flexibility가 없다 라고 표현할 수 있습니다.
이러한 문제를 해결하기 위해 하나의 GAN 모델(unified GAN)을 사용하여 여러 도메인 간의 img2img translation을 진행하는 연구가 바로 StarGAN입니다. 특히나 StarGAN은 한국과 naver가 진행한 연구라 더 흥미가 가기도 하며, 현재도 관련 분야에 중심이 되는 논문 중 하나입니다.
논문 링크는 아래와 같습니다.
https://arxiv.org/abs/1711.09020v3
StarGAN이 어떤 방법론을 사용했는 지 논몬 리뷰를 통해 확인해보도록 하겠습니다.
1. 논문 리뷰
StarGAN에서는 향후 GAN에서 사용되는 다양한 용어들을 정리하고 시작합니다.
이미지에서 공간적으로 의미가 있는 정보들(semantically meaningful)을 attribute이라 표현하고,
같은 attribute를 공유하는 이미지들을 한 domain이라 지칭하게 됩니다.
예를 들어 성과 관련된 attribute를 기준으로 남성 이미지 domain과 여성 이미지 domain으로 나눌 수 있을 것입니다.
실제 데이터셋에서도 이러한 attribute를 label로 나눠준 것들이 존재하는데요.
CelebA의 경우 유명한 인사(celebrity)의 얼굴들을 모아놓은 데이터셋으로, 40개의 얼굴 관련 attribute 라벨들이 존재합니다. RaFD 데이터셋의 경우 얼굴 표정과 관련하여 8가지의 라벨들을 모아놓았습니다.
한 데이터셋에서 다른 도메인으로의 변화를 학습하는 것도 가능하지만, 논문에서는 서로 다른 데이터셋(CelebA+RaFD)를 합쳐서 두 도메인간의 이동을 학습하는 것도 가능하다 합니다. 이미지로 보면 아래와 같게 됩니다.
그림에 있는 1, 2, 3, 4, 5는 각 domain을 지칭합니다. StarGAN은 domain 정보를 label을 통해 학습합니다. 굉장히 간단한 방법이면서, 한편으로는 이 방법이 정말 될까?하는 의문이 들기도 합니다(ㅋㅋ)
라벨은 남성/여성 같은 binary나 혹은 여러 정보를 담고 있을 경우 one-hot vector 형태로 모델에서 사용하게 됩니다. 학습 과정에서 타겟 도메인의 라벨을 랜덤하게 만들어내고 모델이 입력 이미지를 자유롭게 원하는 도메인으로 바꿀 수 있도록 합니다. 이러한 과정을 통해 라벨이 도메인의 정보를 대표할 수 있게 학습한다 합니다.
두 데이터셋을 같이 사용하는 경우에는 mask 벡터를 사용하여 특정 데이터셋 맞춤형 라벨만을 사용할 수 있게 합니다. 이를 이용하여 CelebA의 이미지를 RaFD의 존재하는 얼굴 표정 도메인으로 옮기는 것도 가능하게 됩니다. 이 부분은 굉장히 흥미롭네요.
모델의 훈련 과정은 아래와 같은 이미지를 통해 확인할 수 있습니다.
이 때 Generator와 Discriminator는 DCGAN의 형태를 띄고 있고, 특히나 Generator의 경우에는 downsample과 upsample을 모두 진행하는 autoencoder의 형태와 유사합니다. Discriminator는 PatchGAN의 형태를 사용하였습니다.
이외의 모델 자체의 특별한 점은 없습니다. 학습 과정을 모델에 맞추어 더 자세히 살펴보도록 하겠습니다.
StarGAN의 목표는 여러 도메인을 아우를 수 있는 unified generator를 만드는 것입니다. 이 때 특별히 domain의 라벨 c가 들어가게 되어 G(x, c)가 원하는 이미지 y를 만들어내게 됩니다. 여기에 보조적으로 label을 판단할 수 있는 classifier를 하나 사용하게 됩니다. 즉 discriminator가 다음과 같이 두개의 probablity distribution을 만들게 됩니다.
여기에 추가적으로 reconstruction loss를 사용하게 됩니다. CycleGAN에서 사용한 cycle consistency loss를 사용하였습니다. (만들어낸 이미지가 기존 이미지의 정보를 보존해야 하므로!)
adversarial loss로는 WGAN-GP loss를 사용합니다.
마스크 벡터는 one-hot 벡터의 형태로 어떤 attribute의 label을 사용할지를 결정해줍니다.
StarGAN에서의 학습은 두 데이터셋(CelebA/RaFD)를 사용하였기 때문에 mask 벡터의 크기는 2입니다. (two-dimensional one-hot vector) 이를 통해 어떤 domain을 사용했는지를 명시해줍니다.
2. 논문 실험 결과
다른 베이스라인들과의 비교입니다.
질적인 평가는 많이 존재하지만, 적당한 양적 평가가 없는 것이 아쉽네요. 논문에는 유저 스터디를 진행하여 양적 평가를 진행하였는데... 제 생각에는 이것도 질적 평가인 거 같습니다 (ㅋㅋ)
아래와 같이 데이터셋의 존재하지 않는 domain(attribute)으로의 변화도 가능합니다.
이 논문으로 인해 StarGAN은 엄청난 명성을 이루게 됩니다.
다만, 명성에 비해 논문의 퀄리티는 생각보다 좋은 거 같진 않습니다.
'GAN' 카테고리의 다른 글
CycleGAN(2017) (0) | 2022.04.24 |
---|---|
Pix2Pix(PatchGAN, 2016) (0) | 2022.04.23 |
LSGAN (2016) (0) | 2022.04.22 |
Wasserstein GAN (2017), WGAN-GP (0) | 2022.04.21 |
InfoGAN (2016) (0) | 2022.04.18 |