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

Los espacios afines explican el sesgo y las fronteras de decisión

Observa cómo una traslación desplaza una recta sin cambiar su dirección y por qué el sesgo de una capa neuronal puede alejar del origen la frontera de un clasificador.

Comparte este artículo

Los pesos de un clasificador determinan la dirección que separa dos clases. El sesgo permite que la recta de separación se sitúe en un lugar distinto del origen. Este pequeño término adicional representa una traslación geométrica: convierte una frontera lineal en una frontera afín y mantiene fija su dirección.

Al terminar, podrás distinguir un subespacio trasladado de uno que pasa por el origen, comprobar si una aplicación es lineal o afín y calcular cómo cambia la frontera de un clasificador sencillo al añadir un sesgo.

Objetivo de aprendizaje: Distinguir conjuntos y transformaciones lineales y afines.

Esta lección continúa la Lección 034, que mostró cómo las aplicaciones lineales conservan las sumas de vectores y la multiplicación por escalares. La sección 2.8 de Mathematics for Machine Learning amplía esa estructura con desplazamientos. Los ejemplos, el cálculo del clasificador, la ilustración y los ejercicios de este artículo son originales.

Una recta puede conservar su dirección y alejarse del origen

Un subespacio vectorial debe contener el vector cero. Por ejemplo, todos los múltiplos de d=(1,2)d=(1,2) forman una recta que pasa por el origen:

U={t(1,2):t∈R}.U = \{t(1,2):t\in\mathbb{R}\}.

Elige un punto p=(0,−1)p=(0,-1) y súmalo a cada vector de UU. El conjunto resultante es una recta paralela que ya no pasa por el origen:

L=p+U={p+u:u∈U}={(0,−1)+t(1,2):t∈R}.L = p+U = \{p+u:u\in U\} = \{(0,-1)+t(1,2):t\in\mathbb{R}\}.

Las coordenadas paramétricas de esta recta son (x1,x2)=(t,2t−1)(x_1,x_2)=(t,2t-1). Al eliminar tt se obtiene 2x1−x2=12x_1-x_2=1. Su vector de dirección es el mismo que el de UU, pero todos los puntos de LL se han desplazado en pp. En particular, 0∉L0\notin L: para que la primera coordenada sea cero, debe cumplirse t=0t=0, y entonces la segunda coordenada vale −1-1. Si el punto elegido pp pertenece a UU, la traslación p+Up+U coincide con UU; en ese caso especial, el subespacio afín también es un subespacio vectorial.

La misma dirección, con y sin desplazamientoEl sesgo cambia la frontera de 2x₁ − x₂ = 0 a 2x₁ − x₂ = 1. Las rectas siguen siendo paralelas y la frontera trasladada ya no contiene el origen.
x₁x₂origenp = (0, −1)desplazamientonormal w = (2, −1)
  • Sin sesgo: 2x₁ − x₂ = 0
  • Sesgo −1: 2x₁ − x₂ = 1

Las dos rectas de la figura tienen el mismo vector de dirección (1,2),(1,2), ya que es perpendicular al vector normal compartido (2,−1)(2,-1). La recta discontinua es una traslación de la continua: cambia su posición, pero no su orientación. Las etiquetas y las ecuaciones expresan la misma información sin depender de los colores.

Las combinaciones afines conservan los puntos en un conjunto desplazado

Una forma útil de reconocer la geometría afín es combinar puntos con coeficientes cuya suma sea uno. Si x=p+ux=p+u e y=p+vy=p+v pertenecen a LL, entonces para cualquier número real λ\lambda,

λx+(1−λ)y=λ(p+u)+(1−λ)(p+v)=p+(λu+(1−λ)v)∈p+U.\lambda x+(1-\lambda)y = \lambda(p+u)+(1-\lambda)(p+v) = p+\bigl(\lambda u+(1-\lambda)v\bigr) \in p+U.

El desplazamiento pp permanece porque λ+(1−λ)=1\lambda+(1-\lambda)=1, y la parte entre paréntesis sigue en UU porque los subespacios son cerrados bajo combinaciones lineales. Por eso, al interpolar puntos de una recta se permanece en ella, incluso si λ\lambda queda fuera de [0,1][0,1] y se extrapola.

La suma ordinaria tiene un total distinto de coeficientes. Para x,y∈Lx,y\in L, x+y=2p+(u+v)x+y=2p+(u+v), que no tiene por qué pertenecer a p+Up+U. En la recta del ejemplo, si x=px=p e y=py=p, entonces x+y=(0,−2)x+y=(0,-2), que no satisface la ecuación 2x1−x2=12x_1-x_2=1. Así, un subespacio afín conserva las combinaciones afines, mientras que un subespacio vectorial conserva todas las combinaciones lineales y contiene el cero.

