sfærisk interpolation
En interpolationsmetode mellem to punkter på en kugleoverflade, hvor bevægelsen sker langs en storcirkel.
Kort fortalt
En måde at glide jævnt mellem to punkter på en kugle, som at gå den korteste vej over kuglens overflade.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
2- 1
Interpolation mellem to vektorer på en kugleoverflade, således at resultatet hele tiden ligger på samme kugle og følger den korteste vej.
- Ved sfærisk interpolation mellem to enhedsvektorer bevares længden af vektorerne.
- Sfærisk interpolation adskiller sig fra lineær interpolation ved at tage højde for krumningen af rummet.
- 2
Anvendelse i maskinlæring til at interpolere mellem punkter i et latent rum, som ofte er normaliseret til at ligge på en hyperkugle.
- I StyleGAN bruges sfærisk interpolation til at generere jævne overgange mellem ansigtsbilleder. — Karras et al., 2019
- Ved sfærisk interpolation af ordembeddinger kan man finde ord der semantisk ligger mellem to andre ord.
Hvornår bruges det
Bruges især i maskinlæring til at interpolere mellem latentrepræsentationer, f.eks. i generative modeller som StyleGAN, for at skabe kontinuerlige overgange mellem billeder. I NLP kan den anvendes til at finde mellemliggende ordembeddinger.
Formel
slerp(p, q, t) = sin((1-t)θ)/sin(θ) * p + sin(tθ)/sin(θ) * q, where θ = arccos(p·q)Kodeeksempel
def slerp(v0, v1, t):
# Normalize inputs
v0 = v0 / np.linalg.norm(v0)
v1 = v1 / np.linalg.norm(v1)
dot = np.dot(v0, v1)
dot = np.clip(dot, -1.0, 1.0)
theta = np.arccos(dot)
sin_theta = np.sin(theta)
if sin_theta == 0:
return (1-t)*v0 + t*v1
return (np.sin((1-t)*theta)/sin_theta)*v0 + (np.sin(t*theta)/sin_theta)*v1Python-implementering af sfærisk lineær interpolation (slerp) mellem to vektorer.
Oprindelse
Fra latin 'sphaera' (kugle) og 'interpolatio' (indsættelse af noget nyt).
Afledte ord
2Kilder
2- Animating Rotation with Quaternion Curves (Shoemake, 1985)
- A Style-Based Generator Architecture for Generative Adversarial Networks (Karras et al., 2019)
Se også
- Embedding
- latent-rum(mangler)
- lineær interpolation
- slerp(mangler)