Conditioning Mechanisms(추가예정) 및 Diffusers 학습코드

Jayce_97·2025년 1월 2일
0

[논문]LMD

목록 보기
4/6

다른 유형의 생성 모델과 마찬가지로 diffusion model은 원칙적으로 P(zy)P(z|y) 형식의 조건부 분포를 모델링 할 수 있습니다.
조건부 denoision autoencoder ϵθ(zt,t,y)\epsilon_\theta (z_t, t, y)로 구현되며, 입력 yy를 통해 텍스트, sematic map, image-to-image 변환과 같은 합성 프로세스를 제어할 수 있습니다.

이미지 합성 측면에서 diffusion model의 생성 능력을 입력 이미지의 클래스 레이블이나 이미지를 흐릿하게 변형하는 것을 넘어선 다른 유형의 컨디셔닝과 결합하는 것이 이전 연구들과의 차이점입니다.

다양한 입력 양식의 attention 기반 모델을 학습하는 데 효과적인 cross-attention 메커니즘으로 기본 UNet backbone을 보강하여 diffusion model을 보다 유연한 조건부 이미지 생성기로 만듭니다. 다양한 종류의 yy를 전처리하기 위해 yy를 중간 representation(표현)으로 τϵ(y)RM×dr\tau _\epsilon (y) \in \mathbb R^{M \times d_r}로 보내는 도메인별 인코더 τϵ\tau _\epsilon를 도입합니다. 이후 cross-attention layer를 통해 UNet의 중간 layer에 매핑되며, Cross-attention layer 공식은 다음과 같습니다.
Ateention(Q,K,V)=softmax(QKTd)VAteention(Q, K, V) = softmax(\frac{QK^T}{\sqrt d})\cdot V
Q=WQ(i)ϕ(zt),K=WK(i)τθ(y),V=WV(i)τϵ(y)Q = W^{(i)}_{Q} \cdot \phi (z_t), K = W^{(i)}_K \cdot \tau_\theta(y), V = W^{(i)}_V \cdot \tau_\epsilon(y)

ϕi(zt)RN×dϵi\phi_i(z_t) \in \mathbb R^{N \times d^{i}_\epsilon}ϵθ\epsilon_\theta를 구현하는 UNet의 중간 표현이고, WV(i)Rd×dϵ,WQ(i)Rd×dτ,WK(i)Rd×dτW^{(i)}_V \in \mathbb{R}^{d \times d_{\epsilon}}, W^{(i)}_Q \in \mathbb{R}^{d \times d_{\tau}}, W^{(i)}_K \in \mathbb{R}^{d \times d_{\tau}}
는 학습 가능한 projection matrix입니다. 해당 모델의 아키텍처는 아래와 같습니다.

이미지와 conditioning(조건화, 학습되는 과정) 쌍을 기반으로 다음 식을 통해 조건부 LDM을 학습합니다.

LLDM:=Eε(x),y,ϵN(0,1),t[ϵϵθ(zt,t,τθ(y))22]L_{LDM} := \mathbb{E}_{\varepsilon_{(x)}, y, \epsilon \sim \mathcal{N}(0, 1), t}\left[\| \epsilon - \epsilon_\theta(z_t, t, \tau_\theta(y)) \|_2^2\right]

τθϵθ\tau_\theta 와 \epsilon_\theta는 위 식으로 동시에 최적화 되며, 각 도메인별 기존 모델들에 의해 τθ\tau_\theta가 파라미터화 할 수 있기 때문에 이 메커니즘은 유연하게 작동함을 알 수 있습니다.

요약하자면, Cross-Attention 메커니즘은 다양한 입력 양식에 대해 강력한 조건부 이미지를 생성하도록 모델을 확장하며, 이를 통해 Diffusion 모델이 보다 유연하고 강력해집니다.

τϵ(y)RM×dr\tau_\epsilon (y) \in \mathbb R^{M \times d_r}

  • 조건부 입력 yy를 중간 표현 τϵ(y)\tau_\epsilon(y)으로 변환하기 위해 도메인별 인코더 τϵ\tau_\epsilon를 사용
  • MM: 중간 표현의 길이
  • drd_r: 중간 표현의 차원

Query, Key, Value 정의
QQ: Query, KK: Ke,y VV: Value
Q=WQ(i)ϕ(zt),K=WK(i)τθ(y),V=WV(i)τϵ(y)Q = W^{(i)}_{Q} \cdot \phi (z_t), K = W^{(i)}_K \cdot \tau_\theta(y), V = W^{(i)}_V \cdot \tau_\epsilon(y)

  • ϕ(zt)\phi(z_t): UNet의 중간 표현
  • τϵ(y)\tau_\epsilon(y): 도메인별 인코더를 통해 변환된 입력 yy

UNet 중간 표현
ϕi(zt)RN×dϵi\phi_i(z_t) \in \mathbb R^{N \times d^{i}_\epsilon}

  • NN: UNet 중간 표현의 길이
  • dϵid_\epsilon^i: 각 레이어별 중간 표현의 차원

Weight 정의
W(i)VRd×dϵW^{(i)}V \in \mathbb{R}^{d \times d\epsilon}
W(i)QRd×dτW^{(i)}Q \in \mathbb{R}^{d \times d\tau}
W(i)KRd×dτW^{(i)}K \in \mathbb{R}^{d \times d\tau}

  • dd: 차원의 기준 값
  • dϵd_\epsilon: τϵ(y)\tau_\epsilon(y)의 표현 차원
  • dτd_\tau: Query와 Key의 차원

LLDM:=Eε(x),y,ϵN(0,1),t[ϵϵθ(zt,t,τθ(y))22]L_{LDM} := \mathbb{E}_{\varepsilon_{(x)}, y, \epsilon \sim \mathcal{N}(0, 1), t}\left[\| \epsilon - \epsilon_\theta(z_t, t, \tau_\theta(y)) \|_2^2\right]

  • LLDML_{LDM}: Latent Diffusion Model (LDM)의 손실 함수
  • E\mathbb{E}: 기대값
  • xx: 데이터 샘플
  • yy: 조건부 입력
  • ϵN(0,1)\epsilon \sim \mathcal{N}(0, 1): 평균이 0이고 분산이 1인 정규분포에서 샘플링된 노이즈
  • tt: 시간 단계
  • ϵθ\epsilon_\theta: 모델이 예측한 노이즈
  • τθ(y)\tau_\theta(y): 조건부 입력 yy를 중간 표현으로 변환하는 도메인별 인코더 τθ\tau_\theta
  • 22| \cdot |_2^2: L2 노름의 제곱

위의 학습내용은 저의 주관적인 내용이 포함되어 잘못 된 정보가 있을 수 있습니다. 참고용으로 읽어주시기 바랍니다.

Diffusers 학습 코드

Github

profile
AI (ML/DL) 학습

0개의 댓글

관련 채용 정보