13.2.2 변형 오토인코더
변형 오토인코더(variational autoencoder)를 좀 더 쉽게 이해할 수 있게 오토인코더와 비교하면서 설명하겠습니다. 오토인코더는 다음 그림과 같이 입력(숫자 2)→인코더→압축(차원 축소)→디코더→출력(숫자 2)이 나오게 하는 방법입니다.
▲ 그림 13-6 오토인코더 실행 과정
오토인코더는 차원을 줄이는 것이 목표이기 때문에 데이터가 생성된 확률 분포에는 관심이 전혀 없습니다.
반면 변형 오토인코더는 표준편차와 평균을 이용하여 확률 분포를 만들고, 거기에서 샘플링하여 디코더를 통과시켜 데이터를 다시 만들어 냅니다. 즉, 변형 오토인코더는 입력 데이터와 조금 다른 출력 데이터를 만들어 내는데, 이때 z라는 가우시안 분포를 이용합니다(z를 잠재 벡터(latent vector)4라고 합니다). 중요한 특성의 파라미터를 담고 있는 z 분포에서 벡터를 랜덤하게 샘플링하고 이 분포의 오차를 이용하여 입력 데이터와 유사한 다양한 데이터를 만들어 내는 것이 변형 오토인코더입니다.
▲ 그림 13-7 변형 오토인코더 실행 과정
4 잠재 공간에 위치한 벡터를 잠재 벡터라고 하며, 잠재 공간상의 점 하나를 표현 벡터(representation vector)라고 합니다.