DREAM-Talk: Diffusion-based Realistic Emotional Audio-driven Method for Single Image Talking Face Generation

상솜공방·2025년 9월 6일

논문 리뷰

목록 보기
34/49

1. Introduction

  • 연구 배경 및 중요성

    • 최근 대화형 얼굴 생성 분야는 비디오 콘퍼런싱, 가상 비서, 엔터테인먼트 등 다양한 응용 분야에서 핵심 연구 영역으로 크게 발전하고 있다.
    • 특히, [10, 13, 14]와 같은 연구들에서 MEAD [33]와 같은 감정 주석이 달린 비디오 데이터셋을 활용하여 감정 조건부(emotion-conditioned) 얼굴 표현을 대화형 얼굴 생성에 통합하려는 시도가 시작되었다.
    • 하지만 현재까지 이 방법들은 표현력이 풍부하고 생생한 감정 표현을 생성하는 데 성공하지 못했다.
  • 주요 난제

    • 난제 1: 표현력 풍부한 감정 표현과 정확한 립싱크의 동시 달성 어려움
      • 문제점: MEAD [33]와 같은 데이터셋의 감정 표현은 눈썹, 눈 깜빡임, 입 모양 등에서 상당한 과장이 있지만, 립싱크 모델을 효과적으로 훈련시키기에는 문장과 오디오 콘텐츠 길이가 충분하지 않다.
      • 기존 연구의 한계:
        • SPACE [10]는 이 문제를 해결하기 위해 비감정 데이터셋(VoxCeleb2 [5], RAVDESS [20])을 MEAD와 함께 사용했지만, 비감정 데이터셋 통합은 생성된 감정 표현의 표현력과 역동성을 떨어뜨릴 수 있다.
        • EAMM [14]은 비감정 오디오 기반 얼굴 합성 모듈과 감정 변위 캡처 모듈을 통합하여 이 문제를 해결하고자 했다. 립싱크 왜곡을 막기 위해 입 영역을 가린 훈련 데이터를 사용했지만, 이는 감정적인 발화 중 입 모양의 표현력을 저해하는 결과를 낳았다.
    • 난제 2: 감정 표현의 미묘한 차이와 다양성 모델링의 어려움
      • 문제점: 감정 표현은 수많은 얼굴 근육의 활성화와 관련되며, 발화 내내 상당한 다양성을 보인다.
      • 기존 연구의 한계: [10, 13, 14, 21] 등의 기존 방법들은 주로 LSTM 또는 CNN 네트워크를 생성자로 사용하여 오디오를 얼굴 표현으로 변환했다. 이 모델들은 일반적인 발화 시의 입과 입술 움직임을 포착하는 데는 적절하지만, 감정 표현의 미묘한 차이와 다양성을 충실히 묘사하는 데는 어려움을 겪어, 결과적으로 생성된 감정 묘사가 밋밋하고 인공적으로 보이는 경향이 있었다.
  • DREAM-Talk 프레임워크 제안

    • 위의 난제들을 극복하기 위해, 본 논문은 단일 초상화 이미지로부터 현실적인 감정 오디오 기반 대화형 얼굴을 생성하는 diffusion-based 방법인 DREAM-Talk를 제안한다.
    • 핵심 설계: 표현력 풍부한 감정 표현과 정밀한 립싱크를 동시에 달성하는 신중하게 설계된 2단계 파이프라인으로 구성된다.
      • 1단계: EmoDiff Module
        • 감정 표현의 역동적인 특성을 포착하는 데 특화되어 있다.
        • 오디오를 ARKit 모델 [19]의 얼굴 표현으로 변환하는 감정 조건부(emotion-conditioned) diffusion 모델을 사용한다.
      • 2단계: Lip Refinement (립 정제)
        • 생성된 대화형 얼굴에서 립싱크의 정확성을 보장하는 데 중점을 둔다.
        • 감정 표현의 풍부함을 유지하면서 오디오 신호와 입 움직임의 동기화를 향상시키기 위해, 오디오 신호와 특정 감정 스타일을 기반으로 입 파라미터를 재최적화하는 새로운 립 정제 네트워크를 개발했다.
        • 기존 얼굴 모델 [17]과 달리, 3D ARKit 모델을 사용하여 입 파라미터를 다른 얼굴 파라미터와 명시적으로 분리하여 최적화함으로써, 다른 얼굴 표현의 강도에는 영향을 미치지 않으면서 입 움직임의 정밀도를 높인다. 이는 감정의 표현력이 립싱크 정제로 인해 손상되지 않도록 보장한다.
    • 결과: DREAM-Talk의 2단계 프로세스는 위에서 언급된 난제들을 효과적으로 해결하여, 생성된 대화형 얼굴에서 표현력 풍부한 감정과 정밀한 립싱크를 동시에 달성할 수 있음을 실험 결과로 입증한다. 특히, diffusion 모델은 고주파 얼굴 디테일을 능숙하게 포착하며, 립 정제는 입 움직임의 정밀도를 더욱 향상시킨다.
  • 본 논문의 기여

    • 오디오 동기화 립 모션과 함께 표현력 풍부한 감정적인 대화형 얼굴을 생성하는 혁신적인 2단계 생성 프레임워크 DREAM-Talk를 제안한다.
    • 오디오 및 참조된 감정 스타일에 따라 다양하고 매우 역동적인 감정 표현 및 머리 포즈를 생성할 수 있는 diffusion 모듈 EmoDiff를 제안한다.
    • 다른 얼굴 속성으로부터 입 파라미터를 정밀하게 분리한 감정 ARKit 데이터셋을 구축했으며, 이는 립 모션 정제 작업에 매우 적합하다.

2. Related Works

  • Audio-driven talking face (오디오 기반 토킹 페이스 생성)

    • 초기 연구: 오디오 시퀀스를 발음 시퀀스로 변환하여 아바타를 생성하거나(Taylor et al. ACM TOG, 2017), 오바마 연설 영상 같은 특정 데이터셋으로 학습하여 사실적인 토킹 페이스를 합성하는 연구(Suwajanakorn et al. ACM TOG, 2017)가 있었다. 또한, 단일 얼굴 이미지와 오디오 시퀀스만으로 토킹 페이스 비디오를 생성하는 연구(Chung et al. arXiv, 2017, Zhou et al. ACM TOG, 2020)도 진행되었다.
    • 2단계 접근 방식: 랜드마크를 활용하는 2단계 합성 방식(ATVGnet, Zhong et al. arXiv, 2023)이나, 공간 및 스타일 요소를 분해하여 합성 성능을 향상시킨 연구(Meshry et al. ICCV, 2021) 등이 발전했다.
    • 3D 얼굴 모델: 오디오를 3D 얼굴 모델의 파라미터로 회귀시켜 보다 사실적인 합성을 구현하는 방법(FACIAL, Song et al. IEEE TIFS, 2022)도 등장했다. SadTalker는 오디오 입력에서 3DMM 모션 계수를 매핑하여 감성적인 스피치 콘텐츠를 생성하지만, 사실적인 표현과 정확한 립싱크를 동시에 달성하는 데는 어려움이 있었다.
    • 고품질 비디오 및 NeRF: AD-NeRF와 GeneFace는 Neural Radiance Fields (NeRF)를 활용하여 고품질 토킹 헤드 비디오를 합성하며 기존 GAN 기반 방식의 한계를 넘어섰다.
    • Diffusion 모델: Diffused Heads와 DiffTalk는 Diffusion 모델을 적용하여 GAN 기반 방식의 훈련 어려움이나 얼굴 왜곡 같은 문제를 해결하려 했다. 하지만 이들 방법은 비디오 생성 시 대상 인물의 추가적인 모션 시퀀스를 요구하며, 입술 영역의 시간적 일관성 유지에 어려움을 겪고, 감정 정보를 통합하지 못하여 단조로운 표현을 생성하는 한계가 있었다.
      • DREAM-Talk의 차별점: 이 논문은 DiffTalk의 한계를 언급하며, DREAM-Talk가 감정 정보의 가이드 없이 단조로운 표현을 생성하는 DiffTalk와 달리 더 풍부하고 역동적인 감정 표현을 생성할 수 있음을 암시한다.
  • Emotional audio-driven talking face (감정 기반 오디오 토킹 페이스 생성)

    • 감정 제어 연구: 최근 연구들은 감정 표현이 풍부한 토킹 페이스 생성에 집중하고 있다. ExprGAN은 표현 강도를 조절할 수 있는 얼굴 표현 제어 모듈을 도입했고, Eskimez et al. IEEE TMM, 2021은 범주형 감정을 조건으로 하는 신경망 시스템을 제시했다.
    • 데이터셋의 역할: MEAD 데이터셋은 감정 기반 토킹 페이스 생성 연구의 중요한 기준선(baseline)을 제공하며 생생한 표현을 가능하게 했다.
    • 기존 감정 모델의 한계: Ji et al. CVPR, 2021은 감정 제어 기법을, Li et al. AAAI, 2021은 텍스트 기반 감정 및 리듬 토킹 헤드 생성을 제안했다. EAMM과 EMMN은 2D 키포인트 변위를 사용하여 감정 비디오를 합성했지만, 생성 품질을 저하시킬 수 있는 문제가 있었다. SPACE는 얼굴 랜드마크 예측과 감정 조건화로 작업을 분해하여 고해상도의 제어 가능한 토킹 페이스 비디오를 만들었다.
      • DREAM-Talk의 차별점: 이 논문은 기존의 LSTM 또는 CNN 네트워크를 사용한 방법들이 감정 표현의 미묘한 차이를 포착하기 어렵고 결과가 부자연스럽다고 지적한다. DREAM-Talk는 Diffusion 모델을 사용하여 표현 시퀀스를 예측함으로써, 기존 방법보다 더 표현력 있는 결과(more expressive outcomes)를 얻는다고 강조한다.

