Sesión 3: Matrices

Teoría

1. Definición de matriz

Una matriz es un arreglo rectangular de números (reales o complejos) dispuestos en filas y columnas. Se denota con letras mayúsculas: $A, B, W, X$, etc.

\[A = \begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{pmatrix}\]

Ejemplo: \(A = \begin{pmatrix} 2 & -1 & 0 \\ 5 & 3 & -2 \end{pmatrix}\) es una matriz de $2 \times 3$. Aquí $a_{11}=2$, $a_{12}=-1$, $a_{13}=0$, $a_{21}=5$, $a_{22}=3$, $a_{23}=-2$.

2. Tipos de matrices

3. Vectores como matrices de una columna

Un vector columna de dimensión $n$ puede verse como una matriz de $n \times 1$: \(\mathbf{v} = \begin{pmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{pmatrix}\) Un vector fila es una matriz de $1 \times n$: \(\mathbf{v}^T = \begin{pmatrix} v_1 & v_2 & \cdots & v_n \end{pmatrix}\)

Operaciones con vectores (como matrices):

Ejemplo paso a paso: Sean $\mathbf{u} = \begin{pmatrix} 2 \ -1 \ 3 \end{pmatrix}$, $\mathbf{v} = \begin{pmatrix} 0 \ 5 \ -2 \end{pmatrix}$, y escalar $\alpha = 3$.

4. Operaciones con matrices

Suma de matrices

Dos matrices del mismo tamaño se suman elemento a elemento: \((A + B)_{ij} = a_{ij} + b_{ij}\)

Ejemplo: \(A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}, \quad B = \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix}\) \(A + B = \begin{pmatrix} 1+5 & 2+6 \\ 3+7 & 4+8 \end{pmatrix} = \begin{pmatrix} 6 & 8 \\ 10 & 12 \end{pmatrix}\)

Producto de matrices

El producto $C = AB$ solo está definido si el número de columnas de $A$ es igual al número de filas de $B$. Si $A$ es $m \times n$ y $B$ es $n \times p$, entonces $C$ es $m \times p$. El elemento $(i,j)$ de $C$ se calcula como: \(c_{ij} = \sum_{k=1}^{n} a_{ik} b_{kj}\) Es decir, el producto punto de la fila $i$ de $A$ con la columna $j$ de $B$.

Ejemplo paso a paso: \(A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}, \quad B = \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix}\) Calculemos $C = AB$:

\[C = \begin{pmatrix} 19 & 22 \\ 43 & 50 \end{pmatrix}\]

Propiedades importantes (no conmutativo): En general $AB \neq BA$.

Multiplicación matriz–vector

Es un caso particular del producto de matrices: si $A$ es $m \times n$ y $\mathbf{x}$ es un vector columna $n \times 1$, entonces $A\mathbf{x}$ es un vector $m \times 1$: \((A\mathbf{x})_i = \sum_{k=1}^{n} a_{ik} x_k\)

Ejemplo: \(A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}, \quad \mathbf{x} = \begin{pmatrix} 5 \\ 6 \end{pmatrix}\) \(A\mathbf{x} = \begin{pmatrix} 1\cdot5 + 2\cdot6 \\ 3\cdot5 + 4\cdot6 \end{pmatrix} = \begin{pmatrix} 5+12 \\ 15+24 \end{pmatrix} = \begin{pmatrix} 17 \\ 39 \end{pmatrix}\)

Transposición

La transpuesta de una matriz $A$ de tamaño $m \times n$ es una matriz $A^T$ de tamaño $n \times m$ donde las filas se convierten en columnas: $(A^T){ij} = a{ji}$.

Ejemplo: \(A = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{pmatrix} \Rightarrow A^T = \begin{pmatrix} 1 & 4 \\ 2 & 5 \\ 3 & 6 \end{pmatrix}\)

5. Propiedades de matrices

Determinante (para matrices cuadradas)

El determinante es un número asociado a una matriz cuadrada que indica, entre otras cosas, si la matriz es invertible (determinante ≠ 0). Para una matriz $2 \times 2$: \(\det\begin{pmatrix} a & b \\ c & d \end{pmatrix} = ad - bc\)

Ejemplo: \(A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} \Rightarrow \det(A) = 1\cdot4 - 2\cdot3 = 4 - 6 = -2\)

Matriz inversa

La inversa de una matriz cuadrada $A$ (si existe) es otra matriz $A^{-1}$ tal que $A A^{-1} = A^{-1} A = I$. Para una matriz $2 \times 2$: \(A^{-1} = \frac{1}{\det(A)} \begin{pmatrix} d & -b \\ -c & a \end{pmatrix}\) si $\det(A) \neq 0$.

