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

Grupos, anillos y cuerpos: por qué las operaciones de IA necesitan reglas

Descubre cómo la clausura, los inversos y la distributividad determinan qué operaciones tensoriales son válidas y comprueba las ideas con NumPy.

Comparte este artículo

Un modelo de IA puede sumar dos vectores, escalar una matriz de pesos y multiplicar un lote a través de una capa porque los números de esos tensores obedecen un conjunto útil de reglas. Es fácil dar esas reglas por sentadas. También son la razón por la que una derivación lineal puede reordenarse sin cambiar su significado.

Objetivo de aprendizaje: Distinguir de forma intuitiva los supuestos de clausura, inverso y distributividad, y usarlos para explicar por qué las operaciones tensoriales habituales se modelan sobre el cuerpo de los números reales.

El prerrequisito es la Lección 10: Leer una derivación línea por línea, donde el primer paso algebraico roto se convirtió en una pista de depuración. Aquí la pregunta aparece un poco antes: ¿qué pasos algebraicos son válidos desde el principio? El Mathematics for Machine Learning companion oficial sitúa esta lección en la Sección 2.4 del book PDF. Las definiciones, ejemplos, código, visualización e interpretación de IA que siguen son originales.

Antes de una operación, pregunta dónde vive su resultado

Una operación es más que un símbolo como ++ o ×\times. También promete algo sobre sus entradas y su salida. Si SS es un conjunto y ⊙\mathbin{\odot} es una operación, clausura significa

⊙:S×S→S.\mathbin{\odot}: S\times S\to S.

La flecha indica que entran dos miembros de SS y sale otro miembro de SS. Si el resultado puede salir de SS, una expresión que empezó en SS deja de ser una expresión completamente interna a ese sistema.

Por ejemplo, los enteros no negativos

N0={0,1,2,3,…}\mathbb{N}_0=\{0,1,2,3,\ldots\}

son cerrados bajo la suma: 4+7=114+7=11 sigue siendo no negativo. Pero no son cerrados bajo la resta: 4−7=−34-7=-3 sale del conjunto. La clausura siempre es relativa a una operación concreta; el mismo conjunto puede ser cerrado para una operación y no serlo para otra.

Mapa de validez de operaciones

Cada estructura añade una garantía

Lee de izquierda a derecha: un cuerpo conserva todas las garantías mostradas para un anillo y añade una regla sobre la división por escalares no nulos.

Los grupos, anillos y cuerpos añaden garantías de operación Tres tarjetas conectadas muestran que un grupo tiene una operación con clausura, asociatividad, identidad e inversos. Un anillo añade una segunda operación y distributividad. Un cuerpo añade inversos multiplicativos para todo elemento no nulo.más garantías algebraicasGroupuna operación ⊙✓ clausura: x ⊙ y permanece en G✓ asociatividad✓ elemento identidad✓ inverso para cada xPuedes combinar y deshacer.Ringsuma + multiplicación✓ la suma forma un grupo✓ la multiplicación es cerrada✓ la multiplicación es asociativa✓ leyes distributivasLa división todavía puede fallar.Fieldun anillo con división✓ todas las garantías del anillo✓ 1 es la identidad multiplicativa✓ todo x no nulo tiene x⁻¹Los escalares reales viven aquí.
Las estructuras algebraicas son contratos: cada garantía adicional hace seguras más transformaciones y reordenamientos.
Equivalente semántico del mapa de validez de operaciones
EstructuraOperacionesGarantíasConsecuencia práctica
GrupoUna operación, ⊙Clausura, asociatividad, identidad, inversoCombinar y deshacer elementos bajo ⊙.
AnilloSuma y multiplicaciónLa suma es un grupo; la multiplicación distribuye sobre la sumaExpandir y reagrupar la aritmética, pero la división no es automática.
CuerpoSuma y multiplicaciónUn anillo donde todo elemento no nulo tiene inverso multiplicativoLos escalares no nulos se pueden dividir en combinaciones lineales.

El mapa es una promesa compacta sobre lo que aporta cada nombre. No afirma que todo conjunto con un símbolo familiar sea automáticamente un grupo, anillo o cuerpo. Aún tenemos que comprobar las reglas pertinentes.

Los grupos mantienen una operación navegable

Los enteros con la suma, (Z,+)(\mathbb{Z},+), forman un grupo. La identidad es 00, y el inverso de 77 es −7-7 porque 7+(−7)=07+(-7)=0. Los enteros no negativos con la suma no forman un grupo: tienen una identidad, pero el inverso de 77 sería −7-7, que no pertenece a N0\mathbb{N}_0.

