brunch

데이터를 창조하는 마법사

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

by 디이프

우리가 보고 듣는 이미지나 음악이 인공지능에 의해 새롭게 창조될 수 있다면 어떨까? VAE는 마치 마법사처럼 기존 데이터를 활용해 완전히 새로운 데이터를 만들어낼 수 있는 강력한 기술이다. 단순히 데이터를 압축하고 복원하는 것을 넘어, 새로운 개념을 학습하고 창조하는 능력을 갖춘 기술이라 할 수 있다.


오토인코더(AE)와 비슷하지만, 데이터의 본질적인 특성을 확률적인 방식으로 학습하여 더 창의적인 결과물을 낼 수 있다는 점에서 차이점이 있다.


예를 들어, 손 글씨 숫자 데이터셋(MNIST)에서 숫자 이미지를 압축한 후 이를 다시 복원하는 과정에서, VAE는 숫자 3을 입력했을 때 비슷한 3을 생성할 뿐만 아니라, 살짝 변형된 새로운 3을 만들어낼 수도 있다. 이는 GAN(Generative Adversarial Network)과 마찬가지로 데이터 생성에 활용될 수 있으며, 이미지, 음성, 텍스트 생성 등 다양한 분야에서 응용된다.


VAE의 핵심은 변분 추론(Variational Inference) 기법을 사용하여 잠재 공간을 정규 분포(N(0,1))와 같은 특정한 분포에 가깝도록 학습시키는 것이다. 주요 구성 요소는 다음과 같다.


1. 인코더(Encoder): 입력 데이터를 저차원 잠재 공간에 맵핑하는 신경망이다. 기존 오토인코더와 달리, VAE는 평균과 분산 두 가지 값을 예측하여 확률 분포를 모델링한다.

2. 잠재 공간(Latent Space): 데이터의 주요 특징이 위치하는 공간으로, 다양한 데이터 생성을 가능하게 한다.

3. 디코더(Decoder): 잠재 공간에서 샘플링된 값을 이용하여 원본 데이터로 복원하는 신경망이다.

4. 손실 함수(Loss Function):

재구성 손실(Reconstruction Loss):** 원본 데이터와 복원된 데이터 간의 차이를 최소화하는 손실(예: MSE, Cross-Entropy Loss)

쿨백-라이블러 발산(KL Divergence) 손실:** 잠재 변수가 정규 분포를 따르도록 유도하는 손실


1.png VAE 구조


이 기술의 가장 큰 장점은 데이터 생성 능력이다. 즉, 학습된 데이터를 기반으로 완전히 새로운 데이터 샘플을 만들어낼 수 있다. 단순히 압축하고 복원하는 것을 넘어, 새로운 이미지를 창작하는 능력을 갖추고 있다.


AE(Autoencoder)와 VAE(Variational Autoencoder)의 차이점은 무엇일까?


일반적인 오토인코더(AE)와 변분 오토인코더(VAE)는 데이터 압축 및 복원이라는 공통된 목표를 가지고 있지만, 다음과 같은 주요한 차이점이 있다.


1. 잠재 공간(Latent Space)의 표현 방식: AE는 입력 데이터를 압축하여 고정된 잠재 벡터를 생성하지만, VAE는 잠재 변수를 확률분포(평균과 분산)로 모델링하여 다양한 샘플링과 데이터 생성이 가능하다.

2. 샘플링 가능성: AE는 인코더를 통해 특정한 고정된 벡터를 생성하지만, VAE는 평균과 분산을 학습하여 확률적 샘플링을 수행할 수 있다.

3. 손실 함수 구성: AE는 주로 재구성 손실만을 사용하지만, VAE는 재구성 손실과 함께 KL 발산 손실을 추가하여 잠재 공간이 특정 분포를 따르도록 유도한다.

4. 생성 모델로서의 활용성: AE는 단순한 데이터 복원 및 차원 축소에 주로 사용되지만, VAE는 확률적 샘플링을 통해 새로운 데이터를 생성하는 데 강력한 성능을 발휘한다.


VAE는 단순한 압축 도구가 아니라, 다양한 분야에서 창의적인 데이터 생성 및 변형을 수행하는 데 활용된다. 대표적인 활용 사례로 이미지 생성 및 변형, 데이터 증강, 음성 및 음악 생성, 이상 탐지 등이 있다.


이미지 생성 및 변형: VAE는 기존 이미지를 변경하거나 새로운 이미지를 생성하는 데 사용된다. 예를 들어, 얼굴 사진을 입력하면 다양한 표정이나 스타일로 변형할 수 있다.

데이터 증강: 의료 영상이나 자연어 처리 데이터가 부족한 경우 이를 보완하기 위해 활용된다. 한정된 샘플로도 다양한 변형 데이터를 생성할 수 있다.

음성 및 음악 생성: VAE는 음성 데이터를 학습하여 자연스러운 음성을 생성하거나, 새로운 음악을 창작하는 데 활용된다.

이상 탐지: 정상적인 데이터 분포를 학습한 후, 새로운 데이터가 기존 패턴에서 벗어났는지를 분석하는 데 유용하게 활용된다.


2.png VAE 활용 예시


디이프에서도 VAE를 활용하여 다양한 문제를 해결하고 있으며, 그 중 대표적인 사례가 식단 데이터 증강 연구이다. 식단 데이터는 다양한 음식이 특정한 순서와 조합을 이루는 형태로 존재한다. 전문 영양사는 경험과 식품영양학적 지식을 바탕으로, 일반인이 쉽게 따라 하기 어려운 조합과 순서를 구성한다.


디이프는 이러한 전문 영양사의 식단을 참고하여 유사하면서도 다양한 식단을 증강하는 연구를 진행했다. 이를 위해 VAE와 유사도 측정 기술(유클리드 거리, 코사인 유사도)을 결합하여, 전문가가 작성한 일부(100~150개)의 식단을 기반으로 새로운 식단을 생성하는 방식을 도입하였다.


3.png 식단 데이터 증강을 위한 VAE 활용 사례


유사도 측정 기술은 VAE를 통해 생성된 식단에서 위치가 적절하지 않거나 대체가 필요한 음식을 조정하는 데 활용되었다. 유클리드 거리와 코사인 유사도를 이용하여 적절한 대체 음식을 찾아 배치함으로써, 보다 다양하면서도 균형 잡힌 식단을 생성할 수 있었다.


4.png 음식 간 함량 유사도 측정 예시


VAE는 강력한 생성 모델이지만 몇 가지 한계점도 존재한다.

VAE가 생성하는 데이터는 잠재 공간의 정규 분포를 따르도록 강제되면서 고유한 세부 정보를 읽을 가능성이 있기 때문에 다소 디테일이 부족할 수 있다. 또한, VAE 학습 과정에서 다른 생성 모델보다 최적화가 어려울 수 있으며, 고해상도 이미지 생성에서는 GAN보다 성능이 떨어지는 경우들이 발생할 수 있다.

이러한 한계점에도 불구하고, VAE는 데이터의 특징을 학습하고 활용해 새로운 데이터를 만들어낼 수 있는 유용한 도구로, 다양한 인공지능 문제를 해결하는 데 유용하게 활용될 수 있다.




Reference

https://taeu.github.io/paper/deeplearning-paper-vae

Shunta Nakata, Takehiro Kasahara, Hidetaka Nambo, Proposal of VAE-Based Deep Learning Anomaly Detection Model for Industrial Products. pp 336-349

https://www.tensorflow.org/tutorials/generative/cvae?hl=ko


keyword
작가의 이전글디이프의 기능 적용 경험 공유