[VAE] VAE 모델

Meosun·2024년 9월 2일

VAE

VAE(Variational Autoencoder, 변분 오토인코더)는 머신러닝과 딥러닝에서 많이 사용되는 생성 모델의 하나로, 주로 이미지, 텍스트 등의 데이터를 생성하거나 복원하는 데 활용된다.

VAE는 일반적인 오토인코더(Autoencoder)와 비슷한 구조를 가지지만, 몇 가지 중요한 차이점이 있다.

1. 기본 구조

VAE인코더(Encoder)디코더(Decoder)로 구성된 오토인코더와 유사한 구조를 가지고 있다.

  • 인코더는 입력 데이터를 저차원 잠재 공간(Latent space)으로 압축
  • 디코더는 이 잠재 공간의 벡터를 다시 원래의 데이터 공간으로 복원

2. 확률적 모델링

VAE의 핵심 차이점은 잠재 공간에서의 벡터가 단순한 값이 아니라 확률 분포로 표현된다는 것이다.

인코더는 입력 데이터에서 잠재 공간의 평균과 분산을 추정하여, 잠재 벡터를 특정 분포(보통 정규 분포)를 따르는 랜덤 변수로 샘플링하며, 이로 인해 같은 입력 데이터로도 여러 가지 다양한 출력을 생성할 수 있게 된다.

3. 손실 함수

VAE의 손실 함수는 두 가지 주요 요소로 구성된다.

  • 재구성 손실(Reconstruction Loss): 원래 입력과 디코더의 출력을 비교하여 계산되는 손실로, 일반적인 오토인코더의 손실 함수와 유사하다.

  • 쿨백-라이블러 발산(KL Divergence): 잠재 공간에서 추정된 분포와 사전 정의된 분포(보통 정규 분포) 간의 차이를 최소화하려는 손실이다. 이를 통해 잠재 공간이 좀 더 의미 있는 방식으로 구성되도록 유도한다.

4. 응용 분야

VAE는 다음과 같은 다양한 분야에서 활용된다.

  • 이미지 생성: 새로운 이미지를 생성하거나, 주어진 이미지와 유사한 이미지를 생성하는 데 사용

  • 데이터 복원: 손상된 데이터를 복원하거나, 노이즈가 있는 데이터를 제거하는 데 활용

  • 특징 학습: 데이터의 중요한 특징을 학습하는 데 사용되며, 이를 통해 다운스트림 작업(예: 분류, 군집화)에서 성능을 향상시킬 수 있다.

VAEGAN(Generative Adversarial Network)과 같은 다른 생성 모델과 비교했을 때, 학습이 안정적이고 해석 가능성이 높다는 장점이 있다.
그러나 생성된 결과물이 다소 흐릿할 수 있는 단점이 있다.

profile
데이터와 AI를 잘 활용하는 Backend Developer가 되자

0개의 댓글