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

Los productos punto convierten características en puntuaciones

Desarrolla un producto punto para ver las contribuciones de las características, construye la puntuación de un clasificador lineal y depura errores sobre el orden y las probabilidades con NumPy.

Comparte este artículo

Un modelo de IA puede imprimir una puntuación como 1.51.5 sin mostrar qué características de entrada hicieron que el número subiera o bajara. Un producto punto abre ese cálculo pieza por pieza: multiplica cada característica por el peso asignado a la misma coordenada y después suma los productos.

Al terminar esta lección, podrás desarrollar un producto punto en contribuciones de características con signo, implementarlo con NumPy y leer la puntuación bruta dentro de un clasificador lineal binario sin confundirla con una probabilidad.

Objetivo de aprendizaje: Interpretar un producto punto como una puntuación ponderada de características.

Esta lección se basa en la Lección 041: los productos internos miden la alineación, donde la misma operación describía cómo apuntan dos vectores uno respecto del otro. La sección 3.2 de Mathematics for Machine Learning proporciona la referencia matemática. Los nombres de las características, los números, el código, el recurso visual, el recorrido del clasificador y las evaluaciones son originales.

Un producto punto empareja características y pesos

Sea x=(x1,…,xn)x=(x_1,\ldots,x_n) un vector de características: una lista de números en un orden fijo que representa una entrada. Sea w=(w1,…,wn)w=(w_1,\ldots,w_n) un vector de pesos: una lista de parámetros en un orden fijo que indica cómo combina el modelo esas características. Ambos vectores tienen nn coordenadas, y la coordenada ii debe significar lo mismo en ambas listas.

La notación de transpuesta hace visible la comprobación de dimensiones. Si ww se trata como una columna n×1n\times1, entonces wTw^{\mathsf T} es 1×n1\times n y wTxw^{\mathsf T}x es un resultado 1×11\times1: una puntuación escalar. La suma expresa lo mismo de una forma más fácil de inspeccionar: hay una multiplicación por cada coordenada, seguida de una cadena de sumas.

El orden forma parte del contrato de datos. Si x2x_2 es la tasa de error, entonces w2w_2 debe ser el peso de la tasa de error. Dos arreglos pueden tener la misma longitud y aun así describir el modelo equivocado si sus coordenadas se han permutado.

El producto punto también es el producto interno real estándar de la lección anterior, pero aquí los papeles son diferentes. Un vector es una representación de entrada; el otro es un conjunto de parámetros de puntuación aprendidos o elegidos. Esa asignación de papeles hace que valga la pena inspeccionar cada producto wixiw_i x_i.

Un ejemplo de puntuación muestra cada contribución

Usa un vector pequeño de características y un vector de pesos:

x=(2.0, 0.5, 4.0, 3.0),w=(1.2, −0.8, 0.0, 0.4).x=(2.0,\ 0.5,\ 4.0,\ 3.0),\qquad w=(1.2,\ -0.8,\ 0.0,\ 0.4).

Las cuatro coordenadas ya son entradas numéricas para el modelo. Sus nombres solo son etiquetas para este ejemplo; en un flujo real, el preprocesamiento determina qué significa cada número y qué escala utiliza.

La contribución de la coordenada ii es wixiw_i x_i. Es positiva cuando la característica y el peso tienen el mismo signo, negativa cuando sus signos difieren y cero cuando cualquiera de los dos es cero. Una contribución positiva empuja la puntuación hacia arriba; una negativa la empuja hacia abajo. La magnitud ∣wixi∣\lvert w_i x_i\rvert indica el tamaño del efecto directo de esa coordenada en esta puntuación concreta.

Sigue cada producto de característica hasta el total del producto punto

La tabla es la alternativa numérica completa al diagrama de contribuciones.
CaracterísticaValor xᵢPeso wᵢContribución wᵢxᵢ
Cobertura2.001.20positiva +2.40
Indicador de error0.50−0.80negativa −0.40
Desviación de referencia4.000.00cero 0.00
Señal verificada3.000.40positiva +1.20
Total del producto punto3.20
Una cascada de contribuciones para un producto puntoCuatro pasos etiquetados suman las contribuciones positiva 2.40, negativa −0.40, cero 0.00 y positiva 1.20. El total final del producto punto es 3.20. Los pasos positivos, negativos y cero también se identifican mediante texto y estilo de línea.puntuación acumulada0.0003.20Cobertura+2.40Indicador de error−0.40Desviación de referencia0.00Señal verificada+1.20Total del producto punto3.20

Lee la tabla de arriba abajo para seguir cada valor, peso, signo y contribución sin depender de los colores ni de la geometría del diagrama.

Las marcas continuas, discontinuas y de contorno son señales redundantes: la tabla y las etiquetas positiva, negativa o cero transmiten el significado por sí solas.

