현대 기술의 정점에 선 생성형 인공지능 (Generative AI)은 그 발전 속도가 눈부시게 빠르지만, 본질적으로는 데이터의 복잡성을 해석하려는 깊은 수학적 사고를 기반으로 합니다. 이 포스팅은 연세대학교 컴퓨터과학과 4학년 전공 과목인 ‘Generative AI’ 수업의 교안을 길잡이 삼아, 제가 이 분야를 탐험하며 기록한 치열한 학습과 성찰의 산물입니다.
학부 과정의 종착점에서 마주한 AI는 겉핥기로만 알았던 단순한 공학적 구현을 넘어섰습니다. 저는 교안이 제시하는 정석적인 이론을 뼈대 삼았고, 그 행간에 숨겨진 “왜?”라는 근원적인 질문을 끊임없이 던지며 스스로 답을 찾아가는 과정을 이 글에 오롯이 담았습니다.
본 포스팅은 기초적인 확률분포 (Probability Distribution)와 통계적 개념들이 “생성형 AI”라는 뭉퉁그려진 카테고리 안의 여러 특징적인 모델들에서 정교한 수식으로 어떻게 논리적 연결고리를 형성하며 확장되는지를 파고들었습니다. 더불어, 기존에 파편화되어 있던 전공 지식들을 생성형 AI라는 하나의 거대한 맥락 안에서 재조립하는 과정을 거쳤습니다. 이를 통해 각 모델이 이전 연구의 한계를 극복하기 위해 도입한 핵심적인 통찰 (Insight)을 저만의 언어와 관점으로 해석하고자 노력했습니다.
매일 새로운 기술이 쏟아지는 상황에서, 기본으로 돌아가 확률 분포를 되짚고 특정 논문의 수식을 깊이 파고드는 과정은 때때로 ‘정체되어 있는 것은 아닐까?’ 하는 질문을 던지게 했습니다. 그러나 이 노트를 끝까지 진행하게 만든 동력은 수학적 모델링의 세계를 알아가는 순수한 즐거움, 현재의 통찰을 미래의 나와 다른 이들과 공유하고픈 마음, 그리고 이왕 시작한 것은 끝내고야 말겠다는 미련의 복합체였습니다.
따라서 이 글은 단순한 정보의 요약을 넘어, 학부생으로서의 학구열과 예비 엔지니어로서의 탐구심 및 분석력, 그리고 지식의 학도로서 세상을 이해하고자 하는 노력과 결심이 결합된 결과물입니다. 어쩌면 미숙함으로 인해 정확하지 않은 내용이 포함되어 있을 수 있습니다. 다만 그럼에도, 이 포스팅이 같은 길을 걷는 모든 이들에게 복잡한 기술 너머의 본질을 탐구하는 이정표가 되기를 진심으로 희망합니다.
1. Background
1.1. Probability
확률(Probability)은 통계 및 기계 학습의 가장 근본적인 개념 중 하나로, 어떤 사건이 발생할 가능성을 수치로 나타내는 척도이다. 기본적인 의미는 특정 사건(Event)이 일어날 가능성을 0과 1 사이의 숫자로 표현한 것으로, 0은 절대로 일어나지 않음을, 1은 반드시 일어남을 의미한다.
이러한 기본적 의미에서 더 나아가 우리는 확률 공간(Probability Space)과의 관계를 통해 서술할 수 있다.
- 표본 공간 (Sample space )
- 발생 가능한 모든 사건(Event)들의 집합
- 사건 공간 (Event space )
- 표본 공간 의 부분 집합인 모든 사건들의 집합
- 확률 법칙 (Probability Law )
- 사건 공간 의 각 사건(Event)에 대해 0에서 1 사이의 값(확률)을 할당하는 함수
Example: 주사위 굴리기
유효한 확률 법칙 는 다음의 세 가지 확률 공리 (Probability Axioms)를 반드시 만족해야 한다. 이 공리들은 확률이 가져야 할 기본적인 속성들을 정의하며, 모든 확률 계산의 기초가 된다.
-
- Non-Negative: 어떤 사건 의 확률 는 항상 0보다 크거나 같아야 한다. 이는 확률이 음수일 수 없음을 의미하며, 사건이 발생할 가능성은 최소 0(절대 일어나지 않음)이다.
-
- Normalization: 표본 공간 (가능한 모든 결과들의 집합, 즉 반드시 일어나는 사건)의 확률은 항상 1이다. 이는 모든 가능한 결과들이 일어날 총확률이 1(100%)임을 의미한다.
-
- Additivity for Disjoint Events: 만약 사건 들이 서로 배타적(disjoint, 즉 동시에 일어날 수 없는) 사건들이라면, 이 사건들 중 적어도 하나가 일어날 확률(합집합의 확률)은 각 사건의 확률을 단순히 합한 것과 같다.
1.2. Joint & Conditional Probability
- 결합 확률 (Joint Probability)
- 두 개 이상의 사건(여기서는 A와 B)이 동시에 발생할 확률
- 조건부 확률 (Conditional Probability)
- 특정 사건 가 이미 발생했다는 전제 하에 다른 사건 가 발생할 확률로 사건 가 사건 의 발생 가능성에 영향을 미칠 때 사용한다.
이때, 결합 확률과 조건부 확률 사이의 관계를 나타내는 규칙이 연쇄 법칙 (Chain Rule)이다.
이처럼 어떠한 사건들의 결합확률을 계산할 때, 한 사건의 조건부 확률과 다른 사건의 주변 확률 (Marginal Probability) 을 곱하여 구할 수 있다. (이 주변 확률은 뒤에서 설명한다.)
1.3. Independence
두 사건 가 있을 때, 한 사건 가 다른 사건 의 발생 가능성에 영향을 미치지 않으면(반대의 경우도 마찬가지) 사건 를 서로 독립(Independence) 이라 한다.
이렇게 사건 가 독립이라면, 두 사건 가 동시에 일어날 결합 확률 는 각 사건이 개별적으로 발생할 확률 , 의 곱과 같고 그 역도 성립한다.
이 공식은 두 사건이 독립일 때에만 성립하며, 사건의 독립에 있어 가장 핵심적인 정의이다.
1.4. Marginalization & Law of Total Probability
두 개념은 결합 확률 분포로부터 특정 변수의 확률을 계산하는 데 사용되는 중요한 도구로 주변화(Marginalization) 가 있다.

결합 확률 분포에서 관심 없는 확률 변수가 가질 수 있는 모든 값에 대해 확률을 합산하거나 적분하여 해당 변수의 영향을 제거할 수 있다.
이처럼 결합 확률 분포에서 특정 변수에 대한 정보를 유지한 채, 다른 변수들을 제거하여 해당 변수의 주변 확률 분포를 얻는 과정을 주변화 (Marginalization) 라 한다.
전체 확률의 법칙(Law of Total Probability) 은 이러한 주변화의 특별한 케이스 또는 확장으로 볼 수 있다. 주변화 공식 에서 에 체인 룰을 적용한 것이 그것이다.
전체 확률의 법칙은 특정 사건 의 확률을 구할 때에, 모든 가능한 다른 사건 에 대해 각 가 발생활 확률 와 그 사건이 일어났을 때 의 조건부 확률 을 곱하여 합산하는 방식으로 구할 수 있음을 보여준다.
이는 복잡한 상황에서 특정 사건 의 확률 를 직접적으로 구하기 어려울 때, 사건 에 영향을 미치는 사건 를 관측함으로써 의 확률을 추론할 수 있게 해준다.
1.5. Bayes’ Rule
베이즈 규칙 (Bayes’ Rule) 은 새로운 증거가 나타났을 때, 어떤 사건에 대한 믿음(확률)을 어떻게 업데이트해야 하는지를 설명하는 핵심적인 확률 이론이다. 특히, 사전 지식(prior)과 새로운 관측치(likelihood)를 결합하여 사후 확률(posterior)을 계산하는 데 사용된다.
여기서 사용되는 사전 확률(Prior)과 가능도(Likelihood), 사후 확률(Posterior)의 정확한 정의를 짚고 넘어가야 할 필요가 있다.
위 식에서 를 파라미터 로, 를 데이터 로 다시 나타내면 아래와 같다.
사전 확률 (Prior) :
라는 사건(증거)이 관측되기 전에 라는 사건이 발생할(가설이 사실일) 확률로, 새로운 정보(증거)가 없었을 때 우리가 가지고 있던 초기 믿음이나 지식을 반영한다.
예를 들어, 동전을 던졌을 때 앞/뒷면(1/0)에 대한 확률 를 모델링하고 싶을 때, 동전의 앞/뒷면이 나올 확률을 전혀 모른다면, 에 대한 사전 확률(Prior)로 의 균등 분포를 사용할 수 있을 것이다.
반대로 우리가 과거의 경험이나 전문가의 지식으로 인해 동전의 앞/뒷면이 꽤나 균등하게 나온다는 사실을 알고 있다면, 에 대한 사전 확률(Prior)로 평균이 0.5 근처인 베타 분포()를 사용할 수 있을 것이다.
가능도 (LIkelihood) :
우도라고도 불리는 가능도는 라는 사건이 발생할(가설이 사실일) 때, 라는 사건(증거)이 관측될 확률로, 특정 가설 하에서 현재 관측된 데이터가 얼마나 가능성이 있는지를 나타낸다.
우리는 사전 확률 분포(Prior)로써 우리의 파라미터 에 대한 믿음 혹은 사전 지식을 나타냈다. 는 이러한 우리의 믿음이 사실일 때 즉, 파라미터 가 실제로 그 분포를 띨 때에 우리가 관측한 데이터 가 나타날 확률을 의미한다.
사후 확률 (Posterior) :
라는 사건(증거)이 관측된 후에 라는 사건이 발생할(가설이 사실일) 확률로, 새로운 정보(증거)로 업데이트 된 사건(가설)의 확률을 나타낸다.
생성형 모델에서 우리가 최종적으로 얻고자 하는 것으로, 우리는 데이터 를 관측하고 이를 모델에 넣어, 이 데이터셋을 가장 잘 설명하는 파라미터 가 어떠한 확률분포를 가지는지 아는 것이 목적이다.
동전을 던지는 상황에서 우리가 모델에서 얻고자 하는 파라미터 가 결과의 평균 라 하자. 사후 확률 는 동전을 던진 결과로부터 결과의 평균 가 가지는 확률분포를 띨 것이고, 우리는 실제 평균 가 이 확률 분포에서 확률값이 가장 높은 지점에 위치할 것임을 유추할 수 있다.
Update with Bernoulli Trial
다음은 베르누이 시행(e.g. 동전 던지기)에서 우리가 사전 확률을 어떻게 설정하는지에 따라 이후 관측 데이터 에 따라 업데이트된 사후확률이 어떻게 움직이는지를 시각화한 그래프이다. 베타분포는 베르누이 시행의 누적에 따른 확률 분포 변화를 잘 보여준다.
여러가지 베타 분포 에서 동전히 공정할 것이라 믿는 우리의 사전지식(믿음)만큼 값이 높게 설정되어있다.
이후 10번의 동전 던지기에서 앞면이 7번 관측되었고 이를 이용해 사후확률을 업데이트한다. 사전 지식이 없을 수록(즉, 이전에 동전의 확률에 대한 믿음이 없을수록, 위 그래프에서 ) 사후확률은 온전히 관측 데이터 에만 의존하여 결정된다. 반대로 믿음이 강할수록 (위 그래프에서 ) 관측 데이터 가 업데이트하는 사후확률의 움직임이 움츠러들어 이동폭이 적은 것을 볼 수 있다.
이처럼 사전 확률이 어떻게 설정되는지에 따라 업데이트된 사후 확률도 바뀐다.
증거 (Evidence) / 주변 가능도 (Marginal Likelihood) :
라는 사건(증거)이 관측될 전체 확률, 모든 가능한 가설에 대해 가능도와 사전 확률을 곱한 값을 합산(이산)하거나 적분(연속)하여 계산한다.
매개변수 를 추정하는 데만 관심이 있다면, 자체는 에 의존하지 않으므로 종종 생략하거나 무시되어 비례식의 형태로만 나타내기도 한다.
하지만 다른 경우에는 다음의 의미를 가지고 중요하게 다루어질 수 있다.
정규화 상수 (Normalizing Constant)
가장 기본적으로, 베이즈 규칙에서 사후 확률 가 유효한 확률 분포가 되도록 모든 가능한 값에 대한 확률의 합이 1이 되도록 만들어준다.
파라미터 의 모델 아래에서, 데이터 가 관측될 전반적 확률
이므로, 는 전체 확률의 법칙에 따라 모델의 파라미터가 일 때,그에 대응하는 가 관측될 확률을 합산하여 표현할 수 있다. 이는 파라미터 의 모델에서 데이터 가 얼마나 그럴듯하게 관측되는지, 모델이 데이터 를 얼마나 잘 설명하고 있는지를 보여준다.
이는 모델 간 비교에도 유용하게 사용될 수 있다. 서로 다른 모델 에 대해 라면, 모델 이 데이터 를 더 잘 설명하고 있음을, 데이터 는 모델 에서 더 잘 생성됨을 알 수 있다.
오컴의 면도날(Occam’s Razor) 원칙을 반영
오컴의 면도날 원칙은 여러 가설이나 설명이 존재할 때, 가장 간단한 설명이 가장 좋은 설명일 가능성이 높다는 아이디어로, 이는 본질적으로 단순성(Simplicity)을 추구하는 철학적 원칙이다.
데이터 에 비해 복잡한 모델(파라미터 가 많거나, 넓은 범위의 값을 가짐)을 생각해보자.
이 모델에서는 파라미터 가 가질 수 있는 표본 공간(사전 확률의 범위) 자체가 굉장히 넓다. 이 모델은 충분히 많고 넓은 매개변수 를 가지기에, 그 표본 공간 안에서 어쩌면 주어진 데이터 에 정확히 부합하는 파라미터 를 가질 수 있다. 이때 모델은 매우 높은 가능도 를 보일 것이다.
그러나 이 복잡한 모델은 너무나 유연하여 거의 모든 종류의 데이터를 다 잘 설명할 수 있기 때문에, 우리의 데이터 에 딱 맞는 값은 넓은 표본 공간 안의 극히 일부분에서만 나타날 가능성이 높다. 여기에 주변 가능도를 계산하는 과정에서 각 가능도 에 사전 확률 을 곱하고 모든 에 대해 적분하면 매우 높았던 값이 넓은 표본 공간 전체로 희석되어 버린다. 결과적으로 주변 가능도 는 생각보다 높지 않을 수 있다.
하지만, 반대로 적당한 수의 파라미터 를 가지는 모델은 적합된 가능도 자체는 낮아도, 데이터 를 잘 설명하는 는 비교적 전체 공간에 비해 넓은 공간에 모여있을 확률이 높다. 따라서 주변 가능도 는 예상보다 높을 수 있다.
주변 가능도는 이러한 과정을 통해, 데이터에 과적합되지 않고 본질적으로 더 간단한 모델을 선호하도록 하는 오컴의 면도날 원칙을, 수식적으로 구현하는 패널티 역할을 수행할 수 있다.
1.6. Probability Distribution Statistics
확률 분포는 다음과 같은 중심이 되는 통계량(Statistics) 을 가진다.
1.6.1. Mean
평균(Mean) 이라고도 부르는 기댓값(Expectation) 은, 확률 분포의 중심 경향을 나타내는 통계량으로 다음과 같은 공식으로 나타난다.
이러한 기댓값은 3가지 주요한 속성을 가진다.
- Linearity (선형성) :
- 두 확률 변수 의 합에 대한 기댓값은 각 확률 변수의 기댓값의 합과 같다.
- Scale (스케일) :
- 확률 변수 에 스케일 상수 를 곱한 것의 기댓값은 의 기댓값에 를 곱한 것과 같다.
- Shift (이동) :
- 확률 변수 에 상수 를 더한 것의 기댓값은 의 기댓값에 를 더한 것과 같다.
1.6.2. Variance
분산(Variance) 은 확률 분포에서 데이터가 평균으로부터 얼마나 퍼져 있는지를 나타내는 통계량이다.
내부에 있는 항에서 제곱은, 편차의 합산 과정에서 부호에 의해 분산값이 상쇄되는 것을 막고, 제곱항을 그대로 유지하여 멀리 떨어진 값에 더 큰 가중치를 부여한다.
또한, 분산은 다음의 3가지 주요한 속성을 가진다.
- Moment (모멘트) :
- 원래의 분산식 를 전개하면 얻을 수 있는 식으로, 분산을 계산할 때 사용되는 편리한 형태이다.
- Scale (스케일) :
- 확률 변수 에 상수 를 곱하면, 분산은 의 제곱을 곱한 값 이 된다.
- Shift (이동) :
- 확률 변수 에 상수 를 더하거나 빼더라도(데이터 분포 전체를 이동시키는 것), 분산은 변하지 않는다.
1.6.3. Moment
모멘트(Moment) 는 확률 분포의 다양한 특징과 형태를 설명하는 데 사용되는 중요한 통계적 척도이다. “Moment”라는 단어 자체가 물리학에서 물체의 회전하는 경향을 설명하는 데 사용되는 것과 유사하게, 확률 분포의 ‘형태’를 설명하는 데 사용된다고 생각하면 편하다.
차 모멘트(-th Moment) 는 기댓값 내부에 확률 변수의 차 항을 포함하며, 일반적으로 원점(0)을 기준으로 하는 원점 모멘트 (Raw Moments / Moments about the Origin) 와 평균 를 기준으로 하는 중심 모멘트 (Central Moments / Moments about the Mean) 로 나뉜다.
이러한 모멘트는 차수 에 따라 분포의 다른 특성을 나타내며, 특히 의 모멘트가 중요한 특성을 나타낸다.
1차 모멘트 ( ) : ,
1차 원점 모멘트는 이전에 살펴본 기댓값(평균)으로 분포의 중심을 나타낸다. 따라서 1차 중심 모멘트는 모든 분포에서 0이다.
2차 모멘트 ( ) : ,
2차 모멘트의 주요 특성은 중심 모멘트에서 분산의 형태로 나타난다. 2차 원점 모멘트는 그 자체로 의미를 갖기 보다는, 분산을 사용할 때 사용된다.
3차 모멘트 ( ) :
3차 모멘트부터는 중심 모멘트가 중요한 지표로 사용된다. 3차 중심 모멘트는 분포의 기울어진 정도(비대칭도, 왜도, Skewness) 를 알려준다.
- 만약 가 양수라면 분포의 오른쪽 꼬리가 왼쪽 꼬리보다 길고 두터우며, 대부분의 데이터가 왼쪽에 몰려있다.
- 만약 가 음수라면 분포의 왼쪽 꼬리가 오른쪽 꼬리보다 길고 두터우며, 대부분의 데이터가 오른족에 몰려있다.
3차 모멘트가 어떻게 분포의 기울어짐을 보여주는가
대칭인 단변량 가우시안 분포에서 샘플링된 개의 샘플 을 예시로 생각해보자. 이 샘플링 과정은 매우 정확하여, 추출된 표본의 분포는 가우시안의 통계적 특성 을 그대로 따르고 있다.
이때, 비대칭도 에서 표준편차 는 데이터 의 기댓값으로 해석할 수 있다. 이 분포를 표준정규분포 로 바꾸면, 비대칭도는 으로 표현된다.
비대칭도의 식은 차항으로 이루어져 있으므로 인 데이터는 비대칭도에 기여하는 비율이 낮고, 인 데이터(일종의 이상치)에 대해서는 비대칭도에 기여하는 비율이 급격히 증가할 것이다. 또한 전체 식은 기함수의 특징을 가지므로 이는 평균으로부터 떨어진 방향의 부호를 보존한다.
이제 우리가 가정한 가우시안 분포에서 인 이상치 가 추가된다고 가정해보자.
가 비대칭도에 기여하는 정도는 이다. 그런데 이상치 는 비대칭도에만 영향을 미칠 뿐만 아니라 평균 또한 만큼 자신의 방향(여기서는, 양수 방향)으로 끌어당긴다.
가 오른쪽(양수 방향)으로 업데이트되어, 이제 기존의 개 샘플 중 평균 근처의 데이터 상당수는 에 대해 음수항을 가지게 된다. 그러나 이들은 원래 평균 근처에 분포했기 때문에 로 비대칭도 에 지배적인 영향을 끼치는 에 비해 그 영향이 매우 작다.
결국 실질적으로 비대칭도에는 큰 변화를 주지 못하고 비대칭도가 양수로 유지된다.
이처럼 평균을 기준으로 한쪽 방향에 존재하는 이상치는 3차 모멘트를 포함하는 비대칭도를 자신의 부호 방향으로 훨씬 크게 끌어오는 동시에 평균을 자신 쪽으로 이동시킨다. 이는 전체적인 데이터 분포가 평균을 기준으로 이상치의 반대편으로 치우친 것처럼 보이게 하고, 이상치가 있는 곳의 분포(꼬리)는 이상치의 존재로 인해 반대편 분포(꼬리)보다 두터워지는 효과를 갖는다.
결론적으로, 비대칭도의 부호는 해당 분포에서 이상치가 어디에 존재하는지를 가리키며 그 반대에 데이터 분포가 모여있음을 알려준다. 또한 이를 통해 비대칭도의 부호 방향에 평균이, 부호 반대 방향에 최빈값이, 그 사이에 중앙값이 있음을 알 수 있다.
4차 모멘트 ( ) :
4차 중심 모멘트 는 분포의 꼬리 부분의 두께와 정점의 뾰족함을 측정하는 데 사용되며, 첨도 라는 용어로 더 잘 알려져 있다. 또한 공식에서 보이듯이 3차 중심 모멘트와 같이 로 표준화된 형태를 주로 사용하며, 첨도의 비교 및 분류를 위해 정규분포의 첨도 을 기준으로 하는 초과 첨도(Excess Kurtosis) 를 사용하기도 한다.
- 초과 첨도가 0인 경우 () 분포의 정점과 꼬리가 정규분포와 유사하다.
- 초과 첨도가 양수인 경우 () 분포의 정점은 뾰족하고 꼬리가 두껍다.
- 초과 첨도가 음수인 경우 () 분포의 정점은 뭉툭하고 꼬리가 얇다.
4차 중심 모멘트가 어떻게 분포의 뾰족함을 측정하는가
비대칭도 설명과 유사하게, 표준정규분포 를 기준으로 첨도를 표현해보자.
3차 모멘트와 달리, 차 항인 은 짝수 차수로, 평균 로부터 떨어진 방향(양수 또는 음수)과 상관없이 편차의 크기()에만 반응하여 항상 양수 값을 가지며, 표준편차를 벗어난 샘플 에 대해 보다 훨씬 급격히 증가한다. 이는 평균에서 멀리 떨어진 데이터(극단값 또는 이상치)가 첨도 값에 비례적으로 매우 크게 기여한다는 것을 의미한다.
앞선 예시에서 표준정규분포에 인 양의 이상치 가 추가되었다고 가정하자.
이 이상치 하나가 첨도에 기여하는 정도는 이고, 이는 크기가 같고 부호가 반대인 이상치 에 대해서도 마찬가지이다. 이러한 이상치(극단값)가 많거나 그 크기가 클수록, 항의 합은 커지고 첨도 값은 높아진다. 이상치의 존재로 인해 분포의 꼬리가 두꺼워지고(heavy tails), 평균에서 멀리 떨어진 값들이 나타날 확률이 높아진다.
또한, 전체 확률의 합은 로 고정되어 있으므로, 꼬리 부분이 두꺼워지면 자연스럽게 중앙 부분(정점)이 더 뾰족해지거나(peaked), 어깨 부분이 움푹 들어가게 된다. 데이터가 중앙에 몰려있거나, 아니면 아주 멀리 떨어져 있거나 둘 중 하나인 경향을 보이게 되는 것이다. (가 고정임을 생각해보면, 같은 분산에서 평균에서 멀리 떨어진 이상치를 가지면서 를 유지하려면 나머지 값은 평균 부근에 모여있어야 함을 알 수 있다.)
반대로, 분포가 정규 분포보다 훨씬 고르게 퍼져 있고 극단값이 거의 없다면, 항의 기여가 상대적으로 작아져 첨도 값은 낮아지고, 꼬리는 얇아지며 정점은 완만해진다.
이렇게 4차 중심 모멘트인 첨도는 분포의 양극단에 위치한 값들(이상치)의 존재 여부와 그 크기에 매우 민감하게 반응하는 특성이다.
이러한 민감성은 분포의 꼬리 부분이 얼마나 두꺼운지(극단값의 발생 가능성)와 그에 따라 정점이 얼마나 뾰족한지(중앙 집중도)를 정량적으로 알려주는 핵심 지표가 된다.
첨도의 활용
첨도는 특히 금융 데이터 분석에서 위험을 평가하거나, 통계 모델링에서 데이터의 분포 가정을 검증하는 데 매우 중요한 도구로 활용된다.
예를 들어 금융 시장의 수익률 분포는 대부분의 날에는 변화가 적지만, 갑작스러운 큰 변동이 나타나는, 첨도가 높은 경향을 띤다.
1.7. Famous Distributions
1.7.1. Bernoulli Distribution
베르누이 분포(Bernoulli Distribution) 는 결과가 두 가지 중 하나(성공/실패 등)로만 나타나는 확률 실험인 베르누이 시행 (Bernoulli Trial) 1회의 결과를 모델링하는 이산 확률 분포로 다음의 확률 질량 함수(Probability Mass Funtion, PMF)를 가진다.
- 입력()
- 베르누이 분포의 확률 변수 는 0 또는 1의 이산적인 값을 가진다. ()
- 일반적으로 은 성공, 은 실패를 의미한다.
- 매개변수()
- 베르누이 분포는 성공()이 발생할 확률을 나타내는 단 하나의 매개변수 를 가진다. 따라서 실패 ()가 발생할 확률은 이다.
베르누이 분포의 다음의 통계적 특성을 갖는다.
- 기댓값 (Expectation):
- 베르누이 분포의 기댓값 는 한 번의 베르누이 실험에서 이 나올 확률과 동일하다.
- 분산 (Variance):
- 베르누이 분포의 분산은 일 때 가장 크고, 가 0이나 1에 가까워질수록 작아진다.
1.7.2. Binomial Distribution
이항 분포(Binomial Distribution) 는 성공 확률이 인 베르누이 시행을 회 반복하였을 때 그 결과를 모델링하는 이산 확률 분포로, 다음의 PMF를 갖는다.
베르누이 분포는 베르누이 시행 1회의 결과를, 이항 분포는 베르누이 시행 회의 결과를 모델링한다는 차이점을 잘 기억하자.
- 기댓값 (Expectation):
- 이항 분포의 기댓값 는 전체 시행 횟수 과 성공 확률 를 곱한 값이다.
- 분산 (Variance):
- 베르누이 분포의 분산은 전체 시행 횟수 과 베르누이 시행의 분포 의 분산 의 곱이며, 일 때 가장 크고, 가 0이나 1에 가까워질수록 작아진다.
1.7.3. Gaussian Distribution
정규분포(Normal Distribution) 이라고도 불리는 가우시안 분포(Gaussian Distribution) 는 연속 분포를 모델링할 때 가장 빈번히 등장하는 모델로 다음의 확률밀도함수 (Probability Density Function, PDF) 를 가진다.
가우시안 분포는 우리가 원하는 통계량 를 직접 모수로 설정해 직관적인 분포 모델링이 가능하다.
- 기댓값 (Expectation):
- 분산 (Variance):
다변량 가우시안 분포(Multivariate Gaussian Distribution) 는 이러한 가우시안 분포를 여러 확률변수 에 대해 확장한 분포로, 기댓값 벡터 와 공분산 행렬 를 모수로 정의되는 다음의 PDF를 가진다.
1.8. Covariance Matrix
개의 특징차원을 가지는 다변량 확률 변수 개에 대해 공분산 행렬(Covariance Matrix) 는 어떻게 해석되는지 알아보자.
전체 데이터셋 는 위와 같이 개의 차원(특징)을 가지는 다변량 샘플 개로 이루어진 행렬로 표현될 수 있다. 또한, 특징 차원 하나에 대응하는 열벡터 관점으로 보면 각 열벡터는 해당 특징 차원에서의 샘플에 따른 변동값을 담고 있는 셈이다.
이때, 에서 각 특징 차원(열벡터) 안의 성분들의 평균을 계산한 행벡터 을 뺀 행렬을 이라 하고 을 계산하면 다음과 같다.
이때 계산된 행렬의 요소는 중심(0)으로 이동된 특징벡터 와 의 내적으로 이루어진다.
먼저 행렬의 주대각성분을 살펴보면 각 특징 열벡터와 그 자신과의 내적으로 이루어져 있는데, 이를 풀어서 쓰면 로 해당 특징차원(열벡터)의 분산값임을 알 수 있다.
이제 주대각성분이 아닌 성분들을 보면, 로 이는 곧 서로 다른 두 특징차원의 공분산을 의미한다.
내적되는 열벡터들은 각 샘플 에 대한 해당 특징차원의 값을 담고 있었다. 만약 임의의 두 특징 차원이 서로 비례하는 상관관계를 가지면 이들의 내적은 정비례일 시 양수, 반비례일 시 음수 값을 가지게 된다.
이것이 공분산 행렬이 데이터의 특징 간 상관관계를 표현하는 방식이다. 만약 이들을 일정한 스케일로 정규화시킬 필요가 있다면, 분산을 정규화하여 상관계수를 계산하는 것과 같이 각 공분산을 각각의 특징들의 표준편차의 곱으로 나누어 상관계수 행렬을 구할 수 있다.
공분산 행렬의 특징
일 때, 임의의 벡터 에 대해 의 값을 구하면 다음과 같다.
임의의 벡터 에 대해 기댓값이 항상 0 이상이므로 이는 곧 가 양의 준정부호 행렬 (Positive Semi-Definite Matrix, PSD) 임을 의미하며, 모든 특징들의 분산, 고윳값은 적어도 0 이상임을 보장한다.
또한, 만약 임의의 두 특징이 완벽한 상관관계를 가지는 경우가 없다면 즉, 모든 특징들이 선형독립이라면 공분산행렬 는 양의 정부호 행렬 (Positive Definite Matrix, PD) 이 되어, 모든 분산이 양의 값임을 보장한다.
2D Multivariate Gaussian Distribution (Indep)
, 인 확률변수 와 공분산 행렬 에 대해 일 때, PDF 를 구해보자.
결과적으로 PDF는 우리가 구하고자 한 PDF가 다변량 확률변수 의 두 변량 의 분포의 곱으로 표현되었다.
항상 다변량 확률변수 가 성분 분포의 곱으로 분리되는 것은 아니다. 초기 공분산행렬에서 간의 공분산이 0으로 설정된 것은 이 두 사건이 독립임을 시사하기에, 결과적으로 전개된 식에서 독립 사건의 확률공식 를 만족하는 것을 볼 수 있는 것이다.
1.9. Closedness of Gaussian Distribution
가우시안 분포는 특히 다변량 가우시안 분포에서 수학적으로 중요한 특성인 닫힘성(Closedness) 을 갖는다.
이 특성은 선형변환(linear transformation), 주변화(marginalization), 조건부분포(conditioning) 연산을 적용해도 여전히 가우시안 형태가 유지된다는 특성으로, 통계·기계학습에서 가우시안을 매우 선호하는 핵심 이유 중 하나이다.
- Closed on Linear Transformation
- 일 때, 임의의 선형변환 에 대해
- Closed on Marginalization
- 일 때, 의 주변 분포는
- Closed on Conditioning
- 일 때, 가 가역이라면
이러한 특성 덕분에, 복잡한 시스템에서 여러 변수가 가우시안 분포를 따른다고 가정하면, 특정 변수에 대한 정보를 얻기 위해 다른 변수들을 제거하더라도 그 결과가 여전히 가우시안이므로 통계적 추론이나 모델링이 훨씬 쉬워진다.
1.10. Maximum LIkelihood Estimation
최대 우도 추정(Maximum Likelihood Estimation, MLE) 이라 부르는 최적화 기법은, 통계 모델의 파라미터를 추정하는 데 널리 사용되는 방법이다.