Ejemplo: Con $A = \begin{pmatrix} 1 & 2 \ 3 & 4 \end{pmatrix}$, $\det(A) = -2$, entonces: \(A^{-1} = \frac{1}{-2} \begin{pmatrix} 4 & -2 \\ -3 & 1 \end{pmatrix} = \begin{pmatrix} -2 & 1 \\ 1.5 & -0.5 \end{pmatrix}\) Verificación: $A A^{-1} = \begin{pmatrix} 1 & 2 \ 3 & 4 \end{pmatrix} \begin{pmatrix} -2 & 1 \ 1.5 & -0.5 \end{pmatrix} = \begin{pmatrix} -2+3 & 1-1 \ -6+6 & 3-2 \end{pmatrix} = \begin{pmatrix} 1 & 0 \ 0 & 1 \end{pmatrix}$

Rango de una matriz

El rango es el número máximo de filas (o columnas) linealmente independientes. Indica la dimensión del espacio generado por las filas o columnas. En IA, el rango está relacionado con la cantidad de información útil en una matriz de datos.

Ejemplo: La matriz $\begin{pmatrix} 1 & 2 \ 2 & 4 \end{pmatrix}$ tiene rango 1 porque la segunda fila es múltiplo de la primera.

6. Representación de datasets como matrices

En Machine Learning, un conjunto de datos con $n$ muestras y $d$ características se representa típicamente como una matriz $X$ de tamaño $n \times d$:

\(X = \begin{pmatrix} x_{11} & x_{12} & \cdots & x_{1d} \\ x_{21} & x_{22} & \cdots & x_{2d} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1} & x_{n2} & \cdots & x_{nd} \end{pmatrix}\) donde cada fila $i$ corresponde a la $i$-ésima muestra, y cada columna $j$ corresponde a la $j$-ésima característica (feature).

Ejemplo: Un dataset de 3 casas con características: área (m²), número de habitaciones, antigüedad (años). \(X = \begin{pmatrix} 120 & 3 & 10 \\ 85 & 2 & 5 \\ 200 & 4 & 2 \end{pmatrix}\) La primera fila representa una casa de 120 m², 3 habitaciones y 10 años.

