GAN과 함께 대표적인 Generative AI 모델인 VAE(Variational Autoencoder)에 대해 알아보겠습니다. 먼저 유사한 이름의 Autoencoder(자기부호화기)의 특징을 간략하게(자세한 사항은 이전 포스팅 2023.5.24일 자 참조) 알아보고, VAE와 GAN을 비교하여 각각의 장단점을 비교해 보도록 하겠습니다.
1. Autoencoder(자기부호화기)
Autoencoder는 데이터를 압축하고 압축 해제하는 방법을 배우는 신경망 아키텍처 유형입니다. Autoencoder는 원래 비지도학습으로 차원 축소(dimensionality reduction)가 목적인 계승형 신경망입니다. Autoendocer는 인코더와 디코더로 구성됩니다. 인코더는 이미지와 같은 입력을 받아 잠재 공간이라는 저차원 표현에 매핑합니다. 그런 다음 디코더는 이 표현을 가져와 원래 입력을 재구성하려고 시도합니다.
VAE(Variational Autoencoder)는 기존의 Autoencoder와 탄생 배경이 다르지만 구조가 상당히 비슷해서 Variational AE라는 이름이 붙은 것입니다. 즉, VAE와 AE는 엄연히 다릅니다. AE의 목적은 인코더에 있습니다. Autoencoder는 인코더 학습을 위해 디코더를 붙인 것입니다. 반대로 VAE의 목적은 디코더에 있습니다. Decoder 학습을 위해 Encoder를 붙인 것입니다.
2. GAN(Generative Adversarial Networks, 생성적 대립 신경망)
GAN은 생성기와 판별기의 두 가지 주요 구성 요소로 구성된 또 다른 유형의 신경망 아키텍처입니다. 생성기는 임의의 노이즈를 입력으로 사용하고 이미지와 같은 출력을 생성하여 새로운 데이터 샘플을 생성하는 방법을 학습합니다. 반면 판별기는 실제 데이터 샘플과 생성기가 생성한 가짜/생성 샘플을 구별하는 방법을 학습합니다. Generator와 Discriminator는 Discriminator를 속일 수 있는 현실적인 샘플을 생성하는 Generator를 목표로 함께 훈련됩니다. (자세한 사항은 아래 링크로 이전 포스팅 참조)
3. VAE(변형 자동 인코더)
VAE는 자동 인코더와 확률적 모델링의 요소를 결합합니다. Autoencoder와 마찬가지로 VAE는 인코더와 디코더로 구성됩니다. 그러나 VAE는 잠재 공간에 확률적 왜곡을 도입합니다. 입력을 고정된 하위 차원 표현에 직접 매핑하는 대신 VAE는 입력을 잠재 공간의 확률 분포 매개변수에 매핑합니다. 이 분포는 일반적으로 다변량 가우시안(multivariate Gaussian)으로 가정됩니다.
VAE의 인코더는 입력을 받아 잠재 공간 분포의 평균 및 분산에 매핑합니다. 그런 다음 이러한 매개변수는 입력의 잠재적 표현이 되는 분포에서 포인트를 샘플링하는 데 사용됩니다. 그리고 디코더는 이 잠재적 표현을 가져와 원래 입력을 재구성합니다.
다음은 VAE(Variational Autoencoder)의 구조와 프로세스를 보여주는 단순화된 다이어그램입니다.
이 다이어그램에서 입력 데이터(예: 이미지)는 잠재 공간에서 다변량 가우시안 분포의 매개변수(평균 및 분산)에 매핑하는 인코더를 통해 전달됩니다. 이러한 매개변수에서 점을 샘플링하여 잠재적 표현을 생성합니다. 이 잠재 표현은 원래 입력을 재구성하는 디코더를 통해 전달됩니다. 인코더를 잠재 공간에서 더 낮은 차원의 표현으로 입력을 압축하는 깔때기로 상상해 보십시오. 디코더는 잠재된 표현을 다시 원래 데이터 공간으로 확장하여 출력을 생성하는 거꾸로 된 깔때기로 볼 수 있습니다. 이 인코딩 및 디코딩 프로세스를 통해 VAE는 잠재 공간의 학습된 분포에서 포인트를 샘플링하여 압축된 표현과 새 샘플을 생성하는 기능을 모두 학습할 수 있습니다.
VAE의 인코더 및 디코더에 대한 실제 신경망 아키텍처는 특정 구현 및 문제 영역에 따라 달라질 수 있습니다. 그러나 일반적인 아이디어는 입력을 잠재 공간에 매핑하는 인코더와 잠재 표현을 다시 출력 공간에 매핑하는 디코더를 갖는 것입니다
VAE의 핵심 아이디어는 데이터를 인코딩 및 디코딩하는 방법을 학습할 뿐만 아니라 잠재 공간(latent space)에서 의미 있는 분포도 학습한다는 것입니다. 이 분포를 통해 잠재 공간에서 포인트를 샘플링하고 디코더를 통해 전달하여 새로운 데이터 샘플을 생성할 수 있습니다. 학습된 분포에서 샘플링하여 다양하고 새로운 출력을 생성할 수 있습니다.
요약하면 VAE는 오토인코더의 인코딩 및 디코딩 기능과 잠재 공간 분포의 확률론적 모델링을 결합한 일종의 신경망 아키텍처입니다. 잠재 공간에서 학습된 분포에서 샘플링하여 새로운 데이터 샘플을 생성할 수 있습니다. GAN과 비교하여 VAE는 생성 모델링에 대해 보다 구조화되고 제어된 접근 방식을 제공합니다
4. VAE vs. GAN
GAN과 비교할 때 VAE는 새로운 데이터를 생성하는 데 더 구조화되고 제어된 접근 방식을 가지고 있습니다. GAN은 시각적으로 더 매력적인 결과를 생성하는 경향이 있지만 학습 및 제어가 어려울 수 있습니다. 반면에 VAE는 잠재적인 표현을 학습하고 새로운 샘플을 생성하기 위한 원칙적인 프레임워크를 제공합니다.
쉽게 말하자면 다음과 같이 요약할 수 있겠습니다.
VAE의 특징
- 디코더가 최소한 학습 데이터는 생성해 낼 수 있다.
- 인코더가 최소한 학습 데이터는 Latent(잠재적) Vector로 잘 표현할 수 있다.
- 하지만 Decoder로 생성한 데이터는 결론적으로 학습 데이터와 많이 닮아 있다.
- GAN과 비교하면 생성하는 이미지들이 입력값과 비슷하기 때문에 오히려 차원축소 용으로 많이 사용하기도 한다.
- 생성 모델 자체로써의 역할은 GAN이 더 잘해낸다고들 평가한다.
'생성형 인공지능(Generative AI; GAI) > 생성형 AI의 주요 기술 및 알고리즘' 카테고리의 다른 글
ChatGPT의 자연어 처리(NLP) - 인코딩 프로세스(Encoding Process)와 토큰화(Tokenization) 과정 (0) | 2023.07.10 |
---|---|
자연어처리(NLP) 알고리즘 - Word2Vec vs Transformer 모델 (0) | 2023.07.06 |
ChatGPT의 핵심 기술 - 트랜스포머(Transformer) (0) | 2023.07.05 |
생성형 AI의 주요 기술 (1) - GAN(Generative Adversarial Network, 생성적 대립 신경망) (0) | 2023.06.26 |
댓글