- 목표:
- 관측된 데이터 가 주어졌을 때, 해당 데이터를 생성했을 가능성이 가장 높은(우도(likelihood) 가 가장 높은) 모델 파라미터 를 찾는 것
- 기본 아이디어:
- 어떤 모델이 있고, 이 모델에는 알 수 없는 파라미터 가 있다고 가정한다. (e.g. 단변량 가우시안 분포를 추정하는 모델이라면 는 )
- 우리는 과 같은 일련의 데이터를 관측했고, MLE는 이 관측된 데이터가 나올 확률을 최대로 만드는 파라미터 를 찾는다.

를 최대화하는 파라미터 를 찾아보자.
MLE에서는 일반적으로 우도 함수에 로그(log)를 취한 로그 우도 함수 (Log-likelihood function) 를 사용한다. 확률 는 그 특성으로 대부분의 구간에서 0에 가까운 값을 가지는데, 이를 모든 데이터 에 대해 곱하면 순식간에 그 크기가 매우 작아져, 언더플로우를 유발할 가능성이 높다.
로그함수는 단조 증가 함수이기 때문에 로그를 취해도 최대값을 가지는 파라미터 의 위치는 변하지 않는다. 그러면서도 컴퓨터 입장에서 곱셈을 덧셈으로 바꿔 계산을 단순화하고, 언더플로우(혹은, 드물게 오버플로우)를 방지하는 수치 안정성을 부여하기에 최적화 문제 혹은 많은 수치해석에서 빈번히 사용된다.
이제 이 로그 우도 함수를 미분하여 기울기가 0이 되는 지점을 찾거나(해석적인 방법), 경사 하강법(gradient descent)과 같은 최적화 알고리즘을 사용하여 최대값을 찾는다.
이중 해석적 방법을 이용해 라 가정, 이 가우시안 분포를 표현하는 모델의 파라미터를 로 두고 각각 최적화 문제를 풀어보자.
이처럼 MLE를 이용해서 와 모두 우리가 알고있는 공식 그대로 추정이 가능함을 확인할 수 있다.
1.11. Gaussian Discriminant Analysis
가우시안 판별 분석(Gaussian Discriminant Analysis, GDA = Gaussian Naïve Bayes) 은 연속 확률 변수 를 사용하여 이진 레이블 을 예측하는 분류(Classification) 기법이다.
우리가 판별에 주로 쓰는 로지스틱 회귀 모델과 같은 판별 모델(Discremenent Model) 은 간의 사후 확률 을 우도로 정하고 이 우도를 최대화하는 를 추정한다. 이는 단순히 를 예측하는 것과 같다.
하지만 GDA는 데이터의 분포가 다변량 가우시안 분포를 따른다고 가정하고 간의 결합 확률 분포를 추정하는 생성 모델(Generative Model) 이다. 따라서 에 의한 우도는 결합확률분포 그 자체인 로 설정되며, 이 결합확률분포를 직접적으로 계산하기 어려우므로 를 우도로 두고 추정하게 된다.
이렇게 잘 학습된 파라미터 를 통해 결합확률분포를 예측할 수 있는 모델이 완성되면, 베이즈 법칙 를 이용해 판별모델로 사용할 수 있게 된다.
GDA를 위해 선행되어야 하는 가정
- 클래스 조건부 분포
- 그 이름에서부터 알 수 있듯이 에서 각 클래스 에 대해, 입력 데이터 의 분포가 다변량 가우시안 분포를 따른다는 가정을 필요로 한다.
- 일반적인 GDA에서는 모든 클래스가 동일한 공분산 행렬 를 공유한다고 가정한다. (다른 공분산 행렬을 사용하는 경우는 뒤에서 설명할 QDA가 된다.)
- 그 이름에서부터 알 수 있듯이 에서 각 클래스 에 대해, 입력 데이터 의 분포가 다변량 가우시안 분포를 따른다는 가정을 필요로 한다.
- 클래스 사전 확률
- 클래스 의 사전 확률 는 베르누이 분포를 따른다고 가정한다. 이는 출력 레이블이 0/1 (성공/실패) 둘 뿐인 베르누이 시행을 모델링하므로, 당연한 것이다.
- 클래스 의 사전 확률 는 베르누이 분포를 따른다고 가정한다. 이는 출력 레이블이 0/1 (성공/실패) 둘 뿐인 베르누이 시행을 모델링하므로, 당연한 것이다.
GDA 계산
지금까지 정의한 조건을 수식으로 정리하면 다음과 같다.
- 데이터
- 사전확률
- 가능도 ( )
GDA에서 우도함수는 였으므로, 로그우도함수 는 다음과 같다.
이제 를 찾기 위해 를 로 미분하자. GDA의 데이터 에서는 이미 에 대응하는 클래스 가 주어지므로 로그우도함수를 두 부분으로 분리시킬 수 있다.
결론적으로 베르누이 분포의 모수 의 추정값은 단순히 데이터 전체에서 의 비율일 때 전체 우도가 최대가 되므로, 우리가 정성적으로 추론하는 값과 일치함을 알 수 있다.
이번에는 를 찾기 를 으로 미분하면 다음과 같다.
여기서도 인 분포의 평균 추정값이 인 데이터의 기댓값으로 구해지는 것을 볼 수 있다.
Linear Decision Boundary
이제 위에서 구한 파라미터를 바탕으로 결정 경계를 구해보자. 결정경계는 다음의 조건을 만족한다.
이처럼 결정경계가 선형의 벡터방정식 형태인 선형 결정 경계(Linear Decision Boundary) 로 나타남을 알 수 있다.
Quadratic Decision Boundary
우리는 지금까지 클래스 의 분포가 서로 같은 공분산 행렬을 공유한다는 가정을 했었다. 만약 각 클래스별 분포가 다른 공분산 행렬을 사용한다면 어떻게 될까?
여기서 이전에 두 클래스가 같은 공분산행렬 를 공유할 때에는 같은 행렬식으로 생기는 동일한 계수항을 깔끔하게 정리할 수 있었지만, 이젠 아니기 때문에 전부 전개하여 정리해야 한다.
이를 정리하면 과 같은 2차방정식의 형태를 띠고 따라서 경계조건도 이차결정경계(Quadratic Decision Boundary) 를 가지게 된다. 이러한 형태의 GDA를 특별히 QDA(Quadratic Discriminent Analysis) 라고도 부른다.
마지막으로 GDA와 로지스틱 회귀 모델의 차이를 짚어보자.
| 구분 | 생성모델 (Generative) | 판별모델 (Discriminative) |
|---|---|---|
| 예시 | GDA, Naive Bayes 모델 | 로지스틱 회귀, 서포트 벡터 머신 |
| 모델링 대상 | 결합확률분포: 결합확률분포 | 조건부확률: |
| 방식 | 와 를 분포추정 후 베이즈 법칙으로 계산 | 직접 를 함수 형태로 모델링 |
| 파라미터 추정 | 클래스별 분포의 모수인 추정 → 점추정 사용 | 회귀계수 를 직접 추정 → 점추정 사용 |
| 해석 | 데이터가 어떻게 생성되었는지 모델링 | 결정경계가 어디에 있는지 모델링 |
| 데이터 효율성 | 적은 데이터에서도 동작 가능 (사전 분포를 활용) | 충분한 데이터가 필요 |
| 결정경계 형태 | 분포 가정에 따라 결정됨 (예: GDA/QDA → 이차식 경계) | 파라미터 형태에 따라 결정됨 (예: 로지스틱 → 선형 경계) |
1.12. Generative Models with Latent Variables
Latent Variable (잠재변수, )
모델 내부에 존재하지만, 실제 데이터 와 같이 직접적으로 관측할 수 없는(unobserved) 변수들을 Latent Variable (잠재변수) 라 하고, 흔히 로 표기한다.
이 잠재 변수들은 관측 데이터의 복잡한 구조나 다양성, 또는 데이터 생성의 근본적인 원인을 설명하는 데 사용된다. 관측 데이터 는 종종 매우 고차원적이고 복잡한 형태를 가진다. (e.g. 이미지, 텍스트, 음성) 하지만 이러한 복잡한 데이터 안에는 우리가 직접 관측하기 어려운 숨겨진, 저차원의 근본적인 특징이나 원인이 존재할 가능성이 매우 높다. 이러한 원인적 요소를 표현하는데 가 쓰이게 된다.
예를 들어, 필기체 숫자 를 생성하는 모델에서 잠재 변수 는 숫자의 스타일, 두께, 기울기 등 다양한 특징을 포착하도록 학습된다. 사람 얼굴 이미지 의 잠재 변수 는 그 사람의 나이, 성별, 표정, 머리색 등과 같은 추상적인 속성들을 나타낸다.
Generative Models with Latent Variable
Generative Model (생성 모델) 은 주어진 데이터의 분포 를 학습하는 데 초점을 맞춘 모델로써, 데이터가 어떻게 생성되는지에 대한 내부적인 메커니즘을 이해하려고 시도한다. 생성 모델의 학습이 적절히 완료되면, 학습된 분포를 바탕으로 실제 데이터와 유사한 새로운 데이터를 생성(generate) 할 수 있게 된다.
여기에 더해, 잠재변수를 포함한 생성 모델들은 관측 데이터 가 잠재 변수 를 통해 생성되었다고 가정한다. 즉, 먼저 생성하고자 하는 데이터의 특징들을 함축적으로 담고 있는 잠재 변수 를 샘플링하고, 그 를 기반으로 를 생성하는 과정을 모델링한다.
이는 수학적으로 결합 분포 를 모델링하는 것이며, 와 같이 조건부 확률과 잠재 변수의 사전 분포를 통해 간접적으로 계산된다.
결국 모델은 와 를 학습함으로써 궁극적으로 데이터의 표면적인 모습뿐만 아니라 그 데이터가 왜 그렇게 생겼는지에 대한 “이해” 를 얻게 되고, 이로써 새로운 데이터를 생성할 수 있게 된다.
1.13. Gaussian Mixture Model
생성형 모델에서 우리는 오직 실제 데이터 만을 관측할 수 있으며, 이 정보로부터 실제 분포를 학습하고자 한다. 이러한 는
- 에서 샘플링 가능해야 하고
- 그럴듯한(realistic) 데이터 포인트 에 대해서는 높은 확률을, 그렇지 않은 데이터포인트 에 대해서는 낮은 확률을 출력해야 하고
- 학습한 모델로부터 의미있는 특징 추출이 가능해야 한다.
지금까지 우리가 살펴본 단일 다변량 가우시안 분포는 데이터가 하나의 덩어리(cluster) 를 형성하는 경우를 잘 모델링할 수 있었다. 하지만 실제 데이터는 종종 여러 개의 덩어리나 모드(mode) 를 가지고 있어, 하나의 가우시안 분포만으로는 설명하기 어려운 경우가 많다.

