Curso de Matemáticas para IA · Lección 16 de 180
Multiplicación escalar para IA: aumenta, reduce o invierte un vector
Escala vectores coordenada a coordenada, predice dirección y magnitud, y conecta la misma operación con embeddings, tasas de aprendizaje y NumPy.
Un vector de dirección puede indicar hacia dónde debe ir una actualización del modelo sin indicar qué tan grande debe ser el movimiento. Un solo número aporta esa segunda decisión. Si la dirección es , multiplicarla por produce el movimiento más corto . Multiplicarla por conserva su longitud, pero apunta en la dirección contraria.
Ese número es un escalar: un valor que se aplica a cada coordenada. Al terminar esta lección podrás calcular productos escalar–vector, predecir su dirección y magnitud a partir del signo y el valor absoluto del escalar, implementarlos correctamente en NumPy y reconocer el mismo mecanismo dentro de una actualización escalada por la tasa de aprendizaje o de una contribución ponderada de un embedding.
Resultado de aprendizaje: Escalar un vector y predecir cambios en su dirección y magnitud.
La lección 15: Suma de vectores para la IA estableció que los vectores se combinan sumando las coordenadas correspondientes. La multiplicación escalar prepara uno de esos vectores antes de la suma: controla la intensidad con la que contribuye. El sitio web complementario oficial de Mathematics for Machine Learning introduce la multiplicación por un escalar en la sección 2.2 del libro. Los ejemplos, el código, el rayo interactivo, las aplicaciones de IA y las evaluaciones siguientes son originales.
Un número alcanza cada coordenada
Sea un vector real con coordenadas , y sea un escalar real. La letra griega (alpha) solo es el nombre de un número; símbolos como , o podrían desempeñar el mismo papel.
La operación conserva la dimensión y el orden de las coordenadas del vector. Un escalar no añade una coordenada, no elige una coordenada ni mezcla coordenadas vecinas. Cambia los valores mediante la misma regla de multiplicación.
Una escala negativa invierte cada coordenada distinta de cero
Toma el vector de actualización
y elige . El símbolo nombra la actualización completa de tres coordenadas. Parte de la definición en lugar de intentar inferir la respuesta solo a partir del signo menos.
Este cálculo separa dos efectos. El valor absoluto —la distancia del escalar al cero— es , por lo que la magnitud del vector pasa a ser 1,5 veces su magnitud original. El signo negativo invierte su dirección. Ninguno de los dos efectos cambia qué característica o parámetro representa cada coordenada.
El signo elige el rayo; el valor absoluto el alcance
En dos dimensiones, dibuja como una flecha desde el origen. Cada múltiplo escalar distinto de cero se encuentra en la misma recta infinita que pasa por esa flecha. Los escalares positivos ocupan el mismo rayo, los negativos el rayo opuesto y el cero colapsa la flecha en el origen.
En esta lección, magnitud significa la longitud euclidiana de la flecha. Para , define
El subíndice 2 distingue esta regla de longitud de otras reglas de magnitud que se estudiarán en una lección posterior. La multiplicación escalar cambia esta magnitud por , no por :
El valor absoluto es esencial porque una magnitud no puede ser negativa. El signo pertenece a la dirección; el valor absoluto, al tamaño.
| Escalar | Dirección de para | Magnitud |
|---|---|---|
| Misma dirección | Más largo por un factor | |
| Misma dirección | Sin cambios | |
| Misma dirección | Más corto por un factor | |
| Sin dirección: el resultado es | Cero | |
| Dirección opuesta | Más corto por un factor | |
| Dirección opuesta | Sin cambios | |
| Dirección opuesta | Más largo por un factor |
Arrastra el escalar de abajo por los siete casos. El vector fijo es , cuya magnitud es . La flecha escalada, la frase de estado y la tabla comienzan con el estado renderizado en el servidor y se actualizan juntas cuando el componente se hace visible.
El estilo de línea y el texto distinguen las flechas sin depender del color. Cuando α = 0, un anillo discontinuo en el origen sustituye a la flecha escalada porque el vector cero no tiene dirección.
| Vector | Escala | Primera coordenada | Segunda coordenada | Magnitud euclidiana | Dirección relativa a v |
|---|---|---|---|---|---|
| Vector base v — flecha sólida | +1 | +4 | -3 | 5 | dirección de referencia |
| Vector escalado αv — flecha discontinua | +1,5 | +6 | -4,5 | 7,5 | la misma que v |
La imagen solo tiene dos dimensiones, pero la regla no. En un embedding de 768 coordenadas, un escalar sigue multiplicando las 768 coordenadas, y la magnitud sigue cambiando por según la regla de longitud euclidiana.
Escalar antes de sumar controla una contribución
La multiplicación escalar resulta especialmente útil junto a la suma de vectores. Supón que un modelo tiene un estado de contexto
y una contribución candidata de embedding
Con un peso , escala primero y después suma:
El peso cambia la intensidad con la que contribuye a esta suma. Un peso elimina esa contribución; un peso negativo contribuye en la dirección contraria. Este es el significado aritmético preciso de “intensidad del embedding”. No garantiza que la salida de una red neuronal completa cambie en proporción directa a : las transformaciones posteriores, la normalización y las operaciones no lineales pueden alterar el efecto posterior.
La regla distributiva explica por qué el escalado de una señal combinada se puede calcular antes o después de sumar sus partes:
En la coordenada , ambos lados equivalen a . Como todas las coordenadas coinciden, los vectores coinciden. La regla relacionada permitirá combinar varios vectores ponderados de forma eficiente en la próxima lección.
Una tasa de aprendizaje escala la dirección propuesta por un optimizador
Considera el paso más sencillo de descenso de gradiente estocástico (SGD), sin momentum ni weight decay. Sea un vector de parámetros y un vector gradiente que apunta hacia un aumento de la pérdida. Una tasa de aprendizaje positiva escala la dirección antes de restarla:
El cálculo diferencial necesario para obtener aparece más adelante en el curso; por ahora, es un vector proporcionado cuya escala podemos inspeccionar directamente.
Esto es una multiplicación escalar seguida de la suma vectorial . La documentación actual de PyTorch SGD expresa el paso final de los parámetros de esta forma, después de cualquier modificación configurada de la dirección de actualización por weight decay, momentum o Nesterov. La precisión de esta afirmación importa: con esas opciones activadas, la tasa de aprendizaje puede escalar una dirección modificada, no el gradiente bruto sin tocar.
Para un pequeño paso numérico, sea
Entonces
Sustituir por duplicaría la magnitud de esta actualización propuesta, manteniendo su dirección. Ese hecho aritmético por sí solo no indica si una tasa de aprendizaje mayor mejora el entrenamiento o permanece estable; esas preguntas dependen de la superficie de pérdida y del comportamiento del optimizador, y corresponden al módulo de optimización posterior.
NumPy multiplica arrays; las listas de Python repiten
multiply de NumPy multiplica los argumentos elemento a elemento, y * es su abreviatura de operador para arrays. Las reglas de broadcasting de NumPy permiten que un escalar actúe sobre el array sin construir un array completo con escalares repetidos.
import numpy as np
vector = np.array([4.0, -3.0, 2.0])
alpha = -1.5
scaled_with_operator = alpha * vector
scaled_with_function = np.multiply(alpha, vector)
print("vector shape:", vector.shape)
print("operator result:", scaled_with_operator)
print("function result:", scaled_with_function)
print("same values:", np.array_equal(
scaled_with_operator, scaled_with_function
))
La salida verificada es
vector shape: (3,)
operator result: [-6. 4.5 -3. ]
function result: [-6. 4.5 -3. ]
same values: True
Una lista normal de Python cambia el significado de *. La documentación de secuencias de Python define la multiplicación por un entero como repetición:
coordinates = [4.0, -3.0, 2.0]
print(2 * coordinates)
print(2 * np.array(coordinates))
[4.0, -3.0, 2.0, 4.0, -3.0, 2.0]
[ 8. -6. 4.]
El primer resultado tiene seis elementos y no es . Convierte las coordenadas numéricas en un array de NumPy antes de usar aritmética de arrays. Un valor no entero como 0.5 * coordinates produce un TypeError en lugar de escalar los elementos.
El escalar ya tiene dos funciones: su signo elige si un vector distinto de cero conserva o invierte la dirección, y su valor absoluto controla la magnitud. Cuando se suman varios vectores escalados de este modo, la multiplicación escalar y la suma vectorial forman una combinación lineal: la construcción que impulsará la próxima lección.
Comprueba tu comprensión
Pregunta 1
Sea v = [−2, 5, 1]ᵀ y α = 3. Calcula αv coordenada a coordenada y después indica su dimensión y dirección relativa a v.
Mostrar la solución paso a paso
Aplica el mismo escalar a cada una de las tres coordenadas:
Por tanto,
La dimensión sigue siendo tres. Como es positivo, el resultado apunta en la misma dirección que el vector original distinto de cero; su magnitud es tres veces la original.
Pregunta 2
Para v = [6, 8]ᵀ, calcula −0.5v y compara su magnitud euclidiana y dirección con las de v.
Mostrar la solución paso a paso
Primero escala las coordenadas:
La magnitud original es . El resultado tiene
Su magnitud es la mitad porque . Su dirección es opuesta porque el escalar es negativo.
Pregunta 3
Un estudiante afirma que 0v apunta en la misma dirección que v porque cero no es negativo. Diagnostica la afirmación y calcula 0v para v = [7, −2]ᵀ.
Mostrar la solución paso a paso
La multiplicación coordenada a coordenada da
La regla del signo se divide en tres casos, no en dos: los escalares positivos conservan la dirección y los negativos la invierten. El cero colapsa cada coordenada en el vector cero, cuya flecha no tiene longitud y, por tanto, tampoco dirección. El razonamiento del estudiante trata erróneamente el cero como un escalar positivo.
Pregunta 4
Partiendo de la fórmula de magnitud euclidiana, muestra por qué ‖αv‖₂ usa |α| en lugar de α para v = [v₁, v₂]ᵀ.
Mostrar la solución paso a paso
Sustituye las dos coordenadas escaladas en la definición de magnitud:
Para un escalar real, . Escribir sin el valor absoluto daría incorrectamente una magnitud negativa cuando .
Pregunta 5
Un contexto es c = [2, 0, −1]ᵀ y una contribución de embedding es e = [−2, 4, 2]ᵀ. Con α = 0.25, calcula c + αe y explica exactamente qué controla α.
Mostrar la solución paso a paso
Escala la contribución antes de sumarla:
Después suma las coordenadas correspondientes:
El escalar hace que la contribución de este vector de embedding sea un cuarto de su magnitud original, conservando su dirección. Controla el peso aritmético en esta suma; por sí solo no garantiza un cambio proporcional en la salida de cada capa posterior del modelo.
Pregunta 6
Para θ = [3, −1]ᵀ, gradiente g = [2, 4]ᵀ y tasa de aprendizaje η = 0.1, calcula la actualización SGD simple θnext = θ − ηg en tres pasos explícitos.
Mostrar la solución paso a paso
Primero escala el gradiente:
Segundo, invierte esa dirección escalada para un paso de descenso:
Tercero, suma la actualización a los parámetros:
Este cálculo supone la actualización simple mostrada en el enunciado. Momentum, weight decay u otra regla del optimizador pueden modificar la dirección antes del paso de parámetros escalado por la tasa de aprendizaje.
Pregunta 7
¿Por qué 3 * [1, −2] no calcula el múltiplo escalar [3, −6] en Python, y qué expresión de NumPy realiza la operación prevista?
Mostrar la solución paso a paso
[1, -2] es una lista de Python, que es una secuencia. Multiplicarla por el entero 3 repite esa secuencia tres veces:
3 * [1, -2]
# [1, -2, 1, -2, 1, -2]El resultado tiene seis elementos, así que no puede ser el vector de dos coordenadas . Crea un array numérico de NumPy y después multiplícalo:
import numpy as np
3 * np.array([1, -2])
# array([ 3, -6])NumPy aplica 3 elemento a elemento mediante broadcasting escalar, tal como indica la definición matemática.
Pregunta 8
Sea v = [2, −1]ᵀ. Verifica (2 + (−0.5))v = 2v + (−0.5)v calculando ambos lados y después nombra la propiedad.
Mostrar la solución paso a paso
En el lado izquierdo, suma primero los escalares:
En el lado derecho, escala dos veces y después suma:
Ambos caminos producen el mismo vector. Es la distributividad de la suma de escalares sobre la multiplicación escalar: .