AI VIDEO BRIEFING

정규화 흐름 심화: NICE·RealNVP부터 병렬 웨이브넷까지 코넬대 강의 정리

코넬대 심층 생성 모델 강의가 정규화 흐름의 핵심 난제인 야코비안 행렬식 계산을 어떻게 우회하는지, NICE와 RealNVP의 결합 층 설계부터 음성 생성 속도를 천 배 끌어올린 증류 기법까지 짚었다.

야코비안을 삼각형으로 만들어라, 정규화 흐름 모델이 계산 부담을 푸는 방식 영상 대표 이미지

핵심 메시지

  • 정규화 흐름은 가역 변환으로 잠재변수 모델과 정확한 로그 가능도를 동시에 얻지만, 그 대가로 야코비안 행렬식을 빠르게 계산해야 한다는 제약을 진다.
  • 행렬식은 소박하게 계산하면 세제곱 시간이 들기 때문에, 강의는 야코비안이 삼각행렬이 되도록 변환을 설계해 계산량을 선형으로 낮추는 전략을 제시한다.
  • NICE의 덧셈 결합 층은 입력을 두 덩어리로 나눠 한쪽은 그대로 보내고 다른 쪽에만 신경망 출력을 더하는데, 이 구조 덕분에 어떤 신경망을 써도 가역성이 보장되고 행렬식이 항상 1이 된다.
  • 자기회귀 모델은 사실상 정규화 흐름으로 볼 수 있으며, 마스크 자기회귀 흐름(MAF)은 학습이 빠르고 생성이 느린 반면 역자기회귀 흐름(IAF)은 정반대 성질을 갖는다.
  • 이 상반된 두 성질을 확률 밀도 증류로 결합한 것이 병렬 웨이브넷이며, 웨이브넷의 음성 생성 속도를 최대 천 배까지 끌어올려 실시간에 가까운 생성을 가능하게 했다.

쉽게 이해하기

코넬대 심층 생성 모델 강의의 여덟 번째 시간으로, 정규화 흐름(normalizing flow)을 다루는 두 번째 강의다. 강의는 앞서 배운 두 갈래를 먼저 되짚는다. 자기회귀 모델은 확률의 연쇄 법칙에 기반해 로그 가능도를 곧바로 계산할 수 있어 밀도 추정에 유리하지만 특징 학습 장치가 없고, 변분 오토인코더는 잠재변수를 갖지만 다루기 힘든 적분을 근사해야 한다. 정규화 흐름은 이론상 두 장점을 함께 취하려는 시도다. 정규화 흐름은 단순한 사전분포에서 뽑은 잠재변수 z를 가역 함수 f로 옮겨 복잡한 데이터 분포를 만든다. z와 x가 일대일 대응이라 적분 없이 변수 변환 공식으로 밀도를 정확히 계산할 수 있지만, 공식에는 야코비안 행렬식이라는 보정항이 반드시 따라붙는다. 부피가 국소적으로 늘거나 줄어드는 만큼을 보정해야 하기 때문이다. 문제는 n×n 행렬의 행렬식이 소박하게는 세제곱 시간이 든다는 점이다. 따라서 f는 가역이면서 표현력이 크고 동시에 계산 가능해야 한다는 세 조건을 모두 만족해야 한다.

강의가 제시하는 두 번째 전략은 발상을 뒤집는 것이다. 먼저 다루기 쉬운 야코비안 구조를 정해 놓고 거기에 맞는 변환을 설계하는 방식이다. i번째 출력이 자기보다 앞선 성분에만 의존하도록 만들면 야코비안의 한쪽 삼각형이 전부 0이 되고, 삼각행렬의 행렬식은 대각 성분의 곱이므로 선형 시간에 구할 수 있다. 이 조건이 자기회귀 모델의 의존 구조와 닮았다는 점이 뒤에서 두 계열을 잇는 다리가 된다.

구체적인 사례로 NICE와 RealNVP가 나온다. NICE의 덧셈 결합 층은 입력을 두 부분집합으로 나눠 앞쪽은 항등 변환으로 통과시키고, 뒤쪽에는 앞쪽만을 입력으로 받는 신경망의 출력을 더한다. 역변환은 더한 값을 빼면 그만이라 어떤 신경망을 써도 가역이며, 야코비안은 삼각이고 대각이 모두 1이라 행렬식이 항상 1인 부피 보존 변환이 된다. RealNVP는 여기에 학습되는 배율 항을 추가해 부피 보존 제약을 풀었고, 강의는 이 모델이 얼굴과 실내 사진을 훨씬 실감 나게 생성하고 잠재공간 보간까지 가능함을 보여 준다. 다만 잠재변수와 데이터의 차원이 같아야 한다는 제약이 표현 학습에는 불리하게 작용한다고 덧붙인다.