Los números reales con la multiplicación, (R,×)(\mathbb{R},\times), tampoco forman un grupo porque 00 no tiene inverso multiplicativo. Al quitar el cero, el resultado (R∖{0},×)(\mathbb{R}\setminus\{0\},\times) es un grupo abeliano: la multiplicación es asociativa y conmutativa, 11 es la identidad y todo número real no nulo tiene recíproco.

Por tanto, el inverso responde a una pregunta concreta: ¿se puede deshacer esta operación sin salir del mismo conjunto? Es útil en las transformaciones, pero solo para una operación cada vez. Un grupo bajo la suma no autoriza automáticamente la división.

Los anillos añaden una segunda operación

Un anillo mantiene juntas la suma y la multiplicación. En la convención usada aquí, un anillo tiene una identidad multiplicativa 11 y sigue estas reglas:

  • sus elementos forman un grupo abeliano bajo la suma;
  • la multiplicación es cerrada y asociativa;
  • la multiplicación distribuye sobre la suma:
a(b+c)=ab+ac,(a+b)c=ac+bc.a(b+c)=ab+ac, \qquad (a+b)c=ac+bc.

Los enteros Z\mathbb{Z} son un anillo bajo la suma y la multiplicación ordinarias. Por ejemplo, la multiplicación distribuye sobre la suma porque

3(4+(−2))=3⋅2=63(4+(-2)) = 3\cdot 2 = 6

y

3⋅4+3⋅(−2)=12−6=6.3\cdot4 + 3\cdot(-2)=12-6=6.

Pero Z\mathbb{Z} no es un cuerpo. El número 22 no tiene inverso multiplicativo dentro de los enteros: la ecuación 2q=12q=1 exigiría q=1/2q=1/2, que no es un entero. Un anillo permite sumar, multiplicar y distribuir; no promete que se pueda dividir por todo elemento no nulo.

Los cuerpos completan el álgebra escalar

Un cuerpo es un anillo conmutativo en el que todo elemento no nulo tiene un inverso multiplicativo. Los números racionales Q\mathbb{Q} y los números reales R\mathbb{R} son cuerpos. Los enteros no lo son.

La palabra «cuerpo» se refiere a los escalares, no a la forma de un tensor. Un vector de Rn\mathbb{R}^n tiene nn coordenadas reales; una matriz de Rm×n\mathbb{R}^{m\times n} tiene mnmn coordenadas reales. Sus entradas proceden de un cuerpo aunque los vectores y las matrices sean objetos de tipos distintos.

Esta distinción importa cuando una derivación mueve un escalar a través de una suma o divide por un coeficiente no nulo. En un cuerpo, esos pasos cuentan con el soporte algebraico requerido. En un anillo, algunos son válidos y otros pueden no serlo.

Ejemplo trabajado: verifica las reglas con números pequeños

Usa dos pruebas pequeñas. Primero, la suma módulo 44 tiene los elementos {0,1,2,3}\{0,1,2,3\}. El resultado de 3+2=53+2=5 se representa como 11 después de volver al inicio. La identidad es 00 y los inversos aditivos son

0−1=0,1−1=3,2−1=2,3−1=1,0^{-1}=0,\qquad 1^{-1}=3,\qquad 2^{-1}=2,\qquad 3^{-1}=1,

donde el superíndice significa inverso bajo la suma modular. Después, comprueba una identidad de vectores reales en la que se apoya una capa lineal. Sea

x=[2−1],y=[13],λ=1.5.x=\begin{bmatrix}2\\-1\end{bmatrix}, \qquad y=\begin{bmatrix}1\\3\end{bmatrix}, \qquad \lambda=1.5.

Entonces

λ(x+y)=1.5[32]=[4.53],\lambda(x+y) =1.5\begin{bmatrix}3\\2\end{bmatrix} =\begin{bmatrix}4.5\\3\end{bmatrix},

mientras que

λx+λy=[3−1.5]+[1.54.5]=[4.53].\lambda x+\lambda y =\begin{bmatrix}3\\-1.5\end{bmatrix} +\begin{bmatrix}1.5\\4.5\end{bmatrix} =\begin{bmatrix}4.5\\3\end{bmatrix}.

Los dos caminos coinciden porque la multiplicación escalar distribuye sobre la suma de vectores. La identidad no es una coincidencia ligada a estos valores concretos: es una de las reglas que hacen de Rn\mathbb{R}^n un espacio vectorial sobre el cuerpo R\mathbb{R}.

Por qué las operaciones tensoriales suponen un cuerpo

