AI VIDEO BRIEFING
변분 오토인코더(VAE) 완전 정리: 잠재 공간, ELBO, 재매개변수화 트릭까지 수식의 의미 이해하기
변분 오토인코더가 일반 오토인코더와 무엇이 다른지, 잠재 공간과 ELBO는 왜 필요한지, 재매개변수화 트릭이 역전파를 어떻게 가능하게 하는지를 수식의 의미와 비유 중심으로 한국어로 풀어 정리했습니다.

핵심 메시지
쉽게 이해하기
오토인코더는 인코더와 디코더라는 두 부분이 병목을 사이에 두고 붙어 있는 모델입니다. 인코더는 입력을 더 낮은 차원의 표현으로 줄이고, 디코더는 그 표현만 보고 원래 데이터를 되살리려 합니다. 파일을 압축했다가 푸는 것과 비슷하지만, 신경망은 원본을 글자 그대로 복원하지 못하고 최대한 가깝게 재현할 뿐이라는 점이 다릅니다. 좋은 오토인코더의 조건은 코드가 최대한 작으면서 복원 결과는 원본에 최대한 가까운 것입니다.
문제는 이렇게 학습된 코드가 사람이 이해할 만한 의미를 담지 못한다는 데 있습니다. 영상은 토마토 사진의 코드가 얼룩말 사진의 코드와 비슷하고, 고양이의 코드가 피자의 코드와 비슷해질 수 있다는 예를 듭니다. 모델이 입력과 코드 사이의 대응만 외웠을 뿐 데이터 사이의 의미 관계를 붙잡지 못한 것입니다. 변분 오토인코더는 하나의 코드가 아니라 데이터 위의 다변량 분포, 즉 잠재 공간을 학습해 음식 사진끼리, 동물 사진끼리 가까이 모이도록 만드는 것을 목표로 삼습니다.
잠재 공간을 배우면 그 공간에서 값을 뽑아 새 데이터를 만들 수 있습니다. 파이썬으로 1부터 100 사이 난수를 뽑는 것이 균등 분포에서 표본을 뽑는 일인 것처럼, 잠재 공간에서 벡터 하나를 뽑아 디코더에 넣으면 새 결과물이 나옵니다. 세 장의 재료 사진 사이 지점을 뽑았을 때 그 의미의 중간에 해당하는 결과가 나오기를 기대하는 것입니다. '잠재'라는 이름은 우리가 관측하는 변수 X가 눈에 보이지 않는 변수 Z에 조건 지어져 있다는 설정에서 나왔고, 영상은 동굴 벽의 그림자만 보고 자란 사람들을 다룬 플라톤의 동굴 비유로 이 관계를 설명합니다.
여기서 수학적 난관이 등장합니다. 데이터의 분포를 구하려면 모든 잠재 변수에 대해 적분해야 하는데 이 적분은 계산이 불가능할 만큼 비쌉니다. 영상은 이를 이웃집 와이파이 비밀번호를 모든 경우의 수로 맞혀 보는 일에 비유합니다. 확률의 연쇄 법칙으로 식을 바꿔 봐도 필요한 항이 결국 우리가 알고 싶은 것 자체라서 닭과 달걀 문제가 되고, 그래서 별도의 매개변수를 가진 근사 분포로 대체하는 길을 택합니다.
로그 가능도를 전개하면 ELBO라 부르는 항과 항상 0 이상인 KL 발산의 합으로 정리됩니다. 기본급과 0 이상인 보너스를 더한 총보수가 항상 기본급보다 크거나 같은 것처럼, 로그 가능도는 언제나 ELBO 이상이므로 ELBO를 올리면 가능도의 하한이 함께 올라갑니다. ELBO를 다시 쪼개면 복원 품질에 해당하는 항과, 모델이 배운 잠재 분포를 우리가 원하는 사전 분포에 맞추는 KL 발산 항이 나옵니다. 남은 문제는 역전파인데, 잠재 공간에서 표본을 뽑는 연산은 미분할 수 없기 때문에 무작위성을 모델 밖의 잡음 변수로 빼내고 모델이 배운 평균과 표준편차와 결합하는 재매개변수화 트릭을 씁니다.
주요 인사이트
- 압축과 생성은 같은 문제가 아니다. 복원만 잘하는 코드는 의미가 뒤섞여 있어 그 공간에서 새 표본을 뽑아도 쓸 만한 결과가 나오지 않는다.
- KL 발산은 두 분포가 얼마나 떨어져 있는지를 재지만 대칭이 아니어서, p와 q의 순서를 바꾸면 값이 달라지는 거리 아닌 거리다.
- 추정량을 고를 때 편향이 없다는 성질만으로는 부족하다. 분산이 크면 기울기가 엉뚱한 방향을 가리켜 실제 학습에서는 쓸 수 없다.
- 손실 함수에서 모델이 학습하는 값은 분산이 아니라 로그 분산인데, 분산이 음수가 될 수 없다는 제약을 모델에 강요하지 않기 위한 선택이다.
- ELBO와 재매개변수화 트릭에서 겪는 어려움은 스테이블 디퓨전에서도 그대로 반복되므로, 여기서 개념을 잡아 두면 확산 모델 이해가 수월해진다.
자주 묻는 질문
오토인코더와 변분 오토인코더의 결정적 차이는 무엇인가요?
오토인코더는 입력에 대응하는 하나의 코드를 학습하지만, 변분 오토인코더는 잠재 공간이라는 확률 분포를 학습합니다. 그래서 변분 오토인코더는 그 공간에서 표본을 뽑아 새로운 데이터를 만들 수 있고, 의미가 비슷한 데이터가 서로 가까이 놓이기를 기대할 수 있습니다.
왜 로그 가능도를 직접 최대화하지 않고 ELBO를 쓰나요?
데이터 분포를 직접 구하려면 모든 잠재 변수에 대해 적분해야 하는데, 이론상 가능해도 실제로는 계산 비용이 감당되지 않습니다. 로그 가능도가 ELBO와 0 이상인 KL 발산의 합으로 분해되기 때문에, ELBO를 최대화하면 가능도의 하한을 함께 끌어올릴 수 있습니다.
재매개변수화 트릭은 왜 필요한가요?
손실을 계산하려면 잠재 공간에서 표본을 뽑아야 하는데, 샘플링 연산의 미분은 정의되지 않아 역전파가 막힙니다. 무작위성을 모델 바깥의 잡음 변수로 옮기고 모델이 학습한 평균·표준편차와 결합하면, 잡음 쪽 경로는 버리고 모델 매개변수 쪽으로만 기울기를 흘려보낼 수 있습니다.
변분 오토인코더의 손실 함수는 어떻게 구성되나요?
크게 두 부분입니다. 하나는 복원 품질을 재는 항으로 재구성된 결과와 원본을 화소 단위로 비교하는 MSE 손실을 쓸 수 있고, 다른 하나는 모델이 학습한 잠재 분포와 우리가 원하는 사전 분포 사이의 KL 발산입니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