Nivel 1 · Matemáticas para IA
Las cinco ideas matemáticas que hay detrás de cualquier modelo de IA, explicadas desde cero: primero la intuición, luego un ejemplo que puedes hacer a mano y, al final, dónde aparece en la IA real.
01Cómo usar esta lección
No hace falta ser matemático para trabajar en IA. Hace falta entender cinco ideas, porque aparecen en todos los modelos. Esta lección no busca que memorices fórmulas, sino que puedas explicar cada idea con tus palabras.
| Concepto | Pregunta que responde | En un modelo de IA |
|---|---|---|
| Vector | ¿Cómo convierto algo en números? | Cada dato: una fila de una tabla, una imagen, una palabra |
| Matriz | ¿Cómo transformo esos números? | Cada capa de una red neuronal |
| Derivada | Si cambio un poco la entrada, ¿cuánto cambia la salida? | Saber hacia dónde mover cada parámetro |
| Gradiente y descenso | ¿Cómo encuentro el punto más bajo? | El entrenamiento: reducir el error paso a paso |
| Probabilidad | ¿Cómo expreso que no estoy seguro? | Las predicciones: «gato, con un 94 %» |
Cada apartado sigue el mismo orden: la idea en una frase, un ejemplo con números pequeños, dónde aparece en IA y un trozo de código para comprobarlo. Hazlos con papel y lápiz: es la forma más rápida de que se queden.
021 · Vectores
La idea en una fraseUn vector es una lista de números que describe algo.
Una vivienda de 90 m², con 3 habitaciones y a 2 km del centro, es el vector (90, 3, 2). El orden importa: cada posición significa siempre lo mismo. Con dos números, un vector se puede dibujar como una flecha.
Tres operaciones que debes saber hacer a mano
- Sumar: posición a posición. (3, 1) + (1, 2) = (4, 3).
- Multiplicar por un número: todas las posiciones. 2 · (3, 1) = (6, 2). La flecha se alarga el doble.
- Producto escalar: multiplicar posición a posición y sumarlo todo. El resultado es un solo número.
El producto escalar mide parecido
Puntuamos del 1 al 5 cuánto les gustan a tres personas las películas de (acción, romance): Ana (5, 1), Luis (4, 2), Marta (1, 5).
Ana y Luis tienen gustos parecidos y su producto escalar es mayor. Cuando dos vectores «apuntan hacia el mismo lado», el producto escalar es grande; si apuntan a lados distintos, es pequeño (o negativo).
¿Dónde aparece en IA? Un recomendador compara tus gustos con los de otras personas justo así. En un LLM, cada palabra es un vector de miles de números (un embedding), y el mecanismo de atención del Transformer decide a qué palabras prestar atención calculando productos escalares.
import numpy as np
u = np.array([3, 1])
v = np.array([1, 2])
u + v # array([4, 3])
2 * u # array([6, 2])
u @ v # 5 → producto escalar: 3·1 + 1·2
ana, luis, marta = np.array([5, 1]), np.array([4, 2]), np.array([1, 5])
ana @ luis # 22 → gustos parecidos
ana @ marta # 10 → gustos distintos032 · Matrices
La idea en una fraseUna matriz es una tabla de números que transforma un vector en otro.
Quieres comprar 2 manzanas y 3 panes: tu cesta es el vector (2, 3). Cada tienda tiene sus precios, y los ponemos en una tabla, una fila por tienda:
| Manzana | Pan | |
|---|---|---|
| Tienda A | 0,5 € | 1,0 € |
| Tienda B | 0,4 € | 1,2 € |
¿Cuánto cuesta la cesta en cada tienda? Para cada fila, un producto escalar con la cesta:
Eso es multiplicar una matriz por un vector: cada fila hace un producto escalar con el vector, y cada resultado es un número de la salida.
La regla de las formas
Una matriz de m filas y n columnas se escribe (m × n). Solo se pueden multiplicar si los números de dentro coinciden, y el resultado se queda con los de fuera:
Error típico: más de la mitad de los errores al programar redes neuronales son formas que no encajan. Antes de multiplicar, escribe las formas y comprueba que los números de dentro coinciden.
¿Dónde aparece en IA? una capa de una red neuronal es exactamente esto: una matriz de «pesos» que multiplica al vector de entrada. Aprender consiste en ajustar los números de esa matriz.
precios = np.array([[0.5, 1.0], # tienda A: manzana, pan
[0.4, 1.2]]) # tienda B: manzana, pan
cesta = np.array([2, 3]) # 2 manzanas, 3 panes
precios @ cesta # array([4. , 4.4]) → la tienda A sale más barata043 · Derivadas
La idea en una fraseLa derivada dice cuánto cambia el resultado cuando cambias un poquito la entrada.
Piensa en el velocímetro de un coche: no te dice dónde estás, sino lo rápido que cambia tu posición en este momento. La derivada es el velocímetro de una función.
Ejemplo con en x = 3, donde f(3) = 9. Avanzamos un poquito, h, y miramos cuánto sube por cada unidad avanzada:
| Paso h | f(3 + h) | Subida por unidad: (f(3 + h) − 9) / h |
|---|---|---|
| 0,1 | 9,61 | 6,1 |
| 0,01 | 9,0601 | 6,01 |
| 0,001 | 9,006001 | 6,001 |
Cuanto más pequeño es el paso, más se acerca a 6. Esa es la derivada en x = 3, y es la pendiente de la recta que toca la curva en ese punto:
No hace falta hacer esa tabla cada vez: hay reglas. La que más usarás es ; por ejemplo, la derivada de es , y en x = 3 vale 6.
Lo que de verdad importa: el signo
- Derivada positiva: si aumentas x, f sube. Para bajar, mueve x hacia la izquierda.
- Derivada negativa: si aumentas x, f baja. Para bajar, mueve x hacia la derecha.
- Derivada cero: estás en un punto llano, quizá el fondo del valle.
¿Dónde aparece en IA? f será el error del modelo y x uno de sus parámetros. La derivada le dice al modelo en qué sentido mover ese parámetro para equivocarse menos.
f = lambda x: x**2
for h in (0.1, 0.01, 0.001):
print(h, (f(3 + h) - f(3)) / h) # 6.1 · 6.01 · 6.001 → se acerca a 6Mira cómo cambia la pendiente a lo largo de una curva en el laboratorio de la función sigmoide.
054 · Regla de la cadena
La idea en una fraseSi una cosa depende de otra que a su vez depende de una tercera, los ritmos de cambio se multiplican.
Imagina tres engranajes. Si A gira 2 veces más rápido que B, y B gira 3 veces más rápido que C, entonces A gira 2 · 3 = 6 veces más rápido que C. Eso es la regla de la cadena.
Ejemplo: . Hay dos pasos encadenados: primero , después .
- ¿Cuánto cambia u cuando cambia x?
- ¿Cuánto cambia y cuando cambia u? . En x = 1, u = 3, así que vale 6.
- Se multiplican: .
Comprobación: si x pasa de 1 a 1,001, y pasa de 9 a 9,012. Ha subido 0,012 por un avance de 0,001: unas 12 veces más. ✓
¿Dónde aparece en IA? una red neuronal es una cadena de capas. Para saber cómo afecta al error un peso de la primera capa, se multiplican los ritmos de cambio de todas las capas que hay detrás. Ese algoritmo se llama backpropagation y no es más que la regla de la cadena aplicada de la salida hacia la entrada.
Sigue los números de una red completa en el laboratorio de backpropagation paso a paso.
065 · Gradiente
La idea en una fraseEl gradiente es una flecha que apunta hacia donde la función sube más rápido.
Un modelo no tiene un parámetro, tiene miles o millones. Cuando hay varias variables, se calcula una derivada por cada una, moviendo solo esa y dejando las demás quietas (derivada parcial). Juntas forman un vector: el gradiente, que se escribe .
Ejemplo: en el punto (1, 2).
- Moviendo solo x, la y es una constante: .
- Moviendo solo y: .
Imagina que estás en una montaña con niebla y solo notas la inclinación bajo tus pies. El gradiente es la flecha que apunta cuesta arriba, por el camino más empinado. Si quieres bajar, camina en sentido contrario al gradiente.
¿Dónde aparece en IA? la «montaña» es el error del modelo y cada dirección es un parámetro. El gradiente dice, para cada peso a la vez, cuánto y en qué sentido cambiarlo.
076 · Descenso de gradiente
La idea en una fraseAprender es bajar la montaña del error dando pasos pequeños en contra del gradiente.
La receta completa cabe en una línea: nuevo valor = valor actual − η × pendiente.
η (la letra griega «eta») es la tasa de aprendizaje: el tamaño del paso. Vamos a hacerlo a mano con la pérdida , cuyo mínimo está en w = 3. Su derivada es . Empezamos en w = 0 con η = 0,1:
| Paso | w | Pérdida L(w) | Pendiente | Siguiente w = w − 0,1 · pendiente |
|---|---|---|---|---|
| 0 | 0 | 9 | −6 | 0 + 0,6 = 0,6 |
| 1 | 0,6 | 5,76 | −4,8 | 0,6 + 0,48 = 1,08 |
| 2 | 1,08 | 3,69 | −3,84 | 1,08 + 0,384 = 1,464 |
| 3 | 1,464 | 2,36 | −3,07 | 1,464 + 0,307 = 1,771 |
| 4 | 1,771 | 1,51 | −2,46 | 1,771 + 0,246 = 2,017 |
Fíjate: la pendiente es negativa, así que restarla suma y w avanza hacia la derecha, hacia el 3. Y la pérdida baja en cada paso: 9 → 5,76 → 3,69 → 2,36 → 1,51.
El tamaño del paso importa
| Tasa η | w tras 20 pasos (objetivo: 3) | Qué pasa |
|---|---|---|
| 0,01 | 0,997 | Pasos demasiado pequeños: avanza lentísimo |
| 0,1 | 2,965 | Bien: casi ha llegado |
| 1,1 | −112 | Pasos demasiado grandes: se pasa de largo cada vez más y se escapa |
Error típico: si al entrenar un modelo el error sube o sale nan, lo primero que hay que probar es una tasa de aprendizaje más pequeña.
L = lambda w: (w - 3)**2 # pérdida: mínima en w = 3
dL = lambda w: 2 * (w - 3) # su derivada (la pendiente)
w, eta = 0.0, 0.1
for paso in range(6):
print(paso, round(w, 4), round(L(w), 4))
w = w - eta * dL(w) # ¡esta línea es todo el aprendizaje!Experimenta con la tasa de aprendizaje y distintos terrenos en el laboratorio de descenso de gradiente.
087 · Probabilidad
La idea en una fraseUna probabilidad es un número entre 0 y 1 que dice lo seguros que estamos de algo.
0 es «imposible», 1 es «seguro» y 0,5 es «tan probable como que no». Los modelos no dicen «es un gato»: dicen «gato, 0,94».
La media
Si tiras un dado muchas veces, ¿qué valor sale de media? . Aunque ninguna tirada da 3,5, la media de 10.000 tiradas simuladas sale 3,504. Cuanto más datos, más se acerca la media observada a la teórica: por eso los modelos necesitan muchos ejemplos.
Pensar con frecuencias: el caso de los falsos positivos
Una enfermedad afecta a 1 de cada 100 personas. Un test la detecta en el 99 % de los enfermos, pero también da positivo en el 5 % de los sanos. Si das positivo, ¿qué probabilidad hay de que estés enfermo? En vez de fórmulas, imagina 1.000 personas:
| Personas | Dan positivo | |
|---|---|---|
| Enfermas (1 %) | 10 | ≈ 10 (el 99 %) |
| Sanas (99 %) | 990 | ≈ 50 (el 5 %) |
| Total | 1.000 | ≈ 60 |
De unos 60 positivos, solo 10 están enfermos: alrededor del 17 %, no el 99 %. Cuando algo es raro, hasta un buen detector da muchas falsas alarmas.
¿Dónde aparece en IA? es la razón por la que la «exactitud» engaña cuando una clase es rara (fraude, averías, enfermedades). Lo verás en detalle al estudiar métricas de clasificación.
Softmax: de puntuaciones a probabilidades
Un clasificador da puntuaciones sueltas, por ejemplo gato 2, perro 1, pájaro 0,1. Softmax las convierte en probabilidades: todas positivas y que suman 1, y la mayor puntuación se lleva la mayor probabilidad.
¿Dónde aparece en IA? es la última capa de casi todos los clasificadores, y la que usa un LLM para elegir la siguiente palabra.
09Ejercicios
Hazlos con papel y lápiz antes de abrir la solución. Si te atascas, abre el ejercicio y lee solo la pista.
Ejercicio 1Suma los vectores (2, 5) y (1, −1), y multiplica el resultado por 3.
Pista: se opera posición a posición.
(2 + 1, 5 − 1) = (3, 4). Por 3: (9, 12).
Ejercicio 2Calcula el producto escalar de (1, 2, 3) y (4, 0, −1).
Pista: multiplica cada pareja y suma los tres resultados.
1·4 + 2·0 + 3·(−1) = 4 + 0 − 3 = 1.
Ejercicio 3Pedro puntúa (acción, romance) con (1, 4). ¿Se parece más a Ana (5, 1) o a Marta (1, 5)?
Pedro · Ana = 5 + 4 = 9. Pedro · Marta = 1 + 20 = 21. Se parece más a Marta.
Ejercicio 4Multiplica la matriz [[1, 2], [0, 1]] por el vector (3, 1).
Pista: cada fila de la matriz hace un producto escalar con el vector.
Primera fila: 1·3 + 2·1 = 5. Segunda fila: 0·3 + 1·1 = 1. Resultado: (5, 1).
Ejercicio 5¿Se puede multiplicar una matriz (2 × 3) por otra (3 × 4)? ¿Y una (2 × 3) por una (2 × 3)? Si se puede, ¿qué forma tiene el resultado?
(2 × 3)·(3 × 4): sí, los de dentro coinciden (3) y el resultado es (2 × 4). (2 × 3)·(2 × 3): no, porque 3 ≠ 2.
Ejercicio 6¿Cuál es la derivada de f(x) = x² en x = 5? Si estás en x = 5 y quieres que f baje, ¿hacia dónde mueves x?
f'(x) = 2x, así que f'(5) = 10. Es positiva: si x aumenta, f sube. Para bajar, mueve x hacia la izquierda (hacia valores menores).
Ejercicio 7Calcula el gradiente de f(x, y) = x² + 3xy en el punto (1, 2).
Pista: en 3xy, si y está quieta, 3y es un número fijo que multiplica a x.
Moviendo solo x (y es constante): 2x + 3y = 2 + 6 = 8. Moviendo solo y (x es constante): 3x = 3. Gradiente: (8, 3).
Ejercicio 8Haz dos pasos de descenso de gradiente con L(w) = (w − 3)², empezando en w = 0 y con η = 0,5. ¿Qué ha pasado?
Paso 1: pendiente 2·(0 − 3) = −6, w = 0 − 0,5·(−6) = 3. Paso 2: pendiente 2·(3 − 3) = 0, así que w se queda en 3. Con este η se llega al mínimo en un solo paso: en esta función concreta, el paso tiene justo el tamaño exacto.
10Proyecto del nivel
Programa el descenso de gradiente con dos parámetros y dibuja el camino que sigue. El «valle» es , con el fondo en (3, −1). Empieza en (0, 0) y para cuando la pendiente sea casi cero.
Es lo mismo que la tabla del apartado 6, pero moviendo dos números a la vez: cada uno con su propia pendiente.
import numpy as np
import matplotlib.pyplot as plt
F = lambda x, y: (x - 3)**2 + 2 * (y + 1)**2 # el valle
grad = lambda x, y: np.array([2 * (x - 3), 4 * (y + 1)]) # sus pendientes
def descenso(eta, x=0.0, y=0.0, max_pasos=200):
tray = [(x, y)]
for _ in range(max_pasos):
gx, gy = grad(x, y)
if np.hypot(gx, gy) < 1e-3: # casi sin pendiente: hemos llegado
break
x, y = x - eta * gx, y - eta * gy # un paso cuesta abajo
tray.append((x, y))
return np.array(tray)
xs, ys = np.meshgrid(np.linspace(-1, 5, 200), np.linspace(-4, 2, 200))
plt.contour(xs, ys, F(xs, ys), levels=15)
for eta in (0.1, 0.4):
t = descenso(eta)
plt.plot(t[:, 0], t[:, 1], "o-", ms=3, label=f"η = {eta} · {len(t) - 1} pasos")
plt.legend(); plt.gca().set_aspect("equal"); plt.show()Para ir más allá: (1) cambia el punto de inicio y comprueba que siempre llega al mismo sitio; (2) busca probando la η más grande con la que todavía llega; (3) imprime la pérdida en cada paso y comprueba que siempre baja cuando η es pequeña.
11Test de autoevaluación
-
¿Qué es un vector en machine learning?
Cualquier dato (una vivienda, una imagen, una palabra) se representa como una lista de números en un orden fijo.
-
¿Cuánto vale el producto escalar de (2, 3) y (4, 1)?
2·4 + 3·1 = 8 + 3 = 11. El resultado es un solo número, no un vector.
-
Dos vectores con un producto escalar grande y positivo…
Por eso se usa el producto escalar para medir el parecido entre gustos, documentos o palabras.
-
Multiplicas una matriz (64 × 10) por otra (10 × 3). ¿Qué forma tiene el resultado?
Los números de dentro (10) coinciden y desaparecen; el resultado se queda con los de fuera: (64 × 3).
-
La derivada de una función en un punto es negativa. Si aumentas un poco x…
Derivada negativa significa pendiente cuesta abajo hacia la derecha: al aumentar x, la función baja.
-
Si A cambia 2 veces más rápido que B, y B 5 veces más rápido que C, ¿cuántas veces más rápido cambia A que C?
Regla de la cadena: los ritmos de cambio se multiplican, 2 · 5 = 10.
-
¿Hacia dónde se mueve el descenso de gradiente?
El gradiente apunta cuesta arriba; para reducir el error hay que ir en sentido contrario.
-
Al entrenar, el error crece en cada paso hasta salir nan. ¿Qué es lo primero que pruebas?
Con pasos demasiado grandes el algoritmo se pasa del mínimo cada vez más y se escapa.
-
¿Qué garantiza softmax sobre sus salidas?
Convierte cualquier lista de puntuaciones en una distribución de probabilidad.
-
Un test da positivo en el 99 % de los enfermos y en el 5 % de los sanos, y la enfermedad afecta a 1 de cada 100 personas. Si das positivo, tu probabilidad de estar enfermo es…
De cada 1.000 personas, unas 10 enfermas dan positivo y unas 50 sanas también: 10 de 60 ≈ 17 %.
12¿Has asimilado el nivel?
Marca cada punto solo si puedes hacerlo sin mirar la lección. Una buena prueba: explicárselo en voz alta a alguien (o a ti mismo) en menos de un minuto. El progreso se guarda solo en este navegador.
Si quieres verlo explicado de otra forma
- 3Blue1Brown. Essence of Linear Algebra y Essence of Calculus (series de vídeos cortos, muy visuales; tienen subtítulos en español).
- Khan Academy en español: álgebra lineal (vectores y matrices) y cálculo diferencial (derivadas).
- M. P. Deisenroth, A. A. Faisal, C. S. Ong (2020). Mathematics for Machine Learning. Cambridge University Press. Gratis en la web de los autores; para cuando quieras profundizar.
Ejecuta el código de la lección
Todos los ejemplos, los ejercicios y el proyecto, listos para ejecutar y cambiar los números: