Curso de Matemáticas para IA · Lección 15 de 180
Suma de vectores para la IA: cómo las actualizaciones residuales combinan señales
Aprende a sumar vectores componente a componente, explora su geometría de paralelogramo y detecta errores de forma, broadcasting y alineación de características en NumPy.
Una capa de red neuronal recibe un estado con tres coordenadas
y calcula una actualización
Una conexión residual no elige entre el estado anterior y la actualización. Suma las coordenadas correspondientes y produce . La primera coordenada baja, la segunda sube y la tercera sube; una sola regla gestiona los tres cambios.
Al terminar esta lección podrás sumar vectores componente a componente, interpretar la misma operación como un desplazamiento o una actualización de características, verificarla en NumPy y rechazar sumas cuyas formas resulten compatibles por casualidad aunque sus significados de coordenadas no estén alineados.
Resultado de aprendizaje: Sumar vectores componente a componente e interpretar el desplazamiento o la mezcla de características resultante.
La lección 14: Vectores como datos de IA estableció que un vector es una representación ordenada: la coordenada lleva una característica o señal aprendida concreta. La suma de vectores depende de ese orden. El Mathematics for Machine Learning companion oficial desarrolla los vectores fila y columna y la suma elemento a elemento de matrices en la sección 2.2. Esta lección especializa la regla para vectores; su ejemplo de estado del modelo, derivación, código, geometría interactiva y evaluaciones son originales.
Una regla de coordenadas combina todo el vector
Sean dos vectores reales con la misma dimensión positiva . Escribe sus coordenadas como y , donde va de 1 a .
La expresión coordenadas correspondientes implica dos requisitos. Primero, los vectores deben tener la misma dimensión. Segundo, cada par debe referirse al mismo sistema de coordenadas: el mismo orden de características, unidades y convención de representación. Las matemáticas establecen el requisito dimensional. Una canalización de datos también debe hacer cumplir el requisito semántico.
La suma no concatena dos vectores. Concatenar y produciría un vector de cuatro coordenadas. Sumarlos conserva dos coordenadas:
Sigue una actualización residual sin saltarte ninguna coordenada
Volvamos a los vectores iniciales. Supón que las tres posiciones pertenecen al mismo espacio de representación aprendido. Calcula la suma fila a fila:
| Coordenada | Estado existente | Actualización | Salida |
|---|---|---|---|
| 1 | 2.0 | −0.5 | 1.5 |
| 2 | −1.0 | 1.5 | 0.5 |
| 3 | 0.5 | 1.0 | 1.5 |
Una actualización positiva eleva una coordenada, una negativa la reduce y una actualización cero la deja sin cambios. Estas descripciones son aritméticas, no interpretaciones semánticas de lo que “significa” una coordenada neuronal interna. Las representaciones aprendidas pueden distribuir la información entre muchas coordenadas, de modo que la suma por sí sola no revela un concepto legible para una persona.
La diagonal y la ruta en dos pasos llegan al mismo punto
En dos dimensiones, un vector puede dibujarse como una flecha desde el origen. Para sumar geométricamente y , recorre y después coloca una copia de en su extremo. El punto final es porque el desplazamiento horizontal es y el vertical es .
El orden puede invertirse. Recorrer y después una copia trasladada de lleva al mismo punto final. Las dos rutas forman lados adyacentes de un paralelogramo; su diagonal desde el origen es la suma. Mueve las cuatro coordenadas siguientes para probar direcciones positivas, negativas, paralelas y que se cancelan.
Las dos rutas de extremo a extremo terminan en las coordenadas de la fila de la suma. La flecha b trasladada y discontinua comienza en a; la flecha a trasladada y punteada comienza en b.
| Vector | Coordenada horizontal | Coordenada vertical | Papel geométrico |
|---|---|---|---|
| Vector a — flecha continua | +3 | +1 | Primer desplazamiento y un lado |
| Vector b — flecha discontinua | -1 | +2 | Segundo desplazamiento y un lado |
| Suma a + b — diagonal gruesa | +2 | +3 | Punto final y diagonal |
El diagrama usa dos coordenadas porque una página plana puede mostrarlas. La regla por componentes no depende de una imagen: para un vector en , suma cada una de las coordenadas correspondientes, aunque sea demasiado grande para dibujarlo.
Tres hechos algebraicos se siguen coordenada a coordenada
La suma de vectores hereda propiedades conocidas de la suma de números reales. La razón es local: cada identidad vectorial puede comprobarse en la coordenada .
El orden no cambia la suma. Como para números reales,
Todas las coordenadas coinciden, así que . Esto es la conmutatividad, y el paralelogramo muestra el mismo hecho como dos rutas hacia un punto final.
La agrupación no cambia la suma de tres vectores. Para otro vector ,
Esta asociatividad produce exactamente el mismo vector matemático con cualquiera de las dos agrupaciones. El código de precisión finita puede acumular errores de redondeo ligeramente distintos cuando cambia el orden de muchas sumas. Ni la asociatividad matemática ni la cercanía numérica autorizan a mezclar sistemas de coordenadas.
El vector cero no cambia nada. Sea . Entonces
por lo que . Una rama residual que devuelve el vector cero no produce ningún cambio numérico en ese punto de suma.
Las conexiones residuales usan exactamente este mecanismo de suma
El artículo original de ResNet escribe un bloque residual como : una rama aprendida calcula , mientras que un atajo lleva hasta la suma. Los autores especifican que es una suma elemento a elemento y que los dos términos necesitan dimensiones iguales. Cuando las dimensiones no coinciden, su arquitectura puede usar una proyección aprendida en el atajo antes de sumar.
El Transformer original ofrece otro ejemplo concreto. Su codificador aplica una conexión residual alrededor de cada subcapa:
En esa arquitectura, las salidas de la incrustación y de la subcapa usan la misma dimensión , por lo que la suma coordenada a coordenada está definida. La normalización posterior a la suma es otra operación; la suma de vectores termina en .
Estos ejemplos justifican una afirmación de implementación acotada: las conexiones residuales combinan una entrada y una actualización compatibles mediante suma elemento a elemento. La ecuación por sí sola no demuestra que todas las características de entrada sobrevivan sin cambios, que cada coordenada tenga un significado aislado ni que dos arrays cualesquiera de la misma longitud sean un par residual válido.
NumPy suma valores y difunde formas
La operación add de NumPy suma sus argumentos elemento a elemento. Para dos arrays unidimensionales con la misma forma, np.add(state, update) y state + update implementan directamente la regla por componentes:
import numpy as np
state = np.array([2.0, -1.0, 0.5])
update = np.array([-0.5, 1.5, 1.0])
if state.shape != update.shape:
raise ValueError("A residual update must match the state shape")
combined = np.add(state, update)
print("state shape:", state.shape)
print("update shape:", update.shape)
print("combined:", combined)
La salida verificada es
state shape: (3,)
update shape: (3,)
combined: [1.5 0.5 1.5]
Un lote conserva un estado por fila. Dos arrays compatibles de forma (2, 3) suman cada actualización a su estado correspondiente:
batch = np.array([
[2.0, -1.0, 0.5],
[0.0, 3.0, -2.0],
])
updates = np.array([
[-0.5, 1.5, 1.0],
[ 1.0, -1.0, 0.5],
])
print("batch shape:", batch.shape)
print("batch sums:\n", batch + updates)
La salida verificada es
batch shape: (2, 3)
batch sums:
[[ 1.5 0.5 1.5]
[ 1. 2. -1.5]]
La primera fila de salida es el ejemplo desarrollado. La segunda procede de .
Una operación de arrays correcta aún puede ser una suma incorrecta
NumPy admite intencionadamente el broadcasting: si las formas difieren pero cumplen sus reglas de compatibilidad, un array más pequeño puede actuar sobre uno mayor. Sumar una actualización de forma (3,) a un lote de forma (2, 3) funciona y aplica los mismos tres valores a ambas filas:
broadcast_update = np.array([0.5, 0.0, -0.5])
result = batch + broadcast_update
print("broadcast shape:", result.shape)
print("broadcast sums:\n", result)
broadcast shape: (2, 3)
broadcast sums:
[[ 2.5 -1. 0. ]
[ 0.5 3. -2.5]]
Puede ser la operación prevista: por ejemplo, una actualización compartida para cada fila del lote. No es una suma entre dos vectores individuales de la misma forma y resulta peligrosa cuando la expansión adicional fue accidental. Valida el contrato que pretende tu modelo, no solo las formas que NumPy acepta.
Las formas coincidentes tampoco bastan. Considera estos arrays:
NumPy devuelve , pero su primer cálculo suma clicks con returns. Ninguna comprobación numérica de formas puede recuperar las etiquetas que faltan. Reordena un vector según la convención de coordenadas del otro —o rechaza la operación— antes de sumar.
La suma de vectores es ahora más que una fórmula: es un contrato de coordenadas, una ruta geométrica y la operación que combina señales dentro de un bloque residual. La próxima lección controlará la intensidad de un vector mediante la multiplicación por un escalar; la suma de hoy proporciona la operación a la que acabarán uniéndose esas señales escaladas.
Comprueba tu comprensión
Pregunta 1
Suma a = [3, −2, 1]ᵀ y b = [−5, 4, 0.5]ᵀ. Muestra cada cálculo de coordenadas e indica la dimensión del resultado.
Mostrar la solución paso a paso
Ambas entradas tienen tres coordenadas, así que su suma —si se calcula coordenada a coordenada— también estará en .
Reúne los resultados en su orden original:
La suma cambió los valores, pero no insertó ni eliminó ninguna coordenada.
Pregunta 2
Para a = (2, 1) y b = (−1, 3), sigue la ruta de extremo a extremo a y después b. ¿Dónde termina y por qué ese punto es la diagonal del paralelogramo?
Mostrar la solución paso a paso
Empieza en el origen . Seguir lleva a . Una copia trasladada de cambia después la coordenada horizontal en y la vertical en :
Invertir el orden produce
Las dos rutas son los dos pares de lados paralelos de un paralelogramo. Como ambas llegan a , la flecha desde el origen hasta es su diagonal y representa .
Pregunta 3
Explica coordenada a coordenada por qué a + b = b + a para cualesquiera a, b ∈ ℝⁿ. No te bases únicamente en una imagen bidimensional.
Mostrar la solución paso a paso
Elige una coordenada arbitraria . Por la definición de suma de vectores,
La suma de números reales es conmutativa, así que . Aplica la definición vectorial en sentido inverso para obtener
Por tanto, las dos sumas coinciden en la coordenada arbitraria . El argumento vale para todas las coordenadas, así que los vectores son iguales: . Este razonamiento funciona en cualquier dimensión finita, incluidas las dimensiones que no se pueden dibujar.
Pregunta 4
Una rama residual devuelve [0, 0, 0, 0]ᵀ para un estado x ∈ ℝ⁴. Calcula la salida x + 0 y nombra el supuesto necesario antes de decir que la rama no produjo ningún cambio significativo.
Mostrar la solución paso a paso
Escribe . La suma coordenada a coordenada da
Así, el punto de suma no produce ningún cambio numérico. Decir que no hubo “ningún cambio significativo” supone además que el estado y la actualización cero usan la misma representación de cuatro coordenadas y que ninguna otra operación —como la normalización— cambia el valor después.
Pregunta 5
¿Puede [1, 2]ᵀ + [3, 4, 5]ᵀ ser una suma de vectores? Diagnostica el problema y después indica una solución a nivel de arquitectura para un bloque residual con dimensiones incompatibles.
Mostrar la solución paso a paso
El primer vector pertenece a y el segundo a . La suma componente a componente necesitaría una entrada correspondiente para cada coordenada de salida, pero al primer vector le falta una tercera coordenada. Por tanto, la suma vectorial no está definida tal como se ha escrito.
Una arquitectura residual puede mapear primero una rama a la dimensión de la otra. Por ejemplo, una proyección podría producir a partir de . Entonces la suma definida sería , siempre que la proyección establezca también la semántica de coordenadas prevista. El relleno es otra opción específica de la arquitectura, pero descartar o inventar silenciosamente una coordenada no es suma de vectores.
Pregunta 6
Dos arrays de forma (3,) usan los órdenes de características (clicks, purchases, returns) y (returns, clicks, purchases). ¿Por qué es inválido sumarlos posición a posición y cómo debe prepararse el segundo array?
Mostrar la solución paso a paso
La igualdad de formas empareja la posición 1 con la posición 1, pero las etiquetas muestran que eso sumaría clicks con returns. Las posiciones 2 y 3 también están desalineadas. La operación produciría números sin una interpretación coherente de características.
Primero asocia cada valor del segundo array con su etiqueta. Después reordena esos valores etiquetados según
la convención del primer array. Solo cuando ambos arrays coincidan en dimensión, orden y unidades debe ejecutarse la suma posición a posición. NumPy no puede hacer esta comprobación semántica a partir de arrays numéricos sin etiquetas de características.
Pregunta 7
Un lote tiene forma (4, 3) y la actualización tiene forma (3,). NumPy acepta batch + update. ¿Qué forma tiene la salida, qué cálculo se realiza y qué pregunta debe responder el programador antes de confiar en ella?
Mostrar la solución paso a paso
NumPy compara las dimensiones finales. Las dimensiones finales son ambas 3, mientras que la dimensión inicial que falta en update actúa como 1 y puede expandirse por las cuatro filas del lote. Por tanto, la salida tiene forma (4, 3).
Para cada índice de fila y coordenada , NumPy calcula
El programa aplica la misma actualización de tres coordenadas a las cuatro filas. El programador debe decidir si se pretendía una actualización compartida. Un broadcasting correcto demuestra compatibilidad de formas según las reglas de NumPy; no demuestra que el contrato del modelo pretendiera reutilizar una actualización para cada elemento del lote.
Pregunta 8
Una subcapa recibe x = [1, −2, 3]ᵀ y devuelve F(x) = [0.5, 2, −1]ᵀ. Calcula la suma residual y explica con precisión qué establece y qué no establece la aritmética.
Mostrar la solución paso a paso
Suma las coordenadas correspondientes:
La aritmética establece que la entrada compatible y la salida de la subcapa se combinaron componente a componente en un resultado de tres coordenadas. No identifica el significado humano de ninguna coordenada, no demuestra que la información original pueda recuperarse por completo ni muestra qué hará una normalización o capa posterior. Esas son propiedades de la representación aprendida y de la arquitectura circundante, no consecuencias del signo más por sí solo.