EDI+VA · Simulatore Interattivo

Simulatore interattivo del calcolo del gradiente di un peso del kernel convol...

🧮 Simulatore: Gradiente di un Peso del Kernel ∂Perdita / ∂K[kr][kc] = Σ dZ · X
MODELLO DI INPUT (IMMAGINE 6×6)? Sceglie quale immagine 6×6 alimenta la convoluzione.
TASSO DI APPRENDIMENTO (η)? Tasso di apprendimento. Regola per vedere la differenza tra convergenza fluida (0.002) e collasso per overshooting (0.02).
Esempio ridotto: immagine 6×6 e filtro 3×3 che generano mappe 4×4. Fai clic sulle schede "🔍 Come viene calcolato?" sotto ogni matrice per capire i calcoli passo dopo passo. Passa il mouse su qualsiasi cella di X, Z, A, dZ o K per vedere il calcolo esatto di quel valore, con gli elementi usati nei livelli correlati evidenziati con contorno tratteggiato/blu.
1. PESO DEL KERNEL? Seleziona quale peso del kernel vuoi analizzare singolarmente.
KERNEL ATTUALE (K)? Valori del filtro 3×3. Il peso selezionato è evidenziato in blu. Passa il mouse su un peso per vedere dove viene usato.
🔍 Come viene aggiornato?
Regola del gradiente:
K ← K − η · ∇K
• η = tasso di apprendimento.
• ∇K = somma dei 16 voti dZ × X.
INPUT X (6×6)? Immagine 6×6. Pixel blu = sovrapposizione con il peso K selezionato nella finestra corrente. Passa il mouse su un pixel per vedere in quali posizioni di Z viene usato.
🔍 Come funziona X?
Matrice di input. Nella posizione (r,c), il peso K moltiplica il pixel:
X[r + kr][c + kc]
PRE-ATTIVAZIONE Z (4×4)? Risultato della convoluzione prima del ReLU: Z = Σ K · X. Passa il mouse su una cella per vedere i 9 termini della somma, evidenziando la finestra in X e tutto il kernel K.
🔍 Come calcola Z?
Correlazione incrociata:
Moltiplicazione punto per punto del filtro 3×3 su X:
Z[r][c] = Σ K · X
ATTIVAZIONE A (4×4)? Risultato post-ReLU: A = max(0, Z). Se Z ≤ 0, l'attivazione viene azzerata. Passa il mouse su una cella per evidenziare il Z corrispondente.
🔍 Come calcola A?
Funzione ReLU:
A[r][c] = max(0, Z[r][c])
Somma globale (S):
S = Σ A[r][c]
ERRORE dZ (4×4)? Errore propagato: dZ = (S - obiettivo) · I(Z > 0). Dove A=0, anche l'errore dZ è 0. Passa il mouse su una cella per vedere il calcolo completo, evidenziando il Z corrispondente e tutte le 16 celle di A che formano S.
🔍 Come calcola dZ, S e Loss?
1. Perdita (Loss L):
L = ½ (S − obiettivo)²
2. Errore propagato dZ:
dZ = (S − obiettivo) · deriv_ReLU(Z)
2. CALCOLO E SOMMA DEI "VOTI" DI OGNI POSIZIONE? Ogni posizione (r,c) genera un voto = dZ[r][c] × X[r+kr][c+kc]. La somma di tutti i 16 voti forma il gradiente del peso.
CALCOLO DI QUESTA POSIZIONE? Mostra l'errore locale (dZ) e il pixel di input (X) moltiplicati nella posizione corrente della finestra scorrevole.
SOMMA ACCUMULATA (GRADIENTE)? Il valore accumulato dei prodotti dZ × X di tutte le posizioni già percorse. Quando raggiunge 16/16, questo è il gradiente finale del peso.
STORICO DELLE 16 POSIZIONI (COLONNE c=0, c=1, c=2, c=3)? Segui l'elenco di tutte le 16 posizioni organizzate in 4 colonne per corrispondere al movimento della finestra sull'immagine di output.
3. USA IL GRADIENTE PER AGGIORNARE IL KERNEL? Applica la regola della Discesa del Gradiente (K ← K − η · gradiente) per tutti i 9 pesi.
PERDITA NEL CORSO DEGLI AGGIORNAMENTI? Evoluzione dell'errore L = ½(S − obiettivo)²:
• Obiettivo: L → 0 (S → obiettivo).
• Se si blocca su L = 40.5: Si è verificato "overshooting" (salto eccessivo). I pesi sono diventati molto negativi, generando Z ≤ 0 (morte della ReLU). Con S = 0, la perdita si blocca su ½(0 − 9)² = 40.5.
Descrizione: Figura 9.12: Simulatore interattivo del calcolo del gradiente di un peso del kernel convoluzionale.