La tabla es la alternativa de referencia: el diagrama de contribuciones ofrece un recorrido visual rápido del total acumulado, pero no oculta ningún número en el color, el texto al pasar el cursor o el estado del cliente. La característica con peso cero no contribuye a la puntuación de este modelo aunque su valor sea 4.04.0.

Si el modelo también tiene un sesgo bb, mantén ese desplazamiento separado de los productos de las características. Con b=−1.7b=-1.7, la puntuación afín es

s=wTx+b=3.2−1.7=1.5.s=w^{\mathsf T}x+b=3.2-1.7=1.5.

El sesgo desplaza la puntuación de cada entrada en la misma cantidad. No demuestra que una de las cuatro características haya contribuido −1.7-1.7.

Por qué los productos de coordenadas son útiles, pero limitados

La suma es exactamente aditiva. Si solo cambia la característica ii en Δ\Delta, entonces

wT(x+Δei)=wTx+wiΔ,w^{\mathsf T}(x+\Delta e_i)=w^{\mathsf T}x+w_i\Delta,

donde eie_i es el vector que vale 11 en la posición ii y 00 en las demás. Por tanto, una puntuación lineal fija cambia en wiΔw_i\Delta: no hay un término de interacción oculto entre ese cambio y las otras coordenadas.

Eso hace que wixiw_i x_i sea una explicación útil de este cálculo lineal concreto. No convierte el producto en una atribución causal completa. Un sistema entrenado puede tener características correlacionadas, pasos de preprocesamiento o capas no lineales posteriores. Además, el tamaño de un peso no se puede comparar entre características con unidades o escalas diferentes. Estandarizar las características puede cambiar los pesos numéricos y dejar equivalentes las predicciones del modelo después de actualizar los parámetros correspondientes.

Un clasificador lineal aplica un umbral a la puntuación

Un clasificador lineal binario utiliza la puntuación afín

g(x)=wTx+bg(x)=w^{\mathsf T}x+b

y después aplica una regla de decisión como

