변분 오토인코더(VAE)는 2013년 디데릭 P. 킹마(Diederik P. Kingma)와 맥스 웰링(Max Welling)이 소개한 인공 신경망 아키텍처입니다. 이는 확률적 그래픽 모델 및 변분 베이즈 방법의 계열에 속합니다. VAE는 데이터를 압축된 잠재 공간에서 표현하는 방법을 학습하고, 해당 공간에서 새로운 샘플을 생성하는 생성 모델입니다. 입력을 잠재 공간의 고정된 점에 매핑하는 표준 오토인코더와 달리, VAE는 입력을 일반적으로 다변량 가우시안 분포인 확률 분포에 매핑하여 과적합을 방지하고 매끄러운 보간 및 생성을 가능하게 합니다.
이 아키텍처는 인코더와 디코더라는 두 개의 신경망으로 구성됩니다. 인코더는 각 입력 데이터 포인트(예: 이미지)를 잠재 공간의 변분 분포 매개변수(예: 평균 및 분산 벡터)에 매핑합니다. 디코더는 잠재 공간에서 입력 공간으로 다시 매핑하여 재구성 또는 새 샘플을 생성합니다. 두 네트워크는 확률적 샘플링을 통한 역전파를 가능하게 하는 재매개변수화 트릭을 사용하여 공동으로 훈련됩니다. VAE는 처음에 비지도 학습을 위해 설계되었지만, 반지도 및 지도 학습 작업에도 효과적임이 입증되었습니다.
아키텍처 및 작동 개요
변분 오토인코더는 잠재 변수에 대한 사전 분포와 데이터에 대한 노이즈 분포를 갖는 생성 모델입니다. 확률적 PCA 또는 희소 코딩과 같은 전통적인 생성 모델은 기대-최대화(EM) 메타 알고리즘을 사용하여 훈련됩니다. EM은 데이터 우도의 하한을 최적화하는데, 이는 종종 계산적으로 다루기 어렵고, 각 데이터 포인트에 대한 q-분포(변분 사후 분포)를 별도의 최적화 과정에서 발견해야 합니다. 대조적으로, VAE는 신경망을 분할 상환 접근 방식으로 사용하여 모든 데이터 포인트에 걸쳐 공동으로 최적화합니다. 이는 동일한 네트워크 매개변수가 여러 데이터 포인트에 재사용되어 상당한 메모리 절약을 가져옵니다.
인코더 네트워크는 입력 데이터 포인트를 받아 변분 분포의 매개변수를 출력합니다. 알려진 입력 공간에서 저차원 잠재 공간으로 매핑하므로 인코더라고 합니다. 디코더는 두 번째 신경망으로, 잠재 공간에서 입력 공간으로 매핑하며 일반적으로 노이즈 분포의 평균을 출력합니다. 분산을 출력하기 위해 다른 네트워크를 사용할 수도 있지만, 단순성을 위해 종종 생략되며 분산은 경사 하강법을 통해 최적화될 수 있습니다.
모델을 최적화하려면 재구성 오차와 쿨백-라이블러 발산(KL-D)이라는 두 항이 필요합니다. 두 항 모두 확률적 모델의 자유 에너지 표현에서 파생되며, 노이즈 분포와 데이터의 가정된 사전 분포(p-분포)에 따라 다릅니다. 예를 들어, ImageNet과 같은 표준 VAE 작업은 일반적으로 가우시안 노이즈를 가정하는 반면, 이진화된 MNIST와 같은 작업은 베르누이 노이즈를 필요로 합니다. KL-D 항은 p-분포와 겹치는 q-분포의 확률 질량을 최대화하며, 이는 모드 탐색 동작으로 이어질 수 있습니다. 재구성 항은 자유 에너지 표현의 나머지 부분이며, 기대값을 계산하기 위해 샘플링 근사가 필요합니다. 최근 접근 방식은 통계적 거리 VAE 변형 섹션에서 논의된 바와 같이 KL-D를 다양한 통계적 거리로 대체합니다.
공식화
확률적 모델링 관점에서 목표는 선택된 매개변수화된 확률 분포 p_θ(x) = p(x|θ) 하에서 데이터 x의 우도를 최대화하는 것입니다. 이 분포는 종종 평균 μ와 분산 σ로 매개변수화된 가우시안 N(x|μ, σ)로 선택되며, 지수족의 구성원으로 다루기 쉽습니다. 단순한 분포는 최대화하기 쉽지만, 잠재 변수 z에 대한 사전 분포를 가정하면 결과 적분이 다루기 어려워집니다. p_θ(x)를 찾기 위해 z에 대해 주변화합니다:
p_θ(x) = ∫ p_θ(x, z) dz,
여기서 p_θ(x, z)는 p_θ 하에서 관측 가능한 데이터 x와 잠재 인코딩 z의 결합 분포입니다. 연쇄 법칙을 사용하면 다음과 같이 다시 쓸 수 있습니다:
p_θ(x) = ∫ p_θ(x|z) p_θ(z) dz.
이 적분은 잠재 공간이 고차원이고 우도 p_θ(x|z)가 복잡할 수 있기 때문에 일반적으로 다루기 어렵습니다. 변분 추론은 인코더 네트워크로 매개변수화된 더 단순한 분포 q_φ(z|x)로 실제 사후 분포 p_θ(z|x)를 근사합니다. 모델을 최적화하기 위해 증거 하한(ELBO)이 파생됩니다:
log p_θ(x) ≥ E_{q_φ(z|x)}[log p_θ(x|z)] - KL(q_φ(z|x) || p_θ(z)).
첫 번째 항은 재구성 우도이고, 두 번째 항은 근사 사후 분포와 사전 분포 사이의 KL 발산입니다. 재매개변수화 트릭은 z를 μ + σ * ε로 표현하여 q_φ(z|x)에서 샘플링을 가능하게 하며, 여기서 ε는 표준 정규 분포에서 추출되므로 경사 기반 최적화가 가능합니다.
인코더 및 디코더 네트워크
인코더 네트워크는 종종 q_φ(z|x)로 표시되며, 입력 x를 받아 변분 분포의 매개변수, 일반적으로 가우시안의 평균 μ와 로그 분산 log σ²을 출력합니다. 이 분포는 입력의 잠재 인코딩을 나타냅니다. 디코더 네트워크는 p_θ(x|z)로 표시되며, 잠재 샘플 z를 받아 데이터 분포의 매개변수, 예를 들어 연속 데이터의 경우 가우시안의 평균 또는 베르누이 데이터의 경우 확률을 출력합니다.
두 네트워크는 일반적으로 재매개변수화 트릭을 사용하여 함께 훈련됩니다. 인코더와 디코더는 일반적으로 데이터 유형에 따라 다층 퍼셉트론(MLP) 또는 합성곱 신경망(CNN)으로 구현됩니다. 이미지 데이터의 경우 CNN이 일반적이며, 합성곱 VAE와 같은 모델에서 볼 수 있습니다. 네트워크 아키텍처의 선택은 모델의 용량과 성능에 영향을 미칩니다.
훈련 및 재매개변수화 트릭
VAE 훈련은 재구성 항과 KL 발산 항의 합인 ELBO를 최대화하는 것을 포함합니다. 재구성 항은 디코더가 잠재 샘플에서 입력을 정확하게 재구성하도록 장려하는 반면, KL 발산 항은 근사 사후 분포가 일반적으로 표준 정규 분포 N(0, I)인 사전 분포에 가깝도록 장려합니다. 이러한 균형은 과적합을 방지하고 매끄러운 잠재 공간을 보장합니다.
재매개변수화 트릭은 확률적 샘플링 과정을 통해 경사가 흐를 수 있게 하므로 훈련에 중요합니다. 비미분 가능한 q_φ(z|x)에서 직접 z를 샘플링하는 대신, 인코더는 μ와 σ를 출력하고 z는 z = μ + σ * ε로 계산되며, 여기서 ε ~ N(0, I)입니다. 이는 샘플링 연산을 매개변수에 대해 미분 가능하게 만들어 표준 역전파를 가능하게 합니다.
훈련 중 노이즈 모델의 분산은 별도로 학습되거나 고정될 수 있습니다. 일부 구현에서는 디코더가 평균과 분산을 모두 출력하는 반면, 다른 구현에서는 분산이 하이퍼파라미터이거나 별도로 최적화됩니다. 훈련 과정은 일반적으로 학습률 스케줄과 함께 확률적 경사 하강법(SGD) 또는 Adam과 같은 변형을 사용합니다.
손실 함수 및 KL 발산
VAE의 손실 함수는 음의 ELBO이며, 재구성 손실과 KL 발산의 두 항으로 구성됩니다. 재구성 손실은 디코더가 잠재 샘플에서 입력을 얼마나 잘 재구성하는지 측정합니다. 가우시안 노이즈가 있는 연속 데이터의 경우 이는 종종 입력과 재구성 출력 사이의 평균 제곱 오차(MSE)입니다. 이진 데이터의 경우 이진 교차 엔트로피입니다.
KL 발산 항은 근사 사후 분포 q_φ(z|x)와 사전 분포 p(z) 사이에서 계산됩니다. 가우시안 분포의 경우 이는 닫힌 형태 표현을 갖습니다:
KL(q_φ(z|x) || p(z)) = -0.5 * (1 + log σ² - μ² - σ²),
사전 분포가 N(0, I)라고 가정합니다. 이 항은 사전 분포에서 벗어난 잠재 분포에 패널티를 부여하여 컴팩트하고 연속적인 잠재 공간을 장려합니다.
KL 발산은 모델이 데이터 분포의 몇 가지 모드에 집중하는 모드 탐색 동작으로 이어질 수 있습니다. 이를 해결하기 위해 Wasserstein 거리 또는 최대 평균 불일치(MMD)와 같은 다양한 통계적 거리를 사용하는 등 여러 대안이 제안되었습니다.
변형 및 확장
VAE 도입 이후 성능을 개선하고 한계를 해결하기 위해 수많은 변형이 개발되었습니다. 주목할 만한 변형은 다음과 같습니다:
- β-VAE: 더 분리된 표현을 장려하기 위해 KL 발산 항에 가중치 인자 β를 도입합니다. 이는 해석 가능한 요인의 비지도 학습에서 자주 사용됩니다.
- 조건부 VAE(CVAE): 클래스 레이블과 같은 추가 정보에 인코더와 디코더를 모두 조건화하여 제어된 생성을 가능하게 합니다.
- VQ-VAE: 잠재 공간에서 벡터 양자화를 사용하여 이산 잠재 코드를 생성하며, 이는 이미지 생성 및 표현 학습과 같은 작업에 유용합니다.
- 통계적 거리 VAE 변형: 훈련 안정성과 샘플 품질을 개선하기 위해 KL 발산을 Wasserstein 거리와 같은 다른 통계적 거리로 대체합니다.
이러한 변형은 이미지 생성, 텍스트 생성 및 이상 탐지를 포함한 다양한 영역에 적용되었습니다.
응용 및 중요성
변분 오토인코더는 기계 학습 및 인공 지능에서 광범위한 응용 분야를 가지고 있습니다. 훈련 데이터와 유사한 새 데이터 샘플(예: 이미지, 오디오, 텍스트)을 생성할 수 있는 생성 모델링에 사용됩니다. VAE는 또한 잠재 공간이 데이터의 의미 있는 특징을 포착하여 클러스터링 및 차원 축소와 같은 작업을 가능하게 하는 표현 학습에도 사용됩니다.
반지도 학습에서 VAE는 레이블이 없는 데이터를 활용하여 유용한 표현을 학습할 수 있어 레이블이 제한된 작업의 성능을 개선합니다. 지도 학습에서 VAE는 특징 추출기 또는 데이터 증강에 사용될 수 있습니다. VAE는 또한 이상 탐지에 적용되었으며, 여기서 재구성 오차 또는 데이터 포인트의 우도는 정상인지 이상인지 나타냅니다.
VAE의 중요성은 비지도 방식으로 확률적 잠재 표현을 학습하는 능력에 있으며, 생성 모델링을 위한 원리 있는 프레임워크를 제공합니다. 이는 생성 AI의 더 넓은 분야를 포함한 딥러닝의 많은 후속 발전에 영향을 미쳤으며, 계속해서 활발한 연구 영역입니다.
다른 생성 모델과의 관계
VAE는 생성적 적대 신경망(GAN) 및 확산 모델과 함께 두드러진 생성 모델 계열 중 하나입니다. GAN이 적대적 훈련 과정을 통해 사실적인 샘플 생성에 초점을 맞추는 반면, VAE는 확률적 추론과 매끄러운 잠재 공간을 강조합니다. 최근 인기를 얻은 확산 모델은 노이즈 추가 과정을 역전시켜 데이터를 생성합니다. 각 접근 방식에는 장단점이 있습니다. VAE는 안정적인 훈련과 잘 정의된 잠재 공간을 제공하지만 GAN에 비해 더 흐릿한 샘플을 생성할 수 있습니다. 모델 선택은 특정 응용 분야와 요구 사항에 따라 달라집니다.
딥러닝의 맥락에서 VAE는 변분 오토인코더 기반 트랜스포머 또는 다중 모달 모델의 구성 요소와 같은 더 큰 아키텍처의 빌딩 블록으로 자주 사용됩니다. 또한 대규모 언어 모델 개발과도 관련이 있지만, 이러한 모델은 일반적으로 VAE보다는 자기회귀 또는 트랜스포머 아키텍처에 의존합니다.
같이 보기
- 오토인코더
- 생성 AI
- 딥러닝
- 확률적 그래픽 모델
- 변분 베이즈 방법