El punto de anclaje elegido no es único. Si q∈Uq\in U, entonces p+U=(p+q)+Up+U=(p+q)+U, porque sumar un elemento de UU solo cambia el punto que se toma como anclaje. El espacio de direcciones es la parte invariante; el punto de apoyo es un representante conveniente.

El sesgo desplaza la frontera de un clasificador

Una aplicación afín combina una aplicación lineal con una traslación fija:

Para dos entradas cualesquiera, la traslación se cancela al calcular la diferencia:

F(x)−F(y)=(Ax+b)−(Ay+b)=A(x−y).F(x)-F(y)=(Ax+b)-(Ay+b)=A(x-y).

Y para coeficientes que suman uno, la salida conserva su combinación afín:

F(λx+(1−λ)y)=λF(x)+(1−λ)F(y).F\bigl(\lambda x+(1-\lambda)y\bigr) = \lambda F(x)+(1-\lambda)F(y).

Esto difiere de la regla de las aplicaciones lineales para sumas arbitrarias. En particular, F(0)=bF(0)=b, por lo que un sesgo distinto de cero desplaza la entrada cero a una salida distinta de cero.

Sea x=(x1,x2)∈R2x=(x_1,x_2)\in\mathbb{R}^2 una entrada con dos características. Su puntuación es

s(x)=2x1−x2−1.s(x)=2x_1-x_2-1.

Asigna la clase positiva cuando s(x)≥0s(x)\ge 0 y la negativa cuando s(x)<0s(x)<0. La frontera de decisión está donde la puntuación vale cero:

2x1−x2−1=0⟺2x1−x2=1.2x_1-x_2-1=0 \quad\Longleftrightarrow\quad 2x_1-x_2=1.

El vector de pesos w=(2,−1)w=(2,-1) determina la normal de la frontera, mientras que el sesgo b=−1b=-1 fija el nivel de puntuación wTx=1w^\mathsf{T}x=1. En dos dimensiones, la frontera es una recta; en espacios de características de mayor dimensión, el conjunto plano correspondiente se llama hiperplano. El punto p=(0,−1)p=(0,-1) pertenece a ella porque 2(0)−(−1)−1=02(0)-(-1)-1=0. Desplazarse en la dirección d=(1,2)d=(1,2) no cambia la puntuación:

Sin el sesgo, la frontera sería 2x1−x2=02x_1-x_2=0 y contendría el origen. Al añadir bb cambia la intersección, no el vector normal. En términos más generales, una puntuación de clasificador wTx+bw^\mathsf{T}x+b usa ww para orientar un hiperplano y bb para fijar su desplazamiento. La documentación de PyTorch describe torch.nn.Linear con esta forma afín, y=xAT+by=xA^\mathsf{T}+b, y activa por defecto un sesgo entrenable (documentación de torch.nn.Linear). Con una salida, la capa puede producir una puntuación de este tipo; una regla posterior, como aplicar un umbral, asigna la clase.

El sesgo desplaza la frontera en paralelo solo mientras los pesos permanecen fijos. Si el entrenamiento cambia ww, también cambia la orientación. Un sesgo tampoco permite que una única frontera afín represente todos los patrones de clasificación posibles; solo ajusta el desplazamiento de esta puntuación lineal concreta.

Comprueba la geometría con NumPy

El ejemplo se puede comprobar directamente. El código calcula las puntuaciones en el punto de apoyo y en dos puntos obtenidos al avanzar en la dirección:

import numpy as np

w = np.array([2.0, -1.0])
b = -1.0
p = np.array([0.0, -1.0])
d = np.array([1.0, 2.0])
score = lambda x: w @ x + b

print(score(p))          # 0.0: p is on the boundary
print(score(p + d))      # 0.0: moving along d stays on it
print(score(p + 3 * d))  # 0.0: extrapolating along d also stays on it
print(score(np.zeros(2)))  # -1.0: the origin is off the boundary

Los cálculos usan geometría de vectores columna, mientras que los lotes de tensores suelen almacenar los ejemplos en filas. PyTorch expresa su capa lineal por lotes como xAT+bxA^\mathsf{T}+b; la transposición corresponde a esa convención orientada por filas. Con el sesgo predeterminado, la operación es afín. Al establecer bias=False, la aplicación de la capa pasa a ser lineal, aunque una activación no lineal posterior sigue siendo una operación separada.

Comprueba lo que has entendido

Question 1

Para U = span((1, 2)) y p = (0, −1), escribe p + U en forma paramétrica e indica si contiene el origen.

Show the step-by-step solution

