인공지능, 머신러닝/Concepts

VAE (Variational Auto-Encoder)

bay07 2024. 2. 23. 01:04

▶ VAE (Variational Autoendoer)

생성 모델 중 하나 

주어진 데이터의 분포를 학습하고, 이를 기반으로 새로운 데이터를 생성하는데 사용된다. 

주어진 데이터를 저차원의 잠재 공간(latent space)로 인코딩한다. 

그 후 다시 디코딩하는 과정을 통해, 원래 데이터로 재구성한다. 

VAE는 일반적인 Autoencoder와 달리, 데이터의 분포를 고려하여 잠재 공간을 학습한다는 점에서 차이가 있다. 

▷ VAE의 목적 

1. 데이터의 차원 축소 

큰 차원의 데이터를 작은 차원의 잠재 공간으로 인코딩하여 표현함으로써, 데이터의 차원을 줄인다. 이렇게 하면 계산이 조금 더 간소화되고 고차원 데이터의 특징을 더욱 잘 파악할 수 있다. 

 

2. 원래 데이터 보존

잠재 공간으로 인코딩 된 데이터를 디코딩하여 원래 데이터를 재구성한다. 이 과정에서 원래 데이터의 정보가 손실되지 않도록 한다. 


VAE의 작동 방식 

1. 인코더 (Encoder)

주어진 입력 데이터를 잠재 공간의 확률 분포로 매핑한다. 

이때, 잠재 공간의 확률 분포는 일반적으로 평균과 분산을 나타내는 파라미터로 정의된다. 

2. 샘플링 (Sampling)

인코더가 출력한 확률 분포로부터 샘플링을 수행한다. 이를 통해 잠재 공간에서 무작위로 데이터를 생성할 수 있다. 

3. 디코더 (Decoder)

샘플링된 잠재 표현을 디코더에 입력하여 원래의 입력 데이터를 재구성한다. 디코더는 잠재 공간의 표현을 입력으로 받아 원래의 데이터로 복원하는 역할을 한다. 

4. 손실 함수 (Loss Function)

VAE는 인코더가 출력한 확률 분포와 실제 잠재 표현 간의 차이를 최소화하는 방향으로 학습된다. 이를 위해 재구성 오차와 잠재 공간의 확률 분포를 고려하는 손실 함수를 정의한다. 

 

결론적으로 VAE는 생성 모델 중 하나로서, 주어진 데이터를 효율적으로 표현하고 새로운 데이터를 생성하는데 활용된다.


* 데이터의 차원을 축소하는 이유 ? 

1. 계산의 효율성

고차원의 데이터는 계산이 복잡하고 비용이 많이 들기 때문이다. 

2. 데이터의 시각화 

고차원의 데이터는 시각화가 어렵기 때문에, 데이터의 차원을 축소하여 시각화를 쉽게 만들 수 있다. 저차원 공간에서는 데이터의 구조와 패턴을 더 잘 이해하고, 시각적으로 탐색할 수 있다. 

3. 노이즈 제어 

고차원 데이터에서는 불필요한 정보나 노이즈가 포함될 수 있는데, 데이터의 차원을 축소하면 이러한 것들을 제거할 수 있다. 


* 관련 논문

Tutorial on Variational Autoencoders.pdf
0.84MB