SYDLAB_inha/Machine Learning

ML - Generative Modeling(1) / autoencoder / VAE(variational autoencoder)

빈그레 2023. 9. 18. 00:28

 

 

 

 

 


Generative Modeling

 

 

- Generative Model
- Basic Autoencoders
- Variational Autoencoders (VAE)
- Generative Adversarial Networks (GAN)
- Fancier Generative Models

 

 

 

Generative Modeling

Generative Modeling이란, training data를 학습하여 유사한 데이터를 생성하는 모델이다. training data 들의 샘플마다 픽셀들의 분포를 분석하여 오른쪽 그림처럼 training data와 유사하게 새로운 데이터를 만들어내는 것이다. 

 

결국, generative modeling에서 가장 중요한 것은 training data의 분포를 학습하는 것이다. tranining data와 sample data의 차이가 적을 수록 제대로 동작하고 있음을 의미한다.

 

 

 

 


 

 

- Generative Model
- Basic Autoencoders
- Variational Autoencoders (VAE)
- Generative Adversarial Networks (GAN)
- Fancier Generative Models

 

 

Some background first : Autoencoders

 

Unsupervised approach for lenaring a lower-dimensional feature representation from unlabeled training data.

 

*** lower dimensional feature는 원래 데이터의 차원보다 더 적은 차원을 가지는 새로운 데이터 표현이다. 

차원 축소(dimensionality reduction)의 방법으로는 아래와 같은 것들이 있다. 차원 축소를 통해 dimension을 줄이면 더 의미있는 값들만 남으려 할 것이므로, 더 적은 resource로 더 좋은 모델을 만들 수 있다.

 

 

<autoencoder>

: 인공 신경망 아키텍처 중 하나로, 차원 축소, 특성 추출, 데이터 재구성 등 다양한 응용 분야에서 사용되는 기계 학습 모델이다. Autoencoder는 주로 비지도 학습(Unsupervised Learning) 방법으로 사용되며, 입력 데이터를 저차원으로 압축하고 다시 원래 형태로 복원하는 데 중점을 둔다.

 

encoder : 오리지널 정보를 응축된 정보로 바꾸어주는 것 

decoder : 응축된 데이터를 원래의 데이터로 복구해주는 것

 

input x가 encoding되면 low dimensional feature로 표현되어 size가 작아지고 이를 다시 decoding 시키면 원래의 size와 동일하게 복구된다. 여기서 Z의 dimensionality reduction이 왜 있어야 하는가?

 

오리지널 데이터 input은 여러 정보가 뒤섞여있어 meaningful한 것을 찾기 어려운데,  encoder를 통해 압축하면 x를 잘 표현할 수 있는 meaningful한 정보들로 구성된 feature map이 된다.그리고 다시 이를 원래 형태로 복원하여 reconsutrcted input data를 만든다.

 

label없이 data를 분석하기 위해서는 자기자신을 잘 복구했는지를 확인해야한다.

따라서 feature map(or vector)가 orginal data를 reconstruct하는데에 잘 사용되도록 학습시켜야한다.

 

결국 가장 중요한 건 feature를 어떻게 잘 뽑아내는지이기 때문에 학습 이후에는 decoder 파트는 버린다.

 

summary

: autoencoder는 data를 reconstruct시킬 수 있을 것이다. 그리고 추후의 supervised model의 초기화 값으로 쓰일 수 있다.

  encoder는 feature를 표현하기 위함이었지, 새로운 이미지를 생성하는 것은 아니었다. 

  어떻게 하면 생성 모델의 autoencoder를 시킬 수 있을 것인가? 여기서 탄생한 것이 VAE이다. 

 

 

 


 

[Generative Model]

- Generative Model
- Basic Autoencoders
- Variational Autoencoders (VAE)
- Generative Adversarial Networks (GAN)
- Fancier Generative Models

 

 

 

Variational Autoencoders (VAE)  

 

: 데이터의 잠재 공간(latent space)에서 확률적인 특성을 학습하여 데이터 생성과 잠재 변수 분포를 모델링하는 방법이다.

 

 

autoencoder는 input으로부터 feature를 만드는 encoder가 메인었다면 VAE는 z에서 x를 복구하는 decoder가 메인이다. 

머신러닝 관점에서, z로부터 만들어진 train data(x)는 실제로 존재하는 것이 아니라 latent factor(or space or representation) 인 z로부터 추정하는 데이터일 뿐이다.  

 

 

[Sample from true conditional]
 :


: feature represetation의 i번째 factor인 Z(i)가 condition으로 주어졌을 때, x가 등장할 조건확률을 의미한다.
p는 확률을 의미하고 세타는 모델에 관여하는 parameter임을 표현한다.

[Sample from true prior]

z(i)는 결국 z에 대한 확률 분포에 따른다.
즉, z를 구성하는 값들은 확률 분포에 관한 파라미터들이 나타내는 값으로 해석된다. 
인코더에서 계산된 평균과 분산 값이 디코더에서 데이터를 생성하는데에 이용된다.

이러한 확률적인 성질로 인하여 기존 데이터와 유사한 특성을 가지는 다양한 데이터를 만들 수 있도록 해준다.