생성모델(generative model)은 데이터를 생성해 낼 수 있는 모델을 말한다.
만약 데이터의 확률분포

생성모델은 고차원(high dimension) 데이터가 저차원(low dimension)의 잠재변수(latent variable)에 의해서 생성된다고 가정한다. 즉, 복잡다단한 세상의 물리적 현상들이 간단한 자연법칙에 의해 지배되고 있다고 생각하는 것과 같은 원리이다. 예를 들어
만약 이런 가정이 성립한다면, 데이터를 기반으로 어떤 분류를 수행한다고 할 때, 고차원의 데이터 대신에 저차원의 잠재변수 기반으로 분류를 수행할 수도 있고, 데이터를 만든 어떤 보이지 않는 원인 등을 저차원 잠재변수를 이용하여 해석할 수도 있다. 또한 가장 중요한 장점인데, 잠재변수를 이용하여 본래 데이터와 같은 확률분포를 갖는 새로운 데이터를 생성시킬 수도 있다.
최근 심층 신경망을 이용한 생성모델의 연구와 응용이 폭발적으로 증가하여 이미지, 텍스트, 음성은 물론 영상까지 생성하고 있으며 다양한 관련 서비스들이 상업화되고 있다. 뿐만 아니라 물리 시스템을 다루는 전통적인 학문 분야, 예를 들면 항공우주분야에까지 생성모델이 도입되어 고장진단, 역설계 최적화, 항공교통관리를 위한 항적 생성 등의 문제에서 탁월한 성과를 내고 있다.
여러가지 생성모델 중 VAE(variational autoencoder, 변이형 오토인코더)가 특히 물리 시스템에 관한 생성모델로서 많이 사용되고 있으므로 이에 대해 알아보기로 하자.
확률의 관점에서 생성모델 문제를 수학적으로 풀어보면 다음과 같다. 우선 데이터를
문제는 어떻게
여기서 잠재변수의 확률밀도함수
반대로

두 확률밀도함수가 서로 얼마나 유사한지를 측정하는 수단으로는 KL(Kullback-Leibler, 쿨백-라이블러)발산을 사용하기로 한다. 그러면 두 함수의 KL은 다음과 같다.
위 식은
여기서
따라서
식 (5)를 식 (3)에 대입하면
위 식의 오른쪽 항에서 첫 번째 항은
즉,
이제
식 (9)에서 첫번째 항은 인코더(encoder)의 확률분포에 따라서 샘플링된 값을 기반으로 디코더(decoder)의 확률분포의 평균값을 구하는 것이기 때문에, 이 값을 최대로 한다는 의미는 로그-우도함수(log-likelihood)를 최대로 한다는 것이며, 이는 데이터의 확률분포를 베르누이로 가정했을 시에는 교차 엔트로피를 최소로 하는 것과 동일하고, 데이터 분포를 가우시안으로 가정했을 시에는 L2 놈(norm)을 최소로 하는 것과 동일하다. 또한 오토인코더(AE, autoencoder) 관점에서 보면 입력 데이터와 출력 데이터의 차이인 복원손실(reconstruction loss)을 최소로 한다는 것과 동일하다.
식 (9)에서 두번째 항은 인코더(encoder) 부분의 손실함수 항으로서 정규화 항(regularization term)이라고 하는데 잠재변수의 확률밀도함수
여기서
VAE 최적화 문제를 신경망을 이용하여 해를 구한다고 하면 신경망에서 최소화해야 할 손실함수는 다음과 같이 복원손실 항과 정규화 항으로 구성된다.
전체적인 신경망 모델의 개략적인 그림은 다음과 같다.

위 그림의 왼쪽부분은 인코더(encoder)로 고차원 입력 데이터를 정규분포를 갖는 저차원 잠재변수의 공간으로 인코딩하는 부분이다. 실제 데이터를 입력받아 인코더를 거쳐 잠재변수의 평균과 대각행렬인 공분산을 계산하며, 이것이 얼마나 정규분포와 유사한지가 인코더의 손실함수가 된다. 점선 부분은 샘플링을 의미한다.
오른쪽 부분은 디코더(decoder) 또는 생성기(generator)로 잠재변수를 샘플링한 값을 입력받아서 데이터를 복원하며, 이것이 입력된 데이터와 얼마나 유사한지를 나타내는 복원손실이 디코더의 손실함수가 된다.
한편, 손실함수가 최소가 되도록 최적화를 수행해야 하는데 샘플링 부분은 미분가능 하지 않으므로, 재 파라미터화(reparametrizing)라는 트릭을 사용한다. 즉, 평균이

학습이 끝나고, 새로운 데이터를 발생시키는 단계에서는
'AI 딥러닝 > DLA' 카테고리의 다른 글
[LLM] Ollama Web-UI 설치 (0) | 2024.02.25 |
---|---|
[VAE] beta-VAE (0) | 2023.05.11 |
[U-Net] 망막 혈관 세그멘테이션 (Retinal Vessel Segmentation) (0) | 2022.05.11 |
[U-Net] U-Net 구조 (0) | 2022.05.11 |
[CNN] 컨볼루션과 상관도 (0) | 2020.09.22 |
댓글