Además, el vector de etiquetas (valores a predecir) se representa como un vector columna: \(\mathbf{y} = \begin{pmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{pmatrix}\) Por ejemplo, precios de las casas: $\mathbf{y} = \begin{pmatrix} 250000 \ 180000 \ 320000 \end{pmatrix}$.


Aplicaciones prácticas

Machine Learning (ML)

1. Regresión lineal (representación matricial)

En regresión lineal múltiple, el modelo es: \(\hat{\mathbf{y}} = X \mathbf{w} + b\) donde:

Para incluir el sesgo, se puede aumentar $X$ con una columna de unos: \(X_{\text{aug}} = \begin{pmatrix} 1 & x_{11} & x_{12} & \cdots & x_{1d} \\ 1 & x_{21} & x_{22} & \cdots & x_{2d} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_{n1} & x_{n2} & \cdots & x_{nd} \end{pmatrix}, \quad \boldsymbol{\theta} = \begin{pmatrix} b \\ w_1 \\ w_2 \\ \vdots \\ w_d \end{pmatrix}\) Entonces $\hat{\mathbf{y}} = X_{\text{aug}} \boldsymbol{\theta}$.

Solución analítica (mínimos cuadrados): \(\boldsymbol{\theta} = (X_{\text{aug}}^T X_{\text{aug}})^{-1} X_{\text{aug}}^T \mathbf{y}\) Esta fórmula utiliza producto de matrices, transposición e inversa. Es un ejemplo clásico de cómo las operaciones matriciales resuelven un problema de optimización.

Ejemplo numérico pequeño:
Supongamos 2 muestras con una característica:
$X = \begin{pmatrix} 1 \ 2 \end{pmatrix}$, $\mathbf{y} = \begin{pmatrix} 2 \ 3 \end{pmatrix}$.
Aumentamos: $X_{\text{aug}} = \begin{pmatrix} 1 & 1 \ 1 & 2 \end{pmatrix}$.
Calculamos:

2. Regresión logística (matriz de features)

En regresión logística, la combinación lineal se escribe como: \(\mathbf{z} = X \mathbf{w} + b\) y luego se aplica la sigmoide: $\hat{\mathbf{y}} = \sigma(\mathbf{z})$. La matriz $X$ juega el mismo papel que en regresión lineal.

3. PCA (matriz de covarianza)

En Análisis de Componentes Principales, partimos de la matriz de datos $X$ (centrada, es decir, con media cero por columnas). La matriz de covarianza se calcula como: \(\Sigma = \frac{1}{n-1} X^T X\) (notar que $X^T X$ es un producto matricial). Luego, los autovalores y autovectores de $\Sigma$ dan las direcciones principales.

4. Factorización matricial en sistemas de recomendación

En sistemas de recomendación como el de Netflix, se tiene una matriz $R$ de usuarios × ítems con calificaciones (muchas celdas vacías). La factorización matricial busca aproximar $R \approx P Q^T$, donde $P$ y $Q$ son matrices de factores latentes. Esto implica operaciones matriciales y descomposiciones.

Deep Learning (DL)

1. Pesos como matrices en capas lineales

En una red neuronal, cada capa lineal (fully connected) realiza la operación: \(\mathbf{h} = W \mathbf{x} + \mathbf{b}\) donde:

Esta es una multiplicación matriz–vector más suma.

Ejemplo: Una capa que recibe una entrada de 3 características y produce 2 neuronas: \(W = \begin{pmatrix} 0.2 & -0.5 & 0.1 \\ 0.8 & 0.3 & -0.2 \end{pmatrix}, \quad \mathbf{b} = \begin{pmatrix} 0.1 \\ -0.1 \end{pmatrix}, \quad \mathbf{x} = \begin{pmatrix} 1.0 \\ 0.5 \\ -1.0 \end{pmatrix}\) \(W\mathbf{x} = \begin{pmatrix} 0.2\cdot1 + (-0.5)\cdot0.5 + 0.1\cdot(-1) \\ 0.8\cdot1 + 0.3\cdot0.5 + (-0.2)\cdot(-1) \end{pmatrix} = \begin{pmatrix} 0.2 -0.25 -0.1 \\ 0.8 +0.15 +0.2 \end{pmatrix} = \begin{pmatrix} -0.15 \\ 1.15 \end{pmatrix}\) \(\mathbf{h} = W\mathbf{x} + \mathbf{b} = \begin{pmatrix} -0.15+0.1 \\ 1.15-0.1 \end{pmatrix} = \begin{pmatrix} -0.05 \\ 1.05 \end{pmatrix}\)

2. Backpropagation (operaciones matriciales)

Durante el entrenamiento, el gradiente de la pérdida respecto a los pesos se calcula usando la regla de la cadena. Para una capa lineal, si conocemos el gradiente de la pérdida respecto a la salida $\frac{\partial L}{\partial \mathbf{h}}$, entonces: \(\frac{\partial L}{\partial W} = \frac{\partial L}{\partial \mathbf{h}} \cdot \mathbf{x}^T\) que es un producto exterior (resultado de multiplicar un vector columna por un vector fila, generando una matriz). Además, el gradiente respecto a la entrada es: \(\frac{\partial L}{\partial \mathbf{x}} = W^T \frac{\partial L}{\partial \mathbf{h}}\) que es otra multiplicación matriz–vector. Así, las operaciones matriciales son el corazón del backpropagation.

3. Inicialización de pesos

La inicialización adecuada de las matrices de pesos es crucial para evitar gradientes evanescentes/explosivos. Por ejemplo, la inicialización de Xavier (Glorot) propone que los pesos se muestreen de una distribución con varianza: \(\text{Var}(W) = \frac{2}{n_{\text{in}} + n_{\text{out}}}\) Esto depende del tamaño de las matrices (número de filas y columnas).

4. Convoluciones (operaciones matriciales)

Aunque las convoluciones se implementan eficientemente con técnicas como im2col (convertir parches en columnas), en el fondo son operaciones matriciales. Por ejemplo, una convolución 2D puede verse como una multiplicación de una matriz que contiene los parches de la imagen con la matriz de kernels.

5. Transformers (multiplicación de matrices en atención)

En el mecanismo de atención, se calculan las matrices de consultas (Q), claves (K) y valores (V) mediante multiplicaciones de la entrada con matrices de pesos: \(Q = X W_Q, \quad K = X W_K, \quad V = X W_V\) Luego, los pesos de atención se obtienen con: \(\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{Q K^T}{\sqrt{d_k}}\right) V\) Aquí, $Q K^T$ es un producto de matrices (de tamaño secuencia × secuencia), y luego se multiplica por $V$. Todo el mecanismo depende críticamente de operaciones matriciales eficientes.


Conclusión de la semana: Las matrices son el lenguaje natural para representar datos y operaciones en IA. Desde la representación de datasets hasta las operaciones en redes neuronales, el álgebra matricial es omnipresente. Dominar estas operaciones y propiedades es esencial para entender cómo funcionan internamente los modelos y para poder implementarlos eficientemente.