score matching
Score matching er en metode til at estimere en sandsynlighedstæthed ved at minimere forskellen mellem modelens og dataens score (gradient af log-tætheden).
Kort fortalt
Score matching er en teknik til at lære en statistisk model ved at matche, hvordan modellens sandsynlighed ændrer sig med input, uden at kunne beregne sandsynligheden direkte.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
Score matching er en estimeringsmetode for statistiske modeller, der ikke kræver en normaliseringskonstant. Den minimerer Fisher-divergensen mellem den sande og den estimerede score.
- Score matching bruges til at træne en energibaseret model ved at lære at matche gradienten af log-sandsynligheden.
- I diffusionsmodeller trænes neurale netværk til at estimere score-funktionen via denoising score matching.
Hvornår bruges det
Score matching bruges primært i generative modeller, især score-baserede diffusionsmodeller, hvor man træner et neuralt netværk til at estimere score-funktionen. Metoden undgår at skulle normalisere tætheden, hvilket gør den anvendelig for komplekse højdimensionelle fordelinger.
Formel
J(θ) = E_{p(x)}[ ½ ||∇_x log p_θ(x)||^2 + ∆_x log p_θ(x) ]Kodeeksempel
def denoising_score_matching_loss(model, x, sigma):
noise = torch.randn_like(x) * sigma
x_noisy = x + noise
score = model(x_noisy)
target = - (x_noisy - x) / (sigma**2)
loss = 0.5 * ((score - target)**2).mean()
return lossDenoising score matching loss for træning af en score-model med støj.
Oprindelse
Begrebet 'score matching' blev introduceret af Aapo Hyvärinen i 2005 i artiklen 'Estimation of Non-Normalized Statistical Models by Score Matching'.
Afledte ord
2Kilder
1- Estimation of Non-Normalized Statistical Models by Score Matching