Curso de Matemáticas para IA · Lección 30 de 180

Span: las predicciones que puede alcanzar un modelo lineal

Usa el span de vectores para identificar todas las predicciones que un modelo lineal puede producir a partir de sus columnas de características y detectar un objetivo que estas no pueden expresar.

Comparte este artículo

Una regla de predicción lineal puede ajustar sus pesos tanto como quiera y aun así pasar por alto un patrón que sus características no pueden expresar. El límite se ve en todos los ejemplos de entrenamiento: cada vector de predicciones es una suma ponderada de las columnas de características. Esas sumas ponderadas forman un conjunto llamado span.

Al terminar esta lección, podrás describir ese conjunto alcanzable, calcular una predicción dentro de él y comprobar si el modelo podría producir una serie de valores objetivo propuestos.

Objetivo de aprendizaje: identificar el conjunto de vectores alcanzables mediante combinaciones lineales.

Lección 29: La independencia lineal elimina la redundancia pregunta si las direcciones de las características aportan información distinta. Aquí planteamos la siguiente pregunta: ¿qué combinaciones de esas direcciones puede alcanzar realmente un modelo? La sección 2.5 del libro oficial Mathematics for Machine Learning introduce las combinaciones lineales y la independencia lineal, conceptos necesarios para definir el span en esta lección. El ejemplo de predicción, los cálculos, el código, la ilustración y las evaluaciones son originales.

Las salidas de un modelo viven en un conjunto alcanzable

Supongamos que un conjunto de datos contiene nn ejemplos y pp características numéricas. Coloca los valores de la característica jj para los nn ejemplos en un vector columna xj∈Rn\boldsymbol{x}_j\in\mathbb{R}^n. La matriz de diseño X∈Rn×pX\in\mathbb{R}^{n\times p} apila esas columnas. Para un vector de pesos w=(w1,…,wp)T∈Rp\boldsymbol{w}=(w_1,\ldots,w_p)^\mathsf{T}\in\mathbb{R}^p, un modelo lineal sin término independiente predice

y^=Xw=w1x1+⋯+wpxp.\hat{\boldsymbol{y}}=X\boldsymbol{w} =w_1\boldsymbol{x}_1+\cdots+w_p\boldsymbol{x}_p.

El producto de matriz por vector realiza algo conceptualmente importante: mezcla las columnas de características mediante los pesos del modelo. Los coeficientes pueden variar, pero las únicas direcciones disponibles son las columnas que ya están en XX.

La última frase expresa la capacidad del modelo para este conjunto de datos finito: el span contiene exactamente los vectores de predicción que pueden producir los pesos lineales sin restricciones. No afirma que el modelo pueda realizar cualquier asignación posible con entradas futuras. Eso depende de la regla de características, sus parámetros y las entradas que recibirá.

Calcular las predicciones alcanzables

Consideremos tres ejemplos y dos características:

X=[100111],x1=[101],x2=[011].X=\begin{bmatrix} 1&0\\ 0&1\\ 1&1 \end{bmatrix}, \qquad \boldsymbol{x}_1=\begin{bmatrix}1\\0\\1\end{bmatrix}, \quad \boldsymbol{x}_2=\begin{bmatrix}0\\1\\1\end{bmatrix}.

Cada par de pesos (a,b)(a,b) produce

ax1+bx2=a[101]+b[011]=[aba+b].a\boldsymbol{x}_1+b\boldsymbol{x}_2 =a\begin{bmatrix}1\\0\\1\end{bmatrix} +b\begin{bmatrix}0\\1\\1\end{bmatrix} =\begin{bmatrix}a\\b\\a+b\end{bmatrix}.

Por tanto, todo vector de predicción alcanzable tiene la forma [a,b,a+b]T[a,b,a+b]^\mathsf{T}. Su tercera coordenada debe ser igual a la suma de las dos primeras. Se trata de un plano que pasa por el origen dentro de R3\mathbb{R}^3: se registran tres coordenadas de salida, pero las dos direcciones de las características solo pueden llenar ese plano.

El fallo se debe a un límite de las características, no a que no hayamos buscado el tiempo suficiente los coeficientes adecuados. Un optimizador puede elegir otros pesos, pero no puede salir del espacio columna sin cambiar las direcciones de las características o la forma del modelo.

Espacio de predicciones

Las columnas de características delimitan todas las predicciones

Con dos columnas de características, el modelo puede alcanzar el plano que estas abarcan. El vector objetivo queda fuera porque su tercer valor no es la suma de los dos primeros.

