Introduction to image generation
이미지 생성 모델군
가변 자동 인코더(Variational Autoencoders - VAEs)
- 이미지를 압축된 크기로 인코딩한 다음, 데이터 자체의 분포를 학습하는 동안 원래 크기로 다시 디코딩
생성 적대적 모델(Generative Adversarial models - GANs)
- 두 개의 신경 네트워크를 서로 연결
- 하나의 신경망인 생성기(generator)는 이미지를 만들고 다른 신경망인 판별기(discriminator)는 이미지가 진짜인지 가짜인지 예측한다.
- 시간이 지나면서 판별기(discriminator)는 점점 더 진짜와 가짜를 구별하는 데 능숙해지고, 생성기(generator)는 점점 더 진짜처럼 보이는 가짜를 만드는 데 능숙해진다.
자동회귀 모델(Autoregressive Models)
- 이미지를 픽셀들의 시퀀스로 취급함으로써 이미지를 생성한다.
- 자기회귀 모델을 이용한 현대적 접근법은 실제로 LLM이 텍스트를 처리하는 방식에서 많은 영감을 이끌어낸다.
확산 모델(Diffusion Model)
- 2015년에 이미지 생성을 위해 실제로 도입된 새로운 이미지 생성 모델군 중 하나
- 연구 분야와 오늘날 산업 분야에서 확산 모델 사용이 크게 성장하였다
- 확산 모델은 오늘날 익숙한 예술 이미지 생성 시스템의 많은 최신 상태를 뒷받침 한다
확산 모델(Diffusion Model) 사용 사례
조건 없는 확산 모델(Unconditioned diffusion models)
- 추가적인 입력이나 지시가 없이 얼굴과 같은 특정 사물의 이미지로부터 학습하여 새로운 이미지를 생성하는 것을 배운다
- 저해상도의 이미지를 초고해상도 이미지로 향상
조건 확산 모델(Conditioned generation models)
- 프롬프트를 사용한 텍스트 to 이미지
- 이미지 인페인팅(이미지의 손실되거나 손상된 부분을 재구성하는 프로세스)
- 텍스트 기반으로 이미지를 편집, 기존 이미지에 무언가를 추가하거나 제거 가능
확산 모델(Diffusion Model) 이란 무엇인가?
- 핵심 아이디어는 반복적인 정방향 확산 과정(iterative forward diffusion process)을 통해 데이터 분포의 구조를 체계적이고 천천히 파괴하는 것으로 실제로 이미지에 반복적으로 노이즈를 추가한다.
- 그런 다음 데이터의 구조를 복원하는 역확산 프로세스(reverse diffusion process)를 학습하여 데이터의 매우 유연하고 다루기 쉬운 생성 모델을 생성한다.
- 즉, 이미지에 노이즈를 반복적으로 추가하고 이미지의 노이즈를 제거하는 방법을 학습하여 새로운 이미지를 생성하는 모델을 훈련시킬 수 있다.
DDPM (Denoising diffusion probabilistic models)
- 슬라이드에서 목표는 이 모델이 노이즈를 제거하는 방법을 배우도록 하는 것
- 순수한 노이즈에서 새로운 이미지를 합성할 수 있는 모델을 가질 수 있다.
- 반복적인 정방향 확산 과정(iterative forward diffusion process)
- 가장 오른쪽의 초기 이미지인 X_0에서 X_1로 약간의 노이즈를 추가하는 것 처럼 반복적으로 점점 더 많은 노이즈를 추가한다.
- 우리가 q라고 부르는 이 확산(diffusion)은 이전 단계에만 의존한다.
- 이를 순수한 노이즈 상태에 도달할 때 까지 진행하며 초기연구논문은 약 1000번 실행했다
- 이 시점에서 초기 이미지의 모든 구조가 완전히 사라진다.
- 역확산 프로세스(reverse diffusion process)
- 노이즈를 추가하는 모든 단계에서, 우리는 또한 역확산 과정을 배운다.
- 즉, 노이즈 이미지를 입력으로 받아 그것에 추가된 노이즈를 예측하는 기계 학습 모델을 훈련한다.
- 왼쪽에 초기 이미지 X가 있고, 노이즈 이미지를 만들기 위해 t단계(timestep)에서 샘플링한다.
- 그런 다음 노이즈를 예측하기 위한 목적으로 노이즈 제거 모델(Denoising Model)을 통해 전송한다.
- 모델의 출력은 예측된 노이즈로, 우리가 이미지에 추가한 노이즈와 비교하여 차이을 분석할 수 있다.
- 그리고 이 결과를 학습시켜 이러한 차이를 최소화하도록 하여 이미지에서 노이즈를 제거하는 성능을 향상시킬 수 있다.
- 이를 통해 이미지를 생성하는 방법이 위 슬라이드이다.
- 순수한 노이즈를 노이즈 제거 모델(Denoising Model)에 전송해 예측된 노이즈를 추출하고 초기 이미지에서 이를 제거한다
- 위 과정을 계속해서 반복하면 생성된 이미지를 볼 수 있을 것
- 또 다른 방법은 실제 이미지 데이터 확산(real data distribution of images)을 학습하고 그로부터 샘플링하여 새로운 이미지를 만들어 내는 방식
정리
- 지난 몇 년 동안 이 분야에서 많은 발전이 있었다.
- 이미지 생성을 위한 Vertex AI의 흥미로운 신기술 중 많은 것들이 확산 모델(diffusion models)로 뒷받침되지만, 이미지를 더 빠르고 더 세밀하게 컨트롤해 생성하기 위해 많은 작업이 수행되었다.
- 우리는 또한 확산 모델의 힘을 LLM의 힘과 결합하거나 텍스트 프롬프트에서 상황인식 사실적 이미지(context aware photorealistic images)를 만들 수 있는 큰 언어 모델을 결합하는 멋진 결과를 보았다.
- 이것의 좋은 예는 구글 research의 Imagen이다. 이 세션에서 설명한 것보다 조금 더 복잡하지만 핵심은 LLM과 확산 기반 모델의 구성이다.