diffusion sampling

En metode til at generere nye data ved at reversere en støjtilførselsproces i en diffusionsmodel.

Kort fortalt

Diffusion sampling er processen, hvor en trænet diffusionsmodel gradvist fjerner støj fra et rent støjbillede for at skabe et nyt, realistisk billede.

Kategori
teknik
Niveau
øvet
Udtale
/dɪˈfjuːʒən ˈsæmplɪŋ/

Betydninger

1
  1. 1

    Den iterative proces i en diffusionsmodel, hvor en tilfældig støjvektor successivt denoises for at producere et realistisk datapunkt, typisk et billede.

    • DDIM-sampling muliggør hurtigere generering ved at springe trin over i denoise-processen.
    • Under diffusion sampling anvendes en scheduler til at styre støjniveauet ved hvert tidstrin.

Hvornår bruges det

Diffusion sampling bruges i generative modeller som Stable Diffusion og DALL·E til at producere billeder ud fra tekstbeskrivelser. Det involverer typisk en iterativ samplingsalgoritme som DDIM eller PLMS.

Kodeeksempel

import torch
from diffusion_model import DiffusionModel, NoiseScheduler

model = DiffusionModel()
scheduler = NoiseScheduler(num_timesteps=1000)

# Start from pure noise
x = torch.randn(1, 3, 64, 64)

for t in reversed(range(scheduler.num_timesteps)):
    # Predict noise
    noise_pred = model(x, t)
    # Update sample
    x = scheduler.step(noise_pred, t, x)

# x is now a generated image

Simpel diffusionssamplingsløkke: starter med tilfældig støj og iterativt denoising ved hjælp af en scheduler.

Oprindelse

Udtrykket stammer fra diffusionsmodeller, som er inspireret af termodynamisk diffusion, hvor partikler spredes over tid. Sampling refererer til den stokastiske proces at udtrække prøver.

Afledte ord

1

Kilder

2
  • Denoising Diffusion Probabilistic Models (Ho et al., 2020)
  • Denoising Diffusion Implicit Models (Song et al., 2020)