Udemy 강의 "Machine Learning, Data Science and Deep Learning with Python" 정리 내용
Variational Auto-Encoder(VAE)
Auto-Encoders
- input을 convolution을 이용하여 dense 한 vector : z (latent vector)로 차원을 축소함 → encoder
- vector : z를 이용하여 다시 reconstruct하여 원래의 input 형태로 복원 → decoder
- encoding전 값과 decoder 후의 값이 비슷함
- 학습을 할 경우 encoder을 사용하지 않음, decoder만 사용함
- 차원 축소나 compression, search, denoising, colorization에 사용
Transpose convolution
- decoder에서 Conv2DTranspose 레이어 사용
- 낮은 차원에서 이미지 픽셀들의 가중치를 학습할 수 있음
- max-unpooling 사용
Variational Auto-Encoders
- latent vecotrs을 확률 분포
- 가우시안 정규 분포의 평균과 분산을 나타냄
- X → p(z/X) → z → p(X/z) z : latent vector
Reparameterization trick
- 랜덤 샘플링 된 z 를 deterministic 한 형태로 변경 : Z = mu + sigma*epsilon
Kullback-Leibler Divergence
Generative Adversarial networks (GAN's)
- Deep fake를 이용한 얼굴 swapping이나 aging 기술
- Self driving, 데이터 셋에서 개인 정보 제거 등 사용
- art, music에도 적용 가능
GAN's
- latent 벡터의 실제 분산을 학습함
- generator은 랜덤 노이즈들을 확률 분포에 맵핑함
- discriminator는 생성된 이미지들을 통해 실제 이미지를 학습함
- generator가 discriminator에게 생성된 이미지들이 실제 이미지인 것처럼 속임
- discriminator가 더 이상 차이를 인지하지 못하도록 함
https://poloclub.github.io/ganlab/