본문 바로가기

논문 리뷰/Diffusion Model

Improving Sample Quality of Diffusion Models Using Self-Attention Guidance (SAG)

샘플의 fine-grained feature를 자체적인 지침으로 사용

 

[Project Page]

[Github]

[arXiv](Current version v6)

 

 

Abstract

외부 조건과 훈련이 필요 없는 blur guidance, Self-Attention Guidance(SAG) 제안

 

 

 

Introduction

확산 모델의 중간 샘플의 내부 정보가 지침 역할을 할 수 있다는 직관을 바탕으로 blur guidance 제안. 하지만 blur가 구조적 모호성을 도입할 수 있기 때문에 핵심 정보를 캡처할 수 있는 self-attention을 활용한 SAG 또한 제안.

 

기존 지침(e.g. classifier-free guidance)과 함께 사용할 수 있다.

 

 

 

Preliminaries

DDPM : 개념, 수식

Sampling

 

Timestep t에서 중간 재구성을 얻을 수 있다.

 

Classifier-free guidance

 

Self-attention in diffusion models

A = attention map, self-attention 출력은 AV.

 

 

 

Generalizing Diffusion Guidance

CFG를 조건 유형과 상관없는 일반화 조건 ht의 수식으로 일반화.

(x와 x̄의 차이는 잘 모르게슴... perturbed sample이라고 나와있긴 한데...)

(논문 끝까지 보고 이해했다... x̄ 또한 일종의 일반화이다. 어떤 형태의 x든 사용될 수 있다는 뜻.)

 

 

 

Utilizing the Self-Attention Map to Improve Sample Quality

Blur Guidance for Diffusion Models

Gaussian filter Gσ.

 

Timestep t에서 중간 재구성 x̂0를 얻고 필터 적용 x̃0 = x̂0 ∗ Gσ,

예측 노이즈 ϵθ(xt)를 통해 다시 확산하여 x̃t 생성.

 

ht = xt - x̃t,

ht와, 무조건 예제를 x̃t로 일반화 조건 수식에 삽입하여 denoising의 지침으로 사용.

(Fine-gradined feature를 일종의 조건으로 사용하겠다는 뜻.)

 

놀랍게도 성능이 향상되었다.

Blur로 필터링되는 fine-grained feature에 확산 프로세스를 더 적합하도록 만든다.

 

하지만 큰 guidance scale(s>5)에서 노이즈가 많은 결과가 생성되는 문제가 발생했다.

 

Self-Attention Guidance for Diffusion Models

 

Global average pooling을 사용하여 적층 된 self-attention map을 집계하고 재구성, 업샘플링을 통해 xt와 같은 해상도로 만든 뒤

마스크 임계값을 넘는 패치만 blurring 하여 해당 패치의 fine-grained feature를 지침으로 사용한다.

 

아주 간단히 정리하면, 유의미한 패치에 대해서만 blur guidance를 수행하겠다는 뜻이다.

중요!!! 무조건으로 사용된 입력이 x̂t이고 조건으로 사용된 입력이 xt임.

 

Blur guidance와 달리 xt의 온전한 패치가 명시적으로 포함되어 있어 원본 분포와 너무 멀어지는 것을 방지하면서도 역방향 프로세스에서 예측해야 할 중요한 정보를 은폐할 수 있다.

 

 

 

Experiments

Project Page에서 정성적 결과를 볼 수 있다.