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
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 imageSimpel 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
1Kilder
2- Denoising Diffusion Probabilistic Models (Ho et al., 2020)
- Denoising Diffusion Implicit Models (Song et al., 2020)