La mayoría de los cálculos de redes neuronales usa vectores, matrices y tensores de dimensiones superiores cuyas entradas son aproximaciones de punto flotante a números reales. Por ejemplo, una capa densa tiene la forma

y=Wx+b,W∈Rm×n,x∈Rn,b,y∈Rm.y=Wx+b, \qquad W\in\mathbb{R}^{m\times n},\quad x\in\mathbb{R}^{n},\quad b,y\in\mathbb{R}^{m}.

El producto matriz-vector se expande en sumas y multiplicaciones de escalares reales. La suma del sesgo usa después la misma estructura aditiva. Como los escalares se modelan como elementos de R\mathbb{R}, las reglas habituales de reagrupación y distribución explican por qué las implementaciones equivalentes producen el mismo resultado matemático.

Por eso las comprobaciones de forma y las comprobaciones algebraicas son preguntas distintas:

  • Compatibilidad de forma: la dimensión interna de WW y xx coincide, así que cada producto punto tiene el número correcto de términos.
  • Validez escalar: las entradas usan un sistema aritmético cuyas reglas de suma, multiplicación y combinación escalar son las esperadas.

PyTorch hace visibles las dos capas del contrato. Un tensor lleva dtype, dispositivo y disposición, y torch.matmul cambia de comportamiento según sus entradas sean vectores, matrices o matrices por lotes; consulta la documentación de Tensor Attributes y la referencia de torch.matmul. Las reglas de forma de la biblioteca no sustituyen al modelo de cuerpo. Implementan una operación tensorial concreta cuya aritmética escalar normalmente pretende aproximar la aritmética real.

Esta es la razón algebraica por la que un sistema de entrenamiento puede formar combinaciones lineales de características, pesos y actualizaciones. El cálculo añade otra capa: una operación también debe ser diferenciable, o tener un subgradiente o una regla de retropropagación definida, para que la diferenciación automática pueda usarla. Un cuerpo hace coherente la aritmética hacia delante; no garantiza que toda función sea diferenciable.

Caso límite: los floats de máquina solo imitan al cuerpo real

Los números reales forman un cuerpo en matemáticas. Un dtype finito de ordenador es un conjunto acotado y redondeado de patrones de bits, así que no puede satisfacer exactamente todas las reglas de los números reales. Se derivan tres efectos prácticos:

  1. Redondeo: valores como 0.1 normalmente no tienen una representación binaria exacta, por lo que dos caminos matemáticamente iguales pueden diferir en sus últimos bits.
  2. Desbordamiento: multiplicar dos valores float32 grandes puede producir inf, un valor fuera del modelo habitual de números reales usado en la derivación.
  3. Aritmética excepcional no válida: expresiones como inf - inf producen nan, así que incluso los reordenamientos conocidos requieren comprobaciones numéricas.

Esto no contradice el teorema de que R\mathbb{R} es un cuerpo. Advierte de que float32 es una aproximación a R\mathbb{R}, con un rango finito y un comportamiento de redondeo definido por la implementación. En la práctica, usa tolerancias adecuadas, controla los valores no finitos y trata las reglas de cuerpo como el contrato matemático que la implementación aproxima.

Hay otra fuente habitual de confusión en el código de arrays. En NumPy, x * y significa multiplicación elemento a elemento, mientras que A @ x significa multiplicación matricial. Ambas pueden ser operaciones válidas, pero tienen significados matemáticos y requisitos de forma distintos. Un broadcasting correcto no demuestra que la operación coincida con el álgebra prevista por el modelo.

Una pequeña auditoría algebraica para el código del modelo

Cuando una derivación o expresión tensorial parece sospechosa, audítala en este orden:

  1. Nombra el conjunto. ¿Son números reales, enteros, residuos modulares, probabilidades u otra cosa?
  2. Nombra cada operación. Distingue suma, multiplicación escalar, multiplicación elemento a elemento y multiplicación matricial.
  3. Comprueba la clausura. ¿Cada resultado permanece en el conjunto y la forma previstos?
  4. Comprueba la garantía requerida. ¿Se está usando un inverso, un paso distributivo o un intercambio conmutativo? Identifica la regla que lo autoriza.
  5. Comprueba el comportamiento de máquina. Busca redondeo, desbordamiento, nan, inf y comparaciones sensibles a la tolerancia.

Esta auditoría convierte «la fórmula debería funcionar» en una afirmación comprobable. La siguiente lección usa la misma idea para decidir si un conjunto de representaciones es un espacio vectorial. Allí, la clausura bajo la suma de vectores y la multiplicación escalar será la prueba central.

