[5,6주차] VAE(Variational Autoencoder) 예습
안녕하세요 비지도 학습 방법론 수업에서는 5,6 주차에 Variational Autoencoder에 대한 내용을 다루는데 이에 대해 예습하기 위해서 공부하고 블로그글을 작성해보고자 합니다.
최근 인공지능 분야에서 생성 모델(Generative Model)이 많은 관심을 받고 있습니다. 그 중 Variational Autoencoder(VAE) 는 데이터의 잠재 공간(latent space)을 효율적으로 표현하여 새로운 데이터를 생성하는 모델로, 오토인코더(Autoencoder)의 확장된 버전이라고 할 수 있습니다. VAE는 확률론적 모델링(probabilistic modeling) 기법과 딥러닝 기술이 결합된 대표적인 예제로, 이미지, 음성, 텍스트 등 다양한 데이터에 적용되며 창의적인 결과물을 만들어내기도 합니다.
그렇다면 AutoEncoder와 어떤 차이가 있길래 Variational이라는 즉 변분 이라는 단어가 앞에 붙게 되었을까요?
전통적인 오토인코더는 인코더와 디코더라는 두 부분으로 구성됩니다.
- 인코더(Encoder): 원본 데이터를 압축하여 잠재 공간의 벡터로 표현합니다.
- 디코더(Decoder): 이 잠재 벡터로부터 원본 데이터를 복원합니다.
하지만 단순한 오토인코더는 주어진 데이터에 대해 결정론적(deterministic) 매핑을 수행하여, 잠재 공간이 명확한 확률적 구조를 갖지 않는 문제가 있습니다. 따라서 새로운 데이터를 생성할 때는 한계가 있습니다.
VAE는 이 한계를 극복하기 위해 확률론적 모델을 도입합니다.
- 각 데이터 포인트를 단순한 점으로 매핑하는 대신, 잠재 공간 상에서 확률 분포(보통은 다변량 정규분포)를 할당합니다.
- 인코더는 입력 데이터를 받아 평균(mean)과 분산(variance)을 출력하여, 각 데이터가 따르는 잠재 분포의 파라미터를 예측합니다.
- 이를 통해 VAE는 잠재 공간에 대한 연속적인 구조와 부드러운 변화를 보장하며, 새로운 샘플을 생성할 수 있는 기반을 마련합니다.
VAE의 기본 구성은 오토인코더와 유사하지만, 몇 가지 추가적인 요소가 있습니다.
인코더(Encoder)
- 입력: 원본 데이터 (예: 이미지, 텍스트 등)
- 출력: 잠재 변수의 분포 파라미터 – 보통 평균(μ)과 로그 분산(log(σ²))
- 역할: 입력 데이터에 대응하는 확률 분포를 정의함으로써, 데이터 간의 잠재적 유사성을 확률적 관점에서 표현
디코더(Decoder)
- 입력: 인코더로부터 샘플링한 잠재 변수 z
- 출력: 복원된 데이터
- 역할: 잠재 공간의 점으로부터 원본 데이터와 유사한 데이터를 생성
잠재 변수 샘플링과 리파라미터화 트릭
VAE에서는 인코더가 예측한 분포에서 직접 샘플링을 하는 과정이 필요합니다. 그러나 샘플링 과정은 미분 불가능하기 때문에 역전파(backpropagation)를 통한 네트워크 학습에 어려움을 줍니다. 이를 해결하기 위해 리파라미터화 트릭(reparameterization trick) 이 사용됩니다.
- 리파라미터화 트릭:
잠재 변수 z를 다음과 같이 표현합니다.z=μ+σ⊙ϵ,ϵ∼N(0,I)z = \mu + \sigma \odot \epsilon, \quad \epsilon \sim \mathcal{N}(0, I)여기서 μ\mu와 σ\sigma는 인코더가 예측한 평균과 표준편차이며, ϵ\epsilon는 표준 정규분포에서 샘플링한 잡음입니다. - 의의:
이 방식은 샘플링 과정의 무작위성을 분리하여, 네트워크가 미분 가능한 파라미터(즉, μ\mu와 σ\sigma)를 통해 학습할 수 있도록 합니다.
손실 함수: 재구성 손실과 KL 발산
VAE의 학습 과정에서는 두 가지 손실 함수가 결합되어 사용됩니다.
재구성 손실 (Reconstruction Loss)
- 목적: 디코더가 생성한 출력과 원본 데이터 간의 차이를 최소화합니다.
- 예시: 이미지의 경우, 픽셀 단위의 차이를 계산하는 평균제곱오차(MSE)나 이진 크로스 엔트로피(Binary Cross Entropy) 등을 사용합니다.
KL 발산 (Kullback-Leibler Divergence)
- 목적: 인코더가 예측한 잠재 분포가 사전에 정의된 표준 정규분포(N(0,I)\mathcal{N}(0, I))와 유사하도록 규제(regularization)합니다.
- 설명: 두 분포 간의 차이를 수치화하는 척도로, 이를 최소화함으로써 잠재 공간이 일정한 구조를 갖게 됩니다.
- 의의: 이 항이 작용함으로써, 잠재 공간에서 샘플링 시 원활한 보간(interpolation)과 새로운 샘플 생성이 가능해집니다.
최종 손실 함수는 재구성 손실과 KL 발산의 가중치 합으로 정의됩니다.
L=Lreconstruction+β DKL(q(z∣x)∥p(z))\mathcal{L} = \mathcal{L}_{\text{reconstruction}} + \beta \, \mathcal{D}_{\text{KL}}(q(z|x) \parallel p(z))
여기서 β\beta는 두 항의 중요도를 조절하는 하이퍼파라미터로, 경우에 따라 변형된 β\beta-VAE 등 다양한 형태로 응용되기도 합니다.
VAE는 다양한 영역에서 여러 활용 사례를 보여줍니다.
- 이미지 생성:
VAE는 잠재 공간에서의 연속적인 구조를 활용하여, 기존 이미지들의 특징을 학습한 후 새로운 이미지를 생성할 수 있습니다. - 이미지 편집:
잠재 공간상의 벡터 연산(예: 특정 속성을 조절하는 방향 벡터)을 이용하여 이미지의 특정 요소(표정, 조명 등)를 조절할 수 있습니다. - 데이터 압축:
고차원 데이터를 저차원 잠재 공간에 매핑해, 데이터 압축 및 표현을 단순화할 수 있습니다. - 이상치 탐지:
정상 데이터의 잠재 분포를 학습한 후, 복원 오류(reconstruction error)가 큰 데이터를 이상치로 판별하는 방식으로 응용할 수 있습니다. - 보강 학습:
잠재 공간을 활용한 샘플 생성은 데이터 보강(data augmentation)에도 유용하며, 강화 학습 환경에서 상태(state) 표현 학습에 도움이 됩니다. - 잠재 표현:
데이터의 주요 특성을 압축하여 잠재 표현을 학습함으로써, 다양한 다운스트림 작업(분류, 클러스터링 등)에 유리한 특성을 추출할 수 있습니다.
VAE의 한계 및 개선 방향
모호한 생성 결과
VAE가 생성하는 샘플들은 때때로 흐릿하거나, 세부 표현이 부족할 수 있습니다. 이는 KL 발산 항의 규제가 지나치게 강하게 작용하여 모델이 학습 데이터의 세밀한 특징을 포착하기 어려워지는 문제로 연결됩니다.
모드 붕괴(Mode Collapse)
생성 모델에서 나타날 수 있는 모드 붕괴 현상은 VAE에서도 발생할 수 있습니다. 이를 개선하기 위한 다양한 기법들, 예를 들어 β\beta-VAE, Wasserstein VAE 등 여러 변형 모델들이 제안되고 있습니다.
Variational Autoencoder(VAE)는 단순한 오토인코더의 한계를 극복하기 위해 등장한 확률론적 생성 모델로, 데이터의 잠재 공간을 효과적으로 학습하고 이를 통해 새로운 데이터를 생성하는 강력한 도구입니다. 인코더에서 확률 분포를 예측하고 리파라미터화 트릭을 통해 미분 가능한 학습을 가능하게 한 VAE는, 재구성 손실과 KL 발산 항의 균형을 맞추는 방식으로 학습됩니다. 이미지 생성, 데이터 압축, 이상치 탐지 등 다양한 분야에서 응용될 수 있는 만큼, VAE에 대한 이해는 생성 모델의 전반적인 이해도를 높이는 데 큰 도움이 될 것입니다.
예습용으로 읽어본 이 글이, VAE의 기본 원리와 응용 사례를 이해하는 데 기여하기를 바랍니다. 앞으로 더욱 심화된 연구와 응용이 이루어지는 생성 모델 분야에서 VAE의 역할은 점점 더 커질 것으로 예상됩니다.