← Tous les exercices
La KL par dimension, puis sur le code entier
Partie 2 · ★★
La KL mesure l'écart entre la zone d'une image (centre μ, largeur σ) et la zone de référence (centre 0, largeur 1). Pour une composante : KL = ½ (μ² + σ² − 1 − ln σ²). Elle vaut 0 quand μ = 0 et σ = 1 ; elle grossit si le centre s'éloigne de 0 ou si la zone devient très étroite.
Pour un code de 2 composantes, on additionne les KL des composantes. Complète les trous et retrouve les valeurs de la table du cours : (0 ; 1) → 0, (0,8 ; 0,5) → 0,64, (0,8 ; 0,1) → 2,13.
def kl_dim(mu, sigma): return 0.5 * (mu ** 2 + sigma ___ 2 - 1 - math.___(sigma ** 2)) def kl(mus, sigmas): return ___(kl_dim(m, s) for m, s in zip(mus, sigmas)) ref = kl_dim(0, 1) moyenne = kl_dim(0.8, 0.5) etroite = kl_dim(0.8, 0.1) code = kl([0.8, 0.8], [0.5, 0.1])
Ctrl/⌘+Entrée