Linear Algebra·Unidad 3

LA-03 — Matrices & linear maps

Una capa de red neuronal es, en su corazón, $\mathbf{y} = W\mathbf{x} + \mathbf{b}$: una multiplicación por matriz más un sesgo. Toda transformación de features (rotar, proyectar, mezclar) es una matriz. Entender la matriz como transformación (no como tabla de números) es el salto conceptual más rentable de todo el pilar.

Why this matters for ML

Una capa de red neuronal es, en su corazón, y=Wx+b\mathbf{y} = W\mathbf{x} + \mathbf{b}: una multiplicación por matriz más un sesgo. Toda transformación de features (rotar, proyectar, mezclar) es una matriz. Entender la matriz como transformación (no como tabla de números) es el salto conceptual más rentable de todo el pilar.

Concepts covered

  • Matriz como datos y como linear map (transformación lineal)
  • Matrix–vector product (dos interpretaciones)
  • Matrix–matrix product como composición de transformaciones
  • Transpose
  • Matrices especiales: identity, diagonal, triangular, orthogonal, symmetric
  • No conmutatividad (ABBAAB \ne BA)

Intuition first

🎬 3Blue1Brown E.o.L.A. cap. 3 ("Linear transformations and matrices") y cap. 4 ("Matrix multiplication as composition"). Estos dos videos son oro puro: la matriz es dónde caen los vectores base.

Theory & key results

Linear map: una función T:RnRmT:\mathbb{R}^n\to\mathbb{R}^m que respeta suma y scaling: T(x+y)=T(x)+T(y)T(\mathbf{x}+\mathbf{y})=T(\mathbf{x})+T(\mathbf{y}) y T(cx)=cT(x)T(c\mathbf{x})=cT(\mathbf{x}). Toda transformación lineal se representa con una matriz, y las columnas de esa matriz son a dónde van los vectores base.

Matrix–vector product AxA\mathbf{x} — dos formas de leerlo (¡domina ambas!):

  1. Fila por fila: cada entrada del resultado es el dot product de una fila de AA con x\mathbf{x}.
  2. Columna (la más importante): AxA\mathbf{x} es una combinación lineal de las columnas de AA, con pesos xix_i: Ax=x1a:,1+x2a:,2++xna:,n.A\mathbf{x} = x_1\mathbf{a}{:,1} + x_2\mathbf{a}{:,2} + \dots + x_n\mathbf{a}_{:,n}. Esta segunda lectura explica el column space (LA-04) y por qué Ax=bA\mathbf{x}=\mathbf{b} tiene solución solo si b\mathbf{b} está en el span de las columnas.

Matrix–matrix product: (AB)(AB) representa "aplica BB, luego AA" — composición. Entrada (i,j)(i,j) = dot product de la fila ii de AA con la columna jj de BB. Dimensiones: (m×k)(k×n)=(m×n)(m\times k)(k\times n)=(m\times n); deben "encajar" en kk.

No conmuta: en general ABBAAB \ne BA (rotar-luego-estirar ≠ estirar-luego-rotar).

Transpose AA^\top: refleja sobre la diagonal, (A)ij=Aji(A^\top){ij}=A{ji}. Reglas: (AB)=BA(AB)^\top = B^\top A^\top, (A)=A(A^\top)^\top = A.

Matrices especiales:

  • Identity II: no hace nada, Ix=xI\mathbf{x}=\mathbf{x}.
  • Diagonal: escala cada eje por separado.
  • Triangular (upper/lower): ceros bajo/sobre la diagonal — clave para resolver sistemas (LA-04) y en LU/Cholesky.
  • Symmetric (A=AA=A^\top): aparece en covariance matrices y Hessians (LA-08).
  • Orthogonal (QQ=IQ^\top Q = I): rotaciones/reflexiones, preservan longitudes y ángulos (LA-06).

Worked example

A=[1201]A=\begin{bmatrix}1&2\0&1\end{bmatrix} (un shear). ¿A dónde manda la base? Columna 1 = A(1,0)=(1,0)A(1,0)^\top=(1,0)^\top; columna 2 = A(0,1)=(2,1)A(0,1)^\top=(2,1)^\top. Entonces (1,0)(1,0) queda fijo y (0,1)(0,1) se inclina a (2,1)(2,1): la matriz es esas dos columnas. Composición: AA=[1401]A\cdot A = \begin{bmatrix}1&4\0&1\end{bmatrix} (shear doble). Verás que multiplicar acumula transformaciones.

