Inicio · Parte 16 — Matemática de Transformers, modelos generativos, grafos y RL
Attention(Q,K,V) = softmax(QKᵀ/√d_k)·V
Var(q·k) ≈ d·σ⁴ con entradas iid
dividir por √d_k devuelve la varianza a escala 1
La atención escalada calcula la similitud entre cada consulta y cada clave mediante producto escalar, normaliza con softmax y usa los pesos resultantes para promediar los valores. Es un promedio ponderado por similitud, y toda la fórmula cabe en esa frase.
La única parte que no es evidente es el factor 1/√d_k, y su justificación es estadística. Si las componentes de q y k son independientes con varianza σ², el producto escalar de d términos tiene varianza proporcional a d, y por tanto desviación proporcional a √d. Con d = 256 eso son 16 veces más dispersión que con d = 1.
El efecto sobre la softmax es destructivo. Con puntuaciones muy dispersas, la exponencial concentra casi toda la masa en el máximo: la distribución se vuelve prácticamente one-hot, la atención deja de ser un promedio y se convierte en una selección dura. Peor aún, en esa región la softmax tiene gradiente casi nulo y el mecanismo deja de aprender.
Dividir por √d_k cancela exactamente el crecimiento. La comparación numérica lo muestra: con d = 256 sin escalar, un peso se lleva prácticamente todo y otro cae a 8e-06; con la escala, los pesos quedan repartidos y el gradiente fluye. Un solo factor en el denominador es lo que hace entrenable la arquitectura.
Puntuaciones y pesos con y sin escala, en dos dimensiones.
d = 8, sin escalar:
puntuaciones: [ 0,4204 ; −1,9767 ; 1,3619 ; 1,2219]
pesos: [0,169955 ; ... ] repartidos
d = 8, escalado:
puntuaciones: [ 0,3541 ; −0,3729 ; 2,3033 ; 0,8469]
pesos: [0,098585 ; ... ] repartidos
d = 256, sin escalar:
puntuaciones: [−9,7106 ; −2,6027 ; 1,9724 ; −15,9423]
pesos: [8e-06 ; ...] ← saturado ✗
d = 256, escalado:
puntuaciones: [−0,7502 ; 1,9863 ; 0,3221 ; 0,5716]
pesos: [0,043279 ; ...] repartidos ✓
Var(q·k) ≈ d·σ⁴ : por eso se divide por √d.
Atención escalada: por qué existe el 1/√d.
python classes/part-16-matematica-de-transformers-modelos-generativos-grafos-y-rl/325-scaled-dot-product-attention/lab.py
compmath run 325
formulad=8_sin_escalard=8_escaladod=256_sin_escalard=256_escaladovarianza_del_producto_puntopor_que_1/√dsintoma_de_saturacionentropia_maxima_4_tokens{
"formula": "softmax(QKᵀ/√d_k)·V",
"d=8_sin_escalar": {
"puntuaciones": [
0.4204,
-1.9767,
1.3619,
1.2219
],
"pesos": [
0.169955,
0.015462,
0.435753,
0.37883
],
"entropia_bits": 1.580263,
"peso_maximo": 0.435753
},
"d=8_escalado": {
"puntuaciones": [
0.3541,
-0.3729,
2.3033,
0.8469
],
"pesos": [
0.098585,
0.047653,
0.692379,
0.161382
],
"entropia_bits": 1.330663,
"peso_maximo": 0.692379
},
"d=256_sin_escalar": {
"puntuaciones": [
-9.7106,
-2.6027,
1.9724,
-15.9423
],
"pesos": [
8e-06,
0.010201,
0.989791,
0.0
],
"entropia_bits": 0.082274,
"peso_maximo": 0.989791
},
"d=256_escalado": {
"puntuaciones": [
-0.7502,
1.9863,
0.3221,
0.5716
],
"pesos": [
0.043279,
0.667945,
0.126469,
0.162308
],
"entropia_bits": 1.387977,
"peso_maximo": 0.667945
},
"varianza_del_producto_punto": "d·σ⁴ si las entradas son iid"
}
Todos los Transformers, atención en visión y audio, mecanismos de recuperación y modelos de secuencias modernos.
Esta parte es la traducción matemática directa de los papers que definen el estado del arte actual.
10.48550/arxiv.1706.03762 verificado en DataCite (2026-08-19).10.48550/arxiv.2207.09238 verificado en DataCite (2026-08-19).