PDI+VC · Simulador Interactivo

Simulador interactivo del cálculo del gradiente de un peso del kernel convolu...

🧮 Simulador: Gradiente de un Peso del Kernel ∂Pérdida / ∂K[kr][kc] = Σ dZ · X
PATRÓN DE ENTRADA (IMAGEN 6×6)? Elige qué imagen 6×6 alimenta la convolución.
TASA DE APRENDIZAJE (η)? Tasa de aprendizaje. Ajusta para ver la diferencia entre convergencia suave (0.002) y colapso por overshooting (0.02).
Ejemplo reducido: imagen 6×6 y filtro 3×3 generando mapas 4×4. Haz clic en las pestañas "🔍 ¿Cómo se calcula?" debajo de cada matriz para entender los cálculos paso a paso. Pasa el mouse sobre cualquier celda de X, Z, A, dZ o K para ver el cálculo exacto de ese valor, con los elementos usados en las capas relacionadas resaltados con contorno discontinuo/azul.
1. PESO DEL KERNEL? Selecciona qué peso del kernel deseas analizar individualmente.
KERNEL ACTUAL (K)? Valores del filtro 3×3. El peso seleccionado está resaltado en azul. Pasa el mouse sobre un peso para ver dónde se usa.
🔍 ¿Cómo se actualiza?
Regla del Gradiente:
K ← K − η · ∇K
• η = tasa de aprendizaje.
• ∇K = suma de los 16 votos dZ × X.
ENTRADA X (6×6)? Imagen 6×6. Píxel azul = superposición con el peso K seleccionado en la ventana actual. Pasa el mouse sobre un píxel para ver en qué posiciones de Z se usa.
🔍 ¿Cómo funciona X?
Matriz de entrada. En la posición (r,c), el peso K multiplica el píxel:
X[r + kr][c + kc]
PRE-ACTIVACIÓN Z (4×4)? Resultado de la convolución antes del ReLU: Z = Σ K · X. Pasa el mouse sobre una celda para ver los 9 términos de la suma, resaltando la ventana en X y todo el kernel K.
🔍 ¿Cómo calcula Z?
Correlación cruzada:
Multiplicación punto a punto del filtro 3×3 sobre X:
Z[r][c] = Σ K · X
ACTIVACIÓN A (4×4)? Resultado post-ReLU: A = max(0, Z). Si Z ≤ 0, la activación se anula. Pasa el mouse sobre una celda para resaltar el Z correspondiente.
🔍 ¿Cómo calcula A?
Función ReLU:
A[r][c] = max(0, Z[r][c])
Suma Global (S):
S = Σ A[r][c]
ERROR dZ (4×4)? Error propagado: dZ = (S - objetivo) · I(Z > 0). Donde A=0, el error dZ también es 0. Pasa el mouse sobre una celda para ver el cálculo completo, resaltando el Z correspondiente y todas las 16 celdas de A que forman S.
🔍 ¿Cómo calcula dZ, S y Loss?
1. Pérdida (Loss L):
L = ½ (S − objetivo)²
2. Error propagado dZ:
dZ = (S − objetivo) · deriv_ReLU(Z)
2. CÁLCULO Y SUMA DE LOS "VOTOS" DE CADA POSICIÓN? Cada posición (r,c) genera un voto = dZ[r][c] × X[r+kr][c+kc]. La suma de todos los 16 votos forma el gradiente del peso.
CÁLCULO DE ESTA POSICIÓN? Muestra el error local (dZ) y el píxel de entrada (X) multiplicados en la posición actual de la ventana deslizante.
SUMA ACUMULADA (GRADIENTE)? El valor acumulado de los productos dZ × X de todas las posiciones ya recorridas. Cuando llega a 16/16, este es el gradiente final del peso.
HISTORIAL DE LAS 16 POSICIONES (COLUMNAS c=0, c=1, c=2, c=3)? Sigue la lista de todas las 16 posiciones organizadas en 4 columnas para corresponder al movimiento de la ventana sobre la imagen de salida.
3. USA EL GRADIENTE PARA ACTUALIZAR EL KERNEL? Aplica la regla del Descenso de Gradiente (K ← K − η · gradiente) para todos los 9 pesos.
PÉRDIDA A LO LARGO DE LAS ACTUALIZACIONES? Evolución del error L = ½(S − objetivo)²:
• Objetivo: L → 0 (S → objetivo).
• Si se bloquea en L = 40.5: Ocurrió "overshooting" (salto exagerado). Los pesos quedaron muy negativos, generando Z ≤ 0 (muerte de la ReLU). Con S = 0, la pérdida se bloquea en ½(0 − 9)² = 40.5.
Descripción: Figura 9.12: Simulador interactivo del cálculo del gradiente de un peso del kernel convolucional.