3. Method

3.1 Preliminaries

  • 2D 랜드마크 기반 방법의 한계:

    • 기존의 2D 랜드마크 기반 방법([14, 41] 등)은 얼굴의 포즈 변화에 민감하며, 일관된 얼굴 형태 표현을 유지하는 데 어려움이 있다. 즉, 고개를 돌리거나 움직일 때 얼굴 형태가 불안정하게 표현될 수 있다는 의미이다.
  • 3D 모델링 기술의 장점:

    • 3D 모델링 기술은 2D 방법과 달리 형태 불변(shape-invariant) 정보를 제공하여 실제 사람 얼굴의 3차원 구조와 일치하는 사실적인 렌더링을 가능하게 한다. 이는 다양한 각도에서도 얼굴 형태를 일관되게 유지할 수 있음을 의미한다.
  • 전통적인 3D 모델(3DMM, FLAME)의 한계:

    • 3D Morphable Models (3DMM)이나 FLAME과 같은 전통적인 3D 모델은 주로 주성분 분석(PCA)을 활용하여 얼굴 특징을 표현한다.
    • 이러한 매개변수(parameters)는 전반적인 얼굴 외형을 제어하는 데는 효과적이지만, 눈 깜빡임이나 입술 움직임과 같은 특정 얼굴 속성들을 개별적으로 분리하여 제어하는 데는 부족함이 있다.
  • ARKit 블렌드셰이프 채택 이유:

    • DREAM-Talk는 입 주변 영역을 개선하면서 다른 얼굴 특징의 표현력을 보존해야 하는 목표를 가지고 있었기에 ARKit 블렌드셰이프를 채택했다.
    • 정확한 분리(Disentanglement): ARKit 블렌드셰이프는 입과 관련된 매개변수들을 다른 얼굴 요소들과 명확하게 분리하여 제어할 수 있게 해준다. 이는 입술 움직임만 정밀하게 최적화하고 싶을 때 다른 얼굴 표정 요소에 영향을 주지 않도록 한다.
    • 세분화된 제어: ARKit 얼굴 모델은 52개의 개별적인 매개변수로 구성되어 있으며, 각각 고유한 얼굴 특징을 나타낸다. 이는 Facial Action Coding System (FACS) 기반의 블렌드셰이프를 활용하여 각 얼굴 표정이 입, 눈, 눈썹 등 특정 얼굴 영역을 독립적이고 해부학적으로 일관된 방식으로 활성화할 수 있도록 한다([19]).
    • 결론적으로, ARKit은 다양한 얼굴 속성에 대한 정밀한 제어 및 최적화를 제공하여 DREAM-Talk의 특수 목적 최적화 요구 사항에 매우 적합하다.
  • ARKit 기반 감정 데이터셋 구축:

    • 연구팀은 MEAD 감정 데이터셋([33]) 내의 각 프레임에 대해 ARKit 매개변수를 분석하여 해당 매개변수를 추출했다.
    • 이 과정을 통해 MEAD 데이터셋의 감정적 뉘앙스에 맞춰 정교하게 조정된 ARKit 전용 얼굴 데이터셋을 만들었다.
    • 이 데이터셋은 완전히 분리된(fully disentangled) 3D 얼굴 매개변수를 특징으로 하는 최초의 감정 데이터셋이다. 이러한 개발은 감정 기반 데이터셋의 실용적인 유용성과 적용 가능성을 크게 증폭시킨다.

3.2 EmoDiff Module

