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
하나의 위조지폐범이 위조 지폐를 생성하면 경찰은 위조 지폐와 진짜 지폐로부터 위조 지폐를 구별해냄
이것을 보고 위조지폐범은 경찰이 검출하지 못하도록 더욱 정교한 위조지폐를 생성하려고 노력함
반대로 경찰은 위조지폐를 더욱 잘 찾아내려고 노력함

이러한 아이디어에 기반하여 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를 줘야 제대로 된 얼굴로 돌아옴

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에도 응용이 가능

'딥러닝 > Computer Vision' 카테고리의 다른 글
image to image translation의 기본 모델인 Pix2Pix이 GAN의 약점 mode collapse를 어떻게 해결했는가 (0) | 2023.06.29 |
---|---|
image to image translation - super resolution, colorization, style transfer - 의 개념 이해하기 (0) | 2023.06.29 |
bounding box를 추정하는 방식이 다른 CornerNet과 CenterNet (0) | 2023.06.26 |
3d 모델을 추정하는 Denspose와 다양한 task를 한번에 풀어내는 RetinaFace (0) | 2023.06.26 |
image의 landmark를 추정하는 모델의 기본인 Hourglass Network (0) | 2023.06.25 |