컴퓨터공학/그 외 모델들

변분 오토인코더(Variational Autoencoder, VAE)

airoot 2024. 8. 30. 16:13

변분 오토인코더(Variational Autoencoder, VAE)는 Autoencoder의 변형 중 하나로, 데이터의 잠재 공간(latent space)에서 확률 분포를 학습하여 새로운 데이터를 생성하는 데 중점을 둔다. VAE는 기본 Autoencoder와는 달리, 입력 데이터의 잠재 변수를 확률 분포로 간주하고, 이를 통해 생성 모델의 기능을 수행한다. VAE의 주요 개념과 구조를 이해하기 위해서는 몇 가지 핵심 요소를 살펴볼 필요가 있다.

1. 잠재 공간(Latent Space)

  • VAE에서 입력 데이터는 잠재 공간에 매핑된다. 이 잠재 공간은 저차원 공간으로, 데이터를 구성하는 중요한 특징들을 압축하여 표현한다.
  • 일반적인 Autoencoder에서는 잠재 벡터가 고정된 값으로 변환되지만, VAE에서는 이 잠재 벡터를 확률 분포(보통 정규분포)로 모델링한다. 즉, 각 데이터 포인트는 잠재 공간에서의 평균과 분산으로 표현된다.

2. 인코더(Encoder)

  • VAE의 인코더는 입력 데이터를 잠재 변수의 평균 벡터 μ와 분산 벡터 σ의 제곱으로 변환합니다. 이는 데이터가 잠재 공간에서 특정 분포(예: 정규 분포)를 따르도록 만든다.
  • 이때, 인코더는 주어진 입력 데이터 x에 대해 잠재 변수 z의 확률 분포 q(z∣x)를 출력한다. 이 확률 분포는 평균과 분산을 기반으로 한다.

3. 샘플링(Sampling)과 재파라미터화 트릭(Reparameterization Trick)

  • VAE는 학습 과정에서 잠재 변수 z를 샘플링해야 한다. 하지만 일반적인 샘플링 과정은 신경망의 학습에 비효율적이다. 이를 해결하기 위해 재파라미터화 트릭을 사용한다.
  • 재파라미터화 트릭에서는 잠재 변수를 평균 μ와 분산 σ의 제곱으로 정의된 정규 분포 N(μ,σ의 제곱)에서 샘플링하는 대신, z=μ+σ⋅ϵ으로 표현한다. 여기서 ϵ은 표준 정규 분포에서 샘플링된 무작위 노이즈이다.
  • 이 트릭을 통해 샘플링 과정을 미분 가능하게 만들어 신경망 학습이 가능해진다.

4. 디코더(Decoder)

  • VAE의 디코더는 샘플링된 잠재 변수 z로부터 원래의 데이터 분포를 복원하는 역할을 한다. 디코더는 잠재 변수 z를 입력으로 받아 출력 데이터 x′을 생성한다.
  • 디코더는 잠재 변수 z에 대해 p(x∣z)라는 확률 분포를 정의하며, 이는 원래의 데이터 분포와 최대한 유사하게 만든다.

5. 손실 함수(Loss Function)

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

  1. 재구성 손실(Reconstruction Loss): 원래 입력 데이터 x와 재구성된 출력 데이터 x′사이의 차이를 측정한다. 이는 기본 Autoencoder에서 사용되는 손실 함수와 유사하게 동작한다.
  2. 쿨백-라이블러 발산(KL Divergence): 인코더가 학습한 잠재 변수 z의 분포 q(z∣x)와 사전 정의된 분포(보통 표준 정규분포) p(z)간의 차이를 측정한다. 이 항목은 잠재 변수 z가 사전 정의된 분포를 따르도록 만드는 역할을 한다.

최종 손실 함수는 재구성 손실과 KL 발산의 가중합으로 표현된다.

6. 활용 사례

  • 이미지 생성: VAE는 특정 도메인(예: 얼굴, 글씨체)에서 새로운 이미지를 생성하는 데 자주 사용된다. MNIST 데이터셋에 대해 VAE를 학습시키면 손으로 쓴 숫자의 새로운 예제를 생성할 수 있다.
  • 데이터 보강(Data Augmentation): 데이터가 부족한 상황에서 유사한 데이터를 생성하여 학습 데이터를 보강하는 데 활용된다.
  • 추천 시스템: VAE는 사용자와 아이템의 잠재 공간을 학습하여 개인화된 추천 시스템을 구축하는 데 사용될 수 있다.
  • 의료 데이터 분석: 환자의 의료 기록 데이터를 학습하여 새로운 환자 데이터의 시뮬레이션을 하거나, 이상 탐지에 활용될 수 있다.

VAE는 고차원 데이터를 잠재 공간에서 확률적으로 모델링하고, 이를 통해 새로운 데이터를 생성할 수 있는 강력한 도구로, 다양한 분야에서 그 가능성을 확장하고 있다.

'컴퓨터공학 > 그 외 모델들' 카테고리의 다른 글

자기조직화지도(SOM, Self-Organizing Map)  (0) 2024.09.12
RAG (Retrieval-Augmented Generation)  (0) 2024.09.10
Stable Diffusion 모델  (0) 2024.08.30
Autoencoder  (0) 2024.08.30
GNN(Graph Neural Network)  (0) 2024.08.28