VAE(Variational Autoencoder)는 생성 모델 중 하나로, 주어진 데이터를 잠재 공간으로 매핑하고, 잠재 공간에서 샘플링하여 원본 데이터와 유사한 새로운 데이터를 생성하는 모델입니다. VAE는 딥러닝에서 많이 사용되며, 특히 이미지 생성, 이미지 복원, 데이터 압축 등 다양한 응용 분야에서 활용됩니다.
VAE는 주로 오토인코더(autoencoder) 구조를 기반으로 하며, 기존 오토인코더와의 주요 차이점은 잠재 공간(latent space)의 표현을 확률적으로 모델링한다는 점입니다. 이로 인해 VAE는 데이터의 불확실성을 모델링할 수 있고, 더욱 적은 차원으로 효과적으로 데이터를 압축하고 복원할 수 있습니다.
VAE의 핵심 아이디어는 데이터를 잠재 변수(z)와 관련된 확률 분포로 가정하는 것입니다. 일반적으로 잠재 변수 z의 확률 분포를 가우시안 정규분포로 가정하며, 이때 평균과 분산을 학습 가능한 매개변수로 인코더(encoder) 네트워크가 모델링합니다.
VAE의 구조와 동작 방식을 간단히 설명하겠습니다.
Encoder (인코더):
입력 데이터를 잠재 변수 z의 확률 분포로 매핑하는 역할을 합니다. 입력 데이터를 받아 확률 분포의 평균(mu)과 분산(sigma)을 인코더 네트워크를 통해 추론합니다.
수학적으로, 인코더 함수를 통해 입력 데이터 x가 잠재 변수 z의 확률 분포의 파라미터로 매핑되는 것을 다음과 같이 나타낼 수 있습니다:
qϕ(z∣x)=N(z∣μϕ(x),σϕ(x))
여기서 phi는 인코더 네트워크의 매개변수를 나타냅니다.
Reparameterization Trick (재매개화 기법):
인코더를 통해 얻은 확률 분포로부터 샘플링을 하려면, 일반적인 샘플링 방법을 사용할 수 없습니다. 왜냐하면 미분 가능한 연산을 위해 샘플링 연산이 필요한데, 확률 분포로부터 직접 샘플링하면 이러한 미분이 불가능하기 때문입니다.
이를 해결하기 위해 재매개화 기법을 사용합니다. 재매개화 기법은 인코더에서 나온 평균과 분산을 사용하여 잠재 변수 z를 다음과 같이 샘플링하는 것입니다.
z=μϕ(x)+σϕ(x)⊙ϵ
여기서 epsilon은 평균이 0이고 분산이 1인 가우시안 분포로부터 샘플링한 노이즈 벡터입니다. 즉, epsilon은 학습 가능한 매개변수가 아니며, 역전파를 통해 최적화되지 않습니다. 이로 인해 모델이 확률적으로 샘플링되는 잠재 변수를 가질 수 있게 됩니다.
Decoder (디코더):
잠재 변수 z를 입력으로 받아 원본 데이터를 복원하는 역할을 합니다. 디코더는 잠재 변수로부터 원본 데이터의 확률 분포를 모델링하고, 이를 통해 잠재 변수 z로부터 원본 데이터 x를 복원합니다.
수학적으로, 디코더 함수를 통해 잠재 변수 z로부터 데이터 x의 확률 분포를 나타낼 수 있습니다:
pθ(x∣z)=N(x∣μθ(z),σθ(z))
여기서 theta는 디코더 네트워크의 매개변수를 나타냅니다.
손실 함수:
VAE는 재구성 손실(reconstruction loss)과 정규화 항(regularization term)을 사용하여 학습됩니다. 재구성 손실은 원본 데이터와 디코더로 생성한 데이터 간의 차이를 나타내며, 주로 평균 제곱 오차(Mean Squared Error, MSE)를 사용합니다. 정규화 항은 잠재 변수의 분포를 원하는 형태로 가깝게 유지하는 역할을 합니다. 이를 위해 주로 쿨백-라이블러 발산(Kullback-Leibler divergence)을 사용합니다.
전체 손실 함수는 다음과 같이 표현됩니다:
L=Reconstruction Loss+Regularization Term
VAE는 인코더와 디코더 네트워크를 동시에 학습하면서 잠재 변수의 공간을 효율적으로 학습하여 원본 데이터와 비슷한 새로운 데이터를 생성하거나 입력 데이터를 잠재 공간으로 잘 복원할 수 있도록 학습됩니다.
학습 과정에서는 주로 최대우도 추정(Maximum Likelihood Estimation, MLE)을 사용하여 모델 파라미터를 학습합니다. 최대우도 추정은 관측된 데이터에 대해 모델이 가장 높은 확률을 할당하는 파라미터를 찾는 방법입니다.
VAE의 장점은 잠재 변수의 확률 분포를 모델링하여 데이터의 불확실성을 고려할 수 있다는 점입니다. 또한, 잠재 변수의 차원이 작을 때 데이터의 고차원 구조를 잘 보존하는 효과적인 차원 축소가 가능하며, 이러한 특성은 데이터 압축에 유용합니다.
추가적으로, VAE는 GAN(Generative Adversarial Network)과 달리 훈련이 더 안정적이며 생성된 데이터의 다양성과 품질을 조절하기 쉽다는 장점도 있습니다.
최종적으로 VAE는 잠재 공간에서 샘플링을 통해 다양한 새로운 데이터를 생성하는데 사용할 수 있습니다. 또한, 잠재 변수 공간에서 특정한 방향으로 이동하면 원본 데이터의 의미있는 변화를 유도할 수 있어, 잠재 공간의 인코딩이 의미론적인 특성을 담고 있다는 해석 가능성을 제공합니다.
하지만 VAE도 몇 가지 한계점이 존재합니다. 데이터가 너무 복잡하고 다양한 경우에는 원하는 결과를 얻기 어려울 수 있으며, 생성된 이미지의 해상도나 세부적인 특성에서 GAN에 비해 성능이 떨어질 수 있습니다.
이러한 한계를 극복하기 위해 연구는 계속 진행되고 있으며, VAE의 발전된 형태나 VAE와 GAN을 결합한 모델들도 개발되고 있습니다. 또한, VAE는 이미지 외에도 텍스트와 같은 다른 유형의 데이터에도 적용 가능한 확장성과 유연성을 가지고 있습니다.