Notebook exercises (by hand)

  1. Multiplica [2003][11]\begin{bmatrix}2&0\0&3\end{bmatrix}\begin{bmatrix}1\1\end{bmatrix} e interpreta geométricamente.
  2. Con A=[1234]A=\begin{bmatrix}1&2\3&4\end{bmatrix}, B=[0110]B=\begin{bmatrix}0&1\1&0\end{bmatrix}: calcula ABAB y BABA; confirma que difieren.
  3. Escribe A(3,1)A(3,,-1)^\top como combinación lineal de las columnas de AA.
  4. Da la matriz que rota 90° en el plano (pista: ¿a dónde van (1,0)(1,0) y (0,1)(0,1)?).
  5. Verifica (AB)=BA(AB)^\top=B^\top A^\top con las matrices del ej. 2.
  6. Explica por qué y=Wx+b\mathbf{y}=W\mathbf{x}+\mathbf{b} (capa de red) es afín, no puramente lineal, y qué añade b\mathbf{b}.

Python lab

import numpy as np

A = np.array([[1., 2.],[3., 4.]])
B = np.array([[0., 1.],[1., 0.]])
print("AB=\n", A @ B, "\nBA=\n", B @ A)     # distintos

x = np.array([3., -1.])
# matrix-vector como combinación de columnas:
col_view = x[0]*A[:,0] + x[1]*A[:,1]
print(np.allclose(A @ x, col_view))          # True

# a dónde van los basis vectors = columnas de A
print("A e1 =", A @ np.array([1.,0.]), " (col 0)")

# rotación 90°
theta = np.pi/2
R = np.array([[np.cos(theta), -np.sin(theta)],
              [np.sin(theta),  np.cos(theta)]])
print("R@(1,0)=", R @ np.array([1.,0.]))     # ~ (0,1)

Examen final 📝

Intenta cada nivel antes de abrir las soluciones.

🟡 Medio

  1. Con A=[1201]A=\begin{bmatrix}1&2\0&1\end{bmatrix}, B=[2013]B=\begin{bmatrix}2&0\1&3\end{bmatrix}: calcula ABAB y BABA y confirma que difieren.
  2. Da la matriz 2×22\times2 que refleja sobre el eje xx y verifica a dónde manda (3,5)(3,5).

🟠 Medio-difícil

  1. Demuestra que (AB)=BA(AB)^\top=B^\top A^\top para matrices 2×22\times2 genéricas.
  2. Una matriz de rotación RθR_\theta compuesta consigo misma debería rotar 2θ2\theta. Verifica RθRθ=R2θR_\theta R_\theta=R_{2\theta} usando identidades trigonométricas (te salen las fórmulas de ángulo doble).

🔴 Difícil

  1. Una capa de red es y=Wx\mathbf{y}=W\mathbf{x} con WR3×4W\in\mathbb{R}^{3\times4}. Explica qué dimensiones tienen entrada y salida, por qué esta capa no puede aumentar el rank de la información más allá de 3, y qué añade una segunda capa W2R2×3W_2\in\mathbb{R}^{2\times3} (composición).
  2. Demuestra que el conjunto de matrices ortogonales QQ (con QQ=IQ^\top Q=I) es cerrado bajo producto (si Q1,Q2Q_1,Q_2 son ortogonales, Q1Q2Q_1Q_2 también). ¿Qué significa geométricamente?
✅ Soluciones
  1. AB=[4613]AB=\begin{bmatrix}4&6\1&3\end{bmatrix}, BA=[2415]BA=\begin{bmatrix}2&4\1&5\end{bmatrix}. Distintos ⇒ no conmutan.
  2. [1001]\begin{bmatrix}1&0\0&-1\end{bmatrix}; manda (3,5)(3,5)(3,5)\mapsto(3,-5).
  3. Entrada (i,j)(i,j) de (AB)(AB)^\top es (AB)ji=kAjkBki(AB){ji}=\sum_k A{jk}B_{ki}. Entrada (i,j)(i,j) de BAB^\top A^\top es k(B)ik(A)kj=kBkiAjk\sum_k (B^\top){ik}(A^\top){kj}=\sum_k B_{ki}A_{jk}. Iguales.
  4. RθRθR_\theta R_\theta da entradas cos2θsin2θ=cos2θ\cos^2\theta-\sin^2\theta=\cos 2\theta y 2sinθcosθ=sin2θ2\sin\theta\cos\theta=\sin 2\thetaR2θR_{2\theta}.
  5. Entrada R4\in\mathbb{R}^4, salida R3\in\mathbb{R}^3. Como WW tiene a lo sumo rank 3, rank(Wx)3\text{rank}(W\mathbf x)\le3: la salida vive en un subspace de dimensión ≤3. La segunda capa W2W_2 compone: z=W2W1x\mathbf z=W_2W_1\mathbf x, una sola transformación lineal R4R2\mathbb{R}^4\to\mathbb{R}^2 (por eso, sin no-linealidad entre capas, dos capas lineales colapsan a una — motivo de las activaciones).
  6. (Q1Q2)(Q1Q2)=Q2Q1Q1Q2=Q2IQ2=Q2Q2=I(Q_1Q_2)^\top(Q_1Q_2)=Q_2^\top Q_1^\top Q_1 Q_2=Q_2^\top I Q_2=Q_2^\top Q_2=I. Geométricamente: componer dos transformaciones que preservan longitudes/ángulos (rotaciones/reflexiones) da otra que también las preserva.