확산 모델
디퓨전 모델이 현실적인 이미지, 비디오, 데이터를 탁월한 디테일과 안정성으로 생성하여 생성적 AI를 어떻게 혁신하는지 알아보세요.
확산 모델은 현대 생성적 AI의 초석이 된 생성적 모델의 한 종류입니다. 이 모델은 훈련된 데이터와 유사한 이미지 또는 사운드와 같은 새로운 데이터를 생성하도록 설계되었습니다. 핵심 아이디어는 열역학에서 영감을 얻었습니다. 이 모델은 이미지가 순수한 정적이 될 때까지 점진적으로 노이즈를 추가하는 프로세스를 되돌리는 방법을 학습합니다. 이 '디노이징' 프로세스를 학습함으로써 모델은 임의의 노이즈로 시작하여 점진적으로 일관성 있는 고품질 샘플로 개선할 수 있습니다. 이 단계별 개선 프로세스는 매우 상세하고 사실적인 출력을 생성하는 능력의 핵심입니다.
Diffusion Model은 어떻게 작동하나요?
확산 모델의 배후에는 두 가지 주요 단계가 있습니다.
- 순방향 프로세스(확산): 이 단계에서는 깨끗한 이미지가 여러 단계에 걸쳐 작은 양의 가우시안 노이즈를 추가하여 체계적으로 저하됩니다. 이는 이미지가 순수한 노이즈와 구별할 수 없을 때까지 계속됩니다. 이 순방향 프로세스는 고정되어 있으며 학습을 포함하지 않습니다. 모델이 되돌리는 방법을 학습할 수 있도록 대상을 제공합니다.
- 역방향 프로세스(디노이징): 여기가 학습이 일어나는 곳입니다. 신경망은 순방향 프로세스에서 노이즈가 있는 이미지를 가져와 이전 단계에서 추가된 노이즈를 예측하도록 학습됩니다. 이 예측된 노이즈를 반복적으로 빼면 모델은 완전히 임의적인 이미지(순수한 노이즈)에서 시작하여 점차적으로 깨끗하고 선명한 이미지로 다시 변환할 수 있습니다. 이 학습된 디노이징 프로세스를 통해 모델은 처음부터 새로운 데이터를 생성할 수 있습니다. "Denoising Diffusion Probabilistic Models"라는 기본 논문은 이 접근 방식에 대한 많은 토대를 마련했습니다.
확산 모델 대 다른 생성 모델
확산 모델은 GAN(Generative Adversarial Networks)과 같은 다른 인기 있는 생성적 접근 방식과 크게 다릅니다.
- 학습 안정성: Diffusion 모델은 일반적으로 GAN에 비해 더 안정적인 학습 프로세스를 가지고 있습니다. GAN은 생성기와 판별기 간의 복잡한 적대적 게임을 포함하며, 이는 균형을 맞추기 어려울 수 있으며 수렴하지 못할 수 있습니다.
- 샘플 품질 및 다양성: 둘 다 고품질 결과를 생성할 수 있지만, 디퓨전 모델은 종종 매우 다양하고 실사적인 이미지를 생성하는 데 탁월하며, 특정 벤치마크에서는 GAN보다 성능이 뛰어납니다. 그러나 이러한 품질은 더 높은 추론 지연 시간을 초래할 수 있습니다.
- 추론 속도: 일반적으로 확산 모델은 여러 번의 반복적인 디노이징 단계를 거쳐야 하므로 샘플 생성 속도가 느립니다. 대조적으로 GAN은 단일 순방향 패스에서 샘플을 생성할 수 있습니다. 그러나 활발한 연구와 지식 증류와 같은 기술은 이러한 속도 격차를 빠르게 좁히고 있습니다.
실제 애플리케이션
확산 모델은 다양한 분야에서 새로운 창의성과 혁신을 주도하고 있습니다.
- 고화질 이미지 생성: 이것은 가장 잘 알려진 애플리케이션입니다. Stability AI 및 OpenAI와 같은 회사에서 개발한 모델은 간단한 텍스트 프롬프트에서 놀랍도록 사실적이고 예술적인 이미지를 만들 수 있습니다. 주요 예로는 Stable Diffusion, DALL-E 3, Midjourney 및 Google의 Imagen이 있습니다. 이러한 도구는 디지털 아트 및 콘텐츠 제작을 혁신했습니다.
- Image Editing and Inpainting(이미지 편집 및 Inpainting): 이미지를 처음부터 만드는 데만 사용되는 것이 아닙니다. Diffusion 모델은 객체 추가 또는 제거, 예술 스타일 변경 또는 사진의 누락된 부분 채우기(Inpainting)와 같은 지침에 따라 기존 이미지를 지능적으로 수정할 수 있습니다. Adobe Firefly와 같은 도구는 이러한 기능을 활용합니다.
- 오디오 및 비디오 합성: 확산 원리는 다른 데이터 유형에도 적용됩니다. AudioLDM과 같은 모델은 현실적인 음성, 음악 및 음향 효과를 생성할 수 있으며, OpenAI의 Sora와 같은 모델은 텍스트-비디오 생성의 경계를 넓히고 있습니다.
- 데이터 증강: 컴퓨터 비전에서 확산 모델은 합성 훈련 데이터를 생성하는 데 사용될 수 있습니다. 이는 특히 실제 데이터가 부족할 때 Ultralytics YOLO와 같은 모델의 견고성을 객체 감지 또는 이미지 분할과 같은 작업에 대해 향상시키는 데 유용합니다.
도구 및 개발
일반적으로 확산 모델을 개발하고 사용하는 데는 PyTorch 및 TensorFlow와 같은 머신 러닝 프레임워크가 사용됩니다. 개발을 더 쉽게 하기 위해 Hugging Face Diffusers 라이브러리와 같은 라이브러리는 사전 학습된 모델과 도구를 제공합니다. 이러한 도구는 생성 모델 자체에 중점을 두는 반면 Ultralytics HUB와 같은 플랫폼은 포괄적인 AI 솔루션 개발을 보완하여 데이터 세트 관리 및 배포를 포함한 광범위한 워크플로우를 관리하는 데 도움이 될 수 있습니다. 이러한 모델이 더욱 널리 보급됨에 따라 AI 윤리를 고려하고 알고리즘 편향과 같은 문제를 해결하는 것이 중요합니다.