TNI+VO · Simulateur Interactif

Simulateur interactif du calcul du gradient d’un poids du kernel convolutif.

🧮 Simulateur : Gradient d'un Poids du Noyau ∂Perte / ∂K[kr][kc] = Σ dZ · X
MOTIF D'ENTRÉE (IMAGE 6×6)? Choisit quelle image 6×6 alimente la convolution.
TAUX D'APPRENTISSAGE (η)? Taux d'apprentissage. Ajustez pour voir la différence entre convergence douce (0.002) et effondrement par dépassement (0.02).
Exemple réduit: image 6×6 et filtre 3×3 générant des cartes 4×4. Cliquez sur les onglets "🔍 Comment est-ce calculé ?" sous chaque matrice pour comprendre les calculs pas à pas. Survolez n'importe quelle cellule de X, Z, A, dZ ou K pour voir le calcul exact de cette valeur, avec les éléments utilisés dans les couches associées mis en évidence avec un contour en pointillés/bleu.
1. POIDS DU NOYAU? Sélectionnez quel poids du noyau vous souhaitez analyser individuellement.
NOYAU ACTUEL (K)? Valeurs du filtre 3×3. Le poids sélectionné est mis en évidence en bleu. Survolez un poids pour voir où il est utilisé.
🔍 Comment est-il mis à jour ?
Règle du Gradient :
K ← K − η · ∇K
• η = taux d'apprentissage.
• ∇K = somme des 16 votes dZ × X.
ENTRÉE X (6×6)? Image 6×6. Pixel bleu = chevauchement avec le poids K sélectionné dans la fenêtre actuelle. Survolez un pixel pour voir dans quelles positions de Z il est utilisé.
🔍 Comment fonctionne X ?
Matrice d'entrée. En position (r,c), le poids K multiplie le pixel :
X[r + kr][c + kc]
PRÉ-ACTIVATION Z (4×4)? Résultat de la convolution avant ReLU : Z = Σ K · X. Survolez une cellule pour voir les 9 termes de la somme, en mettant en évidence la fenêtre dans X et tout le noyau K.
🔍 Comment calcule Z ?
Corrélation croisée :
Multiplication point par point du filtre 3×3 sur X :
Z[r][c] = Σ K · X
ACTIVATION A (4×4)? Résultat post-ReLU : A = max(0, Z). Si Z ≤ 0, l'activation est mise à zéro. Survolez une cellule pour mettre en évidence le Z correspondant.
🔍 Comment calcule A ?
Fonction ReLU :
A[r][c] = max(0, Z[r][c])
Somme Globale (S) :
S = Σ A[r][c]
ERREUR dZ (4×4)? Erreur propagée : dZ = (S - cible) · I(Z > 0). Où A=0, l'erreur dZ est aussi 0. Survolez une cellule pour voir le calcul complet, en mettant en évidence le Z correspondant et les 16 cellules de A qui forment S.
🔍 Comment calcule dZ, S et la Perte ?
1. Perte (Loss L) :
L = ½ (S − cible)²
2. Erreur propagée dZ :
dZ = (S − cible) · deriv_ReLU(Z)
2. CALCUL ET SOMME DES "VOTES" DE CHAQUE POSITION? Chaque position (r,c) génère un vote = dZ[r][c] × X[r+kr][c+kc]. La somme des 16 votes forme le gradient du poids.
CALCUL DE CETTE POSITION? Affiche l'erreur locale (dZ) et le pixel d'entrée (X) multipliés à la position actuelle de la fenêtre glissante.
SOMME ACCUMULÉE (GRADIENT)? La valeur accumulée des produits dZ × X de toutes les positions déjà parcourues. Quand elle atteint 16/16, c'est le gradient final du poids.
HISTORIQUE DES 16 POSITIONS (COLONNES c=0, c=1, c=2, c=3)? Suivez la liste des 16 positions organisées en 4 colonnes pour correspondre au mouvement de la fenêtre sur l'image de sortie.
3. UTILISEZ LE GRADIENT POUR METTRE À JOUR LE NOYAU? Applique la règle de la Descente de Gradient (K ← K − η · gradient) pour les 9 poids.
PERTE AU FIL DES MISES À JOUR? Évolution de l'erreur L = ½(S − cible)² :
• Objectif : L → 0 (S → cible).
• Si bloqué à L = 40.5 : Un "dépassement" (saut exagéré) s'est produit. Les poids sont devenus très négatifs, générant Z ≤ 0 (mort de ReLU). Avec S = 0, la perte reste bloquée à ½(0 − 9)² = 40.5.
Description : Figure 9.12: Simulateur interactif du calcul du gradient d’un poids du kernel convolutif.