본문 바로가기

논문 리뷰/Diffusion Model

Discovering Interpretable Directions in the Semantic Latent Space of Diffusion Models (Semantic-DDM)

[Project Page]

[arXiv](Current version v1)

 

 

Abstract

U-Net의 bottleneck인 h-space라고 불리는 잠재 공간에서 의미 있는 방향을 찾기 위한 새로운 방법 제안

 

 

 

The semantic latent space of DDMs

확산 모델은 먼저 다음과 같이 noise n을 이용해 noised image를 얻고

 

역확산 과정을 통해 denoising.

 

분산은 다음과 같고

ηt가 0이면 DDIM, 1이면 DDPM이다.

 

이전 연구에 따라, middle block의 출력 활성화인 h-space를 연구한다.

이전 연구와 달리 P 뿐만 아니라 D에도 ∆ht를 주입하며, 이는 한 번의 forward pass만 필요하다는 이점이 있다.

이전 연구에서는 P의 h-space만 수정하여 수정된, 수정되지 않은 총 두 번의 forward pass가 필요했다.

 

주의할 점은, h(밑첨자 t는 생략하겠습니다. html로 편집해야 돼서 귀찮...)가 완전한 잠재 표현은 아니라는 점이다. (잔차로 인해)

아래 그림에서 보이듯이 h를 교체해도 배경을 바뀌지 않았다.

 

h-space의 특징은 GAN과 같이 벡터 산술 속성을 따른다는 점이다. 그래서 다음과 같은 이미지 편집이 가능하다.

 

 

 

Unsupervised semantic directions

Global semantic directions

첫 번째 목표는 비지도 방식으로 모든 이미지에 대해 동일한 의미적 효과를 갖는 global semantic direction을 발견하는 것이다.

 

먼저 n개의 무작위 샘플을 생성하고 각 샘플의 모든 timestep의 h에 대해 주성분 분석(PCA)을 수행한다. 모든 timestep에서 j번째 주성분의 연결을 vj로 정의한다.

 

아래 그림은 발견한 몇 가지의 주성분 방향의 편집을 보여줌.

 

Discovering image-specific semantic edits

선글라스를 착용한 이미지에는 눈을 감거나 뜨는 global direction이 적용되지 않는다. 따라서 이미지별 direction을 찾음.

 

U-Net의 출력은 xt와 ht 모두에게 의존하지만 ht에 대한 의존성만 고려한다.

출력에 대한 htjacobian:

 

Jacobian의 특이값 분해의 특이 벡터인 V의 열벡터를 semantic direction이라 하면 각 timestep에서 k개의 direction을 찾을 수 있다. 하지만 실제로 이를 직접 계산하는 것은 계산 비용이 매우 많이 든다. 

 

따라서 power method를 통해 우세한 특이 벡터를 찾는다. 근데 알고리즘을 이해를 못 하겠어요...

 

 

 

Supervised discovery of semantic directions

Linear semantic directions from examples

양성 샘플과 음성 샘플을 여러 장 생성한 뒤 각 timestep의 h-space인 hT:1간의 연산을 통해 방향을 찾는다.

 

Classifier annotation

사전 훈련된 classifier를 통해 생성된 샘플에 주석을 달고 class score에 따라 정렬한 뒤 상위 샘플과 하위 샘플에 대해 위의 식을 적용하고 방향을 찾는다.

 

Disentanglement of semantic directions

방향 v1, v2가 있을 때 v1에서 v1의 v2 투영을 제거함으로써 v1 방향으로 편집하는 동안 v2 방향이 변하지 않도록 할 수 있다.

<> = 내적