Plano de predicciones alcanzables y objetivo inalcanzableUn plano que pasa por el origen lleva la etiqueta y tres igual a y uno más y dos. Dos flechas continuas muestran las columnas de características x uno y x dos en el plano. Una flecha discontinua señala el objetivo y, con coordenadas uno, dos y cuatro, fuera del plano.Col(X): y₃ = y₁ + y₂x₁ = [1, 0, 1]x₂ = [0, 1, 1]objetivo y = [1, 2, 4]cero
El plano representa todos los vectores [a, b, a + b]. El fragmento finito del plano es solo una ventana de visualización; el span se extiende sin límite en todas las direcciones del plano. El objetivo discontinuo incumple la regla de las coordenadas.
Combinaciones de características y su pertenencia al espacio columna
VectorCoordenadasComprobación del span
Columna de características x₁[1, 0, 1]Dentro: tercera = primera + segunda
Columna de características x₂[0, 1, 1]Dentro: tercera = primera + segunda
Predicción para w = [2, −1][2, −1, 1]Dentro: tercera = primera + segunda
Objetivo propuesto[1, 2, 4]Fuera: 4 ≠ 1 + 2

El diagrama muestra el mismo álgebra desde el punto de vista del modelo. Las flechas continuas de las características generan el plano y cualquier combinación ponderada de ellas permanece en él. El objetivo discontinuo queda fuera. La imagen ayuda a intuir la posición; la ecuación y3=y1+y2y_3=y_1+y_2 es la comprobación exacta.

Comprobar el límite con un cálculo breve en NumPy

El cálculo del modelo sigue directamente la definición. NumPy matmul implementa el producto de matriz por vector, así que multiplicar XX por los pesos da el vector de predicciones:

import numpy as np

X = np.array([[1, 0], [0, 1], [1, 1]])
weights = np.array([2, -1])
prediction = X @ weights
target = np.array([1, 2, 4])

print(prediction)  # [ 2 -1  1]
print(prediction[2] == prediction[0] + prediction[1])  # True
print(target[2] == target[0] + target[1])  # False

La primera línea confirma la predicción calculada. La segunda comprueba la regla que deben satisfacer todos los vectores de este espacio columna. La tercera descarta el objetivo propuesto mediante la misma relación exacta. Es una comprobación estructural y no depende de cómo se hayan entrenado los pesos.

Esta perspectiva también explica una restricción habitual de la regresión lineal. La guía de modelos lineales de scikit-learn define una predicción como una suma ponderada de características, con un término independiente opcional. El procedimiento de ajuste puede intentar reducir los errores, pero en los ejemplos de esta lección un modelo sin término independiente solo puede producir las predicciones de Col⁡(X)\operatorname{Col}(X). Si todas las columnas de características son redundantes, el span puede no crecer al añadir otra; si una columna nueva apunta en una dirección realmente distinta, puede ampliar el conjunto alcanzable.

El span describe las direcciones disponibles

El span incluye cualquier valor real para los coeficientes, también pesos cero y negativos. Esto importa: si solo consideráramos combinaciones positivas, describiríamos un conjunto más pequeño, a menudo un cono, en lugar del span completo. La regresión lineal estándar sin restricciones permite coeficientes positivos o negativos. Las restricciones pueden limitar los coeficientes permitidos, mientras que la regularización cambia qué pesos prefiere el objetivo de entrenamiento; ninguna de las dos cambia el espacio columna definido por la propia matriz de características.

El número de columnas de características no indica por sí solo cuántas direcciones independientes aportan. Dos columnas pueden apuntar a lo largo de la misma recta y, en ese caso, su span sigue teniendo una dimensión. El siguiente paso consiste en determinar cuándo un vector nuevo añade una dirección independiente y puede ampliar el span. Esa es la pregunta que aborda la Lección 29: La independencia lineal elimina la redundancia.

El hábito práctico es sencillo: cuando un modelo pasa por alto un patrón repetidamente, pregúntate si sus características pueden expresar la salida necesaria antes de culpar al optimizador. El span te indica qué vectores de predicción pueden siquiera plantearse.

Comprueba lo que has entendido

Question 1

Con tus propias palabras, ¿qué contiene el span de dos columnas de características?

Show the step-by-step solution

El span contiene todos los vectores que se forman al multiplicar la primera columna por cualquier número real, multiplicar la segunda por cualquier número real y sumar los resultados. Los coeficientes pueden ser cero o negativos, además de positivos, así que el conjunto incluye todas las direcciones generadas por esas dos columnas, no solo los puntos entre ellas.

Question 2

