← Math for ML

Material de apoyo

Cómo estudiar

Este archivo es el más importante del repo. El contenido de matemáticas está por todos lados en internet; lo que casi nadie te da es un sistema para pasar de "entiendo el video" a "lo domino de verdad". Ese sistema está aquí.


El ciclo de 3 pasos + gate (por cada módulo)

Cada módulo NN-*.md se trabaja siempre igual:

1. Intuition pass — primero la imagen mental

Mira el video mapeado (normalmente 3Blue1Brown) antes de leer nada formal. Objetivo: ver la idea, no memorizar fórmulas. Si terminas con una imagen geométrica en la cabeza, vas bien.

2. Theory pass — reescribe a mano

Lee la sección del libro mapeado y reescribe en tu cuaderno las definiciones y derivaciones clave con tus palabras. No copies: reconstruye. Aquí es donde vive "el cuaderno". Escribir a mano fuerza a tu cerebro a procesar, no solo reconocer.

3. Practice pass — manos + código

Primero resuelve los Notebook exercises (a mano, en papel). Luego abre el Python lab y:

  • verifica que tus respuestas a mano coinciden con NumPy,
  • visualiza la idea (Matplotlib),
  • re-implementa el concepto en código.

Regla clave: el código va DESPUÉS de la mano. Codeas para confirmar y afianzar lo que ya entendiste, no para saltarte el entendimiento. (Esto es exactamente lo que pediste: dominar primero, codear después.)

4. Examen final — ponte a prueba de verdad

Antes del gate, cada módulo trae un ## Examen final 📝 con problemas en tres niveles:

  • 🟡 Medio — aplicación directa del núcleo del módulo.
  • 🟠 Medio-difícil — combina dos ideas o pide una demostración corta.
  • 🔴 Difícil — integrador, conecta con ML, exige derivar/probar o implementar.

Las soluciones están en un bloque desplegable (<details>): intenta cada problema antes de abrirlas. Si fallas un nivel, vuelve a la teoría antes de seguir. Es tu auto-examen sin profesor.

5. Mastery gate — la puerta

Al final de cada módulo hay un checklist tipo:

  • Puedo explicar <idea> sin notas
  • Puedo derivar/calcular <resultado> a mano
  • Implementé <cosa> en Python desde cero

No pasas al siguiente módulo hasta (a) aprobar el examen final y (b) marcar todos los checkboxes. El examen + el gate son tu evaluación.


Cuatro hábitos que multiplican todo

Active recall (recuerdo activo)

No releas: prueébate. Tapa la definición e intenta reproducirla. La dificultad de recordar es lo que construye la memoria. Releer se siente productivo pero casi no sirve.

Spaced repetition con Anki

Cada vez que aprendas una definición o fórmula que quieras retener para siempre, hazte una tarjeta de Anki. Anki te la vuelve a mostrar justo antes de que la olvidarías. Es la diferencia entre "lo entendí ese día" y "lo sé para siempre". (Setup en setup/python-environment.md.)

Qué convertir en tarjeta: definiciones ("¿qué es un eigenvector?"), fórmulas clave ("norma L2 de un vector"), y "por qué" ("¿por qué el gradient apunta en la dirección de máximo ascenso?"). No hagas tarjetas de problemas largos.

Feynman technique

Explica el concepto en voz alta como si le enseñaras a alguien que no sabe nada. Donde te trabes o uses palabras vagas, ahí está tu hueco. Vuelve a la teoría, tápalo, y repite. Si puedes enseñarlo, lo dominas.

Interleaving (mezclar)

Cada pocos módulos, vuelve a un problema de un módulo anterior. Mezclar temas viejos con nuevos retiene mucho más que estudiar cada tema en un bloque aislado.


Tu flujo de trabajo físico

Necesitas dos "cuadernos":

  1. Cuaderno de papel (o tablet con lápiz) — para el theory pass y los notebook exercises. La matemática se aprende moviendo la mano. Ten uno dedicado a esto.
  2. Jupyter notebooks (o VS Code) — para los Python labs. Sugerencia: un .ipynb por módulo, guardado junto al .md, p. ej. linear-algebra/labs/01-vectors.ipynb.

Cuánto tiempo por módulo

No hay reloj, pero como referencia realista: un módulo bien hecho (los 3 pasos + gate) suele llevar entre 3 y 8 horas repartidas en varias sesiones. Sesiones de 45–90 min con descansos rinden más que maratones. La calidad del gate importa más que la velocidad.


Señales de que de verdad lo dominas (no de que "te suena")

  • Puedes enseñarlo sin mirar notas.
  • Puedes derivar el resultado, no solo citarlo.
  • Puedes implementarlo en NumPy sin copiar.
  • Reconoces el concepto cuando aparece disfrazado en un contexto de ML.

Si las cuatro se cumplen: marca el gate y sigue. Si no: vuelve al paso donde flaqueas. No pasa nada por repetir — pasa algo malo por avanzar sin base.