y^={1if g(x)≥0,0if g(x)<0.\hat y= \begin{cases} 1 & \text{if }g(x)\ge 0,\\ 0 & \text{if }g(x)<0. \end{cases}

Para la entrada del ejemplo, g(x)=1.5g(x)=1.5, así que un umbral en cero asigna la clase 11. El umbral es un segundo paso; el producto punto solo proporciona la puntuación ponderada. Cambiar el umbral cambia la decisión sin cambiar los productos de las características.

El conjunto de puntos con g(x)=0g(x)=0 es una recta en dos dimensiones y un hiperplano en dimensiones superiores. El vector de pesos ww es perpendicular a esa frontera en la geometría euclídea estándar. Mover una entrada en una dirección alineada con ww eleva la puntuación; moverla en sentido contrario la reduce. Por eso un producto punto convierte una lista de características en una posición relativa a la frontera del clasificador.

La distinción también aparece en scikit-learn. Su guía de modelos lineales escribe una predicción como un intercepto más una combinación ponderada de características (modelos lineales), mientras que LogisticRegression.decision_function devuelve puntuaciones de confianza relacionadas con la distancia con signo al hiperplano (documentación de LogisticRegression). Esas puntuaciones no son probabilidades. Un modelo logístico puede aplicar una sigmoide,

σ(g)=11+e−g,\sigma(g)=\frac{1}{1+e^{-g}},

que asigna g=1.5g=1.5 aproximadamente a 0.8180.818. Ese valor es una estimación de probabilidad producida por la función de enlace del modelo; no es lo que significa el producto punto por sí solo, y determinar si una estimación está bien calibrada es otra cuestión. En la misma documentación, predict_proba es la API que devuelve estimaciones de probabilidad.

La misma operación puede significar compatibilidad en la atención

En un cálculo de atención, una consulta qq y una clave kk son vectores de representación. Su producto punto qTkq^{\mathsf T}k es una puntuación de compatibilidad que se utiliza para comparar esa clave con otras claves para la consulta. La aritmética no cambia: emparejar coordenadas correspondientes, multiplicar y sumar.

La interpretación es diferente de la del ejemplo de características. En wTxw^{\mathsf T}x, ww cumple el papel de parámetro y xx el de entrada, por lo que wixiw_i x_i es una contribución de coordenada a una puntuación del modelo. En qTkq^{\mathsf T}k, ambos vectores proceden de representaciones, así que un producto es una parte del cálculo de compatibilidad, no automáticamente una explicación causal de por qué importa un token. La Lección 041 sigue esta puntuación a través del escalado y softmax; el producto punto sin procesar sigue siendo el primer paso.

NumPy mantiene la implementación cerca del álgebra

Para arreglos unidimensionales, numpy.dot calcula el producto interno de los dos vectores y devuelve un escalar. La multiplicación elemento a elemento resulta útil cuando el objetivo es inspeccionar las contribuciones antes de sumarlas:

import numpy as np

x = np.array([2.0, 0.5, 4.0, 3.0])
w = np.array([1.2, -0.8, 0.0, 0.4])
b = -1.7

contributions = w * x
raw_score = np.dot(w, x)
classifier_score = raw_score + b

assert np.allclose(contributions.sum(), raw_score)
print(contributions)
print(raw_score)
print(classifier_score)

La salida es:

[ 2.4 -0.4  0.   1.2]
3.2
1.5

El assert comprueba la identidad central: la suma de los productos de coordenadas visibles coincide con la llamada compacta al producto punto. Mantener ambas formas en un cuaderno de depuración hace que una puntuación sea más fácil de auditar que tratar dot como una caja negra.

Los casos límite detectan errores que parecen plausibles

Cuatro comprobaciones evitan la mayoría de los errores de principiantes:

  • La misma forma no significa lo mismo. Si cambia el orden de las características pero no el de los pesos, NumPy todavía puede multiplicar arreglos de forma (4,)(4,). Por ejemplo, emparejar los pesos anteriores con x′=(2.0,4.0,0.5,3.0)x'=(2.0,4.0,0.5,3.0) da 2.4−3.2+0.0+1.2=0.42.4-3.2+0.0+1.2=0.4, no 3.23.2. El código funciona; la entrada del modelo es incorrecta.
  • Un vector cero produce un producto punto cero. Si todas las características son cero, entonces wTx=0w^{\mathsf T}x=0 para cualquier ww. Con un sesgo, la puntuación del clasificador sigue siendo bb. Por tanto, una puntuación cero no demuestra que todas las características se hayan cancelado entre sí, y un vector cero no tiene dirección para una interpretación basada en ángulos.
  • Negativo no significa automáticamente malo. Una característica negativa y un peso negativo producen una contribución positiva. Por ejemplo, (−2)(−0.7)=+1.4(-2)(-0.7)=+1.4. El signo describe el producto en este modelo, no una etiqueta moral para la característica.
  • Una puntuación no es una probabilidad. Un valor bruto puede ser −4-4, 00 o 1212. Solo una regla de salida elegida explícitamente, como un umbral, una sigmoide o softmax, convierte esa puntuación en una decisión o una estimación normalizada.

La siguiente lección pasa de una puntuación ponderada a otra pregunta geométrica: ¿a qué distancia están dos puntos cuando cambia la noción de tamaño elegida? La página del curso Math for AI incluye la Lección 043: la distancia depende de la geometría elegida como siguiente paso.

Comprueba tu comprensión

Question 1

Show the step-by-step solution

Sea x=(2,−1,3)x=(2,-1,3) y w=(0.5,2,−1)w=(0.5,2,-1). Calcula las tres contribuciones de coordenadas y el producto punto. ¿Qué término reduce la puntuación?

Los productos correspondientes son

0.5(2)=1,2(−1)=−2,(−1)(3)=−3.0.5(2)=1,\qquad 2(-1)=-2,\qquad (-1)(3)=-3.

Súmalos en el orden de las coordenadas:

wTx=1+(−2)+(−3)=−4.w^{\mathsf T}x=1+(-2)+(-3)=-4.

El segundo y el tercer término reducen el total porque son negativos. El tercer término tiene una magnitud descendente mayor, 33 en lugar de 22.

Question 2

Show the step-by-step solution

Para x=(3,2,−4)x=(3,2,-4) y w=(−2,0.5,0)w=(-2,0.5,0), calcula la puntuación y explica por qué la tercera característica no la cambia.

Multiplica coordenada por coordenada:

(−2)(3)=−6,0.5(2)=1,0(−4)=0.(-2)(3)=-6,\qquad 0.5(2)=1,\qquad 0(-4)=0.

Por tanto, la puntuación es

wTx=−6+1+0=−5.w^{\mathsf T}x=-6+1+0=-5.

La tercera característica tiene valor −4-4, pero su peso es cero, así que su producto es cero. Para esta puntuación ajustada, esa coordenada se ignora; esto no significa que la señal subyacente nunca pueda importar en otro modelo o después de volver a entrenar.

Question 3

Show the step-by-step solution

Un clasificador tiene x=(2,−1)x=(2,-1), w=(1,−2)w=(1,-2) y b=−4b=-4. Calcula su puntuación afín y aplica un umbral en cero.

Primero calcula el producto punto:

wTx=1(2)+(−2)(−1)=2+2=4.w^{\mathsf T}x=1(2)+(-2)(-1)=2+2=4.

Después suma el sesgo:

g(x)=4+(−4)=0.g(x)=4+(-4)=0.

La puntuación está exactamente en el umbral. Con la regla g(x)≥0⇒y^=1g(x)\ge 0\Rightarrow \hat y=1, esta entrada se asigna a la clase 11. Una regla que usara un >> estricto haría explícita la convención de frontera y podría asignar una clase diferente.

Question 4

Show the step-by-step solution

El orden correcto de las características es x=(2,1,4)x=(2,1,4), con pesos w=(1,−3,2)w=(1,-3,2). Un error pasa x′=(2,4,1)x'=(2,4,1). Calcula ambas puntuaciones e identifica el fallo.

Con el orden previsto,

wTx=1(2)+(−3)(1)+2(4)=2−3+8=7.w^{\mathsf T}x=1(2)+(-3)(1)+2(4)=2-3+8=7.

Con el vector de características permutado,

wTx′=1(2)+(−3)(4)+2(1)=2−12+2=−8.w^{\mathsf T}x'=1(2)+(-3)(4)+2(1)=2-12+2=-8.

Ambos arreglos tienen forma (3,)(3,), así que una comprobación de forma por sí sola no detectaría el error. Los productos emparejan los pesos con los significados equivocados de las características; el esquema de datos debe conservar tanto el orden de las coordenadas como la forma del arreglo.

Question 5

Show the step-by-step solution

Una característica centrada tiene el valor xi=−2x_i=-2 y su peso aprendido es wi=−0.7w_i=-0.7. ¿Esta coordenada reduce la puntuación?

Calcula el producto en lugar de juzgarlo solo por el signo de la característica:

wixi=(−0.7)(−2)=+1.4.w_i x_i=(-0.7)(-2)=+1.4.

Eleva la puntuación en 1.41.4. Los dos signos negativos se cancelan. En un espacio de características centrado o transformado de otra forma, los valores negativos son números normales, no errores.

Question 6

Show the step-by-step solution

Una puntuación bruta de clasificador es g(x)=1.5g(x)=1.5. ¿Es 1.51.5 una probabilidad? Si el modelo utiliza explícitamente el enlace sigmoide, ¿qué número produce antes de cualquier discusión sobre calibración?

La puntuación bruta no es una probabilidad: puede estar fuera del intervalo [0,1][0,1]. La sigmoide da

σ(1.5)=11+e−1.5≈0.8176.\sigma(1.5)=\frac{1}{1+e^{-1.5}}\approx0.8176.

Por tanto, la función de enlace produce aproximadamente 0.8180.818. Llamarlo una estimación de probabilidad útil requiere el modelo y sus supuestos de calibración; el producto punto por sí solo solo produjo la puntuación 1.51.5.

Question 7

Show the step-by-step solution

En NumPy, x.shape == (4,) y w.shape == (4,), pero una puntuación cambia de repente después de refactorizar el pipeline de datos. Da una comprobación numérica que pueda revelar un error en el orden de las coordenadas usando el ejemplo desarrollado.

Vuelve a calcular los productos elemento a elemento y compara su suma con la puntuación ordenada esperada:

w∗x=(2.4,−0.4,0.0,1.2),∑iwixi=3.2.w*x=(2.4,-0.4,0.0,1.2),\qquad \sum_i w_i x_i=3.2.

Después imprime los nombres de las características junto a sus valores antes del producto punto. Si el pipeline produjo (2.0,4.0,0.5,3.0)(2.0,4.0,0.5,3.0) mientras los pesos conservaron su orden original, los productos visibles se convierten en (2.4,−3.2,0.0,1.2)(2.4,-3.2,0.0,1.2) y suman 0.40.4. Los arreglos siguen teniendo formas compatibles, así que además de la comprobación de forma se necesita una tabla de contribuciones o una aserción del orden de características con nombre.

Question 8

Show the step-by-step solution

Una comparación al estilo de la atención usa q=(1,2,−1)q=(1,2,-1) y k=(2,0,1)k=(2,0,1). Calcula qTkq^{\mathsf T}k y explica una diferencia de interpretación respecto de wTxw^{\mathsf T}x en un clasificador.

Empareja y suma:

qTk=1(2)+2(0)+(−1)(1)=2+0−1=1.q^{\mathsf T}k=1(2)+2(0)+(-1)(1)=2+0-1=1.

El resultado es una puntuación de compatibilidad entre una consulta y una clave. En un clasificador, ww es el vector de parámetros y xx es la entrada, así que cada wixiw_i x_i es una contribución de coordenada a una puntuación de características. En la atención, tanto qq como kk son representaciones; un producto de coordenadas contribuye a su comparación, pero no es automáticamente una atribución causal de una característica.

Fuentes

  1. Mathematics for Machine Learning book PDF, Section 3.2
  2. NumPy documentation: numpy.dot
  3. scikit-learn documentation: Linear Models
  4. scikit-learn documentation: LogisticRegression