AI VIDEO BRIEFING

노멀라이징 플로우란: 가역 변환과 야코비안 행렬식으로 복잡한 분포를 만드는 생성모델 원리

단순한 가우시안을 가역 변환의 연쇄로 복잡한 분포로 바꾸는 노멀라이징 플로우를 변수변환 공식과 야코비안 행렬식, 결합층을 통해 설명하고, 우도를 정확히 계산한다는 점에서 VAE·GAN과 어떻게 다른지 짚습니다.

단순한 분포를 복잡한 분포로 바꾸는 마법: 노멀라이징 플로우 이해하기 영상 대표 이미지

핵심 메시지

  • 노멀라이징 플로우는 단순한 분포(예: 구형 가우시안)를 가역 변환의 연쇄로 복잡한 분포로 바꿔 만드는 기법이다.
  • 변환 후 밀도는 단순히 P(F⁻¹(x))가 아니라, 변수변환 공식에 따라 야코비안 행렬식의 크기를 곱해야 올바른 확률밀도가 된다.
  • 야코비안 행렬식은 변환이 공간을 국소적으로 얼마나 늘리거나 줄이는지를 나타내며, 밀도가 적분해서 1이 되도록 보정하는 역할을 한다.
  • VAE는 우도의 하한(ELBO)만, GAN은 우도 평가 자체를 피하는 반면, 플로우는 가역성 덕분에 로그우도를 정확히 계산하고 사후추론도 정확히 할 수 있다.
  • 결합층(coupling layer)으로 야코비안을 삼각행렬로 만들면 행렬식이 대각원소의 곱이 되어 계산이 쉬워지고, 복잡한 신경망을 써도 전체 변환은 쉽게 역변환된다.

쉽게 이해하기

노멀라이징 플로우는 기계학습에서 단순한 확률분포를 변형해 복잡한 분포를 구성하는 기법으로, 특히 생성 모델링에 활용된다. 출발점은 표본추출과 밀도 계산이 모두 쉬운 단순한 연속 확률변수 Z, 예컨대 구형 가우시안이다. 핵심 아이디어는 이 단순한 분포를 어떤 함수 F로 더 복잡한 분포로 변환하되, F를 여러 가역 변환의 합성으로 구성해 전체 변환도 가역이 되게 하는 것이다. 그러면 임의의 X에 대해 그것을 만들어낸 Z가 정확히 하나로 정해진다.

그렇다면 주어진 X의 밀도는 어떻게 구할까? 단순히 P(x) = P(F⁻¹(x))라고 생각하기 쉽지만 일반적으로 이는 틀리며, F의 거동에 따라 달라진다. 이를 정확히 다루는 것이 변수변환 공식이다. 가역이고 미분 가능한 함수 F에 대해 P(X)는 P(F⁻¹(x))에 F⁻¹의 야코비안(1차 편미분들의 행렬) 행렬식의 크기를 곱한 값과 같다.

야코비안 행렬식의 의미는 직관적이다. 그것은 변환이 공간을 국소적으로 얼마나 팽창하거나 수축하는지를 나타낸다. 예를 들어 2차원에서 대각 성분이 각각 2인 변환은 양쪽 차원을 2배로 늘려 넓이를 4배로 키운다. 확률밀도는 정의역 전체에서 적분하면 항상 1이 되어야 하므로, 넓이가 4배가 된 영역에서는 각 점의 밀도가 1/4이 되어야 한다. 야코비안 행렬식은 바로 이 보정을 담당한다(방향 보존 여부와 무관하게 크기만 중요하다).

이렇게 가역 변환들을 연쇄로 이어 단계마다 밀도를 다시 정규화하는 것이 '노멀라이징 플로우'라는 이름의 유래다. 이 틀은 생성 모델에서 특히 유용한데, Z를 사전분포를 가진 잠재변수로, X를 관측변수로 두고 변환 F의 우도를 직접 최대화할 수 있다. 로그를 취하면 곱이 합으로 풀려, 각 중간 변환의 로그 야코비안 행렬식의 합으로 로그 주변우도를 정확히 계산할 수 있다.

이 점이 다른 생성 모델과의 결정적 차이다. VAE는 로그우도의 하한인 ELBO만 최적화할 수 있고, GAN은 우도 평가를 아예 피하고 판별자·생성자의 미니맥스 목적을 최적화한다. 반면 플로우는 우도를 정확히 평가하고, F의 가역성 덕분에 주어진 X를 만든 유일한 Z를 찾는 정확한 사후추론까지 보장한다. 다만 고차원 변환의 야코비안 행렬식 계산은 비쌀 수 있어, 결합층으로 야코비안을 삼각행렬로 만드는 기법(NICE, RealNVP 등)이 쓰인다.

주요 인사이트

  • 노멀라이징 플로우의 본질은 '쉬운 분포에서 표본을 뽑은 뒤 가역 변환으로 흘려보내며 단계마다 밀도를 재정규화하는 것'이다. 가역성이 이 모든 것을 가능하게 하는 열쇠다.
  • 야코비안 행렬식의 크기를 곱하는 이유는 변환이 공간을 늘리거나 줄인 만큼 밀도를 보정해 적분값이 1로 유지되게 하기 위함이다. 방향(부호)은 중요하지 않고 크기만 본다.
  • 플로우가 로그우도를 정확히 계산할 수 있다는 점은 하한만 다루는 VAE, 우도 평가를 피하는 GAN과 구별되는 강력한 장점이다.
  • 결합층은 입력을 두 부분으로 나눠 한쪽은 그대로 복사하고 다른 쪽만 변환해 야코비안을 삼각행렬로 만든다. 덕분에 변환 함수가 깊은 신경망이어도 전체는 쉽게 역변환되고 행렬식 계산이 단순해진다.
  • NICE의 덧셈형 결합층은 야코비안 행렬식이 1이라 부피를 보존하는데, 데이터 분포를 유연하게 맞추려면 팽창·수축이 필요하므로 대각 스케일링 행렬 s를 도입한다. s가 0에 가까워지면 해당 잠재차원은 사실상 제거되어 데이터의 다양체를 학습하는 효과가 있다.

자주 묻는 질문

노멀라이징 플로우의 기본 아이디어는 무엇인가요?

가우시안처럼 표본추출과 밀도 계산이 쉬운 단순한 분포를 가역 변환들의 연쇄로 흘려보내, 단계마다 밀도를 재정규화하면서 복잡한 목표 분포로 바꾸는 것입니다.

변환된 분포의 밀도를 왜 그냥 P(F⁻¹(x))로 쓰면 안 되나요?

변환이 공간을 국소적으로 늘리거나 줄이기 때문입니다. 변수변환 공식에 따라 야코비안 행렬식의 크기를 곱해 이 팽창·수축을 보정해야 적분값이 1인 올바른 확률밀도가 됩니다.

노멀라이징 플로우는 VAE·GAN과 어떻게 다른가요?

VAE는 로그우도의 하한(ELBO)만, GAN은 우도 평가 자체를 피합니다. 반면 플로우는 가역성 덕분에 로그우도를 정확히 계산하고, 주어진 X를 만든 유일한 Z를 찾는 정확한 사후추론도 가능합니다.

원문과 출처

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

YouTube 원본 영상 보기 ↗

관련 AI 소식

#노멀라이징플로우#생성모델#야코비안#변수변환#결합층