Diffusion Model

  • 전방 확산 과정 (Forward Diffusion Process)

    • 개념: Denoising Diffusion Probabilistic Models (DDPM) [12]의 정의를 채택하여, 원본 데이터 x0x_0에 점진적으로 가우시안 노이즈(Gaussian noise)를 추가하여 최종적으로 완전한 노이즈 xTx_T를 만드는 과정이다. 이 과정은 마르코프 연쇄(Markov process)를 따른다.

    • 목표: 실제 데이터 분포 q(x)q(x)에서 샘플링된 데이터 포인트 x0x_0로부터 노이즈가 추가된 잠재 변수 시퀀스 x1,,xTx_1, \dots, x_T를 생성한다.

    • 정의 (수식 1):

      q(xtx0)N(αˉtx0,(1αˉt)I)\qquad q(x_t|x_0) \sim \mathcal{N}(\sqrt{\bar{\alpha}_t}x_0, (1 - \bar{\alpha}_t)\mathbf{I})
      • N(μ,Σ)\mathcal{N}(\mu, \Sigma): 평균이 μ\mu이고 공분산 행렬이 Σ\Sigma인 가우시안(정규) 분포를 나타낸다.
      • x0x_0: 원본 데이터 포인트(예: 이미지, 3D 표현 파라미터).
      • xtx_t: tt 시점에서 노이즈가 추가된 데이터 포인트.
      • q(xtx0)q(x_t|x_0): 원본 데이터 x0x_0가 주어졌을 때 xtx_t가 될 확률 분포를 의미하며, 이는 분포 N(μ,Σ)\mathcal{N}(\mu, \Sigma) 따른다.
      • αˉtx0\sqrt{\bar{\alpha}_t}x_0: 노이즈가 추가되면서 원본 데이터 x0x_0의 정보가 유지되는 정도를 조절하는 부분이다. αˉt\bar{\alpha}_t(0,1)(0, 1) 범위의 스케줄링(scheduling) 파라미터로, 시간이 tt가 증가함에 따라 단조 감소하므로, αˉt\sqrt{\bar{\alpha}_t} 값은 점차 작아진다. 즉, 시간이 지날수록 원본 x0x_0의 영향이 줄어든다.
      • (1αˉt)I(1 - \bar{\alpha}_t)\mathbf{I}: xtx_t에 추가되는 노이즈의 분산(variance)을 나타낸다. I\mathbf{I}는 단위 행렬(identity matrix)이다. αˉt\bar{\alpha}_t가 감소함에 따라 (1αˉt)(1 - \bar{\alpha}_t)는 증가하므로, 시간이 지날수록 더 많은 노이즈가 추가된다.
      • 결과적으로, tt가 커질수록 xtx_t는 점차 x0x_0의 특징을 잃고, 최종 상태 xTx_T는 표준 정규 분포 N(0,I)\mathcal{N}(0, \mathbf{I})에 가까워진다.
    • 평균이 μ\mu이고 공분산 행렬이 Σ\Sigma인 가우시안(정규) 분포란?

      • 이 표현은 다변량 가우시안 분포(Multivariate Gaussian Distribution)를 의미한다. 우리가 흔히 알고 있는 종 모양의 정규 분포는 단일 변수(1차원)에 대한 것이지만, 이미지 픽셀 값이나 3D 얼굴 표정 파라미터처럼 여러 개의 숫자(변수)로 구성된 데이터는 다차원 공간에 존재한다. 이러한 다차원 데이터의 분포를 나타낼 때 다변량 가우시안 분포를 사용한다.
    • 평균 μ\mu (Mean Vector)

      • 단변량 정규 분포에서 μ\mu는 데이터가 집중되는 중심값을 의미한다.
      • 다변량 가우시안 분포에서 μ\mu평균 벡터(Mean Vector)이다. 예를 들어, 데이터가 100개의 픽셀 값으로 이루어진 벡터라면, μ\mu는 각 픽셀 위치의 평균값을 담고 있는 100차원 벡터가 된다. 이 평균 벡터는 다차원 공간에서 데이터 분포의 "중심"을 나타낸다.
    • 공분산 행렬 Σ\Sigma (Covariance Matrix)

      • 단변량 정규 분포에서 분산(σ2\sigma^2)은 데이터가 평균 주변에 얼마나 퍼져 있는지를 나타낸다.
      • 다변량 가우시안 분포에서 Σ\Sigma공분산 행렬(Covariance Matrix)이다. 이 행렬은 데이터의 각 차원(변수)들이 얼마나 퍼져 있는지(분산), 그리고 두 차원이 서로 어떻게 연관되어 변화하는지(공분산)를 나타낸다.
        • 대각선 요소: 각 개별 차원의 분산을 나타낸다. 즉, 각 픽셀 값이 평균 픽셀 값을 중심으로 얼마나 퍼져 있는지를 보여준다.
        • 비대각선 요소: 두 개의 다른 차원(예: 두 개의 다른 픽셀) 사이의 공분산을 나타낸다. 예를 들어, 한 픽셀의 밝기가 증가할 때 다른 픽셀의 밝기도 함께 증가하는 경향이 있다면 양의 공분산을 가진다.
    • 논문의 맥락에서 Σ=(1αˉt)I\Sigma = (1 - \bar{\alpha}_t)\mathbf{I} 의 의미:

      • 논문의 수식 q(xtx0)N(αˉtx0,(1αˉt)I)q(x_t|x_0) \sim \mathcal{N}(\sqrt{\bar{\alpha}_t}x_0, (1 - \bar{\alpha}_t)\mathbf{I}) 에서 공분산 행렬이 (1αˉt)I(1 - \bar{\alpha}_t)\mathbf{I} 로 주어졌다. 여기서 I\mathbf{I}단위 행렬(Identity Matrix)이다.

      • 단위 행렬(I\mathbf{I})의 특징: 대각선 요소는 모두 1이고, 비대각선 요소는 모두 0이다.

      • 따라서, 공분산 행렬 (1αˉt)I(1 - \bar{\alpha}_t)\mathbf{I}는 대각선 요소가 모두 (1αˉt)(1 - \bar{\alpha}_t)이고, 비대각선 요소는 모두 0인 형태이다.

        • 비대각선 요소가 0이라는 것은 각 차원에 추가되는 노이즈가 서로 독립적이라는 의미이다. (즉, 한 픽셀에 추가되는 노이즈가 다른 픽셀에 추가되는 노이즈에 영향을 주지 않는다.)
        • 대각선 요소가 모두 (1αˉt)(1 - \bar{\alpha}_t)라는 것은 각 차원에 추가되는 노이즈의 분산이 모두 동일하다는 의미이다.
      • 시간 tt가 증가함에 따라 αˉt\bar{\alpha}_t는 감소하므로, (1αˉt)(1 - \bar{\alpha}_t)는 증가한다. 이는 시간이 지날수록 추가되는 노이즈의 양(분산)이 점점 커진다는 것을 의미한다.

    • 전방 확산 과정 (Forward Diffusion Process)을 실제 예시 값으로 설명

      • 전방 확산 과정은 원본 데이터 x0x_0에 점진적으로 노이즈를 추가하여 x1,x2,,xTx_1, x_2, \dots, x_T와 같은 노이즈 데이터를 만들어가는 과정이다. 논문의 수식은 다음과 같다.

        q(xtx0)N(αˉtx0,(1αˉt)I)q(x_t|x_0) \sim \mathcal{N}(\sqrt{\bar{\alpha}_t}x_0, (1 - \bar{\alpha}_t)\mathbf{I})
      • 데이터 x0x_0: 아주 간단하게, 1차원 데이터라고 가정하자. (실제로는 고차원이지만 이해를 돕기 위해) 예를 들어, x0=10x_0 = 10 이라는 깨끗한 데이터 포인트가 있다.

      • 스케줄링 파라미터 αˉt\bar{\alpha}_t: αˉt\bar{\alpha}_ttt가 증가함에 따라 11에서 00으로 감소하는 값이다.

        • t=1t=1 (초기 단계): 노이즈가 거의 없는 상태. αˉ1\bar{\alpha}_1은 1에 가까운 값. 예를 들어, αˉ1=0.99\bar{\alpha}_1 = 0.99.
        • t=2t=2 (중간 단계): 노이즈가 약간 추가된 상태. αˉ2\bar{\alpha}_2는 0.99보다 작은 값. 예를 들어, αˉ2=0.90\bar{\alpha}_2 = 0.90.
        • t=Tt=T (최종 단계): 노이즈로 가득 찬 상태. αˉT\bar{\alpha}_T는 0에 가까운 값. 예를 들어, αˉT=0.01\bar{\alpha}_T = 0.01.
      • 공분산 행렬 I\mathbf{I}: 1차원 데이터이므로 I\mathbf{I}는 단순히 숫자 1이다. 즉, 분산은 (1αˉt)(1 - \bar{\alpha}_t)가 된다.

      이제 tt 스텝을 진행하면서 xtx_t가 어떻게 생성되는지 살펴보자.

      Step 0: 원본 데이터 x0x_0

      • x0=10x_0 = 10 (깨끗한 데이터)

      Step 1: x1x_1 생성 (t=1t=1)

      • αˉ1=0.99\bar{\alpha}_1 = 0.99 (가정)
      • 평균: αˉ1x0=0.99×100.995×10=9.95\sqrt{\bar{\alpha}_1}x_0 = \sqrt{0.99} \times 10 \approx 0.995 \times 10 = 9.95
      • 분산: (1αˉ1)I=(10.99)×1=0.01(1 - \bar{\alpha}_1)\mathbf{I} = (1 - 0.99) \times 1 = 0.01
      • 결과: q(x1x0)N(9.95,0.01)q(x_1|x_0) \sim \mathcal{N}(9.95, 0.01)
        • 이는 "원본 데이터 x0=10x_0=10에서 첫 번째 스텝의 노이즈 x1x_1을 뽑으면, x1x_1은 평균이 9.95이고 분산이 0.01인 정규 분포를 따른다"는 의미이다.
        • 이 분포에서 무작위로 x1x_1을 샘플링하면, 예를 들어 x1=9.94x_1 = 9.94와 같은 값이 나올 수 있다. (원본 데이터 10에 아주 미세한 노이즈가 추가된 상태)

      Step 2: x2x_2 생성 (t=2t=2)

      • αˉ2=0.90\bar{\alpha}_2 = 0.90 (가정, t=1t=1보다 αˉ\bar{\alpha} 값이 작아졌다)
      • 평균: αˉ2x0=0.90×100.949×10=9.49\sqrt{\bar{\alpha}_2}x_0 = \sqrt{0.90} \times 10 \approx 0.949 \times 10 = 9.49
      • 분산: (1αˉ2)I=(10.90)×1=0.10(1 - \bar{\alpha}_2)\mathbf{I} = (1 - 0.90) \times 1 = 0.10
      • 결과: q(x2x0)N(9.49,0.10)q(x_2|x_0) \sim \mathcal{N}(9.49, 0.10)
        • "원본 데이터 x0=10x_0=10에서 두 번째 스텝의 노이즈 x2x_2를 뽑으면, x2x_2는 평균이 9.49이고 분산이 0.10인 정규 분포를 따른다"는 의미이다.
        • 이 분포에서 무작위로 x2x_2를 샘플링하면, 예를 들어 x2=9.60x_2 = 9.60과 같은 값이 나올 수 있다. (원본 데이터 10에서 노이즈가 더 많이 추가되어 평균도 0에 가까워지고 분산도 커졌다)

      Step T: xTx_T 생성 (최종 단계)

      • αˉT=0.01\bar{\alpha}_T = 0.01 (가정, 0에 매우 가까워졌다)
      • 평균: αˉTx0=0.01×10=0.1×10=1.0\sqrt{\bar{\alpha}_T}x_0 = \sqrt{0.01} \times 10 = 0.1 \times 10 = 1.0
      • 분산: (1αˉT)I=(10.01)×1=0.99(1 - \bar{\alpha}_T)\mathbf{I} = (1 - 0.01) \times 1 = 0.99
      • 결과: q(xTx0)N(1.0,0.99)q(x_T|x_0) \sim \mathcal{N}(1.0, 0.99)
        • "원본 데이터 x0=10x_0=10에서 최종 스텝의 노이즈 xTx_T를 뽑으면, xTx_T는 평균이 1.0이고 분산이 0.99인 정규 분포를 따른다"는 의미이다.
        • 이 분포에서 무작위로 xTx_T를 샘플링하면, 예를 들어 xT=0.85x_T = 0.85와 같은 값이 나올 수 있다. (이제 xTx_T는 원본 데이터 10과는 거의 관련이 없는, 거의 완전한 노이즈처럼 보인다.)
        • 논문에서는 αˉt\bar{\alpha}_t가 0에 가까워짐에 따라 xTx_TN(0,I)\mathcal{N}(0, \mathbf{I})에 근사된다고 설명했는데, 이는 x0x_0가 평균 0을 중심으로 정규화(normalized)된 데이터일 때 더 명확하게 나타난다. (위 예시는 x0=10x_0=10으로 양수 값을 사용해서 평균이 0에 완전히 도달하지는 않았지만, x0x_0의 영향은 크게 줄어든 것을 볼 수 있다.)

      전방 확산 과정 요약:

      1. 시작: 깨끗한 원본 데이터 x0x_0가 있다.
      2. 점진적 노이즈 추가: 각 시간 스텝 tt마다, 현재 데이터 xtx_t는 이전 스텝 xt1x_{t-1}에서 온 것이 아니라, 항상 원본 데이터 x0x_0를 기반으로 노이즈가 추가된 분포에서 샘플링된다. (이것이 DDPM의 중요한 특징인 마르코프 연쇄의 전방 과정이다.)
      3. 노이즈 증가: tt가 커질수록 αˉt\sqrt{\bar{\alpha}_t}는 0으로 가까워져 x0x_0의 영향은 감소하고, (1αˉt)(1 - \bar{\alpha}_t)는 1로 가까워져 노이즈의 분산은 증가한다.
      4. 최종: 충분한 스텝이 지나면 (t=Tt=T), 데이터 xTx_T는 원본 데이터의 특징을 거의 잃고, 평균이 0이고 분산이 1인 가우시안 노이즈 분포에 가까워진다.
  • 공분산 행렬의 대각선 요소와 비대각선 요소

    공분산 행렬(Σ\Sigma)은 다변량 확률 변수들의 분산과 공분산을 나타내는 정방 행렬(square matrix)이다. NN개의 변수를 가진 데이터라면 N×NN \times N 크기의 행렬이 된다.

    예를 들어, 3개의 확률 변수 X1,X2,X3X_1, X_2, X_3가 있다고 가정해보자. 이 변수들은 이미지의 픽셀 값, 얼굴 표정 파라미터 또는 어떤 특성 값들이 될 수 있다.

    이 세 변수의 공분산 행렬 Σ\Sigma는 다음과 같이 정의된다:

    Σ=(Cov(X1,X1)Cov(X1,X2)Cov(X1,X3)Cov(X2,X1)Cov(X2,X2)Cov(X2,X3)Cov(X3,X1)Cov(X3,X2)Cov(X3,X3))\Sigma = \begin{pmatrix} \text{Cov}(X_1, X_1) & \text{Cov}(X_1, X_2) & \text{Cov}(X_1, X_3) \\ \text{Cov}(X_2, X_1) & \text{Cov}(X_2, X_2) & \text{Cov}(X_2, X_3) \\ \text{Cov}(X_3, X_1) & \text{Cov}(X_3, X_2) & \text{Cov}(X_3, X_3) \end{pmatrix}

    여기서 각 요소 Cov(Xi,Xj)\text{Cov}(X_i, X_j)XiX_iXjX_j 사이의 공분산을 의미하며, 다음과 같이 계산된다:

    Cov(Xi,Xj)=E[(XiE[Xi])(XjE[Xj])]\text{Cov}(X_i, X_j) = E[(X_i - E[X_i])(X_j - E[X_j])]

    E[]E[\cdot]는 기댓값(평균)을 나타낸다.

      1. 대각선 요소 (Diagonal Elements)

      대각선 요소는 행렬의 왼쪽 위에서 오른쪽 아래로 이어지는 대각선에 위치한 요소들을 말한다. 위 예시에서는 Cov(X1,X1)\text{Cov}(X_1, X_1), Cov(X2,X2)\text{Cov}(X_2, X_2), Cov(X3,X3)\text{Cov}(X_3, X_3)가 대각선 요소이다.

      • 의미: Cov(Xi,Xi)\text{Cov}(X_i, X_i)는 자기 자신과의 공분산이므로, 이는 곧 변수 XiX_i분산(Variance)을 나타낸다.
        Cov(Xi,Xi)=E[(XiE[Xi])(XiE[Xi])]=E[(XiE[Xi])2]=Var(Xi)\text{Cov}(X_i, X_i) = E[(X_i - E[X_i])(X_i - E[X_i])] = E[(X_i - E[X_i])^2] = \text{Var}(X_i)
      • 역할: 각 개별 변수(차원)가 자신의 평균으로부터 얼마나 퍼져 있는지를 측정한다. 값이 클수록 해당 변수의 변화 폭이 크다는 의미이다.

      예시 (수식과 해석):

      만약 공분산 행렬이 다음과 같다고 가정하자.

      Σ=(410.51920.521)\Sigma = \begin{pmatrix} \mathbf{4} & 1 & 0.5 \\ 1 & \mathbf{9} & -2 \\ 0.5 & -2 & \mathbf{1} \end{pmatrix}
      • Var(X1)=4\text{Var}(X_1) = 4: 변수 X1X_1의 분산이 4이다. 이는 X1X_1이 평균을 중심으로 비교적 넓게 퍼져 있다는 것을 나타낸다.
      • Var(X2)=9\text{Var}(X_2) = 9: 변수 X2X_2의 분산이 9이다. X2X_2X1X_1보다 평균을 중심으로 훨씬 더 넓게 퍼져 있음을 나타낸다.
      • Var(X3)=1\text{Var}(X_3) = 1: 변수 X3X_3의 분산이 1이다. X3X_3X1,X2X_1, X_2에 비해 평균을 중심으로 가장 좁게 퍼져 있다는 것을 나타낸다.
      1. 비대각선 요소 (Off-Diagonal Elements)

      비대각선 요소는 대각선을 제외한 모든 요소들을 말한다. 위 예시에서는 Cov(X1,X2)\text{Cov}(X_1, X_2), Cov(X1,X3)\text{Cov}(X_1, X_3), Cov(X2,X1)\text{Cov}(X_2, X_1), Cov(X2,X3)\text{Cov}(X_2, X_3), Cov(X3,X1)\text{Cov}(X_3, X_1), Cov(X3,X2)\text{Cov}(X_3, X_2)가 비대각선 요소이다.

      • 성질: 공분산 행렬은 대칭 행렬이므로 Cov(Xi,Xj)=Cov(Xj,Xi)\text{Cov}(X_i, X_j) = \text{Cov}(X_j, X_i)이다. 즉, Cov(X1,X2)=Cov(X2,X1)\text{Cov}(X_1, X_2) = \text{Cov}(X_2, X_1) 이다.
      • 의미: 두 개의 다른 변수 XiX_iXjX_j 사이의 공분산(Covariance)을 나타낸다.
      • 역할: 두 변수가 서로 어떻게 함께 변화하는지(선형적인 관계)를 측정한다.
        • 양수 값: 두 변수가 같은 방향으로 움직이는 경향이 있다. 한 변수가 평균보다 크면 다른 변수도 평균보다 클 가능성이 높고, 한 변수가 평균보다 작으면 다른 변수도 평균보다 작을 가능성이 높다. (예: 키가 클수록 몸무게도 증가하는 경향)
        • 음수 값: 두 변수가 반대 방향으로 움직이는 경향이 있다. 한 변수가 평균보다 크면 다른 변수도 평균보다 작을 가능성이 높다. (예: 공부 시간이 길수록 게임 시간이 줄어드는 경향)
        • 0에 가까운 값: 두 변수 사이에 선형적인 관계가 거의 없다는 것을 나타낸다. 즉, 한 변수의 변화가 다른 변수의 변화를 예측하는 데 크게 도움이 되지 않는다. (독립적일 가능성이 높지만, 독립과 공분산 0은 엄밀히 다른 개념이다. 공분산 0은 선형적 독립을 의미하며, 비선형적 관계는 있을 수 있다.)

      예시 (수식과 해석, 위 행렬 동일):

      Σ=(410.51920.521)\Sigma = \begin{pmatrix} 4 & \mathbf{1} & \mathbf{0.5} \\ \mathbf{1} & 9 & \mathbf{-2} \\ \mathbf{0.5} & \mathbf{-2} & 1 \end{pmatrix}
      • Cov(X1,X2)=1\text{Cov}(X_1, X_2) = 1: X1X_1X2X_2는 약한 양의 상관 관계를 가진다. X1X_1이 증가하면 X2X_2도 증가하는 경향이 있지만, 그 관계가 매우 강하지는 않다. (공분산 자체의 크기는 변수의 스케일에 따라 달라지므로, 관계의 강도를 정확히 파악하려면 상관계수를 봐야 한다.)

      • Cov(X1,X3)=0.5\text{Cov}(X_1, X_3) = 0.5: X1X_1X3X_3는 매우 약한 양의 상관 관계를 가진다. 그 관계는 X1X_1X2X_2 사이보다 더 약하다.

      • Cov(X2,X3)=2\text{Cov}(X_2, X_3) = -2: X2X_2X3X_3는 비교적 강한 음의 상관 관계를 가진다. X2X_2가 증가하면 X3X_3는 감소하는 경향이 강하다.

      • 논문의 수식 (1αˉt)I(1 - \bar{\alpha}_t)\mathbf{I} 에서의 공분산 행렬

      논문의 수식 q(xtx0)N(αˉtx0,(1αˉt)I)q(x_t|x_0) \sim \mathcal{N}(\sqrt{\bar{\alpha}_t}x_0, (1 - \bar{\alpha}_t)\mathbf{I}) 에서의 공분산 행렬 Σ=(1αˉt)I\Sigma = (1 - \bar{\alpha}_t)\mathbf{I}는 매우 특별한 형태이다.

      NN차원 데이터(변수)를 다룬다면, I\mathbf{I}N×NN \times N 크기의 단위 행렬이다.

      I=(100010001)\mathbf{I} = \begin{pmatrix} 1 & 0 & \dots & 0 \\ 0 & 1 & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \dots & 1 \end{pmatrix}

      따라서 Σ\Sigma는 다음과 같은 형태를 띠게 된다:

      Σ=(1αˉt)I=((1αˉt)000(1αˉt)000(1αˉt))\Sigma = (1 - \bar{\alpha}_t)\mathbf{I} = \begin{pmatrix} (1 - \bar{\alpha}_t) & 0 & \dots & 0 \\ 0 & (1 - \bar{\alpha}_t) & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \dots & (1 - \bar{\alpha}_t) \end{pmatrix}

      이 행렬에서:

      • 대각선 요소: 모두 (1αˉt)(1 - \bar{\alpha}_t) 이다. 이는 모든 변수 XiX_i가 동일한 분산 (1αˉt)(1 - \bar{\alpha}_t)을 가진다는 것을 의미한다. 즉, 각 차원에 추가되는 노이즈의 "강도"가 모든 차원에서 동일하다.
      • 비대각선 요소: 모두 00 이다. 이는 모든 변수 XiX_iXjX_j (단 iji \ne j) 사이의 공분산이 0이다는 것을 의미한다. 다시 말해, 각 차원에 추가되는 노이즈들이 서로 독립적이라는 뜻이다. 한 픽셀에 추가되는 노이즈가 다른 픽셀에 추가되는 노이즈에 아무런 영향을 주지 않는다.

  • 역방향 확산 과정 (Reverse Diffusion Process)

    • 개념: 전방 확산 과정의 역으로, 완전한 노이즈에서 시작하여 점진적으로 노이즈를 제거해나가면서 깨끗한 원본 데이터 x0x_0를 생성하는 과정이다.
    • 목표: 노이즈 입력 xTN(0,I)x_T \sim \mathcal{N}(0, \mathbf{I})로부터 실제 샘플을 생성하기 위해 결합 분포 pθ(x0:T)p_\theta(x_{0:T})를 추정하는 것이다.
    • 조건부 합성(Conditional Synthesis): DREAM-Talk에서는 오디오(audio), 초기 상태(initial state), 감정 스타일(emotion style)과 같은 추가적인 조건 cc를 모델에 제공하여 제어 가능한 생성을 가능하게 한다.
    • 업데이트 (수식 2):
      pθ(xt1xt,c)=N(xt1;μθ(xt,t,c),βtI)\qquad p_\theta(x_{t-1}|x_t, c) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t, c), \beta_t\mathbf{I})
      • pθ(xt1xt,c)p_\theta(x_{t-1}|x_t, c): tt 시점의 노이즈 데이터 xtx_t와 조건 cc가 주어졌을 때, 이전 시점 xt1x_{t-1}을 예측하는 모델 θ\theta에 의해 학습된 조건부 확률 분포이다. 이 분포 역시 가우시안 분포를 따른다.
      • xt1x_{t-1}: 노이즈가 한 단계 제거된 데이터 포인트.
      • μθ(xt,t,c)\mu_\theta(x_t, t, c): 모델 θ\theta가 예측하는 xt1x_{t-1}의 평균이다. 이는 현재 상태 xtx_t, 시간 tt, 그리고 조건 cc에 의존하여 학습된다.
      • βtI\beta_t\mathbf{I}: 역방향 과정의 분산이다. 이 논문에서는 [42]를 따라 학습되지 않은 시간 의존 상수 βt\beta_t를 사용한다.
        • 이 분산 βtI\beta_t\mathbf{I}xt1x_{t-1}의 각 차원(예: 픽셀)이 평균 μθ\mu_\theta를 중심으로 얼마나 퍼져 있을 수 있는지를 결정한다. 즉, 모델이 xt1x_{t-1}을 예측할 때 "얼마나 강한 노이즈로 덮여 있는지를 다시 생성할 수 있는지"를 조절하는 역할을 한다.
        • 전방 과정에서 노이즈가 추가될 때 사용된 분산 (1αˉt)I(1 - \bar{\alpha}_t)\mathbf{I}와 유사하게, 역방향 과정의 분산도 단위 행렬 I\mathbf{I}에 스칼라 값 βt\beta_t가 곱해진 형태이다. 이는 역방향 과정에서도 각 차원의 노이즈 제거가 독립적으로 이루어지며, 모든 차원에 동일한 분산 βt\beta_t가 적용됨을 의미한다.
        • DDPM의 원래 논문 [12]에서는 역방향 과정의 분산도 학습 가능한 파라미터로 설정할 수 있다. 즉, 모델이 μθ\mu_\theta와 함께 βt\beta_t도 예측하도록 학습할 수 있다.
        • 그러나 이 논문 ([42]를 따름)에서는 βt\beta_t학습하지 않고 미리 정해진 상수로 사용한다는 의미이다. "시간 의존 상수"라는 것은 βt\beta_t의 값이 시간 스텝 tt에 따라 달라지지만(예: β1,β2,,βT\beta_1, \beta_2, \dots, \beta_T), 그 값들이 모델 학습 과정에서 업데이트되지 않고, 고정된 스케줄에 따라 정해져 있다는 뜻이다.
        • 왜 학습하지 않는가?: 역방향 과정의 분산을 학습하는 것이 성능 향상에 도움이 되는 경우도 있지만, 모델의 복잡성을 줄이고 학습을 안정화하기 위해 고정된 분산을 사용하는 경우가 많다. DDPM 연구 초기에, 분산을 학습하지 않고 전방 과정의 분산을 활용하여 결정하는 방식만으로도 좋은 성능을 보였기 때문에, 많은 후속 연구들이 이 방식을 채택한다. 일반적으로 βt\beta_t는 전방 확산에 사용된 αt\alpha_t 값과 연관되어 미리 계산된 스케줄을 사용한다.
        • 이러한 접근 방식은 모델이 오직 평균 μθ\mu_\theta만 예측하도록 집중하게 하여, 노이즈 제거 과정의 핵심인 데이터 콘텐츠(정보) 복원에 더 효과적일 수 있다.
      • 모델은 이 식 (2)를 이용하여 xTx_T에서 x0x_0까지 반복적으로 노이즈를 제거하며 최종 결과를 얻는다.

    역방향 과정을 이해하기 위한 전방 확산 과정 복습:

    • x0=10x_0 = 10 (원본 데이터)
    • t=1t=1: x1N(9.95,0.01)x_1 \sim \mathcal{N}(9.95, 0.01) 에서 샘플링. 예를 들어, x1=9.94x_1 = 9.94.
    • t=2t=2: x2N(9.49,0.10)x_2 \sim \mathcal{N}(9.49, 0.10) 에서 샘플링. 예를 들어, x2=9.60x_2 = 9.60.
    • t=Tt=T: xTN(1.0,0.99)x_T \sim \mathcal{N}(1.0, 0.99) 에서 샘플링. 예를 들어, xT=0.85x_T = 0.85.

    이제 역방향 확산 과정xTx_T에서 시작하여 x0x_0를 찾아가는 과정이다. 우리는 xT=0.85x_T = 0.85에서 시작한다고 가정한다.

    역방향 과정의 목표:
    pθ(xt1xt,c)=N(xt1;μθ(xt,t,c),βtI)p_\theta(x_{t-1}|x_t, c) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t, c), \beta_t\mathbf{I})

    여기서 우리는 μθ(xt,t,c)\mu_\theta(x_t, t, c)βtI\beta_t\mathbf{I}를 알아야 xt1x_{t-1}을 샘플링할 수 있다.
    논문에서는 βt\beta_t는 "학습되지 않은 시간 의존 상수"로, 미리 정해진 값들을 사용한다. 여기서는 전방 과정의 분산과 유사하게 작동하도록 βt\beta_t 값들을 가정한 뒤 진행하겠다.

    • αt=1βt\alpha_t = 1 - \beta_t
    • αˉt=s=1tαs\bar{\alpha}_t = \prod_{s=1}^{t} \alpha_s

    따라서, αt=αˉt/αˉt1\alpha_t = \bar{\alpha}_t / \bar{\alpha}_{t-1} 이고, βt=1αt\beta_t = 1 - \alpha_t 이다.
    이전 전방 예시에서 사용한 αˉt\bar{\alpha}_t 값들을 바탕으로 αt\alpha_tβt\beta_t를 계산해보자.

    • t=1t=1: αˉ1=0.99\bar{\alpha}_1 = 0.99. α1=0.99\alpha_1 = 0.99. β1=0.01\beta_1 = 0.01.
    • t=2t=2: αˉ2=0.90\bar{\alpha}_2 = 0.90. α2=αˉ2/αˉ1=0.90/0.990.909\alpha_2 = \bar{\alpha}_2 / \bar{\alpha}_1 = 0.90 / 0.99 \approx 0.909. β2=1α20.091\beta_2 = 1 - \alpha_2 \approx 0.091.
    • t=Tt=T: αˉT=0.01\bar{\alpha}_T = 0.01. (가장 마지막 스텝, 예를 들어 T=100T=100이라 가정) αˉT1\bar{\alpha}_{T-1}은 0.01보다 약간 큰 값일 것이다. 예를 들어, αˉT1=0.011\bar{\alpha}_{T-1} = 0.011 이라면, αT=0.01/0.0110.909\alpha_T = 0.01/0.011 \approx 0.909. βT=1αT0.091\beta_T = 1 - \alpha_T \approx 0.091.

    이제 역방향 과정을 단계별로 진행해보자. 조건 cc (오디오, 초기 상태, 감정 스타일)는 모델이 ϵθ\epsilon_\theta를 예측할 때 사용된다고 가정한다.


    Step T: xTx_T에서 xT1x_{T-1} 생성 (예시: T=100T=100이라고 가정)

    • 현재 상태: xT=0.85x_T = 0.85 (완전히 노이즈화된 데이터).
    • 목표: xT1x_{T-1}을 찾는다.
    • 모델 ϵθ\epsilon_\theta의 역할: 모델은 xTx_T, 시간 TT, 조건 cc를 입력받아 xTx_T에 추가된 노이즈를 예측한다: ϵθ(xT,T,c)\epsilon_\theta(x_T, T, c)
      • 예를 들어, ϵθ(xT,T,c)\epsilon_\theta(x_T, T, c)0.90.9라고 예측했다고 가정하자. (이는 xTx_Tx0x_0로부터 생성될 때 0.90.9만큼의 표준 노이즈가 주입되었다고 모델이 추정한 것)
    • αT,αˉT\alpha_T, \bar{\alpha}_T: αT0.909\alpha_T \approx 0.909, αˉT=0.01\bar{\alpha}_T = 0.01.
    • μθ(xT,T,c)\mu_\theta(x_T, T, c) 계산 (논문 수식):
      μθ(xT,T,c)=1αTxT1αT1αˉTϵθ(xT,T,c)\mu_\theta(x_T, T, c) = \frac{1}{\sqrt{\alpha_T}} x_T - \frac{1 - \alpha_T}{\sqrt{1 - \bar{\alpha}_T}}\epsilon_\theta(x_T, T, c)
      μθ(xT,T,c)10.909×0.8510.90910.01×0.9\mu_\theta(x_T, T, c) \approx \frac{1}{\sqrt{0.909}} \times 0.85 - \frac{1 - 0.909}{\sqrt{1 - 0.01}} \times 0.9
      μθ(xT,T,c)10.953×0.850.0910.99×0.9\mu_\theta(x_T, T, c) \approx \frac{1}{0.953} \times 0.85 - \frac{0.091}{\sqrt{0.99}} \times 0.9
      μθ(xT,T,c)1.059×0.850.0910.995×0.9\mu_\theta(x_T, T, c) \approx 1.059 \times 0.85 - \frac{0.091}{0.995} \times 0.9
      μθ(xT,T,c)0.9000.091×0.90.9000.082=0.818\mu_\theta(x_T, T, c) \approx 0.900 - 0.091 \times 0.9 \approx 0.900 - 0.082 = 0.818
      • (모델의 예측 노이즈 ϵθ\epsilon_\theta에 따라 평균은 계속 달라진다. 이 값은 모델이 노이즈를 제거한 후 xT1x_{T-1}이 약 0.818 근처에 있을 것이라고 예측한 것이다.)
    • βTI\beta_T\mathbf{I} (분산): βT0.091\beta_T \approx 0.091.
    • 결과: xT1N(μθ(xT,T,c)=0.818,βT=0.091)x_{T-1} \sim \mathcal{N}(\mu_\theta(x_T, T, c) = 0.818, \beta_T = 0.091) 에서 샘플링.
      • 이 분포에서 무작위로 xT1x_{T-1}을 샘플링하면, 예를 들어 xT1=0.83x_{T-1} = 0.83과 같은 값이 나올 수 있다. (노이즈가 조금 줄어든 상태)

    Step 2: x2x_2에서 x1x_1 생성

    • 현재 상태: x2=9.60x_2 = 9.60 (노이즈가 꽤 많이 포함된 상태).
    • 목표: x1x_1을 찾는다.
    • 모델 ϵθ\epsilon_\theta의 역할: ϵθ(x2,2,c)\epsilon_\theta(x_2, 2, c)를 예측한다.
      • 예를 들어, ϵθ(x2,2,c)\epsilon_\theta(x_2, 2, c)0.3-0.3이라고 예측했다고 가정하자. (이는 x2x_2x0x_0로부터 생성될 때 0.3-0.3만큼의 표준 노이즈가 주입되었다고 모델이 추정한 것)
    • α2,αˉ2\alpha_2, \bar{\alpha}_2: α20.909\alpha_2 \approx 0.909, αˉ2=0.90\bar{\alpha}_2 = 0.90.
    • μθ(x2,2,c)\mu_\theta(x_2, 2, c) 계산:
      μθ(x2,2,c)=1α2x21α21αˉ2ϵθ(x2,2,c)\mu_\theta(x_2, 2, c) = \frac{1}{\sqrt{\alpha_2}} x_2 - \frac{1 - \alpha_2}{\sqrt{1 - \bar{\alpha}_2}}\epsilon_\theta(x_2, 2, c)
      μθ(x2,2,c)10.909×9.6010.90910.90×(0.3)\mu_\theta(x_2, 2, c) \approx \frac{1}{\sqrt{0.909}} \times 9.60 - \frac{1 - 0.909}{\sqrt{1 - 0.90}} \times (-0.3)
      μθ(x2,2,c)10.953×9.600.0910.10×(0.3)\mu_\theta(x_2, 2, c) \approx \frac{1}{0.953} \times 9.60 - \frac{0.091}{\sqrt{0.10}} \times (-0.3)
      μθ(x2,2,c)1.049×9.600.0910.316×(0.3)\mu_\theta(x_2, 2, c) \approx 1.049 \times 9.60 - \frac{0.091}{0.316} \times (-0.3)
      μθ(x2,2,c)10.0700.288×(0.3)10.070+0.086=10.156\mu_\theta(x_2, 2, c) \approx 10.070 - 0.288 \times (-0.3) \approx 10.070 + 0.086 = 10.156
      • (모델의 예측 노이즈 ϵθ\epsilon_\theta에 따라 평균은 계속 달라진다. 이 값은 모델이 노이즈를 제거한 후 x1x_1이 약 10.156 근처에 있을 것이라고 예측한 것이다.)
    • β2I\beta_2\mathbf{I} (분산): β20.091\beta_2 \approx 0.091.
    • 결과: x1N(μθ(x2,2,c)=10.156,β2=0.091)x_1 \sim \mathcal{N}(\mu_\theta(x_2, 2, c) = 10.156, \beta_2 = 0.091) 에서 샘플링.
      • 이 분포에서 무작위로 x1x_1을 샘플링하면, 예를 들어 x1=10.05x_1 = 10.05와 같은 값이 나올 수 있다. (노이즈가 상당히 많이 제거되어 원본 x0=10x_0=10에 가까워졌다.)

    Step 1: x1x_1에서 x0x_0 생성

    • 현재 상태: x1=10.05x_1 = 10.05 (거의 깨끗한 상태).
    • 목표: x0x_0를 찾는다.
    • 모델 ϵθ\epsilon_\theta의 역할: ϵθ(x1,1,c)\epsilon_\theta(x_1, 1, c)를 예측한다.
      • 예를 들어, ϵθ(x1,1,c)\epsilon_\theta(x_1, 1, c)0.050.05라고 예측했다고 가정하자.
    • α1,αˉ1\alpha_1, \bar{\alpha}_1: α1=0.99\alpha_1 = 0.99, αˉ1=0.99\bar{\alpha}_1 = 0.99.
    • μθ(x1,1,c)\mu_\theta(x_1, 1, c) 계산:
      μθ(x1,1,c)=1α1x11α11αˉ1ϵθ(x1,1,c)\mu_\theta(x_1, 1, c) = \frac{1}{\sqrt{\alpha_1}} x_1 - \frac{1 - \alpha_1}{\sqrt{1 - \bar{\alpha}_1}}\epsilon_\theta(x_1, 1, c)
      μθ(x1,1,c)10.99×10.0510.9910.99×0.05\mu_\theta(x_1, 1, c) \approx \frac{1}{\sqrt{0.99}} \times 10.05 - \frac{1 - 0.99}{\sqrt{1 - 0.99}} \times 0.05
      μθ(x1,1,c)10.995×10.050.010.01×0.05\mu_\theta(x_1, 1, c) \approx \frac{1}{0.995} \times 10.05 - \frac{0.01}{\sqrt{0.01}} \times 0.05
      μθ(x1,1,c)1.005×10.050.010.1×0.05\mu_\theta(x_1, 1, c) \approx 1.005 \times 10.05 - \frac{0.01}{0.1} \times 0.05
      μθ(x1,1,c)10.1000.1×0.0510.1000.005=10.095\mu_\theta(x_1, 1, c) \approx 10.100 - 0.1 \times 0.05 \approx 10.100 - 0.005 = 10.095
      • (모델의 예측 노이즈 ϵθ\epsilon_\theta에 따라 평균은 계속 달라진다. 이 값은 모델이 노이즈를 제거한 후 x0x_0이 약 10.095 근처에 있을 것이라고 예측한 것이다.)
    • β1I\beta_1\mathbf{I} (분산): β1=0.01\beta_1 = 0.01.
    • 결과: x0N(μθ(x1,1,c)=10.095,β1=0.01)x_0 \sim \mathcal{N}(\mu_\theta(x_1, 1, c) = 10.095, \beta_1 = 0.01) 에서 샘플링.
      • 이 분포에서 무작위로 x0x_0를 샘플링하면, 예를 들어 x0=10.09x_0 = 10.09와 같은 값이 나올 수 있다. (원본 데이터 x0=10x_0=10에 매우 가깝게 복원되었다!)

    역방향 확산 과정 요약:

    1. 시작: 완전한 노이즈 데이터 xTx_T에서 시작한다.
    2. 노이즈 예측: 각 시간 스텝 tt마다, 학습된 모델 ϵθ(xt,t,c)\epsilon_\theta(x_t, t, c)는 현재 노이즈가 낀 데이터 xtx_t에서 어떤 노이즈 ϵ\epsilon이 추가되었는지를 예측한다. (여기서 조건 cc가 모델의 예측에 영향을 미쳐 원하는 오디오, 감정 스타일 등에 맞는 노이즈 제거를 유도한다.)
    3. 평균 계산: 예측된 노이즈 ϵθ\epsilon_\thetaxtx_t, 그리고 αt,αˉt\alpha_t, \bar{\alpha}_t 값들을 사용하여 역방향 과정의 평균 μθ(xt,t,c)\mu_\theta(x_t, t, c)를 계산한다. 이 평균은 노이즈를 한 단계 제거한 xt1x_{t-1}이 "어떻게 생겼을지"에 대한 모델의 최적 추정치이다.
    4. xt1x_{t-1} 샘플링: 계산된 평균 μθ\mu_\theta와 미리 정해진 분산 βtI\beta_t\mathbf{I}를 가진 가우시안 분포에서 xt1x_{t-1}을 샘플링한다.
    5. 반복: 이 과정을 TT부터 11까지 반복하면, 점진적으로 노이즈가 제거되어 최종적으로 깨끗한 데이터 x0x_0를 얻게 된다.

  • 학습 목표 (Training Objective)

    • 개념: 확산 모델의 학습은 역방향 과정의 평균 μθ\mu_\theta를 직접 예측하는 대신, xtx_t에 추가된 노이즈 ϵ\epsilon을 예측하는 함수 근사기 ϵθ\epsilon_\theta를 학습하는 방식으로 이루어진다.
    • 평균 μθ\mu_\theta와 노이즈 ϵθ\epsilon_\theta의 관계 (수식 3):
      μθ(xt,t,c)=1αtxt1αt1αˉtϵθ(xt,t,c)\qquad \mu_\theta(x_t, t, c) = \frac{1}{\sqrt{\alpha_t}} x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha}_t}}\epsilon_\theta(x_t, t, c)
      • μθ(xt,t,c)\mu_\theta(x_t, t, c): tt 시점의 데이터를 xt1x_{t-1}로 되돌릴 때 예측되는 평균이다.
      • αt\alpha_t: αt=1βt\alpha_t = 1 - \beta_t로 정의되는 파라미터이다.
      • ϵθ(xt,t,c)\epsilon_\theta(x_t, t, c): xtx_t로부터 추가된 노이즈 ϵ\epsilon을 예측하는 모델 θ\theta의 함수 근사기이다.
      • 이 수식은 예측된 노이즈 ϵθ\epsilon_\theta를 사용하여 μθ\mu_\theta를 재구성하는 방법을 보여준다.
    • 최적화 목표 (수식 4):
      Lsimple(θ)=Et,x0,ϵϵϵθ(αˉtx0+1αˉtϵ,t,c)22\qquad L_{simple}(\theta) = \mathbb{E}_{t, x_0, \epsilon} \left\| \epsilon - \epsilon_\theta(\sqrt{\bar{\alpha}_t}x_0 + \sqrt{1 - \bar{\alpha}_t}\epsilon, t, c) \right\|^2_2
      • Lsimple(θ)L_{simple}(\theta): 모델 θ\theta를 최적화하기 위한 손실 함수이다.
      • Et,x0,ϵ\mathbb{E}_{t, x_0, \epsilon}: 시간 tt, 원본 데이터 x0x_0, 노이즈 ϵ\epsilon에 대한 기댓값(expectation)을 의미한다. tt11부터 TT 사이에서 균일하게 샘플링된다.
      • ϵ\epsilon: 실제(ground truth) 가우시안 노이즈.
      • ϵθ(αˉtx0+1αˉtϵ,t,c)\epsilon_\theta(\sqrt{\bar{\alpha}_t}x_0 + \sqrt{1 - \bar{\alpha}_t}\epsilon, t, c): 모델 ϵθ\epsilon_\theta가 예측한 노이즈이다. 이때, αˉtx0+1αˉtϵ\sqrt{\bar{\alpha}_t}x_0 + \sqrt{1 - \bar{\alpha}_t}\epsilon은 전방 확산 과정을 통해 x0x_0로부터 얻어진 xtx_t와 동일하다.
      • 22\|\cdot\|_2^2: 예측된 노이즈 ϵθ\epsilon_\theta와 실제 노이즈 ϵ\epsilon 간의 L2-norm(제곱 오차)의 차이를 나타낸다. 모델의 목표는 이 차이를 최소화하는 방향으로 θ\theta를 학습하는 것이다. 이는 [12]에서 제안된 가중치 항(weighting term)을 무시하여 단순화된 형태이다.

    μθ(xt,t,c)=1αtxt1αt1αˉtϵθ(xt,t,c)\mu_\theta(x_t, t, c) = \frac{1}{\sqrt{\alpha_t}} x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha}_t}}\epsilon_\theta(x_t, t, c) 수식 유도 과정

    이 수식은 Denoising Diffusion Probabilistic Models (DDPM)의 핵심 유도 과정 중 하나이며, 전방 확산 과정의 통계적 특성을 이용하여 역방향 과정의 평균을 예측하도록 변형된 형태이다.

    핵심 아이디어는 다음과 같다:

    1. 전방 확산 과정: xtx_tx0x_0에 노이즈를 추가하여 생성된다. 이 관계는 알려져 있다.
    2. 역방향 과정의 목표: xtx_t로부터 xt1x_{t-1}을 예측하는 것이다.
    3. 핵심 연결: xtx_t가 주어졌을 때, x0x_0를 추정할 수 있다면 xt1x_{t-1}을 더 쉽게 추론할 수 있다. 모델 ϵθ\epsilon_\thetaxtx_t에 추가된 노이즈를 예측하므로, 이 예측된 노이즈를 사용하여 x0x_0를 역으로 추정할 수 있다.

    유도 과정을 단계별로 살펴보자. (여기서 조건 cc는 표기 편의상 생략하지만, 모든 예측에 포함된다고 가정한다.)

    가정 및 정의:

    • 전방 확산: xt=αˉtx0+1αˉtϵx_t = \sqrt{\bar{\alpha}_t}x_0 + \sqrt{1 - \bar{\alpha}_t}\epsilon, 여기서 ϵN(0,I)\epsilon \sim \mathcal{N}(0, \mathbf{I}) (표준 정규 노이즈)
      • 이 식은 q(xtx0)N(αˉtx0,(1αˉt)I)q(x_t|x_0) \sim \mathcal{N}(\sqrt{\bar{\alpha}_t}x_0, (1 - \bar{\alpha}_t)\mathbf{I})의 정의에서 직접 도출된다. 가우시안 분포에서 샘플링된 값은 '평균 + (표준편차 * 표준정규분포)' 형태로 표현될 수 있기 때문이다.
    • 역방향 과정: p(xt1xt)=N(xt1;μ(xt),βtI)p(x_{t-1}|x_t) = \mathcal{N}(x_{t-1}; \mu(x_t), \beta_t\mathbf{I})
      • 우리의 목표는 μ(xt)\mu(x_t)를 찾는 것이다.
    • αt=1βt\alpha_t = 1 - \beta_t
    • αˉt=s=1tαs\bar{\alpha}_t = \prod_{s=1}^{t} \alpha_s

    유도 단계:

    1. x0x_0ϵ\epsilonxtx_t로 표현:
      전방 확산 식 xt=αˉtx0+1αˉtϵx_t = \sqrt{\bar{\alpha}_t}x_0 + \sqrt{1 - \bar{\alpha}_t}\epsilon 에서 x0x_0에 대해 정리하면:
      αˉtx0=xt1αˉtϵ\sqrt{\bar{\alpha}_t}x_0 = x_t - \sqrt{1 - \bar{\alpha}_t}\epsilon
      x0=1αˉt(xt1αˉtϵ)(식 A)x_0 = \frac{1}{\sqrt{\bar{\alpha}_t}}(x_t - \sqrt{1 - \bar{\alpha}_t}\epsilon) \quad \text{(식 A)}
      이 식은 xtx_t와 실제 노이즈 ϵ\epsilon을 알면 x0x_0를 알 수 있다는 것을 보여준다. 하지만 우리는 실제 ϵ\epsilon을 모르므로, 모델 ϵθ(xt,t)\epsilon_\theta(x_t, t)가 예측한 노이즈 ϵ^\hat{\epsilon}을 사용해야 한다.
      x^0=1αˉt(xt1αˉtϵθ(xt,t,c))(식 B)\hat{x}_0 = \frac{1}{\sqrt{\bar{\alpha}_t}}(x_t - \sqrt{1 - \bar{\alpha}_t}\epsilon_\theta(x_t, t, c)) \quad \text{(식 B)}
      x^0\hat{x}_0는 모델이 xtx_t로부터 예측한 깨끗한 데이터이다.

    2. q(xt1xt,x0)q(x_{t-1}|x_t, x_0)의 형태:
      DDPM 논문에서 중요한 결과는, x0x_0가 주어졌을 때 xtx_txt1x_{t-1} 사이의 관계(q(xt1xt,x0)q(x_{t-1}|x_t, x_0))가 역시 가우시안 분포를 따른다는 것이다. 이 분포의 평균은 다음과 같이 유도된다:
      μq(xt,x0)=αt(1αˉt1)1αˉtxt+αˉt1(1αt)1αˉtx0(식 C)\mu_q(x_t, x_0) = \frac{\sqrt{\alpha_t}(1 - \bar{\alpha}_{t-1})}{1 - \bar{\alpha}_t} x_t + \frac{\sqrt{\bar{\alpha}_{t-1}}(1 - \alpha_t)}{1 - \bar{\alpha}_t} x_0 \quad \text{(식 C)}
      이것은 전방 과정의 조건부 분포 q(xtxt1)q(x_t|x_{t-1})q(xt1x0)q(x_{t-1}|x_0)를 결합하여 베이즈 정리를 적용하여 얻어지는 "진짜" 역방향 평균이다.

    3. x^0\hat{x}_0를 사용하여 μq\mu_q 재구성:
      이제 (식 B)에서 얻은 x^0\hat{x}_0를 (식 C)의 x0x_0 자리에 대입하여 모델이 예측하는 평균 μθ(xt,t,c)\mu_\theta(x_t, t, c)를 얻을 수 있다.
      μθ(xt,t,c)=αt(1αˉt1)1αˉtxt+αˉt1(1αt)1αˉt(1αˉt(xt1αˉtϵθ(xt,t,c)))\mu_\theta(x_t, t, c) = \frac{\sqrt{\alpha_t}(1 - \bar{\alpha}_{t-1})}{1 - \bar{\alpha}_t} x_t + \frac{\sqrt{\bar{\alpha}_{t-1}}(1 - \alpha_t)}{1 - \bar{\alpha}_t} \left( \frac{1}{\sqrt{\bar{\alpha}_t}}(x_t - \sqrt{1 - \bar{\alpha}_t}\epsilon_\theta(x_t, t, c)) \right)

      이 식을 정리하는 것이 다소 복잡하지만, 차분히 전개하면 논문의 수식으로 귀결된다. 주요 항만 정리해보면:
      μθ(xt,t,c)=xt(αt(1αˉt1)1αˉt+αˉt1(1αt)(1αˉt)αˉt)ϵθ(xt,t,c)(αˉt1(1αt)1αˉt(1αˉt)αˉt)\mu_\theta(x_t, t, c) = x_t \left( \frac{\sqrt{\alpha_t}(1 - \bar{\alpha}_{t-1})}{1 - \bar{\alpha}_t} + \frac{\sqrt{\bar{\alpha}_{t-1}}(1 - \alpha_t)}{(1 - \bar{\alpha}_t)\sqrt{\bar{\alpha}_t}} \right) - \epsilon_\theta(x_t, t, c) \left( \frac{\sqrt{\bar{\alpha}_{t-1}}(1 - \alpha_t)\sqrt{1 - \bar{\alpha}_t}}{(1 - \bar{\alpha}_t)\sqrt{\bar{\alpha}_t}} \right)

      여기서 다음과 같은 관계를 이용한다:

      • 1αˉt1αˉt(1αˉt) and 1αtαˉt(1αˉt)\frac{1 - \bar{\alpha}_{t-1}}{\sqrt{\bar{\alpha}_t}(1 - \bar{\alpha}_t)} \text{ and } \frac{1 - \alpha_t}{\sqrt{\bar{\alpha}_t}(1 - \bar{\alpha}_t)} (이 부분은 분수 합칠 때 나온다)
      • 1αˉt=1αtαˉt11 - \bar{\alpha}_t = 1 - \alpha_t \bar{\alpha}_{t-1}
      • αˉt1(1αt)1αˉt=αˉt1βt1αˉt\sqrt{\bar{\alpha}_{t-1}} (1 - \alpha_t) \sqrt{1 - \bar{\alpha}_t} = \sqrt{\bar{\alpha}_{t-1}} \beta_t \sqrt{1 - \bar{\alpha}_t}
      • αt=αˉt/αˉt1\alpha_t = \bar{\alpha}_t / \bar{\alpha}_{t-1}

      복잡한 대수적 조작을 통해, 최종적으로 다음과 같은 형태로 단순화될 수 있다:
      μθ(xt,t,c)=1αt(xt1αt1αˉtϵθ(xt,t,c))\mu_\theta(x_t, t, c) = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha}_t}}\epsilon_\theta(x_t, t, c) \right)
      그리고 이것을 논문의 수식과 비교하면:
      μθ(xt,t,c)=1αtxt1αtαt1αˉtϵθ(xt,t,c)\mu_\theta(x_t, t, c) = \frac{1}{\sqrt{\alpha_t}} x_t - \frac{1 - \alpha_t}{\sqrt{\alpha_t}\sqrt{1 - \bar{\alpha}_t}}\epsilon_\theta(x_t, t, c)
      (논문의 수식에서는 1αt\frac{1}{\sqrt{\alpha_t}}xtx_tϵθ\epsilon_\theta 항 모두에 곱해져 있지 않고 xtx_t에만 곱해진 것처럼 보이지만, 이는 보통 수식을 간결하게 표현하기 위한 것이다. 실제로는 xt()ϵθx_t - (\dots)\epsilon_\theta 덩어리 전체에 1αt\frac{1}{\sqrt{\alpha_t}}가 곱해지는 형태가 원래 DDPM 유도 식이다.)

      주의사항: 논문에서 제시된 형태는 원래 DDPM의 유도된 평균 식에서 αt\sqrt{\alpha_t}를 분배한 형태이다. 원래 DDPM 논문 [12]의 식 (11)을 보면:
      μt(xt,ϵt)=1αt(xtβt1αˉtϵt)\mu_t(x_t, \epsilon_t) = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{\beta_t}{\sqrt{1 - \bar{\alpha}_t}}\epsilon_t \right)
      여기서 βt=1αt\beta_t = 1 - \alpha_t 이므로 이를 대입하면 논문의 수식과 거의 동일해진다.

    핵심 의미:

    이 수식은 모델 ϵθ\epsilon_\theta가 예측한 노이즈 ϵθ(xt,t,c)\epsilon_\theta(x_t, t, c)를 사용하여 xtx_t로부터 "깨끗한" x0x_0를 추정하고, 이 추정된 x0x_0를 바탕으로 한 단계 이전의 데이터 xt1x_{t-1}의 평균을 계산하는 방법을 알려준다. 즉, 노이즈를 예측하는 ϵθ\epsilon_\theta 모델만 학습하면 역방향 과정의 평균 μθ\mu_\theta를 자동으로 얻을 수 있다는 것이 DDPM의 강점이다.

  • 분류자-자유 안내 (Classifier-free Guidance)
    • 개념: 확산 모델에서 생성 품질과 다양성 사이의 균형을 맞추기 위해 널리 사용되는 기법이다 [11, 32, 42].
    • 학습 방법: 조건부 확산 모델을 학습할 때, 조건 cc를 무작위로 일정 주기마다 제거(즉, c=ϕc = \phi로 설정)한다.
    • 추론 (수식 5):
      ϵ^θ=(w+1)ϵθ(xt,t,c)wϵθ(xt,t,ϕ)\qquad \hat{\epsilon}_\theta = (w + 1)\epsilon_\theta(x_t, t, c) - w\epsilon_\theta(x_t, t, \phi)
      • ϵ^θ\hat{\epsilon}_\theta: 최종적으로 안내(guided)되는 노이즈 예측값이다.
      • ϵθ(xt,t,c)\epsilon_\theta(x_t, t, c): 조건 cc가 주어졌을 때 모델이 예측한 노이즈이다.
      • ϵθ(xt,t,ϕ)\epsilon_\theta(x_t, t, \phi): 조건 cc가 제거된(unconditional) 상태에서 모델이 예측한 노이즈이다.
      • ww: 무조건적 샘플과 조건부 샘플 간의 균형을 조절하는 스케일(scale) 파라미터이다. ww가 높을수록 조건 cc에 더 강력하게 따르는 샘플이 생성되어 품질이 향상될 수 있지만, 다양성은 감소할 수 있다.
      • 이 기법은 조건부 모델과 무조건부 모델의 예측을 가중합하여, 조건에 더 잘 부합하면서도 생성의 품질을 높이는 효과를 얻는다.
profile
상어 인형을 좋아하는 사람

0개의 댓글