가우시안 혼합 모델(Gaussian Mixture Model, GMM) 은 이러한 한계를 극복하기 위해 여러 개의 다변량 가우시안 분포를 선형적으로 결합하여 더 복잡한 데이터 분포를 모델링하는 확률 모델이다.
GMM은 베이즈 정리(Bayes’ Rule), 주변화(Marginalization) 등 확률론적 원리에 충실하게 기반하여 데이터 분포를 설명하며, 이는 딥러닝 시대 이전부터 사용되어 온 전통적이고 견고한 생성 모델링 접근 방식으로 사용되어 왔다.
1.13.1. Latent Variable in GMM
GMM은 주어진 데이터 가 개의 가우시안 분포(정규 분포)들의 혼합으로부터 생성되었다고 가정하고, 이 데이터 의 전체 확률 분포 를 다음의 수식과 같이 직접적으로 모델링한다.
적절히 학습된 GMM의 생성 과정은 다음을 따른다.
- 컴포넌트 선택 단계
- 잠재변수 를 이산 확률 변수(잠재 변수)로 두고, 학습된 가중치 에 따라 개의 가우시안 컴포넌트 중 하나를 확률적으로 선택한다.
- 데이터 생성 단계
- 선택된 에 따라, 해당 가우시안 컴포넌트에서 새로운 데이터포인트 를 샘플링한다.
GMM은 학습 과정에서 각 데이터 포인트가 어떤 특정 가우시안 컴포넌트로부터 생성되었는지 알 수 없다. 즉, 데이터가 생성된 “근원”은 관찰되지 않는 잠재 변수(가중치 에 따른 컴포넌트 선택 결과 )에 의해 결정된다고 가정하기에 잠재변수 의 개념을 포함하는 생성 모델 중 하나로 볼 수 있다.
1.13.2. Maximum Likelihood Estimation
이제 실제 모델 학습을 위한 MLE를 설계해보자.
먼저 잠재변수 의 분포를 Categorical Distribution (범주형 분포) 로 설정한다.
이때, 관측 데이터 의 분포는 다음과 같이 결정된다.
이때, 전체 관측 데이터 에 대해 결합 로그 가능도를 구하면 다음과 같다.
지금의 결합 로그 가능도에는 log-합 구조가 내재되어 있어, 직접 미분을 통해 폐쇄형 해를 구하는 것이 사실상 불가능하다.
Latent Indicator (잠재 지시 변수)의 도입
이제 데이터 포인트 가 번째 가우시안 컴포넌트에 속해있는지의 여부를 가리키는 Latent Indicator (잠재 지시 변수) 를 도입해보자.
이 경우, 관측 데이터 와 의 결합 분포는 다음과 같이 나타낼 수 있다.
따라서 전체 관측 데이터 와 지시변수 에 대해 결합 로그 가능도는 다음과 같이 바뀐다.
결과적으로 log-합 구조가 사라지며 항들이 선형 합 구조가 되어 최적화가 비교적 간단해진다.
1.13.3. EM Algorithm
이전 단계에서 잠재변수 를 도입하며 MLE의 결합 로그 가능도를 최적화하기 쉬운 형태로 바꾸었다.
하지만 잠재 변수 가 여전히 관측되지 않기 때문에, 이 식을 직접적으로 최적화하여 폐쇄형 해를 구하는 것은 여전히 어렵다. 이때, GMM의 파라미터 를 학습하기 위한 반복적 최적화 기법 중 하나로써 기대-최대화(Expectation-Maximization, EM) 알고리즘을 사용한다.
Q-Function (expected complete-data log-likelihood)
EM 알고리즘에서는 다음의 함수를 사용한다.
이 함수는 현재 파라미터 아래에서 잠재변수 의 사후분포를 계산하고, 그 분포로 계산한 완전데이터 로그우도 의 기댓값이다. 이는
- 어떤 파라미터 가 옳은 파라미터인지 아직 알 수 없고
- 각 데이터 포인트 를 어떤 가우시안 컴포넌트 에 속하게 해야 할지도 모르니까
- 일단 현재 추정한 파라미터 로 잠재변수 의 사후분포 를 확률적으로 계산해놓고
- 이 분포 로부터 로그 가능도의 기댓값을 구해
- 이 기댓값을 최적화하자
라는 아이디어를 제시한다.
함수를 이용한 EM 알고리즘은 다음의 두 가지 주요 단계로 구성된다.
- E-단계 (Expectation Step)
- 앞선 설명에서 2번 단계에 해당하며, 현재 모델 파라미터 를 사용하여 관측되지 않은 잠재 변수 의 사후 확률 분포 를 계산한다.
- 이 단계에서는 각 데이터 포인트가 어떤 가우시안 컴포넌트에 속할 확률을 추정한다.
- M-단계 (Maximization Step)
- 앞선 설명에서 3-4번 단계에 해당하며, E-단계에서 계산된 잠재 변수의 기댓값을 사용하여, 모델의 로그 가능도를 최대화하는 새로운 파라미터 를 추정한다.
- 이 단계에서는 각 가우시안 컴포넌트의 평균, 공분산, 그리고 혼합 계수를 업데이트한다.
이는 간단히 말해 를 고정하고 를 계산한 이후, 이 에 대해 를 최적화하는 단계로 볼 수 있다. 이 두 단계는 파라미터가 수렴할 때까지 반복된다.
E-Step (Expectation-Step)
이 단계에서 우리는 현재 추정 파라미터 를 고정하여 를 구하려 한다. 데이터포인트 가 각 가우시안 컴포넌트 에 속할 사후확률을 계산하면,
와 같고, 이를 각 번째 가우시안 컴포넌트의 에 대한 책임도(Responsibility) 이라 한다. 이 책임도은 번째 가우시안 컴포넌트가 를 설명하는데에 있어 얼마만큼 영향력을 행사하는지, 책임을 지고 있는지 설명한다.
따라서 책임도 값은 실제 지시 변수 의 기댓값으로도 해석할 수 있다.
M-step (Maximization-Step)
이제 스텝에서 계산된 데이터 포인트 에 대한 책임도 을 상수로 고정하고, 로그 가능도를 최대화하도록 모델 파라미터 를 업데이트한다.
앞서 살펴본 GMM의 완전데이터 로그 가능도는 다음과 같았다.
여기에 대해 함수를 전개하면
이며, 이를 최대화하는 을 구할 수 있게 된다. 대표적으로 에 대한 업데이트 식은 다음과 같다.
이때, 에 대한 미분 과정에서 책임도 에 대해서는 에 대한 미분을 적용하지 않는 점을 주의해야 한다. 뿐 아니라 에 속하는 모든 파라미터에 대해서 미분할 때 는 미분하지 않는다. E-스텝에서 계산된 책임도 은 M-스텝에서 파라미터를 업데이트할 때 상수로 취급하는 EM 알고리즘의 중요한 특성임을 기억하자.
나머지 항에 대해서도 동일하게 미분을 적용하면 다음과 같은 전체 파라미터의 업데이트 항을 구할 수 있다.


1.13.4. EM’s Monotonic Increase
EM 알고리즘은 로그 가능도를 단조 증가시키며 수렴한다는 중요한 특성을 가지고 있기에, 적어도 정류점에 수렴함이 보장된다. (전역 해를 보장하지는 못한다.) 이를 확인하기 위해 우리는 함수를 최적화하는 것이 결과적으로 가능도 를 증가시킴을 증명해야 한다.
우리가 결과적으로 생성형 모델에서 최대화하고 싶은 것은 다음의 가능도였다.
따라서 업데이트된 에서의 가능도가 이전의 파라미터 에서의 가능도보다 크길 원한다. 따라서 다음의 식에
로그-합 부등식을 적용하면,
위 식에서 좌변은 실제 우리의 목표인 관측 로그 우도의 증가량, 우변은 EM 알고리즘을 통해 대신 최대화할 수 있는 함수의 증가량이다.
따라서 왼쪽 부등식을 통해 함수를 최적화하였을 때의 증가량에 대해, 실제 관측 로그 우도가 적어도 그 이상 증가한다는 것을 보장하고, 오른쪽 부등식을 통해 함수를 최적화할 때의 증가량이 적어도 0 이상임을 보장한다.
이 두 부등식을 결합하면, EM 알고리즘이 매 스텝마다 로그 가능도를 단조 증가시키며 수렴함을 보장한다.
2. Autoregressive Models
2.1. Curse of Dimensionality
고차원 데이터(High-Dimensional Data) 는 많은 수의 변수(특징)를 가진 데이터를 의미한다. 이러한 고차원 데이터는 통계적 모델링, 특히 확률 분포를 학습하는 데 여러 어려움을 초래한다.
이고 인 다변량 가우시안 분포의 PDF는 다음과 같았다.
문제는 의 값이 매우 커질 때 발생한다. 이러한 고차원 공간에서 다변수 가우시안 분포의 평균 벡터 는 개의 파라미터를, 공분산 행렬 는 의 대칭행렬임을 감안해도 약 개의 파라미터를 가진다. 이는 파라미터의 수가 증가할수록 계산적으로 다루기 불가능(intractable) 한 수준에 도달한다.
Example
크기의 RGB 이미지의 경우, 일반적으로 각 픽셀 하나당 R, G, B의 3차원 값이 저장되므로 이를 flatten하면 총 차원이 되고, 를 표현하는데 필요한 파라미터는 3,145,728, 이다.
만약 이 이미지 데이터셋을 통해 생성모델을 제작하고자 하여 인 클래스에 대한 결합확률분포를 모델링한다고 하자. 의 공간 내에서, 각 차원별 클래스에 해당하는 분포가 존재하기에 가능한 분포 조합의 수는 로 이는 정말로 말이 안되는 숫자가 된다.
또한, 고차원 공간에서는 공간 내 데이터의 분포가 희소해져서(Sparse) 대부분의 공간이 비어있게 되기에 모델이 데이터 분포를 효과적으로 학습하기 어려워진다.
2.2. Presentation with Conditioning Probability
위에서 이러한 결합확률분포를 그대로 모델링하는 것이 얼마나 말이 안되는 것인지를 보았다.
그렇다면 결합확률분포 그 자체를 모델링하지 않고 조건부확률분포를 관측하면 어떨까? 우리는 체인 룰에 따라 다음이 성립함을 알고 있다.
체인 룰은 우리의 모델이 직접 데이터 분포 전체를 보지 않아도, 특정 차원의 값에 의존하는 조건부 분포의 계산을 통해 대체할 수 있게 해준다.
Conditional Independence
우리는 앞에서 두 확률 변수 가 서로의 발생에 영향을 끼치지 않을 때 이를 독립이라 불렀다. 여기서 나아가, 조건부 독립성(Conditional Independence) 은 특정 조건이 주어졌을 때, 두 확률 변수가 서로 독립적인 관계를 가지는 것을 의미한다.
즉, 앞의 상황에서 확률 변수 가 독립이 아니어도, 특정 조건 하(예를 들어, 위에서 다른 확률변수 가 알려짐)에 조건부 독립성을 가질 수 있다.
이는 의의 정보를 알게된 상황 하에서는, 의 값이 의 값을 예측하는 것에 추가적인 도움이 되지 않음(발생에 영향을 끼치지 않음)을 말한다. 의 확률은 이제 오직 에만 조건부로 의존하는 것이다.
조건부 독립은 확률 모델링, 특히 자기 회귀 모델에서 매우 중요한 개념이다. 앞의 체인룰과 조건부 독립을 결합하면 아래와 같이 각 조건부 확률 항을 더욱 단순화할 수 있다.
이 과정은 조건부 독립 가정을 통해 모델이 고려해야 할 의존성의 수를 줄여 모델의 복잡성(e.g. 고차원 데이터에서의 모델 파라미터 수)을 크게 감소시키고, 학습 및 추론 과정의 비용을 줄인다.
당연히 단점 또한 존재하는데, 조건부 독립은 모델의 분포에 귀납적 편향(Inductive Bias) 이라 부르는 강력한 가정(e.g. 어떤 확률 변수가 어떤 확률 변수에 의존할 것이다)을 도입하는 것과 같다. 희소한 조건화 등의 강력한 초기 가정은 모델의 표현력을 크게 제한하며, 실제 데이터에 존재하는 복잡한 의존성을 미처 표현하지 못할 수 있다.
2.3. Bayes’ Net
베이즈 네트워크(Bayes Net) 는 확률 변수들 간의 조건부 의존성을 그래프 형태로 표현하는 확률 모델이다.
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia.png)
베이즈 네트워크는 기본적으로 노드(node) 와 엣지(edge) 로 구성된 방향성 비순환 그래프(Directed Acyclic Graph, DAG) 이다. 각 노드는 확률 변수(예: )를 나타내고, 엣지는 변수들 사이의 직접적인 조건부 의존성을 나타내어, 특정 변수의 다른 변수에 조건부 종속/독립을 시각적으로 파악할 수 있게 한다.
베이즈 네트워크에서 표현되는 의존성 그래프 즉, 내재된 구조(Underlying Structure) 는 그 자체로 귀납적 편향(Inductive Bias) 으로써 기능한다. 이러한 편향은 학습 알고리즘이 아직 관측되지 않은 데이터에 대해 일반화하는 방식을 결정하는 데 사용되는 일련의 가정으로 사용되어, 데이터의 구조를 가정함으로써 모델이 학습해야 할 복잡도를 줄이고, 더 효율적으로 학습할 수 있도록 돕는다.
하지만 일반적으로, 희소한 조건화(sparse conditioning)를 사용하는 베이즈 네트워크는 강력한 가정을 도입한다.(e.g. 어떤 확률 변수가 어떤 확률 변수에 의존할 것이다)
이러한 가정은 모델 파라미터의 수를 줄이고 학습의 용이성을 늘리지만, 모델의 표현력을 크게 제한해 실제 데이터에 존재하는 복잡한 의존성을 미처 표현하지 못하는 상황이 생길 수 있다.
2.4. Fully Visible Sigmoid Belief Network
Fully Visible Sigmoid Belief Network (FVSBN) 는 이진 데이터의 확률 분포 를 모델링하기 위한 자기 회귀 모델의 한 종류로, 특히 손글씨 숫자(이 예제에서, binarized MNIST 데이터셋)와 같이 각 픽셀이 0 또는 1의 값을 가지는 고차원 이진 데이터를 다룰 때 사용될 수 있다.
은 2차원 이미지의 각 픽셀을 flatten 한 것임을 생각하며, FVSBN의 동작을 살펴보자.
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia.png)
- Fully Visible
- 먼저 Chain Rule을 기반으로 전체 데이터의 결합 확률 를 각 픽셀의 조건부 확률의 곱으로 분해한다.
- “Fully Visible”이라는 용어는, 각 픽셀 의 확률을 예측할 때 그 이전의 모든 픽셀 에 조건화한다는 것을 의미하는 것으로, 현재 픽셀을 예측하기 위해 과거의 모든 정보를 활용한다는 의미이다.
- Sigmoid Belief Network
- 데이터 픽셀 가 0 또는 1의 값을 가지는 이진 데이터이므로, 각 조건부 확률은 베르누이 분포를 따른다. 이때 각 조건부 확률 은 이전 픽셀들의 선형 결합에 시그모이드 함수를 적용한 값으로 주어진다.
- 데이터 픽셀 가 0 또는 1의 값을 가지는 이진 데이터이므로, 각 조건부 확률은 베르누이 분포를 따른다. 이때 각 조건부 확률 은 이전 픽셀들의 선형 결합에 시그모이드 함수를 적용한 값으로 주어진다.
이제 FVSBN을 통해 새로운 데이터 를 생성해보자. 이는 모델링된 조건부 확률에 따라 순차적 샘플링으로 이루어진다.
- 먼저 첫 번째 픽셀 을 에서 샘플링
- 샘플링된 을 이용하여 두 번째 픽셀 를 에서 샘플링
- 이 과정을 마지막 픽셀 까지 반복하여 하나의 완전한 데이터 샘플 를 생성
FVSBN은 자기 회귀 모델의 기본 개념을 이해하는 데 중요한 초기 모델이었지만, 각 조건부 확률마다 독립적인 가중치()와 편향()을 사용하므로 차원이 커질수록 파라미터의 수가 많아질 수 있고, 더 복잡한 패턴을 학습하는 데 한계가 있었다.
2.5. NADE: Neural Autoregressive Density Estimation
NADE(Neural Autoregressive Density Estimation) 는 자기 회귀 모델의 한 종류로, 은닉층을 추가한 신경망을 사용하여 데이터의 확률 분포를 추정하는 모델이다. 이 모델은 기존 FVSBN이 가지던 선형모델의 한계를 극복하여 더 복잡한 분포의 데이터 생성이 가능하다.
NADE에서도 FVSBN과 같이 조건부 확률을 이용하여 분포를 단순화한다. 하지만, NADE는 FVSBN의 선형 모델을 단일 계층 신경망(one-layer neural networks)으로 대체하여 각 조건부 확률을 모델링하며, 이 과정에서 비선형 변환과정을 통해 모델의 표현력을 크게 향상시켰다.
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia.png)
또한 FVSBN에서 각 스텝 에 대해 서로 다른 가중치행렬 를 사용하여 많은 파라미터를 사용한 것과 달리, 전체 신경망에 대해 고정된 가중치 행렬 를 사용하고 각 샘플링/학습 step에 맞게 입력을 적절히 마스킹(Masking) 하는 방식을 사용했다.
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia.png)
이를 통해 모델 전체 파라미터의 수를 줄이며 모델의 복잡도를 낮췄고, 계산 효율성이 상승함과 동시에 적은 양의 데이터에 대한 과적합을 방지하는 효과를 보았다.
2.6. MADE: Masked Autoencoder for Distribution Estimation
MADE(Masked Autoencoder for Distribution Estimation) 는 NADE의 계산 효율성 문제를 개선하기 위해 제안된 자기 회귀(Autoregressive) 모델이다.
이전의 NADE는 전체 신경망의 파라미터 수는 줄였지만, 여전히 훈련과 추론 과정 모두에서 개의 픽셀 을 생성(샘플링)하기 위해 번의 신경망 순방향 프로세스를 필요로 했다. 이 과정은 여전히 고차원 데이터에 대해 상당한 계산 비용을 요구하였다. MADE는 이 비효율성을 해결하고, 한 번의 순방향 패스 만으로 모든 조건부 확률 를 동시에 계산할 수 있도록 설계되었다.
MADE는 일반적인 오토인코더 구조를 기반으로 하지만, 신경망 내의 가중치 에 이진 마스크(Binary Mask) 를 적용하여 특정 연결을 차단한다. 이 마스크를 통해 각 출력 유닛 가 오직 이전 입력 유닛들 에만 의존하도록 강제함으로써 자기 회귀 속성 을 유지한다.

