score-based generative model

En generativ model der lærer gradienten af log-sandsynlighedstætheden (score-funktionen) og genererer samples via Langevin-dynamik.

Kort fortalt

En type generativ model, der lærer at estimere retningen af den stejleste stigning i sandsynlighedstæthed og bruger denne til at generere nye samples trin for trin.

Kategori
model
Niveau
ekspert

Betydninger

1
  1. 1

    En generativ model der estimerer score-funktionen (gradienten af log-tætheden) af datafordelingen og anvender en Markov-kæde Monte Carlo-metode, typisk Langevin-dynamik, til at generere samples.

    • Score-baserede generative modeller har opnået state-of-the-art resultater inden for billedgenerering.Song & Ermon, 2019
    • Ved at tilføje støj på flere skalaler kan score-baserede modeller håndtere komplekse fordelinger.Song et al., 2020

Hvornår bruges det

Anvendes især til højkvalitets billedgenerering, ofte som alternativ til GANs og VAEs. Diffusionsmodeller er en undertype af score-baserede modeller, hvor støj fjernes gradvist.

Formel

Score-funktion: s_θ(x) ≈ ∇_x log p(x). Træning: L = E_{p(x)}[||s_θ(x) - ∇_x log p(x)||^2]. Sampling (Langevin-dynamik): x_{t+1} = x_t + ε s_θ(x_t) + √(2ε) z, z ~ N(0,I).

Kodeeksempel

import torch
import torch.nn as nn

class ScoreNet(nn.Module):
    def __init__(self):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(2, 128),
            nn.ReLU(),
            nn.Linear(128, 128),
            nn.ReLU(),
            nn.Linear(128, 2)
        )
    def forward(self, x):
        return self.net(x)

# Denoising score matching loss
def dsm_loss(score_net, x, sigma):
    noise = torch.randn_like(x) * sigma
    x_noisy = x + noise
    score = score_net(x_noisy)
    target = -noise / (sigma ** 2)
    loss = 0.5 * ((score - target) ** 2).sum(dim=-1).mean()
    return loss

Simplet eksempel på et score-netværk og denoising score matching-tab for 2D-data.

Oprindelse

Udtrykket 'score' kommer fra statistik, hvor det betegner gradienten af log-likelihood-funktionen.

Afledte ord

3

Kilder

2