Cada punto tiene la forma p+tup+tu para algún t∈Rt\in\mathbb{R}, con vector de dirección u=(1,2)u=(1,2). Por tanto, (x1,x2)=(0,−1)+t(1,2)=(t,2t−1)(x_1,x_2)=(0,-1)+t(1,2)=(t,2t-1). Para llegar al origen, la primera coordenada exige t=0t=0, pero entonces la segunda vale −1-1. Así que el conjunto no contiene el origen y no es un subespacio vectorial.

Question 2

Una recta viene dada por (x₁, x₂) = (3, 1) + t(2, −1). Indica un punto de anclaje y su espacio de direcciones. ¿Es único el anclaje?

Show the step-by-step solution

El anclaje mostrado es p=(3,1)p=(3,1) y el espacio de direcciones es U=span⁡{(2,−1)}U=\operatorname{span}\{(2,-1)\}. Si qq es cualquier vector de UU, entonces (p+q)+U=p+U(p+q)+U=p+U, por lo que otro punto de la recta puede servir de anclaje. El espacio de direcciones no cambia.

Question 3

Demuestra que un subespacio afín es cerrado bajo combinaciones λx + (1 − λ)y, incluso cuando λ queda fuera del intervalo de 0 a 1.

Show the step-by-step solution

Escribe x=p+ux=p+u e y=p+vy=p+v, con u,v∈Uu,v\in U. Entonces λx+(1−λ)y=(λ+1−λ)p+λu+(1−λ)v\lambda x+(1-\lambda)y=(\lambda+1-\lambda)p+\lambda u+(1-\lambda)v. Los coeficientes de pp suman uno, y el vector restante pertenece a UU porque es cerrado bajo combinaciones lineales. Esto vale para todo número real λ\lambda; los valores fuera de [0,1][0,1] extrapolan más allá del segmento, pero permanecen en el mismo subespacio afín.

Question 4

Para la recta afín L = (0, −1) + span((1, 2)), comprueba si (0, −2), la suma del anclaje consigo mismo, pertenece a L.

Show the step-by-step solution

Un punto (x1,x2)(x_1,x_2) pertenece a esta recta exactamente cuando 2x1−x2=12x_1-x_2=1. Al sustituir (0,−2)(0,-2) se obtiene 2(0)−(−2)=22(0)-(-2)=2, no 11. Por tanto, la suma ordinaria queda fuera de LL. Los coeficientes de las dos copias suman 22, así que el desplazamiento del anclaje se cuenta dos veces en lugar de conservarse una.

Question 5

Para F(x) = Ax + b, calcula F(0) y explica la condición para que la aplicación sea lineal.

Show the step-by-step solution

Sustituye el vector cero: F(0)=A0+b=bF(0)=A0+b=b. Toda aplicación lineal debe llevar el cero al cero, así que si b≠0b\ne0, FF no es lineal. Cuando b=0b=0, la regla queda como F(x)=AxF(x)=Ax, que conserva las sumas y la multiplicación por escalares y, por tanto, es lineal.

Question 6

Para s(x) = 2x₁ − x₂ − 1, verifica que p = (0, −1) está en la frontera y que d = (1, 2) sigue su dirección.

Show the step-by-step solution

En pp, s(p)=2(0)−(−1)−1=0s(p)=2(0)-(-1)-1=0, así que pertenece a la frontera de puntuación cero. El cambio de puntuación al sumar dd es 2(1)−1(2)=02(1)-1(2)=0, porque el sesgo es constante y el producto escalar del peso con la dirección vale cero. Por eso, p+d=(1,1)p+d=(1,1) permanece en la frontera.

Question 7

Si la puntuación de un clasificador es wᵀx + b, ¿qué cambia al modificar b si w permanece fijo? ¿Qué ocurre si w también cambia durante el entrenamiento?

Show the step-by-step solution

La frontera cumple wTx=−bw^\mathsf{T}x=-b. Mantener ww fijo conserva el vector normal y la orientación; cambiar bb modifica el conjunto de nivel y traslada la frontera. Si cambia ww, también cambia la normal, por lo que la frontera puede girar además de desplazarse. El sesgo por sí solo no controla la orientación.

Question 8

PyTorch crea nn.Linear(4, 2) con la opción de sesgo predeterminada. ¿Qué aplicación resulta y qué cambio haría lineal esa capa?

Show the step-by-step solution

Para una entrada con cuatro características organizada por filas, la capa devuelve y=xAT+by=xA^\mathsf{T}+b, con dos características de salida. El valor predeterminado bias=True añade el vector entrenable bb, por lo que la aplicación es afín. Al construirla con bias=False, se elimina esa traslación y queda la aplicación lineal y=xATy=xA^\mathsf{T}.

Fuentes

  1. Mathematics for Machine Learning book PDF, Section 2.8
  2. PyTorch documentation: torch.nn.Linear