위 그래프는 임의의 에 대해 그 결합확률분포가 의 조건부 독립으로 분해될 때, 이를 모델링하는 MADE의 구조이다.
- 입력 유닛에 대한 규칙
- 신경망의 입력층에 확률변수 의 의존성 순서에 맞게 넘버링 한다. 위 그림에서는 는 어디에도 의존하지 않으므로 1번, 는 에 의존하므로 2번, 은 에 의존하므로 3번이다.
- 만약 서로 독립 혹은 조건부 독립을 만족하는 확률 변수가 존재하여 순서가 겹치더라도 임의의 다른 숫자를 부여한다. 결과적으로 각 입력노드는 모두 고유한 숫자로 넘버링되어 전체가 하나의 순열을 이루어야 한다.
- 예를 들어, 만약 일 때, 모두 첫 번째 순서가 될 수 있다. 만약 넘버링 규칙에 따라 임의 로 넘버링했다면 모델은 를 예측하기 위해 의 조건부 확률을 사용하지만, 모델의 학습과정 중에 관련 가중치가 0에 가깝게 할당되며 자연스레 의 독립성을 학습할 수 있게 된다.
- 은닉 유닛에 대한 규칙
- 각 은닉 유닛마다 부터 (여기서 은 입력 차원) 사이의 임의의 정수 을 할당한다.
- 특정 은닉층의 은닉 유닛은 자신에게 부여된 정수 에 따라 이전 레이어의 유닛 중 자신 이하의 정수 을 할당받은 유닛에만 의존하도록 연결이 허용된다. 이는 가중치 행렬 의 마스킹을 통해 이루어진다. (그림에서 중간 Masks 행렬)
- 이는 은닉 유닛이 이전 레이어에서 입력을 받는 과정에 자신 이전의 정보를 보지 못하도록 보장한다.
- 출력 유닛에 대한 규칙
- 각 출력 유닛 는 자신 미만의 정수 을 할당받은 은닉 뉴런으로부터만 연결이 허용된다. 이 규칙은 마지막 출력 가 계산될 때, 오직 에 해당하는 정보만을 사용하도록 보장하여 자기 회귀 조건을 만족시킨다.
- 유의하여야 할 점은 이전 레이어에서 참조하는 유닛의 라벨링 조건이 인지 인지이다. 은닉유닛은 정보의 가공 및 전달을 위해 자신과 같은 정수의 노드도 허용()하지만, 출력 유닛은 자기회귀의 특성상 자신의 미래 정보, 심지어 자기 자신의 정보조차 참조할 수 없기 때문에 자신과 같은 정수의 노드로부터의 입력을 허용하지 않는다. ()
마스킹 기법 덕분에 MADE는 NADE와 달리 훈련 시 모든 조건부 확률 을 단 한 번의 순방향 패스로 동시에 계산할 수 있어, 모델 훈련 효율성을 크게 향상시켰다. 이는 단순히 순방향 패스의 반복을 제외하더라도, 신경망의 forward process 구조가 직선적으로 고정되어 병렬 계산이 가능한 장점이 있다.
이렇듯 MADE는 이진화된 MNIST(Binarized MNIST)와 같은 데이터셋에서 NADE와 유사하거나 더 나은 성능을 보이면서도 훨씬 효율적인 훈련 속도를 제공한다.
2.7. Recurrent Neural Networks
Recurrent Neural Networks (RNN) 는 자기 회귀 모델의 현대적인 아키텍처 중 하나로, 시퀀스(순서가 있는) 데이터를 처리하는 데 특히 효과적인 신경망 모델이다.
RNN은 특히 텍스트, 음성, 시계열 데이터와 같이 순서가 중요한 데이터를 다루기 위해 고안되어, 데이터의 각 시점(time step)에서 현재 입력뿐만 아니라 이전 시점의 정보를 함께 고려할 수 있도록 설계된다.
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia.png)
기억 메커니즘
RNN의 핵심은 Hidden State 로, Hidden State는 네트워크가 과거의 정보를 요약하여 저장하는 “기억” 장치로써 기능하는 벡터로 생각할 수 있다. 모델의 동작 과정에서 각 시점에서의 는 현재의 입력와 이전 시점의 Hidden State 를 바탕으로 업데이트된다.
예를 들어, 위 그림에서 수식 은 현재 가 현재 입력 와 이전 Hidden State 의 함수로 계산됨을 의미한다.
가중치 공유
RNN은 시퀀스의 모든 시점에서 동일한 가중치(예: 입력에 대한 가중치 , Hidden State에 대한 가중치 , 출력에 대한 가중치 )를 공유하며, 파라미터 수를 줄이고 모델이 시퀀스의 길이에 관계없이 일관된 방식으로 학습할 수 있도록 돕는다.
이렇게 설계되는 RNN은 본질적으로 자기 회귀 모델의 특징을 가진다. 각 시점에서 다음 출력을예측할 때, 현재 입력과 함께 과거의(이전 Hidden State에 요약된) 정보를 사용하기 때문이며, 이를 통해 잠재적인 조건부 분포를 효율적으로 모델링할 수 있다.
RNN은 그 특성상 어떠한 길이의 입력 또는 정보도 하나의 에 저장할 수 있기에 “매우 긴 과거 기록”을 처리할 수 있는 잠재력을 가지지만, 실제로 긴 시퀀스의 정보를 저장하는 과정에서 기울기 소실(vanishing gradient) 문제나 기울기 폭주(exploding gradient) 문제로 인해 장기 의존성 학습에 어려움을 겪는 한계가 있었다.
이러한 문제를 개선하기 위해 LSTM(Long Short-Term Memory) 이나 GRU(Gated Recurrent Unit) 와 같은 고급 RNN 아키텍처들이 제시된다.
- RNN기반의 모델은 또한 그 설계상, NADE와 같이 전체 시퀀스 생성을 위해 신경망의 순방향 패스를 여러번 통과해야하는 문제를 가지고 있다.
2.7.1. RNNs for Autoregressive Language Modeling
RNN은 순차적인 데이터를 처리하는 데 특화된 신경망으로, 이전 시점의 정보를 “히든 스테이트(hidden state)“라는 형태로 기억하고 이를 다음 시점의 예측에 활용한다.
따라서 RNN을 활용한 언어 모델링의 목표는 단어 혹은 문자 시퀀스 의 결합 확률 을 학습하는 것이다.
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia.png)
이러한 모델 중 하나의 예시인 Char-RNN은 Character-Level Language Model의 줄임말로, 위 그림처럼 텍스트를 문자 단위로 처리하는 모델이다.
2.7.2. PixelRNN
PixelRNN은 RNN을 이용해 이미지의 픽셀 분포를 학습하여 새로운 이미지를 생성하는 회귀모델 중 하나이다.
PixelRNN에서는 먼저 이미지의 픽셀들을 래스터 스캔 순서(raster scan order) 로 모델링한다. 이는 이미지를 왼쪽에서 오른쪽으로, 위에서 아래로 스캔하면서 각 픽셀의 확률을 예측하는 과정을 의미하며, 각 픽셀은 이전 픽셀들의 정보에 조건부 의존하여 예측된다.
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia.png)
이 과정에서 각 색상 채널(e.g. R/G/B)은 256가지 값 중 하나를 가질 수 있는 256-way 범주형 분포(categorical distribution) 로 모델링된다. RGB 3채널 픽셀의 경우, 다음과 같이 연쇄 법칙을 사용하여 분해된다.
PixelRNN은 Char-RNN과 같은 1차원 시퀀스 모델링(문자열)의 성공을 2차원 데이터인 이미지에 확장한 중요한 초기 연구이다. 이 모델은 픽셀 및 채널 단위로 복잡한 이미지 분포를 효과적으로 학습하여 고품질 이미지를 생성할 수 있음을 보여주었으며, 이후 WaveNet 등과 같은 오디오 생성 모델에도 영향을 주었다.
2.8. PixelCNN
PixelCNN 은 그 이름처럼, 이미지의 근본적인 2D 구조를 활용하여 합성곱 신경망(Convolutional Neural Network, CNN) 을 사용하는 자기 회귀 모델이다.
CNN을 이용하여 자기회귀 모델의 한계점 극복
이전의 자기회귀 모델(예: NADE, FVSBN)은 훈련 및 추론 과정에서 각 픽셀을 순차적으로 생성해야 했기 때문에 시간이 오래 걸린다는 단점이 있으며, RNN을 이용한 경우 은닉 상태가 이전 모든 픽셀(등의 시퀀스)의 정보를 효과적으로 보존하기 어렵거나, 훈련 중 기울기 소실/폭주와 같은 문제가 발생할 수 있었다.
핵심 아이디어: Masked Convolution
일반적인 CNN의 컨볼루션 연산은 입력 데이터의 모든 방향에서 정보를 통합한다. 하지만 자기회귀 모델에서는 현재 픽셀을 예측할 때 “미래” 픽셀의 정보(정의된 순서상 아직 생성되지 않은 픽셀)를 사용해서는 안 된다.
따라서 PixelCNN은 이 제약을 유지하기 위해 ‘마스크드 컨볼루션’이라는 특별한 종류의 컨볼루션 필터를 사용한다. 컨볼루션 필터의 특정 가중치를 0으로 설정하고, 컨볼루션이 문맥상 현재 픽셀과 ‘이전’ 픽셀에만 의존하도록 강제한다.
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia-1.png)
예를 들어, 우리가 정의하는 픽셀 생성 순서가 왼쪽 오른쪽과 위 아래라면, 컨볼루션 필터는 현재 픽셀의 오른쪽이나 아래쪽에 있는 픽셀의 정보는 사용하지 못하게 마스킹된다.
PixelCNN은 마스크를 통해 모든 조건부 확률이 동시에 계산될 수 있도록 설계되었기 때문에, 훈련 단계에서는 MADE와 유사하게 모든 픽셀에 대한 조건부 확률을 단 한 번의 순방향 패스로 계산할 수 있다.
반면, 샘플링(추론) 시에는 이전의 픽셀들을 생성하고 그 픽셀을 기반으로 다음 픽셀을 예측하는 과정을 반복하기에 여러번의 순방향패스를 거쳐야 한다는 단점을 가진다.
2.9. WaveNet
WaveNet 은 Google DeepMind에서 개발한 자기회귀 생성 모델로, 1차원 시간 컨볼루션(1D Temporal Convolution)과 확장 컨볼루션(Dilated Convolution) 개념을 사용한다.
대표적으로 오디오와 같은 시퀀스 데이터의 확률 분포 를 학습하여, 과거의 오디오 샘플들을 기반으로 다음 오디오 샘플을 예측하고 생성하는 것을 목표로 하며, 자기회귀 모델의 기본 원칙인 를 따른다.
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia.png)
- 1차원 시간 컨볼루션 (1D Temporal Convolution)
- 일반적인 이미지 처리에서 사용되는 2D 컨볼루션과 달리, 1D 컨볼루션은 시간과 같은 단일 차원을 따라 필터(filter)를 이동시키며 특징을 추출한다.
- 확장 컨볼루션 (Dilated Convolution)
- PixelCNN 등에서 단점으로 꼽히는 “제한된 수용장(Limited receptive field)” 문제를 해결하기 위해 도입된 기술이다.
- 일반 컨볼루션은 인접한 픽셀만 고려하지만, 확장 컨볼루션은 필터 사이에 간격(dilations) 을 두어 더 넓은 입력 영역에서 정보를 수집하며, 각 레이어에서 이 간격을 지수적으로 증가시킴으로써, 적은 수의 레이어로도 훨씬 더 넓은 수용장을 확보할 수 있다.
- 이는 먼 과거의 데이터까지 고려하여 현재의 값을 예측할 수 있게 해주어 장기적인 의존성(long-term dependencies) 을 모델링하는 데 매우 효과적이다.
WaveNet이 제시한 확장 컨볼루션의 개념은 오디오 생성뿐만 아니라, 자연어 처리(NLP) 분야의 시퀀스 모델링이나 이미지 분할(Image Segmentation) 등 다양한 분야에서 활용되며 컨볼루션 네트워크의 수용장 문제를 해결하는 중요한 기법으로 자리 잡았다.
WaveNet 이후에는 더 빠르고 효율적인 오디오 생성 모델들이 많이 등장했음에도, WaveNet은 컨볼루션 기반의 자기회귀 생성 모델의 가능성을 보여준 기념비적인 연구로 평가받는다.
2.10. Autoregressive Models with Masked Attention
지금까지 살펴본 기존의 CNN 기반 자기회귀모델은 고질적으로 제한된 수용 필드, 부족한 장거리 의존성 등의 문제를 겪었다.
Attention(주의) 은 이러한 문제들을 해결하기 위해 등장한 메커니즘으로, 시퀀스 내의 모든 위치에 대해 중요한 정보를 한번에, 선택적으로 집중하여 처리하는 방식이다. 어텐션 메커니즘은 CNN이 가지던 고질적인 문제인 제한된 수용 필드, 부족한 장거리 의존성 문제를 해결하면서, RNN이 가지던 병렬 학습의 문제점도 해결할 수 있다.
또한, 여전히 입력 시퀀스 의 길이에 무관하게, 모델이 학습해야 할 총 가중치(파라미터)의 개수는 유지된다. 이는 모델의 크기가 입력 길이에 따라 기하급수적으로 커지는 것을 방지하여, 매우 작은 시퀀스와 매우 긴 시퀀스 모두 동일한 크기의 모델로 처리할 수 있게 하는 중요한 장점으로 작용한다.
2.10.1. Self-Attention
Self-Attention (자기 주의) 은 시퀀스 데이터 내의 각 요소가 시퀀스 내의 다른 모든 요소와 가지는 관계를 명시적으로 모델링하여, 현재 요소를 표현하는 데 어떤 요소의 정보가 얼마나 중요한지를 동적으로 결정하는 메커니즘이다.
이 방식은 고정된 컨텍스트 윈도우나 순차적인 처리 없이도 긴 범위의 의존성을 포착할 수 있게 해주는, Transformer 모델 아키텍처의 핵심 구성 요소이다.
Self-Attention의 기본 아이디어
Self-Attention의 핵심은 각 입력 요소에 대해 세 가지 다른 관점 또는 역할을 부여하는 것이다.
| 벡터 | 본질적 역할 | 직관적 의미 |
|---|---|---|
| Q (Query) | “관계를 찾는 질문자” | 이 토큰이 어떤 관계를 찾고 싶은가 |
| K (Key) | “자기 역할을 드러내는 신호” | 이 토큰이 어떤 관계에 참여할 수 있는가 |
| V (Value) | “실제 의미 정보를 담는 운반자” | 이 토큰이 다른 토큰에게 전달할 의미 |
예를 들어, 다음의 문장을 생각해보자.
위 시퀀스에서 “파란”과 “하늘”이라는 단어(토큰) 입장에서 주변 단어들과의 관계를 생각해보자. 이 단어들은 서로에게 어떻게 “주의(attention)“를 기울여야 할까?
어텐션에서 이러한 기준은 다양하게 있을 수 있지만, 여기서는 명사-형용사 관계에 주의를 기울인다고 해보자.
- “파란”의 입장
- Q: “나는 형용사인데, 내가 꾸밀 명사가 있나?”
- K: “나는 형용사이고, 명사를 수식할 수 있어”
- V: “나는 파랑이라는 특정한 색상을 의미해”
- “하늘”의 입장
- Q: “나는 명사인데, 나를 꾸밀 형용사가 있나?”
- K: “나는 명사이고, 형용사의 수식을 받을 수 있는 대상이야”
- V: “나는 자연물이고, 특정한 공간적 대상을 의미해”
“파란”의 입장에서 던진 Q에는 하늘의 K가 높은 응답도를 보일 것이고, “하늘”의 입장에서 던진 Q에는 “파란”의 K가 높은 응답도를 보일 것이다. 그리고 이러한 응답은 어텐션 스코어 계산에 사용되어, “파란” 토큰을 나타내는 벡터는 조금 더 “하늘”의 정보가 반영된 형태로, “하늘” 토큰을 나타내는 벡터는 조금 더 “파란”의 정보가 반영된 형태로 이동된다.
여기서 기억해야 할 것은 “파란”과 “하늘”의 Q가 서로 다른 질문과 응답, 의미를 나타내지만, 여전히 명사-형용사 관계라는 하나의 관점에서 문장을 분석하고 있다는 것이다. 이는 후술할 수식에서 동일한 가중치 행렬 에 대해서도 각 토큰이 가중치 행렬과 곱해져 서로 다른 질문, 응답, 의미를 생성한다는 것을 의미하며, 이러한 관점을 후에 싱글헤드 어텐션 (Single-Head Attention) 과 연결지어 설명할 것이다.
이처럼 Self-Attention은 기본적으로 각 쿼리가 시퀀스 내의 모든 키와 비교하여 유사도(similarity) 를 계산하고, 이 유사도를 기반으로 해당 키에 연결된 값들의 가중 평균을 계산하여 최종 출력을 만들어낸다.
Self-Attention의 단계별 수식 및 설명
입력 시퀀스 가 주어졌다고 가정해 보자. 여기서 는 번째 입력 요소의 벡터 표현(예: 워드 임베딩 또는 픽셀 임베딩)이고, 은 시퀀스 길이이다. 따라서 전체 시퀀스 행렬 의 차원은 이다.
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia-1.png)
-
Query (Q), Key (K), Value (V) 행렬 생성
- 먼저, 입력 시퀀스 의 각 벡터 를 세 가지 다른 선형 변환을 통해 벡터로 변환한다. 이 변환은 원래 토큰 벡터 에 대한 특정(잠재)공간으로의 사상을 의미하며, 학습 가능한 가중치 행렬 에 의해 이루어진다.
- 여기서 는 쿼리와 키 벡터의 차원이고, 는 값 벡터의 차원이다. 일반적으로 (멀티헤드 어텐션의 경우, 는 헤드의 개수) 또는 (싱글 헤드의 경우)이다.
- 먼저, 입력 시퀀스 의 각 벡터 를 세 가지 다른 선형 변환을 통해 벡터로 변환한다. 이 변환은 원래 토큰 벡터 에 대한 특정(잠재)공간으로의 사상을 의미하며, 학습 가능한 가중치 행렬 에 의해 이루어진다.
-
Attention Score (유사도 점수) 계산
- 시퀀스를 이루는 각 쿼리 벡터 가 시퀀스 내의 다른 모든 키 벡터 와 얼마나 유사한지 즉, 특정 토큰의 쿼리 가 던지는 질문에 대해 다른 토큰의 가 얼마나 응답하는지를 계산한다.
- 이 점수는 쿼리와 키 벡터의 내적으로 계산되며, 이를 “Scaled Dot-Product Attention” 이라고 부른다. (앞서 와 가 사상하는 공간의 차원이 로 동일했던 이유가 이 내적 계산을 위해서다.)
- 내적을 사용하는 이유는 두 벡터의 방향과 크기가 얼마나 유사한지를 잘 나타내기 때문이며, 잘 학습된 가중치 행렬에 대해 각 토큰의 와 는 서로 높은 내적 값을 가지게 된다.
- (단일 토큰 에 대해)
- (전체 시퀀스 행렬 에 대해)
- : 차원의 행렬과 차원의 행렬을 곱한 결과로, 차원의 행렬이 된. 이 행렬의 각 요소 는 번째 쿼리 가 번째 키 와 가지는 내적 유사도 점수다.
-
스케일링
- 이제 이 점수들을 스케일링 인자 로 나눈다. 이는 내적 값이 벡터 차원 가 커질수록 기하급수적으로 커져, 소프트맥스 함수가 매우 작은 기울기를 가지게 되어 학습이 불안정해지는 것을 방지하기 위함이다.
- 이제 이 점수들을 스케일링 인자 로 나눈다. 이는 내적 값이 벡터 차원 가 커질수록 기하급수적으로 커져, 소프트맥스 함수가 매우 작은 기울기를 가지게 되어 학습이 불안정해지는 것을 방지하기 위함이다.
-
Softmax (어텐션 가중치) 적용
- 스케일링된 점수 행렬의 각 행에 소프트맥스 함수를 적용하여 어텐션 가중치(Attention Weights) 를 계산한다. 소프트맥스 함수는 점수들을 0과 1 사이의 값으로 정규화하며, 각 행의 합이 1이 되도록 하여 확률 분포처럼 해석할 수 있게끔 한다.
- 의 각 요소 는 번째 쿼리 가 번째 값 에 부여하는 가중치다. 이 가중치들은 최종적으로 번째 출력 벡터 를 계산할 때 가 얼마나 기여할지를 결정한다.
- 스케일링된 점수 행렬의 각 행에 소프트맥스 함수를 적용하여 어텐션 가중치(Attention Weights) 를 계산한다. 소프트맥스 함수는 점수들을 0과 1 사이의 값으로 정규화하며, 각 행의 합이 1이 되도록 하여 확률 분포처럼 해석할 수 있게끔 한다.
-
Weighted Sum of Values (값 벡터의 가중치 합)
- 마지막으로, 계산된 어텐션 가중치 행렬 를 값 행렬 에 곱하여 최종 출력 행렬 를 얻는다. 출력 시퀀스 의 각 출력 벡터 는 입력 시퀀스의 모든 값 벡터 를 해당 어텐션 가중치 에 따라 가중 평균한 결과가 된다.
- (단일 출력 벡터 에 대해)
- (전체 출력 시퀀스 에 대해)
- 의 각 행 는 입력 에 해당하는 출력 벡터로, 시퀀스 내의 모든 다른 요소들의 정보를 어텐션 가중치에 따라 통합한 새로운 표현이다.
- 마지막으로, 계산된 어텐션 가중치 행렬 를 값 행렬 에 곱하여 최종 출력 행렬 를 얻는다. 출력 시퀀스 의 각 출력 벡터 는 입력 시퀀스의 모든 값 벡터 를 해당 어텐션 가중치 에 따라 가중 평균한 결과가 된다.
위의 과정을 거치는 전체 Self-Attention의 계산은, 최종적으로 하나의 통합된 수식으로 다음과 같이 표현된다.
2.10.2. Masked Attention
Self-Attention은 전체 시퀀스에 대해, 한번의 연산을 통해 각 토큰 간의 관계를 계산할 수 있었다.
생성 모델이 자기 회귀적 특성을 유지하려면, 특정 토큰 를 예측할 때 오직 (과거 정보)만을 참조하고 미래 정보 를 참조해서는 안 된다.
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia.png)
생성 모델이 자기 회귀적 특성을 유지하려면, 특정 토큰 를 예측할 때 오직 (과거 정보)만을 참조하고 미래 정보 를 참조해서는 안 된다.
이를 위해 Self-Attention 계산 과정에서 ‘마스킹(masking)’ 기법을 사용한다. 위에서 살펴본 Self-Attention 과정에서 3단계 스케일링을 거친 이후, 미래 위치에 해당하는 점수들에 매우 작은 음수 값(예: )을 부여한다. 이후 이 스코어를 소프트맥스 함수에 통과시키면, 해당 가중치는 거의 0이 되어 마스크처럼 작용할 수 있다.
여기서 은 마스크 행렬로, (if ) 이고 (if ) 이다.
Masked Attention의 병렬 계산 가능성 (vs. RNN)
순환 신경망(RNN)은 를 계산하기 위해 이전 상태 에 현재 입력 를 순차적으로 더해야 했다. 즉, 와 같이 이전 계산이 완료되어야 다음 계산을 시작할 수 있어 본질적으로 병렬화가 어려웠다.
이와 대비하여, Self-Attention은 모든 Query, Key, Value 행렬을 입력 시퀀스 전체에 대해 한 번에 생성하고, 모든 어텐션 점수 및 가중치 계산을 행렬 곱셈으로 처리한다. 따라서 각 출력 를 계산하기 위해 모든 를 동시에 사용할 수 있으며, 훈련 과정에서 시퀀스의 모든 위치에 대한 표현을 완전히 병렬적으로 계산할 수 있게 된다.
또한, PixelCNN와 달리 이미지 생성과 같은 경우에, (픽셀)시퀀스의 생성 순서를 우리가 원하는 대로 커스터마이징 가능하다는 장점을 가진다.
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia.png)
다만 각 토큰이 이전 토큰에 의존하는 것은 여전하기에 추론 시에, 자기 회귀 모델에서 새로운 데이터를 생성할 때에는 여전히 과 같이 순차적으로 토큰을 생성해야 한다.
2.10.3. KV Caching
KV Caching(Key-Value Caching, 키-값 캐싱) 은 자기 회귀 모델에서 새로운 토큰을 생성할 때 추론 속도를 향상시키기 위한 최적화 기법이다.
자기회귀 모델은 한 번에 하나의 토큰을 생성하며, 다음 토큰을 생성할 때는 이전에 생성된 모든 토큰을 조건으로 사용한다. 즉, 를 생성하기 위해 에 해당하는 Key와 Value 벡터를 매번 다시 계산해야 한다.
만약 번째 토큰을 생성한다고 가정하면, 는 번째 토큰에서 계산되고, 와 는 1번째부터 번째 토큰을 모두 필요로 하는데, 이 경우 번째 토큰을 생성할 때마다 1번째부터 번째 토큰에 대한 와 를 매번 다시 계산해야 한다. 이는 시퀀스 길이가 길어질수록 계산량이 기하급수적으로 증가하여 샘플링 속도를 매우 느리게 만든다.
KV 캐싱은 이전에 생성된 모든 토큰에 대한 와 벡터를 메모리에 저장해 두고, 새로운 토큰을 생성할 때 해당 토큰에 대한 와 벡터만 새로 계산하고, 이를 기존의 캐시에 추가한다.
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia-1.png)
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia.png)
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia.png)
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia.png)
이렇게 하면, 다음 토큰을 생성할 때는 이미 캐시된 이전 토큰들의 와 벡터를 재사용할 수 있으므로 중복 계산을 피할 수 있다. 이는 이후 트랜스포머 기반의 대규모 언어 모델(LLM)에서 추론 속도를 극적으로 향상시키는 핵심 기술로 작용했다.
2.11. Image Tokenizer
지금까지 살펴본 자기회귀 모델은 특히 이미지와 같은 다차원 데이터에서 비용이 크게 증가할 우려가 있다. 예를 들어, 8bit RGB 색상 정보를 가지는 256x256 이미지의 경우, 각 픽셀은 3채널(RGB)에 8비트 정보를 가지므로 총 개의 토큰을 가진다.
이를 예시로 어텐션 메커니즘에 이를 통과시킨다고 하면, 가중치 행렬은 토큰 개수의 제곱으로 증가하여 비싼 비용을 발생시킨다. 따라서 전체 시퀀스의 크기를 줄이기 위해 BottleNeck(병목) 형태의 Discrete Auto-Encoder(이산 오토 인코더) 구조에 통과시키고 병목지점에서 어텐션 혹은 자기회귀모델을 사용하는 경우가 있다.