Comprueba lo que has entendido

Pregunta 1

¿Por qué la clausura siempre se expresa con respecto a una operación concreta?

Mostrar la solución paso a paso

La clausura pregunta si el resultado de una operación determinada permanece en el conjunto. Por ejemplo, N0\mathbb{N}_0 es cerrado bajo la suma porque 4+7=114+7=11 sigue en el conjunto, pero no bajo la resta porque 4−7=−34-7=-3 sale de él. El conjunto no cambió; cambió la operación.

Pregunta 2

¿Forma (N₀, +) un grupo? Identifica la primera regla de grupo que falla.

Mostrar la solución paso a paso

El conjunto tiene clausura bajo la suma, asociatividad e identidad 00. El problema es la regla del inverso: el inverso de 77 bajo la suma es −7-7, pero −7∉N0-7\notin\mathbb{N}_0. Por tanto, la estructura no es un grupo aunque se cumplan varias de las demás reglas de grupo.

Pregunta 3

¿Por qué Z es un anillo pero no un cuerpo bajo la suma y la multiplicación ordinarias?

Mostrar la solución paso a paso

Primero, Z\mathbb{Z} es un grupo aditivo: todo entero tiene un opuesto entero, y la suma es asociativa con identidad 00. La multiplicación de enteros es cerrada y asociativa, tiene identidad 11 y distribuye sobre la suma, así que se cumplen las reglas de anillo. Un cuerpo exigiría además que todo entero no nulo tuviera un recíproco entero. Como 2−1=1/2∉Z2^{-1}=1/2\notin\mathbb{Z}, falla el requisito de cuerpo.

Pregunta 4

En la aritmética módulo 5, ¿cuál es el inverso multiplicativo de 4 y cómo puedes verificarlo?

Mostrar la solución paso a paso

Prueba los residuos no nulos hasta que un producto sea congruente con 11. Como 4⋅4=164\cdot4=16 y 16≡1(mod5)16\equiv1\pmod 5, el inverso de 4 módulo 5 es 4. La verificación consiste en calcular 4⋅44\cdot4 y reducir después el resultado mediante el módulo.

Pregunta 5

Para x = [2, -1]ᵀ, y = [1, 3]ᵀ y λ = 1.5, calcula λ(x + y) y λx + λy.

Mostrar la solución paso a paso

Suma primero: x+y=[3,2]Tx+y=[3,2]^{\mathsf T}. Al escalar, λ(x+y)=1.5[3,2]T=[4.5,3]T\lambda(x+y)=1.5[3,2]^{\mathsf T}=[4.5,3]^{\mathsf T}. Por separado, λx=[3,−1.5]T\lambda x=[3,-1.5]^{\mathsf T} y λy=[1.5,4.5]T\lambda y=[1.5,4.5]^{\mathsf T}. La suma de esos vectores también da [4.5,3]T[4.5,3]^{\mathsf T}, lo que verifica la distributividad en este ejemplo.

Pregunta 6

Un programa de NumPy usa A * x cuando la derivación requiere A @ x. ¿Qué debes revisar antes de aceptar el resultado?

Mostrar la solución paso a paso

Revisa la operación prevista y las formas. En NumPy, * multiplica las entradas elemento a elemento, posiblemente mediante broadcasting, mientras que @ realiza un producto matricial y exige dimensiones internas compatibles. Por tanto, un resultado obtenido correctamente por broadcasting puede ser numéricamente válido pero semánticamente incorrecto. Compara el código con la ecuación del modelo y comprueba que la forma de salida coincide con el vector o la matriz derivados.

Pregunta 7

¿Por qué una identidad tensorial de valores reales puede discrepar en los últimos bits aunque el álgebra sea válida sobre R?

Mostrar la solución paso a paso

La derivación trata las entradas como números reales exactos, pero un dtype de coma flotante de máquina almacena aproximaciones acotadas y redondeadas. Los valores decimales como 0.1 pueden ser inexactos desde el principio, y distintos órdenes de evaluación pueden redondear en pasos diferentes. La identidad sigue siendo matemáticamente válida; la implementación debe comparar los resultados con una tolerancia dependiente de la escala, controlar nan e inf y evitar interpretar una discrepancia a nivel de bits como un fallo algebraico.

Fuentes

  1. Mathematics for Machine Learning companion website
  2. Mathematics for Machine Learning book PDF
  3. NumPy documentation: numpy.allclose
  4. PyTorch documentation: Tensor Attributes
  5. PyTorch documentation: torch.matmul