-
GAN 아키텍처에 대한 개요 및 활용사례Data Analysis/Deep Learning 2021. 1. 28. 17:59
# GAN
(generatvie adversarial networks)
한국어로는 생성적 적대적 신경망이라고 부른다.
2개의 이상의 신경망을 서로에게 향하게 하고,
서로에게 대항하듯이 훈련하게 함으로써 결과적으로 생성모델을 산출해내는 방식이다.
# GAN 모델의 효용가치
* 일반적인 방식으로 학습하기 힘든 생성모델까지 제작해낼 수 있다.
* 데이터가 한정된 상황에서 일반화(generalization)가 가능하다.
* 모조데이터셋(simulated data)를 늘릴 수 있다.
극단적인 예시로는 다른 아키텍처 유형들을 동원해
딥러닝 문제를 해결할 때 필요한 데이터의 10% 만 있어도 될때가 있다.
또한, 풍부한 모조데이터 확보로 특정 업무에 대해 기여할 수 있다.
따라서, 적은 데이터로도 이런저런 일들을 할 수 있다는 것이 최대 장점이다.
# GAN 아키텍처
# GAN 의 종류
1. DCGAN
(deep convolution GAN)
* Input : Phrase
* Output : Image
QUEEN - WOMAN + MAN = KING
위와 같은 연산을 이미지에서 가능하게 해준다.
(단어나 말뭉치수준에서 가능하게 해준것은 참고로 Word2Vec)
# Walking in the latent space
Generator 의 input인
이미지생성 공간(잠재공간, latent space)에
있는 변수 z가 자기 공간에서 움직였을때,
갑작스러운 변화가 아닌 부드러운 변화를 보여주는 것
즉, latent space(Z) 에서 임의변수 z를 x개 추출한 후,
z(x)와 z(x+1)에 Interpolation(보간) 을 수행했을 경우 부드러운 변화가 나타나야한다.
밑의 이미지는 임의변수 z를 10개 추출한 후, 그 사이에 9번 보간을 수행한 결과를 보여준다.
(왼쪽 첫번째가 z(1) 이며, 세로방향으로 z(2), z(3)... z(10) 이다.)
DCGAN의 의의는 여러가지 방법론을 제시한 데에서 얻을 수 있다.
GAN이 어떻게 사용되고, 활용될 수 있으며,
어떻게 안정성을 추구하는 지와 앞으로의 GAN 연구에 대해 방향을 제시해주었다.
2. SimGAN
* Input : 모조이미지(simulated image)
* Output : 진짜에 더 가까운이미지
* 개발목적 : Image Enhancing
현재 DNN이 당면한 가장 큰 문제는,
교육에 필요한 클래스라벨이 붙은 데이터셋에 대한 수요가 엄청나다는 것이다.
라벨을 붙이는 작업은 사람이 직접해야하며, 그에 대한 인건비가 발생한다.
하지만, SimGAN을 통하여
클래스라벨이 붙은 모조데이터를
빠르고 저렴하게 많이 생산할 수 있다.
생성된 모조데이터는 실제와 가깝게 생성되었기에,
훈련용데이터로 사용할 수 있다.
# GAN 모델학습시 주의점
# 손실함수
생성기의 손실함수를 적절히 선택해야만
경사도 포화(gradient saturation)를 피할 수 있다.
경사도 포화(gradient saturation)가 발생한다면,
경사도가 0에 근접하여 생성기의 학습이 불가능해진다.
# Mode Collapse
GAN 을 학습시키다보면
생성자(Generator)가 다양한 이미지를 만들어내지 못하고,
비슷한 이미지만 계속 생성하는 경우가 있는데,
이를 Mode Collapse라 칭한다.
Mode는 최빈값, 가장 빈도가 높은 값을 뜻한다.
이에 대한 설명은 아래 링크를 타고 들어가길 바란다.
developer-ping9.tistory.com/108?category=904980
# GAN의 활용사례
# Filter 획득
LSUN 침실 데이터셋을
Deconvolution 으로 시각화 한 결과
(Guided Backprpagation)
# 그 외 GAN
# Example of Sketches to Color Photographs With pix2pix (left)
# Example of Photographs of Daytime Cityscapes to Nighttime With pix2pix (right)
# Example of Four Image-to-Image Translations Performed With CycleGAN (left)
# Example of Translation from Paintings to Photographs With CycleGAN (right)
# Example of Textual Descriptions and GAN-Generated Photographs of BirdsTaken from StackGAN (left)
# Example of Textual Descriptions and GAN-Generated Photographs of Birds and Flowers from StackGAN (right)
# TAC-GAN (Text Conditioned Auxiliary Classifier Generative Adversarial Network)
# Example of Photos of Object Generated From Text and Position Hints With a TAC-GAN
# Example of Semantic Image and GAN-Generated Cityscape Photograph with Condition GANs
# Example of GAN-Generated Photographs of Human PosesTaken from Pose Guided Person Image Generation
(by Liqian Ma)
# Example of Celebrity Photographs and GAN-Generated Emojis
# Example of Face Photo Editing with IcGAN
# Example of GAN-Generated Photograph Inpainting Using Context Encoders with Context Encoder
(by Deepak Pathak)
# Example of Video Frames Generated with Scene Dynamics
(by Carl Vondrick)
# Example of High-Quality Face Image SR Using Conditional GAN
(by Huang Bin)
# Reference
1. machinelearningmastery.com/impressive-applications-of-generative-adversarial-networks/
728x90'Data Analysis > Deep Learning' 카테고리의 다른 글
Deep Learning - CNN(Convolutional Neural Networks) 에 대하여 (0) 2021.01.03 GAN - Mode Collapse (0) 2020.12.17 Deep Learning 학습 모델 저장하기 (0) 2020.12.16