conditional generative model과 Generative Adversarial Network 기본 개념 이해하기

1. conditional generative model

 

1-1) definition

 

generative model이라는 것은 관심있는 변수의 확률분포를 모델링하는 기법이다.

 

확률분포를 추정한다면 그 확률분포로부터 하나의 sample을 추출하여 생성해주는 것이 generative model이다.

 

generative model이 단순히 관심있는 random variable의 확률분포를 추정하는 것이라면

 

conditional generative model은 주어진 정보(condition)를 바탕으로 관심있는 random variable의 확률분포를 추정하는 것

 

generating이 유용할려면 사용자의 의도가 반영되는 것이 유용한데 그런 면에서 conditional generative model이 더 많은 응용가능성이 있다 

 

 

generative model은 단순히 bag image를 random으로 생성

 

conditional generative model은 하나의 sketch라는 정보를 주어 그 sketch에 맞는 bag을 random하게 생성

 

 

1-2) example

 

스케치된 이미지를 바탕으로 실제 이미지를 생성하는 model

 

 

저퀄리티의 오디오가 주어질 때 고퀄리티의 오디오를 만드는 model

 

 

한자 문장을 영어 문장으로 번역하는 model

 

 

title과 subtitle로부터 full article을 만드는 model

 

 

2. Generative Adversarial Network

 

2-1) motivation

 

하나의 위조지폐범이 위조 지폐를 생성하면 경찰은 위조 지폐와 진짜 지폐로부터 위조 지폐를 구별해냄

 

이것을 보고 위조지폐범은 경찰이 검출하지 못하도록 더욱 정교한 위조지폐를 생성하려고 노력함

 

반대로 경찰은 위조지폐를 더욱 잘 찾아내려고 노력함

 

GAN의 아이디어를 비유적으로 설명한 그림

 

이러한 아이디어에 기반하여 fake data를 만들어내는 generator

 

생성한 fake data와 real data를 구별하는 discriminator의 adversarial training 구조를 가지는 network를 만들어냄

 

generator는 discriminator가 구별하지 못하도록 더욱 정교한 fake data를 만들면서 성능을 높여가고

 

discriminator는 이 data를 보면서 구별하는 성능을 더욱 높여가는

 

two min(구별하지 못하는 경우를 최소화) max(정교한 fake data를 만드는 능력을 최대화) game이라고 볼 수 있다.

 

 

2-2) conditional GAN

 

기존의 GAN은 단순히 Z라는 latent vector만 넣었다면 conditional GAN은 조건 condition을 함께(혹은 혼자만) input으로 넣어주었다

 

Generator가 discriminator가 구별하지 못하도록 정교한 데이터를 생성하도록 학습시켰고

 

discriminator는 이것을 더욱 잘 구별하도록 학습하는 adversarial training 기본 구조는 동일하다

 

 

 

z는 latent vector로 원하는 real data를 잘 설명할것 같은 random vector이다.

 

보통 normal distribution으로부터 생성한 임의의 sampling vector를 사용하는 것이 일반적

 

-------------------------------------------------------------------------------------------------------------------------------------------

 

generative model이 단순히 생성하는 모델이 아니라

 

관심있는 변수의 확률분포를 추정하는 모델!

 

추정된 분포로부터 sample을 random하게 추출

 

 

3. GAN의 응용

 

3-1) deepfake

 

세상에 존재하지 않는 사람들의 얼굴을 high quality로 생성함

 

심지어 비디오에 애니메이션이 따라하는 목소리까지도 생성함

 

구별하지 못할 정도로 진짜 같은 사람 얼굴 생성함

 

윤리적 오남용이 쉬우므로 deepfake defence mechanism에 많은 연구자들이 도전하고 있다.

 

3-2) face de-identification

 

프라이버시를 보호하기 위한 약간의 조작으로 사람은 인식해도 컴퓨터가 인식을 못하도록 방해함

 

 

혹은 password를 condition으로 주어 얼굴을 익명화시키는 방법도 있음

 

de-anonymization에는 제대로 된 password를 줘야 제대로 된 얼굴로 돌아옴

 

password에 따라 다른 anonymization

 

 

3-3) video translation

 

다른 사람의 행동을 재현하는 pose transfer

 

 

video semantic segmentation으로 주어 realistic한 video를 줌

 

조금 더 발전하면 유저의 input에 따라 semantic segmentation을 조작하여 변형된 realistic video도 생성할 수 있을 것

 

비디오내 semantic segmentation을 input으로 주면

 

 

실제 비디오 영상을 output으로 생성함

 

 

 

목소리를 주어 다른 목소리를 생성하는 목소리 변조부터 Text To Speech같은 문자를 주어 목소리를 생성하는 것

 

사람이 포즈정보를 조이스틱으로 주어 video-to-video translation game에도 응용이 가능

 

왼쪽 아래 조이스틱을 움직여 캐릭터를 조종하는 게임

 

TAGS.

Comments