안녕하세요. KDST 박민철입니다.
이번 공유 내용에서는 최근 파라미터 기반의 이미지 생성 모델에서 고려되어야 할 두 가지 핵심 사항 ((1) 텍스트 프롬프트와 생성된 이미지의 일치성 및 파라미터를 터치하는 source content의 identity와 유사한 보존적 특성을 갖는 것)을 효과적으로 달성하기 위해 제안된 Posterior Distillation Sampling, CVPR 2024 논문을 소개드리고자 합니다.
논문의 도입에서 기술하는 내용을 잠시 살펴보면, 2D 이미지를 생성하는 diffusion 모델들은 Internet-scale의 이미지와 text 데이터셋에 힘입어 상당히 강력한 generative prior을 갖게 되었지만, 이들의 강력한 2D generative prior는 광범위한 응용력에도 불구하고, 이미지의 pixel 공간에 한하여 매우 제한적으로 이용되고 있습니다. 이와 관련된 연구들 사이에서, SDS (Score Distillation Sampling)는 text-to-image diffusion 모델의 강력한 generative prior를 이용하여 NeRF (파라미터 기반의 이미지 생성)로 표현되는 3D scene을 합성하는데 처음 성공하였고, 나아가 SDS는 NeRF 뿐만 아니라, 이미지를 표현하는 다양한 파라미터 기반 원리에 응용되었습니다.
Parameteric 이미지를 생성하는 데 SDS의 분명한 진전이 있었음에도 불구하고, 이러한 이미지들을 editing하는 기술을 구축하는 데 어려움이 있었고, 이러한 어려움들은 크게 두 가지 측면을 요구하였습니다: 첫 째, 텍스트 프롬프트와 이미지의 일치도, 둘 째, parameteric 이미지를 생성하기 위해 사용된 source content의 identity의 보존 정도. 기술한 두 가지 측면을 만족하는 형태로 SDS를 확장하기 위하여, DDS (Delta Denoising Score)가 제안되었지만, identity 보존 방법에 대한 구체적 방법이 부재하였습니다.
본 연구에서 제안하는 PDS (Posterior Distillation Sampling)는 SDS, DDS와 달리, 최적화 대상이 되는 타겟이 주어질 때, source와 타겟의 latents를 매칭하는 것을 목적으로 합니다. 쉽게 말하면 latent vector를 나란히 하겠다라고 이해할 수 있고, 조금더 구체적으로, source 이미지의 latent가 계산되면, 이를 target 이미지의 generative process의 guideline으로 활용하여 target 이미지가 target 텍스트의 방향으로 변화할 때, source와 구조적인 detail이 유지되도록 관여합니다.
아래의 예시는 NeRF기반의 3D scene 생성에서 PDS를 사용하는 경우, source (input scene)의 content 정보를 잘 유지하면서, editing에 효과적일 수 있음을 보여줍니다.
본 논문을 이해하기 위하여, 4가지 정도의 prerequisite이 필요한 데, 간략한 설명만 드리고, 직접 문헌과 이해에 도움되는 자료들을 통해 공부하시면 논문 컨셉을 이해하는 데, 많은 도움이 될 것이라 생각합니다.
1. Score Matching (SM): 최근 diffusion 모델이 많이 활용되면서, 흔히 접할 수 있는 개념으로, 임의의 데이터 샘플 집단에 대하여 데이터 분포에 대한 log기울기를 score라 하며, 이를 예측하기 위해 minimization 함수를 도입하여 모델의 파라미터를 최적화하는 방법.
모든 데이터 샘플에 접근하여 분포를 알기 어렵기 때문에, 이를 우회하기 위한 전략으로 Gaussian kernel을 x에 적용하고, 이를 denoising하기 위한 모델을 도입함으로써 noise강도가 작을 때에 대한 score를 추정할 수 있습니다 (DSM: Denoising Score Matching).
2. Score Distillation Sampling (SDS): Diffusion 모델을 ELBO로 학습시키는 것은 아래와 같은 noise estimator를 유도하는 DSM 목적함수와 같게 됩니다.
따라서, diffusion model의 학습은 latent 변수 모델을 학습하는 것 또는 noise 데이터의 score를 학습하는 것으로 볼 수 있습니다.
SDS의 접근 방식은 diffusion model의 구조를 활용하여 최적화를 통해 tractable한 샘플링을 가능하게 하는 것인데, x=g(θ)가 freeze 된 diffusion model의 샘플처럼 보이도록 파라미터에 대해 최적화해야 합니다.
미분 가능한 generator가 파라미터를 기반으로 이미지를 생성할 때 x=g(θ), 2D pixel space에서 학습된 text-to-image diffusion 모델을 바탕으로 최적의 파라미터를 고민하기 위한 목적함수는 아래와 같고,
최적점을 얻기 위해 gradient를 생각해보면 아래와 같은 복잡한 미분의 관계를 확인할 수 있습니다.
U-Net Jacobian은 계산하는 데 비용이 많고 주변 밀도의 스케일링된 Hessian에 근사하도록 학습되기 때문에 작은 noise level에 대해 컨디셔닝이 좋지 않으며, U-Net Jacobian 항을 생략하면 diffusion model로 x를 최적화하기 위한 효과적인 기울기가 생성됨을 발견하여, 다음과 같이 SDS의 gradient를 정의할 수 있습니다.
3. Delta Denoising Score (DDS): SDS의 목적은 source와 target의 명시적인 residual을 정의하고 있지 않는 임의의 noise와 target의 residual을 다루기 때문에, 생성된 이미지의 상당한 차이를 볼 수 있습니다. 따라서 image-prompt를 pair로 하여, 정확한 source와 target에 대한 conditional noise의 residual을 바탕으로 파라미터를 업데이트할 gradient를 정의할 수 있습니다.
하지만, 이 것은 정확한 source와 target의 identity를 유사하게하는 강제성이 부족하기 때문에, 마찬가지로 content의 shift가 존재합니다.
4. Diffusion Inversion: Diffusion model inversion 중 특히 DDPM inversion은 stochastic latent에 이미지의 구조적인 detail을 encoding한다고 간주하며, 따라서, 아래처럼 정의되는 DDPM의 reverse process 과정 속에서, Tweedie formula를 활용하여 time step t에서 t-1을 예측하기 위해 이용되는 covariate 정보를 담는 latent map z을 추정할 수 있습니다.
PDS는 위의 4가지 prerequisite을 모두 종합하여 parametric 이미지를 생성하기 위한 gradient를 아래와 같이 새롭게 정의합니다.
식을 살펴보면, diffusion 모델의 time step마다 얻은 stochastic latent를 매칭하도록 유도하는 gradient를 생성하는 데, 이는 구체적으로 source와 target의 image-prompt 페어에 대한 noise residual 뿐만 아니라, target 이미지의 업데이트가 source 이미지의 근방에 놓이도록 regularization을 하는 것을 확인할 수 있습니다. 따라서, posterior 이미지가 크게 divergence하지 않도록 명시적으로 컨트롤이 가능하다는 점이 돋보입니다.
Experiment results
다음은 논문에서 제시하는 PDS의 정량 성능에 대한 결과이며, NeRF와 SVG에서 생성하는 이미지들에 관한 editing에서 평가를 수행하였고, 가장 하단의 SVG 기반의 이미지에 대한 정성 결과를 보이기 위해, 텍스트 프롬프트는 수동으로 제작하였으며, SVG-target 텍스트 프롬프트 페어는 총 48가지였다고 합니다.
추가적으로 궁금한 부분은 논문을 참조 부탁드리며, 질문을 댓글로 남겨주시면 함께 고민할 좋은 기회가 될 것으로 생각합니다.
감사합니다.