본문 바로가기
ML & AI/인공지능 (AI)

[인공지능] 생성 모델 (Generative AI Model)이란? (1) : AutoEncoder, VAE, GAN

by newstellar 2021. 9. 13.
반응형
학습목표
1. 지도/비지도/준지도 학습의 특징을 구분할 수 있습니다.
2. 생성 모델의 대표적인 두 모델(VAE 및 GAN)의 차이점을 알게 됩니다.
3. GAN의 활용 범위에 대해 말할 수 있습니다.

 

생성 모델 (feat. Auto Encoder, VAE, GAN)

 

 

1. 기계 학습(ML) 방법의 구분

종류 지도 학습
(Supervised Learning)
비지도 학습
(Unsupervised Learning)
준지도 학습
(Semi-supervised Learning)
특징 학습 데이터 라벨

분류(Classification)
- KNN, Decision Tree, Support Vector, Naïve Bayes

회귀(Regression)
- Linear Regression, Ridge/Lasso
학습 데이터 라벨

군집화(Clustering)
- K-means clustering, DBSCAN,
연관 분석

차원 축소(Dimension Reduction)
-
주성분 분석(PCA), SVD, LDA
라벨 데이터와 라벨 없는 데이터 병용

데이터 라벨링에 투입되는 자원(비용, 시간) 문제를 해결하기 위해 등장

학습 데이터의 분포와 최대한 유사한 사후분포에서 새로운 데이터를 생성
-
확률 개념 기반


Explicit density1) Implicit density2) 로 구분됨

1) Explicit density : 모델의 사전분포를 가정하여 기존 값으로부터 데이터 분포를 추정 (MLE, MAP)

2) Implicit density : 모델을 명확히 정의하는 대신 샘플링을 반복하여 특정 확률 분포에 수렴시킴 (Markov Chain)

 

 

 

  - 생성 모델(Generative Model)의 분류

 

  Training Data의 분포에 근사(Approximate)시킨다는 특징이 공통점입니다.

 

  아래 Ian Goodfellow 선생님이 "Tutorial on Generative Adversarial Networks (2017)"에 첨부한 모식도를 보면 이해가 쉬울 것입니다.

 

Model 특징 예시
Explicit Density Tractable density
- 모델의 사전분포를 가정하여 기존 값으로부터 데이터 분포를 추정 (MLE, MAP)
Fully Visible Belief Nets
- NADE
- MADE
- PixelRNN/CNN
Approximate density
- 모델의 사전분포를 근사시켜 데이터 분포를 추정
VAE
Markov Chain (Boltzmann Machine)
Implicit Density - 모델을 명확히 정의하는 대신 샘플링을 반복하여 특정 확률 분포에 수렴시킴 GAN
Markov Chain (GSN)

2. Auto Encoder (AE) 소개

  1) 개념

"AutoEncoder의 모든 것" by 이활석

 

Encoder를 거쳐 데이터를 압축시킨 후 Decoder에서 복원함으로써 차원 축소(Dimension Reduction)을 통해 Parameter 초기화(Xavier Initialization 기법 출현 전까지 AE 주로 사용), Pre-training의 효과를 꾀할 수 있습니다.


Stacked AE, Denoising AE, Sparse AE 등 기본적인 Auto Encoder 구조를 변형한 모델이 분석 목적에 따라 다르게 사용합니다.

종류 특징
Stacked AutoEncoder Encoder와 Decoder를 대칭으로 구성하여 가중치 수를 줄이고, 학습 속도를 높이고 싶을 때 사용
Denoising AutoEncoder Input에 random noise를 추가하여 원본 데이터를 그대로 사용하고 싶지 않을 때 사용
Sparse AutoEncoder Loss function에 Sparsity를 추가하여 뉴런을 일부러 덜 활성화시키고 싶을 때 사용

 

"AutoEncoder의 모든 것" by 이활석

 

Auto Encoder는 Generative Model의 탄생에 구조적으로 큰 기여를 했지만, 정작 Generative Model(Decoder를 학습시키기 위해 Encoder를 붙임)은 아니며 네트워크의 Encoder를 학습하기 위해 Decoder를 붙였기 때문에 Manifold Learning에 그 목적이 있습니다.

 

 

반응형

 