Sean x₁ = [1, 0, 1]ᵀ y x₂ = [0, 1, 1]ᵀ. Calcula 3x₁ − 2x₂ y comprueba si el resultado cumple la regla de coordenadas del span.

Show the step-by-step solution

Primero escala cada vector: 3x1=[3,0,3]T3\boldsymbol{x}_1=[3,0,3]^\mathsf{T} y −2x2=[0,−2,−2]T-2\boldsymbol{x}_2=[0,-2,-2]^\mathsf{T}. Suma las coordenadas para obtener [3,−2,1]T[3,-2,1]^\mathsf{T}. Su tercera entrada es 11 y la suma de las dos primeras es 3+(−2)=13+(-2)=1, así que cumple la regla y pertenece al span.

Question 3

Para la matriz cuyas columnas son [1, 0, 1]ᵀ y [0, 1, 1]ᵀ, escribe el vector de predicción general para los pesos [a, b]ᵀ.

Show the step-by-step solution

Multiplica la primera columna por aa para obtener [a,0,a]T[a,0,a]^\mathsf{T}. Multiplica la segunda por bb para obtener [0,b,b]T[0,b,b]^\mathsf{T}. La suma es [a,b,a+b]T[a,b,a+b]^\mathsf{T}. Por tanto, la tercera coordenada de toda predicción es igual a la suma de las dos primeras.

Question 4

¿Puede este modelo de dos características producir [2, 1, 4]ᵀ? Muestra una comprobación decisiva.

Show the step-by-step solution

Si las dos primeras coordenadas son 22 y 11, la regla del span obliga a que la tercera sea 2+1=32+1=3. La tercera coordenada propuesta es 44. Como 4≠34\ne3, ninguna elección de los dos pesos puede producir este vector.

Question 5

Supón que una tercera columna de características es [0, 0, 1]ᵀ. Da unos pesos que produzcan [1, 2, 4]ᵀ usando las tres columnas.

Show the step-by-step solution

Usa un peso de 11 para [1,0,1]T[1,0,1]^\mathsf{T}, de 22 para [0,1,1]T[0,1,1]^\mathsf{T} y de 11 para [0,0,1]T[0,0,1]^\mathsf{T}. Las dos primeras columnas ponderadas suman [1,2,3]T[1,2,3]^\mathsf{T}. Al añadir la tercera, se obtiene [1,2,4]T[1,2,4]^\mathsf{T}; así, la nueva característica aporta justo la dirección que faltaba para este objetivo.

Question 6

¿Describe el espacio columna todas las funciones que el modelo entrenado podría calcular con cualquier entrada futura? Explica el alcance de la afirmación.

Show the step-by-step solution

No. Aquí el espacio columna describe los vectores de predicción en las filas fijas usadas para construir XX, bajo el modelo lineal sin término independiente indicado y con pesos reales sin restricciones. Las predicciones para entradas nuevas dependen de sus valores de características. Cambiar la transformación de características o añadir operaciones no lineales también puede cambiar la familia de funciones que representa el modelo.

Question 7

Para estas tres filas de muestra, ¿qué ocurre con el span si se añade una columna de término independiente [1, 1, 1]ᵀ? ¿Por qué después puede alcanzar [1, 2, 4]ᵀ?

Show the step-by-step solution

La columna de término independiente no es una combinación lineal de las dos columnas originales: el span original exige que la tercera entrada sea igual a la suma de la primera y la segunda, pero [1,1,1]T[1,1,1]^\mathsf{T} no cumple 1=1+11=1+1. La columna nueva aporta una tercera dirección independiente en R3\mathbb{R}^3, por lo que las columnas ampliadas abarcan todo R3\mathbb{R}^3. En particular, [1,2,4]T=2x1+3x2−1[1,2,4]^\mathsf{T}=2\boldsymbol{x}_1+3\boldsymbol{x}_2-\boldsymbol{1}.

Question 8

Un modelo tiene cuatro columnas de características, pero dos son copias exactas de las dos primeras. ¿Obtiene necesariamente cuatro direcciones de predicción independientes? Explícalo usando el span.

Show the step-by-step solution

No. Repetir una columna existente no crea una dirección nueva. Cualquier combinación de una columna duplicada puede incorporarse al coeficiente de su copia, por lo que el span permanece igual al de las dos direcciones originales. El número de columnas cuenta las posiciones de coeficientes disponibles; el span muestra qué direcciones de salida pueden alcanzar en conjunto.

Fuentes

  1. Mathematics for Machine Learning companion website
  2. Mathematics for Machine Learning book PDF
  3. NumPy documentation: numpy.matmul
  4. scikit-learn documentation: Linear Models