LECCIÓN 10

Multiplicar matrices

¿Y si aplicas dos transformaciones seguidas? Pues sale otra transformación, y se puede empaquetar en UNA sola matriz: el producto de las dos. Misma receta que matriz·vector, pero a lo grande.

1Encadenar transformaciones

Imagina que primero aplicas una transformación B a un vector, y luego al resultado le aplicas otra A:

v  →  B·v  →  A·(B·v)

Resulta que esa combinación es otra transformación lineal. ¡La puedes empaquetar en una sola matriz! Esa matriz se llama el producto A·B:

A·(B·v) = (A·B)·v
⚠️ Ojo con el orden: A·B significa "primero B, luego A" (se lee de derecha a izquierda, pegado al vector). Es como una pila — el más cercano al vector se aplica primero. Y casi siempre: A·B ≠ B·A (¡no es conmutativo!).

2La receta para multiplicar matrices

La regla es la misma que matriz·vector (lección 8), pero ahora cada columna de la segunda matriz hace el papel de "vector":

[
ab
cd
]
· [
ef
gh
]
 =  [
ae+bgaf+bh
ce+dgcf+dh
]

cada celda del resultado = producto punto de una fila de A con una columna de B.

3Un ejemplo numérico completo, paso a paso

Calculemos A · B con:

A = [
12
34
]
    B = [
20
12
]
✍️ Las 4 celdas del resultado, una por una
resultado[1,1] = fila 1 de A · columna 1 de B
                = (1, 2) · (2, 1)
                = 1·2 + 2·1   = 2 + 2 = 4

resultado[1,2] = fila 1 de A · columna 2 de B
                = (1, 2) · (0, 2)
                = 1·0 + 2·2   = 0 + 4 = 4

resultado[2,1] = fila 2 de A · columna 1 de B
                = (3, 4) · (2, 1)
                = 3·2 + 4·1   = 6 + 4 = 10

resultado[2,2] = fila 2 de A · columna 2 de B
                = (3, 4) · (0, 2)
                = 3·0 + 4·2   = 0 + 8 = 8
A · B = [
44
108
]

4Atención: A·B ≠ B·A casi siempre

A diferencia de los números (donde 3·5 = 5·3), con matrices el orden importa. Tiene sentido si lo piensas geométricamente: primero rotar y luego escalar no es lo mismo que primero escalar y luego rotar en general.

✍️ Comprobémoslo: calcula B·A con las mismas matrices
B · A =  fila 1 B · col 1 A:  (2, 0)·(1, 3) = 2·1+0·3 = 2
         fila 1 B · col 2 A:  (2, 0)·(2, 4) = 2·2+0·4 = 4
         fila 2 B · col 1 A:  (1, 2)·(1, 3) = 1·1+2·3 = 7
         fila 2 B · col 2 A:  (1, 2)·(2, 4) = 1·2+2·4 = 10

B · A = [[2, 4], [7, 10]]    vs    A · B = [[4, 4], [10, 8]]
                                                ↑ ¡diferente!

5La regla del "encajado" de formas

Para multiplicar dos matrices, sus dimensiones tienen que encajar:

A  es  m × k   ·   B  es  k × n   →   A·B  es  m × n

El número del medio tiene que coincidir (es el "k"). El resultado toma las dimensiones de los extremos:

📐 Este es el error de formas que más vas a ver en PyTorch. Cuando salga "shape mismatch", revisa que el número del medio coincida.

6Pruébalo: dos matrices, una composición

Modifica A y B. Verás la matriz resultado A·B calculada en vivo, y cómo la deformación combinada se aplica a una rejilla.

Matriz A (segunda en aplicarse)

1
0
0
2

Matriz B (primera en aplicarse)

0
-1
1
0

7Esto es, literalmente, toda una red neuronal

🌟 Una red de N capas (sin contar activaciones) es esto:
salida = MN · MN-1 · ... · M2 · M1 · entrada
Multiplicaciones encadenadas de matrices. Cada Mᵢ es una capa, con pesos que la red ajusta durante el entrenamiento. Por eso entender este producto = entender qué hace una red por dentro a nivel de operaciones.

8Resumen

Multiplicar matrices = encadenar transformaciones. Cada celda del resultado es un producto punto fila × columna. Las dimensiones tienen que encajar (número del medio coincide). El orden importa: A·B ≠ B·A. Esto es el corazón computacional de toda red neuronal. En la próxima lección entramos en el bloque avanzado con el determinante: un número que mide cuánto agranda una matriz al espacio.