이러한 이산 오토 인코더로는 다음과 같은 메커니즘을 사용할 수 있다.
- Gumbel-Softmax / Concrete Distribution: GS, CD
- Vector-Quantization (VQ): VQ-VAE
- Finite Scalar Quantization (FSQ) / Lookup-Free Quantization (LFQ): FSQ, LFQ
2.12. VQGAN Transformer
VQGAN Transformer는 고해상도 이미지 생성을 목표로 하는 강력한 생성 모델로, VQGAN(Vector Quantized Generative Adversarial Network) 과 Transformer 아키텍처를 결합한 모델이다.
기존의 자기 회귀 모델은 고차원 데이터, 특히 고해상도 이미지에 적용될 때 막대한 계산 비용과 차원의 저주(Curse of Dimensionality) 문제에 직면하는 경우가 많았다. VQGAN Transformer는 이러한 문제를 해결하고 고품질의 고해상도 이미지를 효율적으로 생성하기 위해 고안되었다.
이 모델에서는 크게 VQ-VAE, GAN, Transformer를 통과시키는 세 가지 주요 과정을 거친다.
-Generative-Models-Generative-Models-for-High-Dimensional-Data-1-D-Continuous-Data-(Gaussian-MLE)-1-D-Continuous-Data-(Gaussian-MLE---Sigma)-2-D-Continuous-Data-(Gaussia-1.png)
- VQ-VAE의 역할 - 이미지 토큰화
- 이 단계에서는 입력 이미지를 먼저 저차원의 이산적인 “코드(code)” 또는 “토큰(token)” 시퀀스로 압축한다. 이는 텍스트를 단어 토큰으로 변환하는 것과 유사하게, 연속적인 이미지 데이터를 이산적인 표현으로 변환하는 “이미지 토큰화(Image Tokenization)” 역할을 수행한다.
- GAN의 역할 - 이미지 품질 및 사실성 향상
- VQ-VAE가 이미지를 인코딩하고 디코딩하는 과정에서 발생할 수 있는 품질 저하를 보완하기 위해 GAN이 사용된다. GAN의 판별자(Discriminator) 는 VQGAN(VQ-VAE + GAN) 이 생성한 이미지가 실제 이미지와 얼마나 유사한지 평가하며, 이를 통해 VQGAN은 시각적으로 더 사실적인 이미지를 재구성하도록 학습된다.
- Transformer의 역할 - 자기 회귀적 토큰 생성
- VQGAN에 의해 압축된 이산적인 이미지 토큰 시퀀스는 트랜스포머의 입력으로 사용된다. 트랜스포머는 이 이산 토큰 시퀀스의 확률 분포를 학습하고, Chain Rule에 기반하여 다음 토큰을 자기 회귀적으로 예측하며 순차적으로 이미지를 생성한다.
- 즉, 의 원리를 이미지 토큰에 적용하여, 이전에 생성된 토큰들을 바탕으로 다음 토큰을 예측하고 이를 반복하여 완전한 이미지 토큰 시퀀스를 생성한다. 이렇게 생성된 토큰 시퀀스는 다시 VQGAN의 디코더를 통해 실제 고해상도 이미지로 변환된다.
결론적으로 VQGAN Transformer는 이미지 데이터를 이산적인 토큰으로 표현함으로써 Transformer가 다루기 쉬운 형태로 데이터를 변환하고, 이를 통해 효율적이면서도 고품질의 고해상도 이미지 생성을 가능하게 한다.
이는 고해상도 이미지 생성 분야에서 Transformer의 활용 가능성을 크게 확장한 중요한 연구 성과과이다. 기존의 픽셀 단위로 이미지를 생성하는 자기 회귀 모델들이 겪었던 엄청난 계산량 문제를, 이미지를 이산적인 ‘토큰’ 시퀀스로 압축한 후 Transformer로 이 토큰들을 생성함으로써 효과적으로 해결했다.
3. Flow-Based Models
Flow-based Models는 복잡한 데이터 분포를 모델링하는 데 사용되는 생성 모델(generative model) 의 한 종류이다.
이 종류의 모델들은 샘플링 및 확률 밀도 평가가 쉬운 단순한 분포 (예: 가우시안 분포)를 학습하고자 하는 복잡한 데이터 분포로 변환하는 연속적인 가역 함수(invertible functions) 의 흐름(flow) 을 학습하는 것을 목적으로 한다.
우리는 이 변환 과정이 변수 변환 정리(Change of Variable Theorem) 에 의해, 단순 분포의 확률 밀도를 복잡한 데이터 분포의 확률 밀도로 정확하게 계산할 수 있음을 확인할 수 있다.
Flow-based Models에서 모델링하는 는 다음과 같은 목표를 달성하고자 한다.

- 훈련 데이터에 대한 좋은 적합
- 모델이 훈련 데이터를 잘 설명하려면, 학습된 가 실제 데이터 분포를 정확하게 반영해야 한다.
- 이는 모델이 데이터의 본질적인 특징과 패턴을 얼마나 잘 포착했는지를 나타낸다.
- 새로운 에 대한 평가 능력
- Flow-based Models의 중요한 강점 중 하나는 임의의 새로운 데이터 가 주어졌을 때, 해당 데이터의 확률 밀도 값을 직접 계산할 수 있다는 것이다.
- 이 능력은 이상 탐지(Anomaly Detection) 나 데이터 압축과 같은 다양한 응용 분야에서 유용하게 활용될 수 있다. (e.g. 값이 매우 낮으면 해당 데이터는 일반적이지 않은 이상치일 가능성이 높음)
- 로부터 샘플링하는 능력
- 모델은 학습된 분포로부터 새로운 데이터 를 생성(sampling) 할 수 있어야 한다.
- 이는 Flow-based Models가 “생성 모델”로서의 역할을 수행하는 핵심 기능으로, 모델은 단순한 분포(예: 가우시안 분포)에서 샘플 를 추출한 다음, 학습된 가역 함수 를 통해 이를 복잡한 데이터 로 변환하여 새로운 데이터를 만들어낸다.
3.1. Background
Subtitution Rule (치환 법칙)
Gradient (기울기)
Jacobian
야코비안(Jacobian) 은 벡터 미적분학에서 벡터 값 미분 가능한 함수의 모든 1차 편도함수를 모아놓은 행렬을 의미한다.
Jacobian은 한 좌표계에서 다른 좌표계로의 변환이 일어날 때, 그 변환이 미소(infinitesimal) 벡터 공간을 어떻게 확장, 축소, 회전시키는지를 나타내는 선형 변환의 근사치로 볼 수 있다.
Determinant (행렬식)
행렬식(Determinant) 은 정방 행렬(square matrix) 에 대해 계산되는 스칼라 값으로, 해당 행렬이 나타내는 선형 변환이 공간의 부피(또는 2D에서는 면적)를 얼마나 변화시키는지 알려주는 척도이다.

Change of Variable Theorems (변수 변환 정리)
변수 변환 정리는 적분을 계산할 때 변수를 바꾸어 계산을 더 쉽게 만드는 방법을 제시하며, 특히 Flow-based 모델에서 확률 밀도 함수(PDF)를 변환하는 데 핵심적인 역할을 한다.
3.2. Change of Variable Theorems in PDF
위와 같이 미분 가능하고 가역적인 함수 를 가정하고, 원래의 데이터 분포 PDF 에 변수 변환 정리를 적용해보자.
먼저 확률 분포에서 전체 확률은 1로 보존되어야 하며, 어떤 확률 변수 를 함수 를 통해 다른 확률 변수 로 변환한다고 해도 전체 확률의 합은 변하지 않는다. 따라서 다음이 성립한다.
또한, 가 분포 의 특정 미소 구간(또는 미소 부피) 에 내에 있을 확률은 가 그에 상응하는 변환된 분포 의 특정 미소 구간 내에 있을 확률과 같아야 한다. 따라서 다음이 성립한다.
라는 변환이 있을 때, 공간의 아주 작은 미소 부피 요소 는 공간에서 로 변환되고, 이때 두 부피의 관계는 다음과 같다. (부피가 음수가 되지 않도록 절댓값을 취한다.)
이제 이 관계를 확률의 보존 식에 대입하면 다음의 관계식을 도출할 수 있다.
Shifting of Gaussian Distribution
가우시안 분포 를 만큼 평행이동시키는 함수 를 생각해보자.
위 pdf 에 대해 이며, 이때 에 의해 변환된 분포의 pdf는 실제로 다음과 같이 분포의 평균만이 만큼 평행이동한 형태로 나온다.
Multiplying of Gaussian Distribution
가우시안 분포 를 만큼 상수배하는 함수 를 생각해보자.
이 경우 이며, 이때 에 의해 변환된 분포의 pdf는 실제로 다음과 같이 분포가 넓게 퍼지는 것을 확인할 수 있다.
3.3. Flow Model Training
위의 결과는 를 우리가 알기 쉬운 분포 (e.g. 정규분포)라고 한다면, 이는 곧 복잡한 데이터 분포 가 쉬운 분포 와 미분가능하고 가역인 함수 를 통해 쉽게 계산될 수 있음을 의미한다.
하지만, 실제 우리가 학습하고자 하는 분포는 매우 복잡하고 다양하며, 우리는 이 변환을 나타내는 함수를 정확히 알 수 없다. 따라서 우리는 이 함수 를 학습하여 이를 근사하는 함수 를 찾아내고자 한다. 이것이 Flow Model이 목적하는 바이다.

이를 위해서 최대 우도 추정법을 사용하면 다음과 같은 식을 찾을 수 있다.
실제로 이 과정을 거쳐 학습을 진행하면 다음과 같은 Flow 함수를 찾을 수 있다.



Flow-based 모델에서는 이처럼 원분포에서 쉬운 분포로의 변환 가 가역적임을 전제로 한다.

이러한 변환은 Closed-Form으로 찾기 어렵기에 우리는 이를 근사하기 위해 Flow Composition을 사용한다. Flow Composition은 여러 개의 간단한 가역 함수(invertible functions) 들을 순차적으로 연결하여 하나의 복잡한 가역 변환을 구성하는 방식을 말한다.
3.3.1. Normalizing Flow

Normalizing Flow (정규화 흐름) 는 Flow-based Models의 한 종류로, 단순한 기본 분포를 일련의 가역 변환 함수를 통해 복잡한 데이터 분포(생성 모델의 경우, 원래의 데이터 분포)로 변환하는 생성 모델이다.
스텝에 대해 각 스텝에서 로의 함수를 라 하자. 이때, Normalizing Flow를 위해서는 각 변환 함수 가 가역적이어야 한다. 이 가정 아래에 다음의 식이 성립한다.
만약 각 스텝함수 가 의 determinant를 충분히 계산하기 쉬운 가역함수로 정의된다면, 위 과정을 통해 이를 되돌리는 것 또한 가능하게 된다.
3.4. AutoRegressive Models
자기회귀모델에서 데이터 예측은 시계열 혹은 일련의 시퀀스로 나타나는 데이터에 대해 이전의 데이터를 참고하여 현재 혹은 미래 데이터에 대한 샘플링을 하고자 한다.
이때, 만약 각 조건부 확률 이 어떠한 정규분포 로 모델링 되고, 이 정규분포를 결정하는 모수를 쉬운 가역함수에 의해 , 로 정의된다면, 앞에서 살펴본 Normalizing Flow를 적용할 수 있다.
3.4.1. Masked Autoregressive Flow (MAF)
MAF 는 자기회귀 모델의 아이디어를 Normalizing Flow에 적용한 모델로, 각 변환 함수 를 자기회귀 방식으로 구성하고 이 변환 함수는 가우시안 분포의 모수를 예측하게끔 하여, 최종적으로 복잡한 분포를 조건부 분포로 모델링한다.
![]()
따라서 변환 함수의 수식은 아래와 같이 나타난다.
이 모델에서 학습을 할 때에는 원분포의 전체 시퀀스가 주어지기 때문에, MADE 등 다른 Masked Neural Network에서 사용하는 마스킹 행렬을 이용해 이전 입력을 마스킹하여 한번에 병렬학습이 가능하다.
그러나 여전히 데이터 생성(샘플링)에는 순차적 흐름을 필요로 한다.(즉, 모델이 데이터를 병렬적으로 생성할 수 없다.) 를 예측하기 위해 원분포의 이전 데이터 을 필요로 하기 때문이다.
3.4.2. Inverse Autoregressive Flow (IAF)
Inverse Autoregressive Flow (IAF) 는 Normalizing Flow 모델의 한 종류로, 특히 샘플링과 확률 밀도 평가의 효율성에 초점을 맞춘 아키텍처이다. 기본적인 Autoregressive Flow (AF)와는 반대로, IAF는 샘플링이 빠르고 병렬적으로 이루어지는 반면, 확률 밀도 평가는 순차적으로 진행되어 느리다는 특징을 가진다.
![]()
IAF에서의 변환 수식은 다음과 같다.
IAF는 MAF와 그 순서가 정확히 반대라고 볼 수 있다. MAF에서는 원래의 데이터 를 잠재변수 로 옮기는 것을 정방향 로 가정한 것에 반해, IAF에서는 잠재변수 를 원분포 로 옮기는 것을 정방향 로 보고 학습한다.
따라서 학습할 때에는 원분포 데이터 를 생성하기 위해 이전 잠재변수 을 필요로 하여 순차적이며, 반대로 추론(샘플링)할 때에는 잠재분포를 미리 가우시안(혹은, 쉬운 분포)로부터 샘플링하고, 마스킹 행렬을 통해 병렬 계산할 수 있다.
3.4.3. Parallel WaveNet

이처럼 MAF와 IAF는 서로 같은 아키텍쳐의 역방향 구조로 이루어져 있으며, MAF는 학습 속도가 빨라 잠재분포 추론에 적합하고 IAF는 데이터 생성에 더 적합함을 알 수 있다.
그렇다면, 이 둘을 적절히 조합한다면 학습과 추론 모두 뛰어난 성능을 보이는 모델을 만들 수 있지 않을까?
그렇게 등장하는 것이 Parallel WaveNet이다. Parallel WaveNet은 Teacher 모델인 MAF와 Student 모델인 IAF를 결합한다.Teacher 모델인 MAF는 복잡한 분포를 학습하여 Student 모델인 IAF를 가르치고, IAF는 이 학습된 지식을 바탕으로 빠른 샘플링을 수행할 수 있다.

MAF에서 먼저 원분포 를 통해 잠재분포 를 학습한다. 이렇게 학습된 MAF(Teacher 모델)에서 데이터를 샘플링하려면 원래는 순차적이기에 매우 느리게 진행된다.
Student 모델은 IAF로 이루어지며, 기존에는 잠재분포 를 통해 원분포 를 추론하는 속도는 빠른 반면, 이를 학습하는 속도는 느렸다. Parallel WaveNet의 중요 특징은 IAF가 Teacher 모델인 WaveNet Student가 생성한 의 원분포가 될 분포를 재현하는 법을 학습한다는 것이다. 이를 위해 Teacher 모델에서 로의 변환 과정에서 각 시점의 모수를 캐싱한다.
이론적으로 MAF, IAF의 가 가역이라면, MAF의 전체 역변환은 IAF가 된다. 따라서 잘 학습된 MAF에서 한번에 모든 학습데이터와 각 데이터의 모든 시점 에 대해 를 캐싱한다면, IAF는 학습과정에서 굳이 의 분포를 추정하려고 모수를 순차적으로 계산할 필요 없이 이미 캐싱된 MAF의 모수를 뽑아와 비교할 수 있다.
이렇게 생성 모델이 원분포와의 을 최소화하게끔 하는 것은 비단 Parallel WaveNet에서만 가능한 것은 아니다. 다만, MAF와 IAF의 역방향 구조를 통해 학습과 추론의 효율성을 높이며 두 함수의 역변환 가능성을 보장한다는 것이 그 특징이다.
3.5. Recent Advances in Flow Models
3.5.1. Coupling Layer
Coupling Layer는 Normalizing Flow 모델에서 흔히 사용되는 구성 요소로, 기존 변환 함수의 야코비안 를 매 가중치마다 구하기 힘들다는 점에서 착안되었다.
![]()
이 레이어는 입력 데이터 를 두 부분으로 나누고, 한 부분을 다른 부분에 기반하여 변환한 다음 다시 결합한다 이 구조에서는 어떠한 비선형 활성화 함수 에 대해서도 역변환이 항상 tractable하며 쉽게 계산 가능하다. 이러한 설계는 Jacobian 행렬의 행렬식을 쉽게 계산할 수 있도록 하여 Normalizing Flow의 핵심적인 특징을 유지한다.
위 변환에서 야코비안 행렬식은 아래와 같고 이는, coupling layer를 통해 야코비안 값을 단순 곱 또는 단순 로그 합으로 계산할 수 있음을 보여준다.
실제로 우리가 위에서 본 coupling layer 구조를 RealNVP(Real-valued Non-Volume Preserving) 이라 하고, 이와는 별개로 아래와 같이 더 간단한 NICE(Non-linear Independent Components Estimation) 와 같은 구조로도 설계할 수 있다.
3.6. Glow
Glow는 Flow-based Models의 한 종류로, 이미지 생성과 같은 복잡한 데이터 분포를 모델링하는 데 사용되는 심층 생성 모델이다.

Glow는 Invertible 1x1 Convolutions를 도입하여 Flow-based 아키텍처 내에서 채널 간의 순열(permutation)을 학습할 수 있게 했다. 또한 Glow에서 이 1x1 Convolution 레이어는 역변환이 가능한 형태로 설계되어, 데이터와 잠재 변수 사이의 양방향 매핑을 보장하고, 확률 밀도 함수의 정확한 계산과 효율적인 샘플링을 가능하게 했다.
Glow는 고해상도 이미지 생성에서 뛰어난 성능을 보였으며, 특히 다양한 이미지를 자연스럽게 생성하고 이미지의 잠재 특성(예: 표정, 헤어스타일)을 조작하는 데 활용될 수 있음을 보여주었다.
4. AutoEncoder
Autoencoder 는 비지도 학습(unsupervised learning) 알고리즘의 한 종류로, 입력 데이터를 압축하여 효율적인 잠재 공간(latent space) 표현을 학습하고, 이 잠재 표현으로부터 원본 데이터를 복원하는 신경망이다.

크게 인코더와 디코더의 두 구성요소로 나눌 수 있으며, 핵심 목표는 디코더의 출력 가 인코더의 입력 와 최대한 비슷해지도록 학습하는 것이다. 이 과정에서 데이터의 중요한 특징이나 패턴이 잠재 공간 에 학습된다.
- 인코더 (Encoder)
- Conv 레이어를 이용하여 입력 데이터 를 더 낮은 차원의 잠재 공간 로 매핑하여 압축된 표현을 생성한다.
- 디코더 (Decoder)
- UpConv 레이어를 이용하여 잠재 공간의 압축된 표현 z를 다시 원본 데이터 공간으로 복원하여 출력 를 생성한다.
이때의 오차 역시 원래의 입력 데이터 와의 거리로 간단히 설정할 수 있어 장점을 가진다.
기본적으로 오토 인코더의 목적은 데이터의 복원이지만, 이 과정에서 압축되는 잠재공간 를 어떻게 활용하느냐에 따라 여러 목적으로 나뉜다. 다음은 오토 인코더가 다양한 영역에서 가지는 장점이다.
- 차원 축소 (Dimensionality Reduction)
- 고차원 데이터를 저차원 잠재 공간으로 압축하여 효율적인 표현을 얻을 수 있다.
- 특징 추출 (Feature Extraction)
- 학습된 잠재 공간의 표현 데이터의 중요한 특징으로 활용할 수 있다.
- 이상 감지 (Anomaly Detection)
- 정상 데이터는 잘 복원하지만, 비정상 데이터는 복원 오류가 커지는 경향을 이용하여 이상치를 탐지할 수 있다.
- 데이터 생성 (Data Generation)
- 디코더만을 분리하여 생성기로 이용할 수 있다.
4.1. Classifier

인코더로 인코딩된 벡터 로 부터 원본 를 잘 생성할 수 있다는 것은, 인코더가 데이터의 핵심 학습을 잘 학습하여, 이 정보를 효율적으로 압축한 를 내뱉었다는 뜻이다.
따라서 이 핵심 벡터 를 분류기(Classifier) 에 넣고 레이블 를 예측하게끔 하면, 네트워크를 레이블 분류기로 활용할 수 있다.
4.2. Probabilistic AutoEncoder

기존의 오토인코더 구조에서 만약 잠재변수 가 우리가 샘플링할 수 있는 공간에 분포한다고 가정하자. 이 경우 우리는 이 공간에서 를 샘플링하여 디코더에 입력함으로써 새로운 데이터를 생성하는 생성형 모델로 이용할 수 있지 않을까?
하지만 문제는, 일반적인 Autoencoder의 잠재 공간 는 명확한 확률 분포를 따르도록 학습되지 않는다는 점이다. 따라서 기존의 모델을 그대로 사용하면 임의의 를 샘플링해도 의미 있는 데이터를 생성하기 어렵다.
잠재 변수 샘플링
위의 문제점을 해결하기 위해 Probabilistic AutoEncoder(확률적 오토인코더) 는 잠재 변수 가 우리가 샘플링할 수 있는 알려진 분포(Known Distribution) 에서 나온다고 가정한다. 다르게 말하면, 잠재 변수 가 알려진 분포 를 띤다고 가정한다.
여기서 사용하는 는 일반적으로 우리가 미리 정의하고 쉽게 샘플링할 수 있는 간단한 확률 분포(e.g. 표준 정규 분포 )로 설정된다. 이렇게 학습한 모델은 잠재변수 가 를 따르도록 학습되므로, 역으로 에서 샘플링한 잠재변수 를 디코더에 넣었을 때 의미 있는 데이터를 생성할 확률이 올라간다.
4.3. Prior Sampling
Prior Sampling (사전 샘플링) 은 잠재 변수 모델에서 MLE를 수행할 때 마주하는 계산 문제를 해결하기 위해 사용되었던 초기 접근 방식이다.
앞서 보았던 GMM의 경우를 살펴보자. GMM에서 잠재지시변수 의 사전분포를 라 할 때, 로그 가능도는 다음과 같았다.
문제는 잠재지시변수 의 차원 그자체가 커질 때 발생한다. 지금까지는 의 1차원 지시변수를 가정했지만, 만약 의 차원이 100차원이 된다면 어떨까? 단순히 각 차원별로 0, 1의 binary attribute로 구성되었다고 해도 전체 공간에서 의 가짓수는 개가 된다.
이처럼 잠재변수를 포함한 모델의 로그 가능도를 최대화하려면, 관측된 데이터 에 대해 모든 가능한 값에 걸쳐 를 합산해야 한다. 이 합산은 의 형태로 나타나는데, 잠재 변수 가 취할 수 있는 값의 수가 매우 많거나(discrete), 연속적인 경우()에는 이 합산을 직접 계산하기 어렵다는 문제가 있다.
따라서 이를 해결하기 위해 전체 공간의 가능한 에 대해 가능도를 합산하는 것이 아니라,
- 각 번째 데이터 포인트 에 대해
- 잠재 변수 공간 에서 개의 잠재변수 들을 샘플링하고
- 이 잠재변수들이 를 생성할 가능도를 구해 로 나눈 평균을 근사치로 사용
의 몬테카를로 샘플링 과정을 거쳐 실제 가능도를 추정하고 대체하는 Prior Sampling 기법이 등장했다.
하지만 Prior Sampling의 문제는 실제 위 예시와 같이 100차원의 넓은 차원의 의 사전분포가 있을 때, 몬테카를로 기법으로는 의미있는 값을 샘플링하지 못한다는 것이다. 사전분포는 실제 데이터가 생성되는 의미있는 잠재변수의 분포와는 거리가 멀 확률이 높고, 따라서 이처럼 넓은 공간의 사전 분포 에서 무작위로 샘플링한 대부분의 값은 실제 관측된 데이터 를 잘 설명하지 못하는 “쓸모없는” 잠재변수 샘플들일 가능성이 높다.

이러한 잠재변수들에 대해서 값은 매우 작을 확률이 높고, 결과적으로 가능도 함수에 대한 몬테카를로 추정치의 분산이 커지고 정확한 근사가 어려워지는 원인이 된다.
4.4. Importance Sampling
앞서 살펴본 Prior Sampling에서는 몬테카를로 샘플링을 하기에는 사전분포 가 실제 의미있는 데이터를 생성(=가 높은)하는 분포와 거리가 멀어 근사가 어렵다는 문제가 있었다. 그렇다면, 이를 해결하기 위해 실제 데이터가 생성될 확률이 높은 분포 를 도입할 수만 있다면, 더 효율적으로 샘플링하여 가능도 추정의 정확도를 높일 수 있지 않을까?
지금까지의 흐름을 정리해보면 잠재변수 에 대한 의 생성 가능도 함수를 라 할 때, 생성형 모델에서 사전분포 에서 샘플링한 잠재변수 에 대해 의 기댓값을 최대화하고자 한다.
이때 고차원의 에 대해 모든 잠재변수에 대한 를 합산/적분하기 어려우니 이 중 개의 샘플을 뽑아 몬테카를로 샘플링을 통해 근사치(기댓값)를 구하고자 했다. 하지만 사전 분포 는 실제 의미있는 데이터를 생성하는 분포와 거리가 멀기에 몬테카를로 샘플링된 대부분의 는 의미있는 데이터를 생성하지 못할 확률이 높다(가능도 가 0에 가깝다).
이때 데이터를 생성할 확률이 높은 분포(아직 이 분포를 모르지만) 를 도입할 수 있다면, 다음과 같이 기댓값을 근사할 수 있다.
그렇다면 가장 적절한 는 무엇일까? 직관적으로 보았을 때, 적절한 는 의 역인 임을 어렵지 않게 예상할 수 있는데, 과연 이 예상은 올바를까?
4.5. ELBO (Evidence Lower Bound)
베이즈 법칙에서 어떠한 모델에서 데이터가 관측될 전체 확률 를 Marginal Likelihood(주변 가능도) 혹은 Evidence라 불렀던 것을 기억할 것이다.
따라서, 앞에서 Evidence (로그 형식은 ) 를 최대화하기 어려울 때, 이를 대신하여 Evidence의 하한 (Lower Bound) 를 최대화하는 방식을 사용할 수 있으며, 이 과정에서 사용되는 하한 식을 ELBO (Evidence Lower Bound, 증거 하한) 라 하고 기호로써 로 나타낸다.
의 증명
앞서 우리가 데이터를 생성할 확률이 높은 분포를 로 도입할 수만 있다면, Importance Sampling이 가능함을 보았다.
가능도 에 대해 Importance Sampling과 Jensen’s Inequality를 사용하면 다음과 같은 전개가 가능하다.
이때, 를 로 설정하면,
따라서 일 때, ELBO 는 실제 Evidence와 일치하게 되고 최적 값에 도달한다.
4.6. EM Algorithm with ELBO
EM 알고리즘을 Recap 해보자. EM 알고리즘은 다음의 주요 단계를 통해 유도되었다.
- GMM에서 로그 가능도 를 최대화하고 싶다. 그러나 기존대로 계산한 로그 가능도에는 log-sum 구조로 인해 폐형식 해를 구하기 힘들다.
- 따라서 잠재 지시변수 를 도입해 완전데이터 로그 가능도를 최대화하자
- 잠재 지시변수는 관측되지 않아서 직접 최대화하기 어렵다
- 현재 파라미터 하에서 의 사후 분포 를 추정하고, 이를 기반으로 완전데이터 로그 가능도의 기댓값을 계산한다 (E-단계)
- 이 기댓값을 최대화하는 새로운 파라미터 를 찾는다 (M-단계)
이때 완전 데이터 로그 가능도를 도입할 때 사용한 식은 다음과 같았다.
이때 식에서 익숙한 꼴이 보인다! 여기서 대신 를 도입한 ELBO를 이용한다면 다음과 같은 부등식이 성립한다.
이제 EM 알고리즘의 각 스텝을 ELBO 관점에서 다시 살펴보자.
E-step에서 우리는 를 고정하고 책임도 를 계산했다.
이때 를 근사 분포 라고 생각하고 ELBO 식에 적용해보자. 앞서 ELBO는 일 때 최댓값 (=Evidence)를 가짐을 보았었다. 따라서 이 과정은 를 고정한 상태에서 ELBO 를 최대화하는 분포 를 찾은 것과 같다.
이후에 M-Step에서는 이렇게 구한 책임도 = 를 고정한 상태로 모델의 파라미터 를 최적화했다.
결국 EM 알고리즘은 모델의 ELBO를 와 에 대해 번갈아가며 반복적으로 최적화하는 과정과 동일함을 알 수 있다.
EM 알고리즘의 한계
EM 알고리즘은 를 직접 계산할 수 있을 때 효과적이지만, 실제로는 이 사후 분포가 복잡하거나 다루기 어려운 경우가 많다.
E-step에서 사후 분포 를 계산하기 위해서는 주변 가능도 를 알아야 하는데, 이를 위해서는 모든 가능한 잠재 변수 에 대한 합산 또는 적분값 이 필요하기에 가 고차원이거나 , 의 형태가 복잡하면 이 값이 해석적으로 풀리지 않는 경우가 많다.
GMM은 EM 알고리즘이 성공적으로 잘 작동하는 드문 예시
GMM의 경우, 베이즈 정리와 각 컴포넌트의 가우시안 분포의 조합임을 잘 활용하면 를 해석적으로 정확히 계산할 수 있다.
만약 가능도 분포 가 딥러닝 신경망을 통해 계산되는 분포 라면, 이를 다시 로 변환하는 것은 해석적으로 불가능하다.
또한, GMM도 의 차원이 커지면 계산복잡도, 데이터 희소 등의 문제가 발생할 수 있으나, 그럼에도 사후 분포의 해석적 계산 가능성 때문에 EM-알고리즘은 동작 가능하다.
4.7. VAE (Variational AutoEncoder)
4.7.1. Variational Inference & Variational Distribution
변분법(Calculus of Variations, 變分法) 이라 불리는 수학적 개념은, 전통적인 미적분학이 변수(Variable)에 대한 함수(Function)의 최적화를 다루는 것과 달리, 함수 자체를 변수로 보고 이 함수를 최적화하는 것을 다루는 미적분학이다.
두 점 사이의 최단 거리
라는 점과 라는 점을 연결하는 다양한 곡선들의 집합을 생각해 보자.
이들 중 가장 짧은 것, 즉 두 점 사이의 최단경로는 두 점을 연결한 직선이 된다. 직관적으로는 답을 쉽게 알 수 있지만 그것을 실제로 수학적인 엄밀성을 갖춰 증명하는 것은 쉽지 않다. 이러한 문제들을 풀기 위해 변분법이 존재한다.
이와 유사하게, Variational Inference(변분 추론) 에서는 우리가 찾고자 하는 복잡한 사후 분포(=특정한 형태의 함수) 를 직접 계산하는 대신, 다루기 쉬운 형태의 분포 를 도입하여 를 근사하며, 이때의 를 Variational Distribution(변분 분포) 이라 부른다.
우리는 분명 일 때 가능도 하한이 와 같아짐을 보았었다. 다만 문제는 가 우리가 알 수 없는 분포 즉, 매우 복잡하거나 계산 불가능한 분포라는 것이다.
우리가 다루기 쉬운 형태의 분포 중에서 와 가장 유사한 분포를 찾는 것은, 곧 분포 를 설명하는 파라미터를 변화(Varying)시키며 확률분포함수 와 가장 유사한 근사분포함수 를 찾는 함수의 최적화 과정으로 설명된다. 따라서 이를 위한 추론 방법과 추론하는 분포 에 Variational (변분) 이라는 이름이 붙게 되었다.
4.7.2. KL-Divergence
ELBO를 이용한 모델 학습 뿐 아니라 AI 및 데이터 분석에 매우 중요하게 쓰이는 KL-Divergence을 정리하고 가자
KL-Divergence(Kullback-Leibler Divergence, 쿨백-라이블러 발산) 는 정보 이론에서 유래한 개념으로, 한 확률 분포 가 다른 확률 분포 를 얼마나 잘 근사하는지 나타내는 지표이며, 하나의 분포를 사용하여 다른 분포를 표현하는 데 필요한 추가 정보량을 의미한다.
두 분포 와 가 있을 때, 분포를 사용하여 분포를 모델링할 때 발생하는 “정보 손실” 또는 “예상치 못한 놀라움”의 정도를 측정하며, 다음의 식으로 정의된다.
이를 엔트로피 개념에서 보면, 원분포 와 근사분포 가 있을 때, 이 둘의 교차 엔트로피(Cross Entropy)에서 원분포 의 엔트로피를 뺀 값과 같다.
그렇기에 분포 와 가 다를 때 KL-Divergence는 항상 0보다 크며, 에서 최솟값 0을 가진다. 또한, 분포 와 가 다를 때, 이 둘의 엔트로피는 일반적으로 같지 않기에, 대칭성을 보장하지 않는다.
4.7.3. Variational Lower Bound
ELBO with KL-Divergence
우리가 앞서 배운 ELBO를 연속확률변수에 대해 다시 정리하면 다음과 같다.
이를 통해 ELBO 내부에 실제 분포 와 근사분포 의 KL 발산항이 포함되어 있는 것을 볼 수 있다.
다만 우리가 중요도 샘플링에서 근사하고자 하는 분포 는 사전 분포 가 아닌 가 주어졌을 때의 사후 분포 이다. 따라서 와 의 KL 발산항에서 구해나가면 다음과 같이 전개된다.
놀랍게도 앞서 정리했던 ELBO 식이 그대로 튀어나오면서 ELBO와 실제 로그 가능도와의 차이가 임까지 드러났다! 이므로, ELBO가 로그 가능도의 하한이 됨을 볼 수 있고, 앞서 보았듯이 일 때, KL 발산항이 0이 되므로 ELBO와 로그 가능도가 일치하는 속성을 그대로 보여준다.
이는 곧 모델의 로그 가능도를 증가시키는 것과 을 감소시키는 것이 동치임을 시사한다.
Encoder-Decoder
앞의 식에서는 와 이 단순한 확률 분포처럼 행동할 때의 ELBO에 대해 알아보았다.
하지만 VAE 모델에서는 , 의 인코더-디코더 신경망의 분포로 다루어야 한다. 따라서는 인코더(Encoder) 신경망을 의미하며, 입력 가 주어졌을 때 잠재 변수 의 분포를 근사한다. 반면 는 디코더(Decoder) 신경망을 의미하며, 잠재 변수 로부터 원본 데이터 를 복원하는 분포를 나타낸다.
앞의 ELBO 식을 다시 보며 각 항의 의미를 생각해보자.
- : 재구성 오차 (Reconstruction Error) 또는 복원 항 (Reconstruction Term)
- 인코더가 입력 로부터 생성한 잠재변수 에 대해 디코더 가 다시 를 복원해낼 가능도를 의미한다.
- 이 항이 커지면 모델이 입력 데이터를 복원하는 능력이 좋아진다.
- : 정규화 항 (Regularization Term) 또는 사전 분포 일치 항 (Prior Matching Term)
- 인코더가 생성한 잠재변수 분포 가 우리가 정의한 사전 분포 와 얼마나 유사한지를 측정한다.
- 이 항이 작아지면, 잠재 공간이 사전 분포를 따르도록 강제하여 모델의 일반화 능력을 향상시킨다. 따라서 우리가 디코더 만을 떼어 생성형 모델로써 사용할 때, 사전 분포 에서 샘플링한 에 대해 의미있는 출력 를 생성할 확률이 높아진다.
- : ELBO와 실제 로그 가능도 간의 차이
- 이 항은 ELBO가 실제 로그 가능도를 얼마나 잘 근사하는지를 나타낸다.
- 이 값이 0에 가까울수록 ELBO는 로그 가능도의 더 정확한 하한이 된다.
여기서 를 0으로 보내면, 가 됨을 안다. 하지만 우리가 를 측정할 수 없기 때문에 이 항을 직접적으로 최적화할 수는 없다. 따라서 VAE에서는 ELBO항을 최대화 시키는 것을 목표로 재구성 오차와 정규화 항 두가지에 대해 최적화를 진행한다.
정규화 항의 경우 일반적으로 를 가우시안 분포로 가정하고, 사전 분포 를 표준 정규 분포 로 설정한다. 이를 통해 KL 발산항이 계산 가능한 폐형식 해를 가지게 된다.

4.7.4. ReParameterization Trick
VAE에서 학습을 위한 모델 그래프를 그리다 보면 한 가지 문제가 발생한다. 바로 잠재 변수 를 샘플링하는 과정이 미분 불가능하다는 점이다.

VAE의 인코더 가 입력 에 대해 출력하는 것은 특정점이 아니라 잠재 변수 의 분포를 나타내는 통계량이다. (예를 들어, 가우시안 분포를 가정한다면 평균 와 분산 (또는 표준편차 )이다.) 따라서 디코더의 입력을 위해 우리는 해당 분포에서 를 샘플링하는 과정을 거치는데 이 샘플링 과정은 미분이 불가능한 것이다.
이를 해결하기 위해 재매개변수화 트릭(Reparameterization Trick)을 사용한다.

재매개변수화 트릭은 잠재 변수 를 직접 샘플링하는 대신, 인코더가 출력하는 평균 와 표준편차 를 사용하여 표준 정규 분포에서 샘플링된 노이즈 을 변환하여 를 생성한다. 즉, 과 같이 표현함으로써, 샘플링 과정을 미분 가능한 연산으로 바꾸고 역전파를 가능케 한다.
4.7.5. Generating Data with VAE
VAE는 학습이 완료된 후 새로운 데이터를 생성하는 데 사용될 수 있다. 학습된 VAE에서 새로운 데이터를 생성하는 과정은 다음과 같다.

먼저, 우리가 정의한 사전 분포 (일반적으로 표준 정규 분포 )에서 잠재 변수 를 샘플링한다. 이 샘플링된 를 디코더 에 입력하여 새로운 데이터 를 생성한다. 이 과정은 인코더 없이 디코더만을 사용하여 이루어지며, 다양한 값을 샘플링함으로써 다양한 형태의 새로운 데이터를 생성할 수 있다.
만약 전체 사전 분포(여기서는, )에서 를 샘플링하여 생성하면, 다양한 의미 있는 데이터가 생성된다. 또한, 특정 사후분포 에 대해 샘플링하면 다음과 같이 해당 의 Context를 가진 데이터를 집중적으로 생성하는 모습을 볼 수 있다.


Latent Space Walk
잠재 공간 워크(Latent Space Walk) 는 잠재 변수 의 값을 연속적으로 변화시키면서 디코더가 생성하는 데이터 가 어떻게 변하는지 관찰하는 것을 의미한다. 예를 들어, 두 개의 다른 잠재 변수 과 사이를 선형 보간하여 중간 값들을 디코더에 입력하면, 에서 로 부드럽게 변화하는 이미지나 데이터를 생성할 수 있다.
이전의 일반적인 오토인코더(AE) 에서는 이러한 부드러운 전환을 기대하기 어려웠다. 어떠한 특징을 나타내는 잠재변수 를 찾더라도 그 주변 공간이 의미 있는 정보를 담고 있지 않을 가능성이 컸다.
하지만 VAE는 정규화항의 포함으로 인해, 단순히 를 잘 복원하는 인코더-디코더 구조를 넘어 그 잠재공간 자체가 부드럽고 의미있는 구조를 가지게 되었다.

이는 VAE가 생성형 모델로 기능하게 하는 매우 중요한 특징이며, VAE가 단순히 데이터를 압축하고 복원하는 것을 넘어, 데이터의 의미 있는 특징들을 잠재 공간에 잘 인코딩하고 있음을 보여준다.
5. GAN (Generative Adversarial Network)
지금까지 우리가 살펴본 생성모델(AutoRegressive, Flow-Based, VAE)들은 모두 모델의 로그 가능도를 최대화하는 것을 목적으로 학습을 진행했다.
- AutoRegressive Model
- Flow-Based Model
- Variational AutoEncoder
5.1. Pixel-wise Loss Functions
우리는 지금까지 이미지 생성 모델에서 생성된 이미지와 실제 이미지 간의 차이를 측정하는 방법으로, 예측한 픽셀 값과 실제 픽셀 값을 직접 비교하여 손실(오류)를 계산했다.

이는 일반적으로 연속적인 변수(예: 이미지의 픽셀 값)를 다룰 때 등방성 가우시안(isotropic Gaussians) 분포를 따를 것이라는 가정을 기반으로 한다. 따라서 각 픽셀 값이 독립적이며 평균과 분산이 고정된 가우시안 분포를 따른다고 보고, 이 가정하에 모델의 출력이 실제 데이터와 얼마나 일치하는지 측정한다. 지금까지의 최적화 과정은 결국 픽셀 단위 L2 손실(Mean Squared Error, MSE) 을 최소화하는 방향으로 진행되었다.
Pixel-wise Loss의 문제점
이처럼 Pixel-wise한 Loss 함수의 계산은 사소한 변화에도 큰 손실을 야기해 모델의 표현력을 해칠 수 있다. 이는 이미지 내용이 아주 조금만 바뀌거나, 한 픽셀 정도만 위치가 어긋나도 손실 값이 매우 커질 수 있기 때문이다.