3. Variational AutoEncoder (VAE) 소개

  1) 개념

  - VAE의 목적은 Training set에 있는 데이터 x가 나올 확률을 구함으로써 controller 역할을 하는 Latent Vector로부터 이미지를 생성하는 것입니다.


VAE에서는 prior distribution에서 sampling하는 대신, 이상적인 sampling 함수를 통해 sampling합니다.
- 1) 의미상 우리가 원하는 sample과 가깝게 하는 Latent Vector z 정의합니다.
- 2) z를 생성할 수 있는 이상적인 sampling 함수를 정의합니다. (변분추론 : Variational Inference 사용)
- 3) 주어진 input x를 통해 유사한 데이터를 생성할 수 있게끔 학습시킵니다.

 

변분추론 (Variational Inference, VI)
- 확률 분포 중 z sample을 잘 만들어내는, Target Distribution을 잘 나타내는 Distribution을 찾습니다.
- 잘 찾은 z에서 sampling을 한 뒤, Generator를 만들면 Good Approximation!

 


  - ELBO (Evidence LowerBound)


즉, log(p(x))는 KL-Divergence와 ELBO로 분해되고, ELBO term에 대해 maxΦ는이상적인 sampling 함수를 찾는 것으로, max𝜃는 Network parameter를 찾는 것입니다.


  • Reconstruction term
    : Training set의 input data x와 비슷하게 복원되어야한다는 조건

  • Regularization term
    : Reconstruction이 끝난 이상적인 sampling 함수의 z값이 prior 분포의 p(z)와 같으면 좋겠다는 조건

  • Reparameterization Trick
    : Latent Vector z를 만드는 distribution에서 parameter Φ에 대한 역전파(Back Propagation)이 필요합니다. 이때, sampling하는 distribution에 대해 역전파를 하면 매우 어렵기 때문에 distribution을 stochastic + deterministic 부분으로 분해시켜 deterministic한 부분으로 역전파를 하자는 아이디어입니다.

 

 

  - AE  vs  VAE

 

  AutoEncoder는 사전(prior) 분포에 대한 조건이 없기 때문에 Latent Vector z의 space가 변합니다. 따라서 새로운 이미지를 만들 때마다 z가 바뀌는 반면, VAE는 사전 분포 조건이 존재하기 때문에 z가 사전분포를 따르기 때문에 사전분포에서의 sampling이 필요합니다.

 

  생성(Generation) 관점에서는 다루고 있는 Manifold의 위치가 변하는 것보다는 안정적인 것이 좋기 때문에 생성 시점마다 분포가 변하는 AutoEncoder 대신 VAE를 사용합니다.

 


4. GAN (Generative Adversarial Network) 소개

  • 다음 시간에....

 


참고자료
- https://minsuksung-ai.tistory.com/12
- https://www.slideshare.net/NaverEngineering/ss-96581209
- https://deepinsight.tistory.com/126
- https://deepinsight.tistory.com/127
- https://doooob.tistory.com/173
- https://hulk89.github.io/machine%20learning/2017/11/20/reparametrization-trick/

 

 

[인공지능] 생성 모델 (Generative AI Model)이란? (2) : AutoEncoder, VAE, GAN

학습목표 1. 지도/비지도/준지도 학습의 특징을 구분할 수 있습니다. 2. 생성 모델의 대표적인 두 모델(VAE 및 GAN)의 차이점을 알게 됩니다. 3. GAN의 활용 범위에 대해 말할 수 있습니다. 생성 모델 (

newstellar.tistory.com

 

 

[인공지능 AI] Bayesian Neural Network(BNN) (1) : Introduction

1. Measure Theory and Random Process 2. Functional Analysis 2021.09.10 - [ML & AI/인공지능 (AI)] - [인공지능 AI] Bayesian Neural Network(BNN) (2) : Gaussian Process (가우시안 프로세스) [인공지능 AI] Bayesian Neural Network(BNN) (2) : Ga

newstellar.tistory.com

 

 

[GitHub] 깃허브 잔디 심는 법 - GitHub Contributions

깃허브를 하다 보면 어떤 날은 특별한걸 하지도 않은 것 같은데 contribution 수가 많고(진한 초록색) 또 어떤 날은 깃허브를 붙잡고 몇 시간을 썼는데도 contribution이 없거나 연한 초록색으로 남아

newstellar.tistory.com

 

반응형

댓글