Diffusion Model(간략한 소개)

seung·2024년 8월 24일

Generative Model

목록 보기
4/7

Diffusion Model?

간단하게 설명하면 noise로 부터 이미지를 생성하는 것이다.

예를 들어서 VAE로 생각해보면 VAE 역시 noise 벡터로 부터 이미지를 만든다고 볼 수 있다.
왜냐면 latent distribution이 가우시안 분포이고 거기서 sampling 된 가우시안 벡터가 이미지로 만들어지기 때문이다.

GAN 역시도 그렇다 어떤 latent 벡터 z(혹은 noise z)로 부터 G를 통과하면 이미지가 나오게 된다.

그래서 diffusion 모델역시 어떤 noise로 부터 이미지를 생성한다는 것은 다른 생성 모델들과 비교했을 때굉장히 비슷하다.

다만 큰 차이점은 diffusion model은 그 image(noise)를 조금씩 변경시켜가면서 이미지를 만들게 된다.
(그래서 original diffusion DDPM은 천번의 step을 밟는다.)
시간이 오래 걸리지만 성능면에서는 좋다.

굉장히 비효율적으로 보이고 수식도 많아 이해하기 힘들고 구현하기는 더더욱 어렵지만 잘 구현했을 때 이미지 퀄리티가 다른 생성모델에 비해 월등히 좋다. 그래서 많이 사용한다.

최근에 auto regressive model의 성능이 좋아지고 있다는 소식은 있지만 아직까지 데이터가 고정되어 있고 파라미터의 숫자가 동일하면 diffusion이 가장 좋은 성능을 보인다고 한다.

Diffusion의 2가지 key concept

  1. diffusion process
    이것 때문에 이 모델의 이름이 diffusion이다.
    diffusion 모델은 정확히 이야기하면 이미지를 만들어 내는 모델이 아니라 오히려 반대의 과정이다.
    이미지의 노이즈를 집어넣어 이미지를 점점 noise화 시키는 것이 diffusion process이다.

  2. reverse process
    우리가 학습하는 것이다. diffusion process의 역 과정으로서
    우리가 미리 정해진 방법으로 집어넣은 noise를 없애고 오리지널 이미지로 복원하는 과정이다.
    이걸 한번에 하는게 아니라 우리가 1000의 step으로 noise를 넣었다면 1000에 걸쳐 noise벡터를 우리의 이미지로 바꾸는 것이다.(이런식으로 DDPM이 흘러간다.)

DALL-E2

Diffusion model이 핫해진 여러 이유중 하나가 이것 때문일 것이다.
DALL-E2는 텍스트에서부터 이미지를 만드는 모델이다.

이 모델을 사용할 때 Diffusion 모델만 활용된 것은 아니지만 clip이라는 모델과 diffusion 모델을 적당히 잘 섞어서 이용한다.

Diffusion 모델의 장점

  1. 고해상도, 높은 퀄리티의 이미지를 생성해낸다.

  2. 이미지를 추가할 수 있다. 어떤 특정 영역에 대해서만 이미지를 바꿀 수 있다는 것이다.
    단순히 이미지를 추가할 수 있는것 뿐 만 아니라 주변 씬에 의존하고 유사하게 들어갈 수 있는 이미지 추가가 가능하다.

0개의 댓글