위 그림과 같이 매우 비슷한 두 선에 대해서도 두개 픽셀만큼의 위치 오차를 일관적으로 발생시킨 것 만으로, 실제 Pixel-wise 손실은 매우 커지게 된다. 실제 이미지에 대해, 고양이 눈이 (10,10)에 있고 생성된 이미지에서는 (10,11)에 있다면, 사람의 눈에는 여전히 문제 없는 고양이 눈으로 인식되지만, 픽셀 단위에서는 큰 오차로 간주된다.
따라서, 이러한 큰 손실을 피하기 위해 모델은 모든 가능한 경우에 대해 “평균적인” 이미지를 생성하려는 경향을 가진다. 예를 들어, 여러 장의 사람 얼굴 이미지를 평균 내면 흐릿한 얼굴이 되듯이, 모델은 특정 형태가 아닌 일반적이고 흐릿한 이미지를 만들어 큰 페널티를 피하려고 하며, 이로 인해 생성되는 이미지가 선명하지 않고 품질이 떨어지는 문제가 발생한다.
5.2. Good Samplers
- Sampling (샘플링):
- 학습된 데이터 분포에서 새로운 데이터를 생성하는 능력으로, 사람 얼굴 이미지 데이터로 학습한 모델이 세상에 존재하지 않는 새로운 사람 얼굴 이미지를 만들어내는 것을 예로 들 수 있다.
- Likelihood evaluation (우도 평가):
- 주어진 데이터가 모델이 학습한 분포에서 얼마나 발생할 가능성이 높은지(확률적으로) 평가하는 기능으로, 모델이 데이터의 분포를 얼마나 정확하게 학습했는지 측정하는 데 사용될 수 있다.
- Representation (표현 학습):
- 데이터의 핵심적인 특징이나 구조를 잠재 공간에 효율적으로 압축하여 표현하는 능력으로, 이를 통해 모델은 데이터의 본질적인 특성을 이해하고 활용할 수 있게 된다.
생성 모델은 위의 영역들에서 높은 성능을 끌어내야 한다. 하지만 이중, 샘플링에만 관심을 두게 되면 어떤 일이 일어날까?
이는 앞에서 언급된 Pixel-wise Loss Functions의 한계점과 연결된다. 픽셀 단위의 손실 함수는 이미지의 작은 변화에도 큰 손실을 발생시키고, 이를 피하기 위해 모델이 불분명하고 흐릿한 이미지를 생성하는 경향을 만든다. 이러한 문제점은 종종 명시적인 우도(Explicit Likelihood)를 계산하거나 픽셀 수준의 정확한 재구성을 목표로 할 때 발생하게 된다.
따라서, 명시적인 우도 계산의 복잡성이나 이로 인해 발생하는 생성 품질 문제를 피하면서, 단순히 고품질의 새로운 데이터를 생성하는 ‘샘플링’ 자체에 집중하는 새로운 접근 방식의 필요성이 대두되었다.
What is a Good Sampler?
그렇다면 먼저, “좋은 샘플링”이란 무엇일까? 이에 대하여 다음과 같은 이상적인 특징들을 꼽을 수 있다.
- 단순 복제 이상의 능력
- 좋은 샘플러는 학습 데이터셋에 있는 정확히 동일한 데이터 포인트를 샘플링하는 것을 목표로 하지 않는다. 이는 모델이 단순히 데이터를 암기하는 것이 아니라, 더 깊은 이해를 가지고 있음을 의미한다.
- 따라서 모델은 데이터가 따르는 근본적인 분포(Underlying Distribution) 를 이해해야 한다. 이를 통해 모델은 실제 데이터가 생성되는 원리를 파악하고 모방할 수 있게 된다.
- 학습 샘플 간 부드러운 보간(Interpolation)
- 학습 데이터 샘플들 사이를 부드럽게 보간(Interpolate) 하여 중간 형태의 데이터를 자연스럽게 생성할 수 있어야 한다. 예를 들어, 두 개의 다른 얼굴 이미지 사이의 여러 단계의 변화를 자연스럽게 만들어낼 수 있어야 한다.
5.3. Implicit Models
암시적 모델(Implicit Models) 은 생성하고자 하는 데이터의 명시적인 우도 함수, 즉 를 직접적으로 정의하거나 계산하지 않는 생성 모델로, 대신 데이터를 생성하는 과정 그 자체를 학습한다.

먼저, 잠재 변수 에 대한 사전 분포 를 샘플링하기 쉬운 형태로 설정한다. 이렇게 샘플링된 값 는 강력한 신경망 에 입력하여 최종 데이터 를 생성한다.
핵심은 이 과정에서 데이터 가 생성되기는 하지만, 가 얼마나 실제 데이터 분포와 일치하는지에 대한 확률값 를 직접적으로 계산하거나 평가하지 않는다는 점이다.
이러한 암시적 모델은 명시적인 우도 모델과 달리, 복잡한 데이터 분포를 모델링하는 데 유리할 수 있으며, 특히 이미지와 같은 고차원 데이터 생성에서 뛰어난 성능을 보이는 것이 밝혀져 있다.
5.4. GAN
Generative Adversarial Networks(GAN) 은 두 개의 신경망, 즉 생성자(Generator, G) 와 판별자(Discriminator, D) 가 서로 경쟁하면서 학습하는 독특한 생성 모델이다.
GAN은 Implicit Model의 한 종류로, 데이터의 명시적인 likelihood를 모델링하지 않고 데이터를 샘플링하는 데 중점을 둔다. GAN의 내부는 데이터를 샘플링하는 생성자 와 이것이 진짜 데이터인지, 아니면 만들어진(샘플링된) 데이터인지 판별하는 판별자 가 붙어 mini-max 게임을 통해 서로를 발전시키는 과정을 반복한다.
이 과정에서 생성자 는 점점 더 정교한, 그럴듯한 데이터를 샘플링하려하고, 판별자 는 점점 더 이 데이터를 실제 데이터와 구분하려 한다. 결국 이 과정의 끝에서 생성자 의 샘플링 실력을 향상시키는 것이 GAN의 목표가 된다.
- 생성자(Generator, G):
- 무작위로 샘플링된 잠재 변수 를 입력으로 받아 실제 데이터와 유사한 가짜 데이터 를 생성한다.
- 목표는 판별자 를 속여 자신이 만든 가짜 데이터가 진짜라고 판별하게 만드는 것이다.
- 판별자(Discriminator, D):
- 실제 데이터 와 생성자가 만든 가짜 데이터 를 입력으로 받고 이 입력이 실제 데이터에서 온 것인지 (레이블 1), 아니면 생성자가 만든 가짜 데이터인지 (레이블 0)를 이진 분류(Binary Classification) 한다.
- 목표는 실제 데이터와 가짜 데이터를 최대한 정확하게 구별하는 것이다.
MiniMax Game
GAN의 학습 과정은 생성자와 판별자 사이의 한 플레이어가 자신의 이득을 최대화하면서 동시에 다른 플레이어의 이득을 최소화하려는 게임 이론인 미니맥스 게임(minimax game) 으로 정의된다.
- 판별자 의 목표 (최대화)
-
- 실제 데이터 가 주어졌을 때, 는 가 실제 데이터일 확률을 나타내며, 판별자는 이 값을 최대화하여 실제 데이터를 ‘진짜(1)‘라고 올바르게 분류하려 한다.
-
- 생성자가 만든 가짜 데이터 가 주어졌을 때, 는 가 실제 데이터일 확률을 나타내고, 따라서 는 가 가짜 데이터일 확률이다. 판별자는 이 값을 최대화하여 가짜 데이터를 ‘가짜(0)‘라고 올바르게 분류하려 한다.
- 종합적으로, 판별자 는 값을 최대화하여 진짜와 가짜를 가장 잘 구별하려 한다.
-
- 생성자 의 목표 (최소화):
-
- 생성자 는 판별자 를 속이는 것이 목표이므로, 가 자신의 생성물 를 ‘가짜’라고 판단할 확률()을 최소화하려고 한다. 이는 다시 말해, 가 를 ‘진짜’라고 판단할 확률()을 최대화하려는 것과 같다.
- 는 위의 목적 함수에서 항을 최소화하려고 시도하며, 첫 번째 항은 와 관련이 없으므로 의 학습에는 영향을 미치지 않는다.
- 결과적으로, 생성자 는 전체 목적 함수 값을 최소화하려 한다.
-

GAN은 함수에 대해 , 를 번갈아 수행하며 학습하며, 이 과정에서 생성자는 점점 더 실제와 구별하기 어려운 데이터를 생성하게 된다.


5.5. Discriminator Saturation
판별자 포화(Discriminator Saturation)이라 불리는 현상은, GAN 학습 과정에서 판별자 의 성능이 지나치게 좋아져서, 생성자 가 더 이상 학습하기 어려워지는 현상을 의미한다.
GAN 학습 초기 단계에서는 생성자가 아직 미숙하여 실제와는 확연히 다른 가짜 데이터를 생성하며, 따라서 판별자는 이러한 가짜 데이터를 실제 데이터와 매우 쉽게 구별해낼 수 있다. 이는 판별자의 손실 함수 기울기(gradient)가 크고 따라서 빠르게 최적화된다는 말이다.
이 경우에, 판별자가 생성자가 만든 모든 가짜 데이터를 가짜(0)라고 확실하게 분류하게 되는데 이때 의 값은 항상 거의 에 가까워진다. 또한, 이때 생성자의 손실 함수는 이므로 가 0에 매우 가까워지면, 는 1에, 는 0에 가까워진다.
문제는 Sigmoid 활성화 함수를 사용하는 경우인데, Sigmoid 함수의 도함수 는 입력값이 아주 크거나 작을 때(즉, 출력이 0 또는 1에 가까울 때) 0에 가까워지는 특성을 가져, 판별자가 가짜 데이터를 너무 확실하게 “가짜(0)“로 분류하게 되는 경우, 이 판별자의 출력값() 근처에서의 기울기가 매우 작아지게 된다.

이때, 생성자는 이 기울기를 통해 학습을 진행해야하는데, 기울기가 0에 가까워지면서 생성자에게 전달되는 학습 신호(gradient)가 거의 없어져 생성자가 더 이상 효과적으로 학습할 수 없는 상태가 된다.
결국 너무 확실하고 정확한 판별자의 판단 때문에, 생성자는 업데이트할 유의미한 gradient를 받지 못해 학습이 정체되며, 모델이 수렴하지 못하거나 Mode Collapse와 같은 다른 문제로 이어질 수 있다.
Not Saturating Formulation
이를 해결하기 위해서는, 간단히 원래의 생성자 함수를 다음과 같이 바꿔주면 된다.
생성자 포화의 주 문제는 판별자가 너무 생성자의 신호 에 대해 너무 거짓 판별(0)을 잘 했을 때에 일어나는 문제이므로, 위와 같이 식을 바꾸어주면 판별자의 강한 거짓 판별에 대해 시그모이드 함수의 기울기가 -1에 가까워지며 해결된다.

5.6. Deep Convolutional GAN (DCGAN)
기존의 GAN은 단순히 전결합층을 사용한 것에 비해, 컴퓨터 비젼에서 널리 쓰이던 Convolutional Neural Network (CNN) 아키텍처의 장점을 통합하여 이미지 생성 품질을 크게 향상시킨 모델이 Deep Convolutional GAN(DCGAN) 이다.

- 전결합층 제거
- 전통적인 CNN에서 사용되던 풀리 커넥티드 레이어를 대부분 제거하고, 모든 레이어를 컨볼루션 레이어로 구성하여 모델의 안정성을 높였다.
- Stride Conv & Transposed Conv
- 판별자에서는 Stride Conv를 사용하여 다운샘플링을 수행하고, 생성자에서는 Transposed Conv(DeConv)를 사용하여 업샘플링을 수행하여 이미지의 공간 해상도를 조절한다.
- 배치 정규화(Batch Normalization)
- 생성자와 판별자 네트워크 모두에 배치 정규화를 적용하여 학습을 안정화하고, 모델이 깊어지면서 발생하는 Gradient Vanishing/Exploding 문제를 완화한다.
- 활성화 함수
- 생성자에서는 출력 레이어를 제외하고 ReLU (Rectified Linear Unit)를, 출력 레이어에는 Tanh를 사용합니다. 판별자에서는 Leaky ReLU를 사용하여 Gradient Vanishing을 방지한다.



이러한 아키텍처적 개선을 통해 DCGAN은 당시로서는 매우 높은 품질의 이미지를 생성할 수 있었으며 특히, 학습된 생성자가 이미지의 특징(예: 얼굴의 표정, 객체의 스타일)을 잠재 공간에서 잘 표현하고, 이를 선형적으로 조작하여 새로운 이미지를 생성하는 능력을 입증했다.
5.7. Challenges
이러한 GAN의 장점에도 불구하고, 단점 혹은 도전점으로 불리는 부분들이 있다.
- 불안정한 학습 역학 (Unstable Training Dynamics)
- 많은 GAN 학습에서 후반부에 다다라 Loss가 심하게 튀는 현상이 있다.
- 두 모델이 동시에 최적화되면서 서로에게 영향을 주기 때문에, 안정적인 균형점(Nash Equilibrium) 을 찾는 것이 매우 어려운 편이며, 마치 “움직이는 과녁을 맞추는 것”과 유사하여 학습이 매우 불안정하고 수렴하기 어려운 경향이 있다.

-
모드 붕괴 (Mode Collapse)
- 생성자가 실제 데이터 분포의 다양성을 제대로 학습하지 못하고 특정 종류의 데이터 샘플만 반복적으로 생성하는 현상이다.
- 예를 들어, 얼굴 이미지를 생성하는 GAN이 항상 웃는 얼굴만 생성하거나, 특정 각도의 얼굴만 생성하는 경우로, 이는 일부 경우에 판별자를 속이는 데 가장 효과적인 몇 가지 패턴만 집중적으로 학습하기 때문에 발생하는 문제점이다.


6. Diffusion Models
Diffusion Model (확산 모델) 은 데이터에 점진적으로 노이즈를 주입하여 완전한 무질서(Gaussian Noise) 상태로 만드는 Forward Process (확산 과정) 와, 반대로 노이즈로부터 원본 데이터의 분포를 찾아가는 Reverse Process (역확산 과정) 를 학습하여 데이터를 생성하는 확률적 생성 모델이다
VAE가 인코더-디코더를 통해 데이터를 한 번에 압축하고 복원하는 것과 달리, Diffusion Model은 통상적으로 이 과정을 번의 수많은 단계(Step)로 나누어 수행하는 Markov Chain (마르코프 체인) 구조를 가진다. 이는 복잡한 데이터 분포를 한 번에 모델링하는 난이도를 낮추고, 각 단계에서의 작은 변화를 학습함으로써 고품질의 생성을 가능하게 한다.
6.1. DDPM (Denoising Diffusion Probabilistic Models)
DDPM (Denoising Diffusion Probabilistic Models) 은 Diffusion Model의 이론적 토대를 닦은 대표적인 모델로, 데이터가 노이즈로 오염되는 과정과 이를 복원하는 과정을 가우시안 분포를 사용하여 모델링한다.

Forward Process

DDPM의 Forward Process는 원본 데이터 에서 시작하여 매 시점 마다 가우시안 노이즈를 조금씩 주입하는 과정이다. 또한, 이 과정을 거친 최종 시점 에서는 데이터의 정보가 모두 사라지고 완전한 등방성 가우시안 노이즈(Isotropic Gaussian Noise) 가 되도록 설계되어 있다.
이러한 노이즈 추가 과정은 이전 상태 에만 의존하는 다음의 마르코프 체인으로 정의된다.
여기서 는 각 시점에서 주입되는 노이즈의 분산을 결정하는 하이퍼파라미터(Variance Schedule)이다. 가 작다면, 는 과 매우 유사한 분포를 가지게 되고, 가 크다면, 반대로 간의 차이가 크게 된다.
에서 로의 직접 샘플링
매 스텝 노이즈를 더하는 방식이지만, 훈련 시 매번 번의 노이즈 주입을 반복하는 것은 비효율적이다. 다행히 가우시안 분포의 성질(독립적인 가우시안 변수의 합은 여전히 가우시안이며 평균과 분산이 더해짐)을 이용하면, 임의의 시점 의 를 로부터 한 번에 샘플링할 수 있다.
, 라고 정의할 때, 재매개변수화 트릭을 사용하여 다음과 같이 유도된다.
결론적으로 가 되어, 한 번의 연산으로 step 에서의 노이즈 이미지를 생성할 수 있다.
Reverse Denoising Process
Reverse Process는 완전한 노이즈 에서 시작하여 점차 노이즈를 걷어내며 유의미한 데이터 를 복원하는 과정이다. 이론적으로 가 매우 작다면(Small Step Limit), 역과정 또한 가우시안 분포를 따른다는 것이 증명되어 있다.
먼저 베이즈 법칙에 따라 Noising Process의 역분포는 다음과 같이 설계할 수 있다.
하지만 우리는 분포를 모르기에, 위 베이즈 법칙을 바로 계산할 수 없다. DDPM에서는 여기에 조건 를 추가한다. 이 경우, 우리가 계산 불가능한 분포 가 에 조건부 분포로 변하는데, 이 조건부 분포는 Forward Process에서 도출한 식을 통해 바로 계산 가능하다.
위 분포를 정리하면 다음의 분포식을 얻을 수 있다.
Training & Inference
우리가 최종적으로 얻은 의 식에서, 평균 를 계산하기 를 사용하는 것을 볼 수 있다. 이를 의 신경망으로써 예측하도록 하면, 모델 는 step 와 그때의 Noising된 입력 를 기반으로 의 분포를 추론하도록 학습하게 된다.
- Training Algorithm : Repeat the following steps until convergence
- Draw a sample
- Pick a random time stamp,
- Draw a sample
- Take gradient descent step on
- Inference Algorithm
- Start from a white noise vector,
- Repeat drawing a sample for
이때 Inference에서 각 step 에서 샘플링하는 은 다음과 같다.
-prediction
수식을 더 전개하면, 를 예측하는 것은 결국 현재 이미지 에 포함된 노이즈 을 예측하는 것과 수학적으로 동치임이 밝혀진다.
는 와 의 선형 결합()이므로, 를 와 에 대한 식으로 치환하여 식에 대입하면
따라서
에 대한 식을 자세히 보면, 의 정의로부터 치환이 가능함을 알 수 있다.
이는 곧, 기존의 를 알아내기 위해 를 추정하는 것이 추가된 노이즈 를 예측하는 것과 근본적으로 동일함을 알려준다. 따라서 모델의 추정 목표를 로, 손실을 로 설정하면, 평균 예측 문제는 노이즈 예측 문제로 단순화된다.
이로써 복잡한 KL-Divergence 최소화 문제는 다음과 같은 매우 직관적인 MSE Loss로 귀결된다.
즉, Diffusion Model의 학습 과정은 “입력된 노이즈 낀 이미지()를 보고, 그 안에 들어있는 노이즈()가 무엇인지 맞추는 것” 으로 결론지을 수 있다.
- Training Algorithm : Repeat the following steps until convergence
- Draw a sample
- Pick a random time stamp,
- Draw a white noise,
- Generate sample with
- Take gradient descent step on
- Inference Algorithm
- Start from a white noise vector,
- Repeat drawing a sample for
이때 Inference에서 각 step 에서 샘플링하는 은 다음과 같이 변한다.
여기서 주목할 점은 마지막 항 () 이다. DDPM은 샘플링 과정에도 랜덤 노이즈 를 다시 주입한다. 이는 생성 과정의 확률적 성질(Stochasticity)을 유지하여 생성의 다양성을 보장하지만, 번의 스텝을 모두 거쳐야 하므로 생성 속도가 느리다는 단점이 있다.


6.2. DDIM (Denoising Diffusion Implicit Models)
DDPM은 근본적으로 생성을 위해 즉, 의 샘플링을 모든 step 에 대해 수행하여야 하는 문제가 있다. 이는 생성 속도를 늦추고, 계산량을 늘려 자원 소모를 크게 만들었다. 이러한 문제를 해결하기 위해 DDIM이 등장한다.
유도과정
, 로의 식을 각각 써보자.
이때, 공통인 를 먼저 에 대해 정리하여 에 대입할 수 있다.
이제 이 식을 원래의 DDPM에서의 샘플링 식과 비교해보자.
기존에 DDPM에서 으로 Stochastic한 확률 과정을 따르던 샘플링 과정이, DDIM에서는 모델이 를 통해 예측한 노이즈 와의 선형 조합을 통한 결정론적(Deterministic) 과정으로 변했다. 따라서, DDIM에서는 동일한 신경망 에서 동일한 에 대해 동일한 을 생성한다.
여기에 우리는 최종적으로 를 통해 Deterministic에 원하는 비율의 Stochastic 과정을 추가할 수 있다.
일 때, 이 과정은 Deterministic 하며, 를 증가시킴에 따라 이 샘플링 과정은 Stochastic 과정으로 변한다. 이는 다음의 장점을 가지게 한다.
-
Deterministic Sampling: 랜덤 노이즈가 없으므로, 동일한 초기 잠재 변수 는 항상 동일한 이미지 로 매핑된다. 이는 잠재 공간에서의 보간(Interpolation)이나 이미지 역변환(Inversion)을 가능하게 한다.
-
Accelerated Sampling: 마르코프 체인 가정을 깼으므로, 개의 모든 스텝을 거치지 않고 일부 스텝만 건너뛰며(Skip-step) 샘플링해도 좋은 품질의 이미지를 생성할 수 있다 (예: 1000 step 50 step).

6.3. Variational Perspective (Connection to Hierarchical VAE)
Diffusion Model은 VAE, 특히 Hierarchical VAE (계층적 VAE) 의 특수한 형태로 해석할 수 있다.

- VAE: 의 단일 잠재 계층 구조를 가진다.

- Hierarchical VAE: 처럼 잠재 변수가 여러 층위를 가진다.

