[AI] Diffusion Model

안경준·2025년 8월 20일

🎯 Goal

  • Diffusion 모델의 원리에 대해 말할 수 있다.
  • Diffusion 모델을 활용하는 방법에 대해 말할 수 있다.

⛳ Process

Diffusion Model

Diffusion Model은 이미지 생성 모델 중 하나이다. Diffusion은 '확산'이라는 의미를 나타내는데 뜬금없이 확산?
이는 분자들의 확산 현상을 통해 설명하고 있다.

원리

위 그림처럼 모여있던 분자들이 확산을 통해 전 공간에 고르게 분포되어있다. 확산 과정에서 분자의 움직임은 가우시안 분포(정규 분포)를 따르기 때문에 이를 통해 평균과 표준편차를 따르는 정규 분포로 움직임을 표현할 수 있게 된다. 이를 통해 매시간마다 각 분자의 움직임을 계산할 수 있다면 확산 과정을 거슬러 올라 본래 모여있던 분자들을 예측할 수 있을 것이고, 이것이 Diffusion Model의 원리이다.

Forward Process

이를 이미지에 적용시킨다면 분자는 픽셀로, 분자의 움직임은 노이즈로 적용할 수 있다. 이를 통해 원본 이미지의 모든 픽셀값에 노이즈를 추가하고, 그 이미지에 노이즈를 다시 추가하고, 이 과정을 반복하면 최종적으로는 오른쪽 그림처럼 완전한 노이즈 이미지가 될 것이다.

Reverse Process

반대로 시간마다 이미지 픽셀값에 추가된 노이즈 값을 계산할 수 있다면 분자와 마찬가지로 원본 이미지로 되돌리는 것이 가능할 것이다. 이는 랜덤하게 생성한 노이즈 이미지를 통해 이미지를 생성할 수 있다는 말과 같다고 볼 수 있다.

구조

결국 Diffusion Model은 일정 시점의 이미지를 입력으로 받은 뒤 픽셀별로 추가된 노이즈를 예측해 값을 빼서 한 시점 전의 이미지로 바꾸면서 결과적으로 완전한 이미지를 생성하게 된다.

활용

위와 같은 구조로 Diffusion Model은 이미지 생성에 많이 사용되고 있다. 이외에도 저해상도 이미지를 고해상도 이미지로 변환하는 작업, 이미지의 빈 부분을 생성해서 채워주는 inpainting 작업 등에 사용되고 있다.

Reference

확산 모델
Diffusion Model 설명 – 기초부터 응용까지
An Introduction to Diffusion Models and Stable Diffusion

profile
실력있는 개발자가 되기 위해 매일매일 성장하고 있습니다!

0개의 댓글