강의 후반부는 자기회귀 모델과 흐름 모델의 관계를 정리한다. 가우시안 자기회귀 모델에서 샘플링하는 절차 자체가 z에서 x로 가는 가역 변환이므로, 이를 그대로 흐름 층으로 볼 수 있다. 이것이 마스크 자기회귀 흐름(MAF)이며, 순방향 생성은 순차적이라 느리지만 역방향은 병렬 계산이 가능해 학습이 빠르다. 반대로 역자기회귀 흐름(IAF)은 평균과 분산을 x가 아닌 z에서 계산해 생성이 빠르고 학습이 느리다. 강사는 두 모델이 서로 전치 관계에 있다고 설명하며, RealNVP는 성분 하나가 아니라 덩어리 단위로 처리하는 IAF의 근사로 볼 수 있다고 정리한다.

마지막 5분은 두 성질을 합치는 실용적 결말이다. 웨이브넷은 초당 수만 개의 오디오 샘플을 하나씩 순차 생성해야 해 매우 느리다. 해법은 확률 밀도 증류다. 먼저 웨이브넷을 최대 가능도로 학습해 교사로 삼고, 생성이 빠른 IAF를 학생으로 두어 두 분포 사이의 KL 발산을 최소화한다. IAF는 자기가 만든 표본의 밀도를 빠르게 평가할 수 있고 교사도 그 표본의 밀도를 평가할 수 있어 증류에 필요한 조건이 모두 충족된다. 그 결과가 병렬 웨이브넷이고, 실제로 생성 속도를 최대 천 배까지 끌어올렸다.

주요 인사이트

  • 정규화 흐름의 어려움은 이론이 아니라 계산에 있다. 변수 변환 공식 자체는 정확하지만, 행렬식을 빠르게 구할 수 있도록 신경망 구조를 미리 제약해야 한다는 점이 이 계열의 근본 부담이다.
  • '좋은 함수를 설계한 뒤 계산법을 찾는다'가 아니라 '계산하기 쉬운 야코비안을 먼저 정한 뒤 함수를 만든다'는 역방향 설계가 이 강의의 핵심 발상이다.
  • 결합 층에서 신경망 자체는 가역일 필요가 없다. 전체 변환이 가역이면 되기 때문에, 내부에는 어떤 구조의 신경망이든 자유롭게 쓸 수 있다.
  • MAF와 IAF의 장단점이 정확히 대칭이라는 관찰이 곧 해법이 됐다. 학습에 유리한 모델로 훈련하고 생성에 유리한 모델로 증류하는 구성이 병렬 웨이브넷의 뼈대다.
  • 강사는 정규화 흐름이 이론적으로 훌륭하지만 같은 화질을 내려면 훨씬 큰 계산 자원이 필요해 널리 쓰이지는 않는다고 솔직하게 평가한다.

자주 묻는 질문

정규화 흐름에서 야코비안 행렬식이 왜 필요한가요?

변수를 z에서 x로 옮기면 분포가 차지하는 부피가 국소적으로 늘거나 줄어들기 때문입니다. 전체 확률이 유지되려면 그 부피 변화만큼 밀도를 보정해야 하고, 그 보정 계수가 역변환 야코비안의 행렬식입니다.

NICE의 덧셈 결합 층은 왜 항상 가역인가요?

입력을 두 부분집합으로 나눈 뒤 첫 번째 집합은 그대로 통과시키고, 두 번째 집합에는 첫 번째 집합만을 입력으로 받는 신경망의 출력을 더하기 때문입니다. 역방향에서는 그대로 전달된 첫 집합으로 같은 신경망 출력을 다시 계산해 빼면 되므로, 신경망이 어떤 구조든 역변환이 성립합니다.

MAF와 IAF의 차이는 무엇인가요?

MAF는 평균과 분산을 x에서 계산해 역방향(가능도 평가)이 병렬이라 학습이 빠르지만 생성은 순차적이라 느립니다. IAF는 같은 값을 z에서 계산해 생성이 빠른 대신 가능도 평가와 학습이 느립니다. 강의는 두 모델을 서로의 전치라고 설명합니다.

병렬 웨이브넷은 어떻게 생성 속도를 높였나요?

최대 가능도로 학습한 웨이브넷을 교사로 두고, 생성이 빠른 IAF를 학생으로 삼아 두 분포의 KL 발산을 최소화하는 확률 밀도 증류를 적용했습니다. 학습이 끝나면 IAF에서 표본을 뽑기만 하면 되므로, 강의에 따르면 속도가 최대 천 배까지 개선됐습니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식