- DDPM: 의 구조를 가지며, 여기서 각 단계의 는 모두 잠재 변수와 같은 역할을 한다.
VAE와 Diffusion의 결정적인 차이점은 인코더에 있다. VAE는 인코더 를 학습해야 하지만, DDPM의 Forward Process(인코더 역할) 는 미리 설계된 공식에 따라 가우시안 노이즈를 더하는 고정된 과정(Fixed Encoder) 이므로 학습할 파라미터가 없다.
따라서 Diffusion Model은 Reverse Denoising Process 즉, 생성 과정(Decoder, Reverse Process)만 학습하면 되는 단순화된 Hierarchical VAE로 볼 수 있다.
ELBO for Diffusion
Diffusion을 Hierarchical VAE로 볼 수 있다는 것은, Diffusion이 VAE와 마찬가지로 데이터의 로그 가능도(Log Likelihood)를 최대화하기 위해 ELBO (Evidence Lower Bound) 를 목적 함수로 사용한다는 것을 의미한다.
이 경우 다음과 같이 전개가 가능하다.
- Prior Matching Term:
- 가 표준 정규 분포에 가까운지를 측정한다. Forward process가 고정되어 있으므로 이 항은 상수 취급되어 학습에 관여하지 않는다.
- Reconstruction Term:
- 마지막 잠재 변수 에서 원본 를 복원하는 항이다.
- Denoising Matching Term (핵심):
- 각 시점 에서 ‘실제 역과정’과 ‘모델이 예측한 역과정’ 간의 분포 차이를 최소화한다.
6.4. Score-Based Generative Models (SGM)
Diffusion Model은 물리학의 확산 방정식뿐만 아니라, Score-Based Generative Model의 관점에서도 해석될 수 있다. SGM은 데이터의 확률 분포 를 직접 모델링하는 대신, 그 분포의 기울기인 Score Function을 모델링하는 접근법이다.
6.4.1. Energy Based Models
임의의 복잡한 분포는 다음과 같은 형식으로 쓰여질 수 있다.
여기서 는 에너지 함수 (Energy Function)라 불리는 함수로, 데이터 가 나타날 확률이 높을수록 즉, 가 클수록 낮은 값을, 가 반대로 작을수록 높은 값을 가진다.
또한, 는 이 에너지 함수 로부터 계산되는 가 확률의 성질을 만족하도록 (전체 적분 구간에서 적분값이 1) 나눠주는 정규화 상수의 역할을 수행하며, 분할 함수 (Partition Function) 이라고도 불린다.
중요한 것은 에너지 함수 가 신경망 등으로 구성된 임의의 유연한 (Arbitrarily Flexible) 형태를 가지는 로 표현될 수 있다는 것이다. 이를 통해 EBM은 어떠한 복잡한 데이터 분포라도 이를 적절히 표현하는 에너지 함수 를 통해 모델링할 수 있게 된다.

그렇다면, 이 에 대한 MLE 는 어떻게 계산될 수 있을까?
6.4.2. Score Function
Score Function은 통계학에서 확률 밀도 함수의 로그 에 대한 기울기(gradient)를 의미하며, 특히 생성 모델 분야에서는 데이터의 확률 분포가 주어졌을 때, 해당 데이터가 얼마나 그 분포를 잘 따르는지를 나타내는 방향(기울기)을 알려주는 매우 중요한 역할을 수행한다.
이 함수는 데이터 가 해당 확률 분포에서 더 높은 확률을 가지는 방향을 가리키는, 즉, 확률 밀도 함수의 “가장 가파른 상승” 방향을 알려주는 벡터 필드(vector field)이다.
이때, 이 과정에서 정규화 상수 는 의 전 구간에 대한 Energy Function 의 적분값이므로 에 대해서 미분할 때에는 상수 취급되어 사라진다.
따라서 EBM에서 Score Function은 단순하게 다음으로 정의된다.
6.4.3. Sampling from EMBs - Langevin Equation
Score Function 가 있을 때, 이로부터 샘플을 샘플링하는 일반적인 방법 중 하나가 랑주방 역학(Langevin Dynamics) 이다. Langevin Dynamics에서는 다음의 업데이트 규칙을 통해 Score Function에서 샘플링을 진행한다.
-
- 현재 시점 에서의 데이터 샘플
-
- 다음 시점 에 업데이트될 데이터 샘플
-
- 학습률 또는 스텝 사이즈에 해당하는 양수로, 샘플이 얼마나 크게 이동할지를 결정한다.
-
- 에너지 함수 의 에 대한 기울기(gradient), 샘플을 에너지 함수가 낮은 방향(확률이 높은 방향)으로 이동시킨다.
-
- 가우시안 노이즈항. 이며, 이 노이즈는 모델이 지역 최적점(Local Optima)에 갇히지 않고, 데이터 분포의 다양한 모드(Modes)를 탐색할 수 있도록 돕는다.
먼저 초기 분포(e.g. 가우시안)에서 무작위로 초기화한 에 대해 충분히 많은 스텝 동안 업데이트를 반복한 후의 를 해당 스코어 함수를 가지는 데이터 분포에서 나온 유효한 샘플로 간주한다.

Are we really sampling from ?
Fokker-Planck Equation을 이용하면 Langevin Dynamics의 Langvevin sampling을 이용하여 샘플링한 표본이 실제 의 분포를 따름을 증명할 수 있다.
시점 에서의 Langevin sample 는 위의 Fokker-Planck Equation을 만족하는데, 이 경우 일 때의 정상분포 임이 증명되어있다.
Score function of Gaussian distribution
Langevin Sampling in Gaussian mixture
6.4.4. Training EBM via Score Matching
우리의 모델이 Score Function에 대한 학습을 진행하기 위한 Score Matching Loss는 다음과 같이 정의될 수 있다.

다만 여기에는 문제가 있는데, 의 계산 불가능성, 그리고 sparse한 전체 공간의 특성으로 인해 가 낮은 대부분의 공간에서 Score function의 추정이 부정확하다는 점이다.

위 Score Matching의 문제를 해결하기 위해 Denoising Score Matching 기법이 사용된다.
6.4.5. Denoising Score Matching (DSM)
우리는 실제 데이터의 분포 를 모르기 때문에 Score Function을 직접 구할 수 없다. 이를 해결하기 위해 Denoising Score Matching 기법을 사용한다. 핵심 아이디어는 “데이터에 노이즈를 더하고, 그 노이즈를 제거하는 방향을 학습하면, 그것이 곧 Score Function이 된다”는 것이다.

먼저 우리가 샘플링하는 를 분산 만큼을 더한 분포에서 샘플링한 로 대체한다.
여전히 는 intractable하기에, 에 대한 조건부 분포로 만들어 계산 가능하게끔 한다.
이때, 는 가우시안 분포를 띠도록 설계했었고, 앞의 가우시안 예제에서 보았듯 가 되므로 대입하면
문제는 가 큰 노이즈를 주입하면 low-density region을 잘 커버하는 반면, 원본 분포의 성질을 많이 잃어버리고, 가 작은 노이즈를 주입하면 원본 분포의 성질을 잘 유지하는 반면, low-density region 문제를 여전히 해결하지 못한다.
따라서, 이 과정을 여러개의 step 로 나누고, 가 되도록 를 설정하면, 넓은 범위의 확률 공간을 다루면서도, 작은 step 에 대해 원본 분포를 잘 유지할 수 있게 된다.
이러한 weighting function을 로 설정하면 다음의 Loss로 정리할 수 있다. (많은 경우, 로 설정된다.)

이때의 손실 함수는 DDPM의 노이즈 예측 손실 함수와 형태적으로 거의 동일하다. 결론적으로 DDPM에서 를 통해 노이즈를 예측하는 것은, 데이터 분포의 Score 를 추정하는 것과 수학적으로 동치이다.
이처럼 DDPM은 여러 스케일의 노이즈()를 사용하는 Annealed Langevin Dynamics의 일종으로 볼 수 있다.
6.5. Guidance: Conditional Generation
생성 모델의 실용성을 높이기 위해서는 사용자가 원하는 조건(Class Label, Text 등) 에 맞는 이미지를 생성하도록 제어(Guidance)할 수 있어야 한다.
이는 곧 생성 분포를 로 컨디셔닝 할 수 있어야 하는 것이고, SGM에서는 곧 를 학습해야한다는 의미이다. 여기에 베이즈 법칙을 적용해보면 우리가 학습하려는 최종 Score Function은 다음과 같이 분해된다.
6.5.1. Classifier Guidance
Classifier Guidance는 사전 학습된 Diffusion Model 외에, 노이즈가 낀 이미지를 분류할 수 있는 별도의 Classifier 를 추가로 학습시켜 사용한다.
위에서 베이즈 정리에 의해 조건부 Score가 다음과 같이 분해됨을 보였기에
단순히 샘플링 과정에서 Classifier의 그라디언트 를 더해주어, 생성되는 이미지가 해당 클래스 일 확률이 높아지는 방향으로 갱신을 유도한다.
기존의 step에서의 분포와 여기서 유도되는 Score Function은 다음과 같았다.
여기서 를 모델의 예측기가 예측한 와 특정 항 를 합친 항으로 설정하면 다음과 같이 Classifier Score Function을 포함한 Score Function이 그대로 나오는 것을 볼 수 있다.
6.5.2. Classifier-Free Guidance (CFG)
Classifier Guidance는 별도의 노이즈 강건(Noise-robust) Classifier를 학습시켜야 하는 비용과 번거로움이 있다. Classifier-Free Guidance (CFG) 는 이를 해결하기 위해 하나의 모델로 조건부 생성과 비조건부 생성을 동시에 학습한다.
기존에 Classifier Guidance에서 사용한 Score Function에 베이즈 법칙을 다시 적용하여 전개하면 다음과 같이 분리할 수 있다.
이는 비조건부 노이즈 예측을 위한 Score Function과, 비조건부 노이즈 예측과 조건부 노이즈 예측의 차이 벡터에 를 곱한 값만큼 전체 Score Function을 업데이트 시켜, 생성 과정에서 조건부 노이즈 예측 방향으로 증폭시키도록 도와준다.
학습 시에는 일정 확률()로 조건 를 버리고(Null condition, ) 학습하여, 모델이 와 을 모두 예측할 수 있게 하며, 샘플링 시에는 두 예측값의 차이를 이용해 조건을 강조한다.
여기서 는 Guidance Strength로, 이 값이 클수록 조건 에 더 강하게 부합하는 이미지가 생성되지만 다양성은 줄어드는 Trade-off가 있다. CFG는 현재 Stable Diffusion, DALL-E 2 등 최신 생성 모델의 표준적인 방법으로 자리 잡았다.


7. Flow Matching
Flow Matching은 Flow Model의 일종인 Continuous Normalizing Flows (CNFs) 를 학습시키기 위한 새롭고 효율적인 방법론이다. 기존의 Diffusion Model이 이산적인(Discrete) 단계의 노이즈 제거 과정을 학습했다면, Flow Matching은 데이터와 노이즈 사이를 잇는 연속적인(Continuous) 시간 흐름을 미분 방정식(Diffrential Equations, DE)으로 정의하고, 이 흐름을 생성하는 Vector Field (벡터장) 를 직접 학습하는 방식이다.
7.1. Ordinary Differential Equations (ODEs)
Flow Matching을 이해하기 위해서는 먼저 상미분 방정식(Ordinary Differential Equation, ODE) 에 대한 이해가 필요하다.
ODE는 하나의 독립 변수에 의존하는 함수와 그 도함수(변화율) 간의 관계를 나타내는 방정식이다. 예를 들어, 시간 에 따라 변화하는 상태 가 있을 때, 그 변화율(속도)은 다음과 같이 정의된다.
여기서 는 현재 위치 와 시간 에서 입자가 어느 방향으로 움직여야 하는지를 나타내는 Vector Field (벡터장) 이 된다.
미분방정식은 초기값에 따라 결과가 달라지는 일반해와, 이중 하나로 특정되는 특수해를 가진다.
ODE-Example1 | 일 때, 특수해와 일반해를 구하시오.
- Solution
- General Solution
ODE-Example2 | 일 때, 특수해와 일반해를 구하시오.
- Solution
- General Solution
Initial Value Problem
ODE 중에서도 Initial Value Problem (IVP, 초기값 문제) 는 특정 시점의 위치(초기값, 예: )가 주어졌을 때, 이후의 모든 경로 를 찾아내는 문제로 정의된다.
IVP-Example1 | 일 때 IVP의 해를 구하시오.
- General Solution
- Solution of IVP
IVP-Example2 | 일 때 IVP의 해를 구하시오.
- General Solution
- Solution of IVP
이러한 ODE의 IVP를 생성 모델의 관점에서 보면, 초기값 는 노이즈(Noise) 이고, 까지 ODE를 따라 이동했을 때 도달하는 이 데이터(Data) 가 되도록 하는 함수 를 찾는 것이 목표가 된다.
Numerical Methods (Euler Method)
대부분의 ODE는 해석적인 해(Analytic Solution, 수식으로 딱 떨어지는 답)를 구하기 어렵다. 예를 들어, 다음의 ODE는 해석적으로 풀기 매우 어렵다.
따라서 이러한 경우 컴퓨터를 이용한 수치해석(Numerical Methods) 을 사용하는데, 가장 대표적인 방법이 오일러 방법(Euler Method) 이다.

이처럼 작은 시간 간격 만큼, 현재 위치에서의 기울기(벡터장) 방향으로 조금씩 이동하며 다음 위치를 추정하며, 에 따라 오차 이 된다.
In Flow Model’s Sampling
이 방식은 Flow Model의 샘플링 과정과 정확히 일치한다.
Flow Model은 노이즈 분포 (주로 )에서 데이터 분포 로 매핑하는 변환을 ODE로 정의하는데, 여기서 는 시간 에서의 Velocity Vector Field (속도 벡터장) 이다. 이렇듯 오일러 메소드를 통해 학습된 모델로부터 데이터를 생성하는 과정(Sampling)은 다음과 같다.
- 초기 노이즈 샘플링:
- 부터 까지 오일러 방법 등을 사용하여 ODE를 푼다 (적분한다).
- 최종 도착점 이 생성된 데이터가 된다.

7.2. Flow Matching
Flow Matching의 핵심 아이디어는 “노이즈로부터 데이터 분포로 이동하는 이상적인 벡터장(Target Vector Field)을 정의하고, 신경망이 이를 흉내 내도록 학습시키자” 는 것이다.

하지만 문제는, 우리가 데이터의 분포 를 모르기 때문에, 임의의 위치 에서 데이터 쪽으로 가기 위한 ‘진짜’ 벡터장 (Marginal Vector Field)를 계산하는 것이 불가능하다는 점이다.
이를 해결하기 위해 Conditional Flow Matching (CFM) 이 등장한다.
Conditional Probability Path
전체 데이터 분포에 대한 벡터장을 구하는 것은 어렵지만, “만약 우리가 도착해야 할 데이터 를 알고 있다면?” 이라는 조건(Conditioning)을 걸면 문제는 매우 단순해진다.
먼저 데이터 포인트 하나가 주어졌을 때, 노이즈 에서 로 이동하는 경로는 우리가 임의로 설계할 수 있다. 이를 Conditional Probability Path 라고 하며, 가장 간단하고 효율적인 경로는 Linear Interpolation (선형 보간) 이다. 가우시안 노이즈분포 와 데이터(Dirac-Delta Distribution) 를 매개변수 에 의존하여 직선으로 잇는 경로는 아래와 같이 나타날 것이다.

이 경로를 미분하면, 이 경로를 생성하는 Conditional Vector Field 를 매우 쉽게 구할 수 있다.
즉, 조건부 벡터장은 단순히 (도착점 - 출발점) 이라는 상수가 된다. 이는 매우 직관적이다. 위치에서 로 가려면 방향으로 일정한 속도로 움직이면 된다.
Conditional Flow Matching (CFM) Objective
이제 우리는 학습 가능한 신경망 가 이 단순한 조건부 벡터장 을 따르도록 학습시키면 된다. 이를 Conditional Flow Matching Loss라고 한다.
Why does this work? (Marginal Vector Field와의 관계)
놀랍게도, Conditional Flow Matching의 그래디언트는 (우리가 구할 수 없었던) Marginal Flow Matching의 그래디언트와 동일함이 수학적으로 증명되었다.
즉, 개별 데이터 포인트 에 대해 직선으로 이동하는 벡터장을 학습하면(CFM), 모델은 결과적으로 전체 데이터 분포에 대해 평균적으로 올바른 방향을 가리키는 벡터장(FM)을 학습하게 된다.
따라서 이때 시점 의 의 분포는 로 주변화하여 계산 가능하다. 이를 Marginal Probability Path라 한다.
7.3. Conditional Gaussian Probability Path
우리는 일반적으로 을 가우시안 로 설정하는 경우가 많다. 이때, 을 Scheduler Factor 을 매개로 다음과 같이 설정하자.
일반적으로 Conditional Gaussian Vector Field 를 학습하기 위해 다음과 같이 ODE를 설정할 수 있다.
만약 가우시안 확률 경로에 대해 위 ODE를 대입하면 아래와 같은 결과를 얻을 수 있다.
이때의 Loss는 다음과 같이 도출된다.

7.4. Rectified Flow
Flow Matching으로 학습된 모델은 이론적으로 직선 경로를 학습하지만, 실제로는 여러 데이터 포인트들의 벡터장이 겹치면서 생성 경로(Trajectory)가 휘어질 수 있다. 경로가 휘어지면 오일러 방법으로 적분할 때 오차가 커지거나, 정확한 생성을 위해 많은 스텝(Step)이 필요해진다.
Rectified Flow는 생성 경로를 최대한 직선(Straight Line) 으로 만들어, 단 한 번의 스텝(One-Step) 혹은 매우 적은 스텝만으로도 고품질의 이미지를 생성하고자 하는 기법이다.
7.4.1. Reflow Procedure
Rectified Flow는 Reflow라는 반복적인 학습 과정을 통해 경로를 직선화한다.

- 초기 학습 (1-Rectified Flow)
- 노이즈 와 데이터 을 무작위로 짝지어(Random Coupling) Flow Matching으로 학습한다. 이때의 경로는 서로 꼬여있고 휘어져 있다.
- 데이터 생성 (Generation)
- 학습된 모델을 이용해 노이즈 로부터 데이터 을 생성한다. 이렇게 생성된 쌍 은 모델의 ODE 궤적을 따르므로 서로 Coupling(연결) 되어 있다.
- Reflow (2-Rectified Flow): 생성된 쌍 을 새로운 학습 데이터로 사용하여 다시 Flow Matching을 수행한다. 이제 모델은 에서 으로 가는 경로를 학습하는데, 이 쌍은 이미 ODE 궤적 위에 있으므로, 이 둘을 잇는 경로는 이전보다 훨씬 더 직선에 가까워진다.
이 과정을 반복할수록 궤적은 완전한 직선이 되며, (One-Step) 생성 시의 오차가 줄어든다.


7.4.2. Distillation & InstaFlow

Reflow를 통해 경로가 직선이 되면, Distillation(지식 증류) 을 통해 아예 에서 로 한 번에 점프하는 모델을 만들 수 있다.
InstaFlow는 이 원리를 Stable Diffusion과 같은 거대 모델에 적용한 것이다. 기존 Stable Diffusion은 생성 경로가 휘어져 있어 많은 스텝이 필요했지만, 이를 Reflow하여 경로를 펴줌으로써(Straightening), 단 한 번의 스텝(0.09초)만으로도 고품질 이미지를 생성하는 데 성공했다.

7.5. Connection to SDEs and Diffusion
Diffusion Model(DDPM)은 Flow Matching과 다른 방식으로 유도되었지만, Stochastic Differential Equation (SDE, 확률 미분 방정식) 의 관점에서 보면 둘은 깊게 연결되어 있다.
Stochastic Differential Equation (SDE)
SDE는 ODE에 확률적 노이즈 항(Brownian Motion) 이 추가된 형태이다.
DDPM as Discretized SDE

DDPM의 Forward Process는 노이즈를 조금씩 더하는 과정이다.
스텝 수 를 무한대로 늘리고 시간 간격을 0으로 보내는 극한(Continuous-time limit)을 취하면, 이 과정은 다음과 같은 SDE로 표현된다.
이것이 데이터가 노이즈로 변해가는 물리적 확산 과정(SDE)이다.
Reverse-Time SDE & Score Function
Anderson의 정리에 따르면, 어떤 SDE가 있을 때 그 시간을 거꾸로 돌리는 Reverse-Time SDE 또한 존재하며 다음과 같은 형태를 가진다.
여기서 가장 중요한 것은 Score Function항 이 튀어나와, 현재 위치에서 데이터의 밀도(Density)가 높아지는 방향을 가리킨다는 점이다. 결국 역확산 과정(Reverse Process)이란, 노이즈로 인한 무작위 움직임()에 저항하여, 데이터가 있는 쪽(Score Function 방향)으로 끌어당기는 힘(Drift)을 적용하는 과정임을 시사한다.
또한, 위에서 유도한 Reverse-Time SDE를 다시 이산화(Discretization)하여 정리하면, 우리가 DDPM에서 보았던 Denoising Step과 정확히 일치하는 수식이 유도된다.
이때 DDPM의 학습 목표였던 노이즈 예측() 은 사실상 Score Function () 을 추정하는 것과 수학적으로 동치임이 밝혀진다 ().
결론적으로,
- Flow Matching은 결정론적(Deterministic)인 ODE 궤적(Vector Field)을 학습하는 방식이고,
- Diffusion (SDE) 은 확률적(Stochastic)인 노이즈 항이 포함된 경로(Score Function)를 학습하는 방식이다.
- 하지만 Probability Flow ODE를 통해 Diffusion 모델도 ODE로 변환하여 해석할 수 있으며, 이 경우 Flow Matching과 유사한 결정론적 샘플링이 가능해진다.





