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

Leer derivaciones de IA: detecta la primera línea que falla

Aprende a leer derivaciones matemáticas línea por línea, revelar supuestos ocultos y depurar con NumPy una identidad falsa del error cuadrático medio.

Comparte este artículo

Tres predicciones de un modelo producen residuos de −2-2, 00 y 22. Los residuos con signo se cancelan, por lo que su media es cero. La predicción intermedia es exacta, pero las otras dos son erróneas, y su error cuadrático medio es 8/38/3. Una derivación plausible puede convertir esa pérdida real en cero al mover un cuadrado a través de un promedio.

La forma más rápida de depurar una página de álgebra no es fijarse en su respuesta final. Empieza por arriba y pregunta por qué cada línea se sigue de la anterior. Detente en el primer signo igual que se rompe. Todas las líneas posteriores pueden ser aritmética impecable aplicada a una expresión que ya no es la que la derivación afirmaba calcular.

Al terminar esta lección, podrás leer una derivación línea por línea, nombrar la regla detrás de cada transformación y revelar un supuesto no declarado sobre un dominio, divisor, signo o rango de índices. También depurarás el cálculo de la pérdida en álgebra y NumPy sin usar cálculo diferencial ni optimización.

La lección combina dos habilidades anteriores. La Lección 6 sobre sumas y agregación de pérdidas estableció cómo los límites y los promedios convierten pérdidas indexadas en un solo número. La Lección 9 sobre ecuaciones y conjuntos de soluciones mostró por qué un paso algebraico debe conservar la afirmación matemática que se está haciendo. El sitio oficial Mathematics for Machine Learning y su capítulo introductorio presentan los fundamentos matemáticos como herramientas para comprender modelos, depurar métodos y hacer visibles sus supuestos. El método de auditoría y los ejemplos siguientes son originales.

Cada línea hace una afirmación local

Una derivación es una secuencia de enunciados matemáticos en la que cada nueva línea está respaldada por una definición, una regla algebraica, un supuesto declarado o un resultado ya establecido. Leerla bien es una tarea local. Entre dos líneas adyacentes, haz cuatro preguntas:

  1. ¿Qué cambió: un símbolo, una operación, un límite o toda la expresión?
  2. ¿Qué definición o regla algebraica permite exactamente ese cambio?
  3. ¿Qué condiciones hacen legal la regla?
  4. ¿La nueva línea hace la misma afirmación o solo una relacionada?

El símbolo que conecta las expresiones indica qué tipo de afirmación debes auditar.

SímboloSe lee comoSu función en una derivación
:=:=“se define como”Introduce un nombre o una convención; el lado derecho especifica qué significa el izquierdo
==“tiene el mismo valor que”Afirma igualdad bajo el dominio y los supuestos actuales
  ⟺  \iff“si y solo si”Afirma que dos condiciones tienen exactamente las mismas soluciones
⇒\Rightarrow“implica”Conserva solo una dirección; invertirla requiere una razón aparte
≈\approx“es aproximadamente igual a”Informa de una aproximación numérica, no de una identidad exacta

Este método separa deliberadamente dos preguntas. «¿Llegó el autor a la respuesta esperada?» es una prueba del destino. «¿Conservó cada paso la afirmación?» es una prueba de la ruta. Se puede llegar a un destino correcto mediante un razonamiento inválido, igual que un destino falso puede seguir a muchos pasos válidos después de un error temprano de sustitución.

Mover un cuadrado borra una pérdida real

Para NN ejemplos, sea y^i\hat y_i la predicción ii, yiy_i su objetivo y rir_i su residuo. Definimos

ri:=y^i−yir_i:=\hat y_i-y_i

y definimos el error cuadrático medio (MSE) mediante

LMSE:=1N∑i=1Nri2,N>0.L_{\mathrm{MSE}}:=\frac{1}{N}\sum_{i=1}^{N}r_i^2, \qquad N>0.

La condición N>0N>0 no es un adorno: una media aritmética divide por el número de términos, así que un lote vacío no tiene MSE según esta definición.

Ahora usa tres residuos,

(r1,r2,r3)=(−2,0,2).(r_1,r_2,r_3)=(-2,0,2).

Abre los pasos en este mapa de derivación. Las palabras de estado y los símbolos repiten la señal de color, y cada resumen funciona con el teclado mediante el control de revelación nativo del navegador.

Audita una derivación de pérdida desde su definición hasta el valor cero que afirma.

Abre cualquier línea para inspeccionar la regla y sus supuestos. La línea 4 contiene el primer signo igual roto.

  1. VálidoLínea 1L_MSE := (1/3) Σᵢ₌₁³ rᵢ²
    Por qué este paso funciona o falla
    Esta línea instancia la definición de MSE con N = 3.
    Condición que se debe comprobar
    El lote contiene exactamente tres residuos, por lo que N = 3 > 0.
  2. VálidoLínea 2= (1/3)((−2)² + 0² + 2²)
    Por qué este paso funciona o falla
    Sustituye los tres valores de los residuos y expande la suma finita.
    Condición que se debe comprobar
    El rango de índices sigue siendo i = 1, 2, 3 en el mismo orden.
  3. VálidoLínea 3= (1/3)(4 + 0 + 4) = 8/3
    Por qué este paso funciona o falla
    Eleva al cuadrado cada residuo, suma los tres valores cuadrados y divide por 3.
    Condición que se debe comprobar
    Se aplica la aritmética ordinaria de los números reales.
  4. No válidoLínea 4= ((1/3) Σᵢ₌₁³ rᵢ)²
    Por qué este paso funciona o falla
    Un cuadrado no puede salir en general de una suma o una media. La nueva expresión es el cuadrado de la media de los residuos, no el MSE.
    Condición que se debe comprobar
    La igualdad necesitaría una condición especial sobre estos residuos; no se declaró y es falsa aquí.
  5. Válido para la nueva expresiónLínea 5= ((−2 + 0 + 2)/3)²
    Por qué este paso funciona o falla
    Esta línea expande correctamente la media de los residuos introducida en la Línea 4.
    Condición que se debe comprobar
    Los tres residuos y el denominador no cambian.
  6. Conclusión no válida sobre el MSELínea 6= 0² = 0, por lo tanto L_MSE = 0
    Por qué este paso funciona o falla
    Cero es correcto para el cuadrado de la media de los residuos, pero la Línea 4 rompió la conexión con el MSE.
    Condición que se debe comprobar
    La conclusión supone silenciosamente la igualdad no válida de la Línea 4.

Las tres primeras líneas calculan la pérdida real:

LMSE=(−2)2+02+223=83≈2.6667.L_{\mathrm{MSE}} =\frac{(-2)^2+0^2+2^2}{3} =\frac{8}{3} \approx2.6667.

La Línea 4 la sustituye por una cantidad diferente:

LSMR:=(13∑i=13ri)2=(−2+0+23)2=0.L_{\mathrm{SMR}} :=\left(\frac{1}{3}\sum_{i=1}^{3}r_i\right)^2 =\left(\frac{-2+0+2}{3}\right)^2 =0.

Aquí LSMRL_{\mathrm{SMR}} es el nombre del cuadrado de la media de los residuos. Los errores opuestos se cancelan antes de aplicar el cuadrado. El MSE eleva al cuadrado primero, por lo que tanto −2-2 como 22 aportan 44. El orden de las operaciones cambia lo que mide el número.

Ejemplo iiResiduo rir_iContribución a ∑ri\sum r_iContribución a ∑ri2\sum r_i^2
1−2-2−2-244
2000000
3222244
Total0088

El paso ilegal también se ve al expandir el cuadrado de una suma:

(r1+r2+r3)2=r12+r22+r32+2r1r2+2r1r3+2r2r3.(r_1+r_2+r_3)^2 =r_1^2+r_2^2+r_3^2 +2r_1r_2+2r_1r_3+2r_2r_3.

Los términos cruzados no desaparecen automáticamente, y la media exterior aporta un factor 1/91/9, no 1/31/3. Por tanto, mover el cuadrado cambia tanto los términos como la escala.

Las reglas viajan con sus condiciones

Muchas derivaciones esconden su información más importante en una frase como «para x≠0x\ne0» o «sobre los números reales». Si quitas la condición, una identidad válida puede convertirse en una afirmación universal falsa.

Considera la cancelación:

xx=1solo cuando x≠0.\frac{x}{x}=1 \qquad \text{solo cuando }x\ne0.

Cuando x=0x=0, el lado izquierdo no está definido. Del mismo modo, dividir la ecuación x(x+1)=xx(x+1)=x por xx produce x+1=1x+1=1, pero solo bajo el supuesto adicional x≠0x\ne0. Una mirada rápida puede sugerir que x=0x=0 y x=−1x=-1 son soluciones. La auditoría de líneas rechaza esa suposición en cuanto se simplifica la ecuación original:

x(x+1)=x  ⟺  x2=0  ⟺  x=0.x(x+1)=x \iff x^2=0 \iff x=0.

La tentadora división por xx devuelve por casualidad x=0x=0 a partir de x+1=1x+1=1, aunque ese paso supusiera x≠0x\ne0. Su resultado contradice la condición que lo autorizaba. La ruta segura reorganiza la ecuación sin dividir por una expresión que podría ser cero.

Elevar al cuadrado también requiere revisar la dirección. Si a=ba=b, entonces a2=b2a^2=b^2. Lo contrario no se deduce sin más información: a2=b2a^2=b^2 permite a=ba=b o a=−ba=-b. Por tanto, elevar ambos lados de una ecuación al cuadrado puede añadir candidatos que deben comprobarse en la ecuación original.

Las raíces cuadradas también llevan una condición de signo. Para xx real,

x2=∣x∣,\sqrt{x^2}=|x|,

no siempre xx. Sustituir x=−3x=-3 da (−3)2=3\sqrt{(-3)^2}=3, mientras que el reemplazo no declarado x2=x\sqrt{x^2}=x daría −3-3. En consecuencia, x2=9x^2=9 tiene dos soluciones reales, x=3x=3 y x=−3x=-3; escribir solo x=9x=\sqrt9 pierde la solución negativa.

Estas condiciones no vuelven quisquillosas las derivaciones. Identifican qué entradas cubre realmente el argumento.

Los límites y las definiciones deben mantenerse fijos

Una derivación indexada tiene otro estado oculto: su rango. Estas dos expresiones normalmente no coinciden:

∑i=1Nri2y∑i=1N−1ri2.\sum_{i=1}^{N}r_i^2 \qquad\text{y}\qquad \sum_{i=1}^{N-1}r_i^2.

La segunda omite el ejemplo NN. Cambiar el nombre de un índice mudo no causa problemas:

∑i=1Nri2=∑j=1Nrj2,\sum_{i=1}^{N}r_i^2=\sum_{j=1}^{N}r_j^2,

porque los límites y el patrón de términos permanecen iguales. Cambiar un límite, el denominador o la operación es un cambio matemático que necesita una razón.

Las definiciones requieren la misma disciplina. Una vez que ri:=y^i−yir_i:=\hat y_i-y_i, una línea posterior no puede usar silenciosamente ri:=yi−y^ir_i:=y_i-\hat y_i. Elevar al cuadrado oculta ese cambio de signo porque ri2=(−ri)2r_i^2=(-r_i)^2, pero una media sin cuadrado cambiaría de signo. Una derivación que funciona solo porque una operación posterior enmascara una definición incoherente sigue estando rota.

NumPy hace visible el orden

NumPy documenta np.square como una operación elemento a elemento: cada residuo se eleva al cuadrado mientras se conserva la forma de entrada. Documenta np.mean como una reducción aritmética sobre el eje seleccionado, o sobre el arreglo aplanado de forma predeterminada. Por eso, anidar ambas operaciones codifica el orden de la derivación.

import numpy as np

predictions = np.array([8.0, 10.0, 12.0])
targets = np.array([10.0, 10.0, 10.0])
residuals = predictions - targets

mse = np.mean(np.square(residuals))
squared_mean_residual = np.square(np.mean(residuals))

print(residuals)
print(mse)
print(squared_mean_residual)
[-2.  0.  2.]
2.6666666666666665
0.0

np.mean(np.square(residuals)) dice «eleva al cuadrado cada valor y después calcula la media». np.square(np.mean(residuals)) dice «calcula primero la media y después eleva al cuadrado ese único resultado». Los paréntesis son un árbol de derivación compacto; cambiar las llamadas cambia la cantidad calculada.

Una prueba numérica tiene una fuerza lógica asimétrica. El contraejemplo anterior basta para refutar la afirmación universal

1N∑i=1Nri2=(1N∑i=1Nri)2para toda secuencia de residuos.\frac{1}{N}\sum_{i=1}^{N}r_i^2 =\left(\frac{1}{N}\sum_{i=1}^{N}r_i\right)^2 \quad\text{para toda secuencia de residuos}.

Un fallo refuta «para toda». Un acierto no lo demuestra. Con residuos (2,2,2)(2,2,2), ambas expresiones valen 44, pero ese caso aprobado no puede establecer la identidad para todas las demás secuencias. Una demostración general necesita un álgebra que cubra el dominio declarado; las pruebas son excelentes para encontrar contraejemplos y errores de implementación.

Lleva la auditoría al código y a los artículos de IA

Las ecuaciones de pérdida en el código de un modelo suelen comprimir varios pasos: definir residuos, elevar al cuadrado elemento a elemento, reducir sobre un eje de ejemplos y dividir por un recuento. La auditoría línea por línea hace que cada paso se pueda inspeccionar. Escribe la fórmula pretendida, relaciona una operación de código con cada operación matemática, conserva los mismos ejemplos en la misma reducción y declara qué ocurre cuando el lote está vacío.

El mismo hábito se aplica a derivaciones más largas sin necesitar matemáticas más avanzadas. Deja un margen para la regla y sus condiciones. Marca := cuando una cantidad recibe un nombre. Usa == solo cuando dos expresiones tienen el mismo valor bajo los supuestos activos. Usa   ⟺  \iff solo cuando ambas direcciones conservan el mismo conjunto de soluciones. Cuando la ruta se rompe, informa de la primera transición incorrecta, no solo de un número final sospechoso.

Esta práctica es el puente entre el álgebra previa y el siguiente módulo del curso. La notación densa se vuelve manejable cuando cada línea debe responder una pequeña pregunta: ¿qué cambió y por qué se permitió ese cambio?

Comprueba lo que has entendido

Pregunta 1

Clasifica cada conector: a := b + 1; x/x = 1 para x ≠ 0; x² = 9 ⇔ x = 3; y 1/3 ≈ 0.333. Explica qué afirma cada símbolo.

Mostrar la solución paso a paso
  • En a:=b+1a:=b+1, :=:= introduce una definición: la expresión b+1b+1 especifica qué significa el nuevo nombre aa.
  • En x/x=1x/x=1 para x≠0x\ne0, == afirma una igualdad condicional. Es válida en el dominio no nulo indicado y no está definida en x=0x=0.
  • La afirmación x2=9  ⟺  x=3x^2=9\iff x=3 es falsa sobre los reales. La condición de la izquierda también tiene x=−3x=-3, así que ambos lados no tienen el mismo conjunto de soluciones. Un reemplazo válido es x2=9  ⟺  x∈{−3,3}x^2=9\iff x\in\{-3,3\}.
  • En 1/3≈0.3331/3\approx0.333, ≈\approx marca una aproximación. El decimal mostrado está cerca de un tercio, pero no es exactamente igual a un tercio.

Cada conector hace una promesa distinta; leerlos todos como una igualdad ordinaria descartaría información esencial.

Pregunta 2

Para los residuos (−1, 2, 2), calcula el error cuadrático medio y el cuadrado de la media de los residuos. Identifica la primera operación en la que difieren sus cálculos.

Mostrar la solución paso a paso

El MSE eleva primero al cuadrado cada residuo:

LMSE=(−1)2+22+223=1+4+43=3.L_{\mathrm{MSE}} =\frac{(-1)^2+2^2+2^2}{3} =\frac{1+4+4}{3} =3.

El cuadrado de la media de los residuos calcula primero la media:

LSMR=(−1+2+23)2=12=1.L_{\mathrm{SMR}} =\left(\frac{-1+2+2}{3}\right)^2 =1^2 =1.

La primera diferencia es la operación aplicada directamente a los residuos: el MSE aplica el cuadrado elemento a elemento, mientras que el cuadrado de la media de los residuos aplica la suma y la división antes del cuadrado. Los valores 33 y 11 confirman que los dos órdenes de operaciones no son intercambiables.

Pregunta 3

Audita esta derivación para N = 3: Σᵢ₌₁³ rᵢ² = r₁² + r₂² + r₃² = r₁² + r₂². ¿Qué signo igual falla primero y qué supuesto no declarado lo haría válido?

Mostrar la solución paso a paso

La primera igualdad es válida porque expande el rango de índices inclusivo i=1,2,3i=1,2,3:

∑i=13ri2=r12+r22+r32.\sum_{i=1}^{3}r_i^2=r_1^2+r_2^2+r_3^2.

La segunda igualdad elimina r32r_3^2, por lo que es el primer signo igual roto. Solo sería válida bajo una condición adicional que haga cero el término omitido:

r32=0  ⟺  r3=0.r_3^2=0\iff r_3=0.

Sin esa condición, la derivación ha cambiado silenciosamente el rango de índices fijo de tres ejemplos a dos términos efectivos.

Pregunta 4

Resuelve x(x + 1) = x sobre los números reales. Explica por qué dividir ambos lados por x no es una ruta válida hacia la solución, aunque la ecuación simplificada parezca producir x = 0.

Mostrar la solución paso a paso

Primero resta xx de ambos lados y simplifica:

x(x+1)=x  ⟺  x2+x−x=0  ⟺  x2=0  ⟺  x=0.x(x+1)=x \iff x^2+x-x=0 \iff x^2=0 \iff x=0.

La sustitución comprueba la solución: 0(0+1)=00(0+1)=0.

Dividir la ecuación original por xx requiere x≠0x\ne0 y da x+1=1x+1=1, de donde x=0x=0. Ese resultado viola la condición de no ser cero que exigía la división. La ruta no tiene un candidato válido en el dominio que supone, aunque sus símbolos terminen en la solución original. La derivación segura nunca divide por la expresión posiblemente nula.

Pregunta 5

Una derivación sobre los números reales cambia √(z²) = 5 por z = 5. Encuentra el caso que falta y nombra el reemplazo no válido.

Mostrar la solución paso a paso

Para zz real, la raíz cuadrada principal es no negativa y

z2=∣z∣.\sqrt{z^2}=|z|.

Por tanto, la ecuación es

∣z∣=5,|z|=5,

que tiene z=5z=5 y z=−5z=-5. Ambos se comprueban porque 52=5\sqrt{5^2}=5 y (−5)2=5\sqrt{(-5)^2}=5. La derivación sustituyó incorrectamente z2\sqrt{z^2} por zz sin suponer z≥0z\ge0; así pierde el caso negativo.

Pregunta 6

Un estudiante prueba los residuos (2, 2, 2) y descubre que el MSE es igual al cuadrado de la media de los residuos. ¿Demuestra esto que las fórmulas son idénticas? Da un contraejemplo y explica la lógica.

Mostrar la solución paso a paso

Para (2,2,2)(2,2,2), ambas cantidades son efectivamente 44:

22+22+223=4,(2+2+23)2=4.\frac{2^2+2^2+2^2}{3}=4, \qquad \left(\frac{2+2+2}{3}\right)^2=4.

Eso establece la igualdad solo para una secuencia de entrada. No cubre todas las secuencias permitidas. Usa (−2,0,2)(-2,0,2) como contraejemplo:

(−2)2+02+223=83,(−2+0+23)2=0.\frac{(-2)^2+0^2+2^2}{3}=\frac83, \qquad \left(\frac{-2+0+2}{3}\right)^2=0.

Como una identidad universal afirma la igualdad para toda secuencia, un contraejemplo la refuta. Ninguna colección finita de ejemplos que funcionen demuestra por sí sola la afirmación algebraica universal.

Pregunta 7

Depura esta línea de NumPy para el error cuadrático medio: loss = np.square(np.mean(predictions - targets)). Escribe la línea corregida y relaciona sus operaciones con la fórmula.

Mostrar la solución paso a paso

La línea original calcula el cuadrado de la media de los residuos porque np.mean se ejecuta antes de np.square. El MSE corregido es

residuals = predictions - targets
loss = np.mean(np.square(residuals))

La primera línea implementa ri:=y^i−yir_i:=\hat y_i-y_i. La llamada interna np.square(residuals) implementa los términos ri2r_i^2 elemento a elemento. La llamada externa np.mean(...) suma esos términos cuadrados y divide por el número de elementos incluidos. El orden del código coincide ahora con

LMSE:=1N∑i=1Nri2,N>0.L_{\mathrm{MSE}}:=\frac1N\sum_{i=1}^{N}r_i^2, \qquad N>0.

La condición de entrada no vacía sigue formando parte del contrato de implementación.

Pregunta 8

Una derivación cambia el nombre de Σᵢ₌₁ᴺ aᵢ a Σⱼ₌₁ᴺ aⱼ y luego lo sustituye por Σⱼ₌₀ᴺ aⱼ. Audita ambos pasos.

Mostrar la solución paso a paso

El primer paso es válido:

∑i=1Nai=∑j=1Naj.\sum_{i=1}^{N}a_i=\sum_{j=1}^{N}a_j.

La letra del índice es un marcador de posición local. Cambiar ii por jj no cambia los límites ni el término seleccionado en cada posición.

El segundo paso cambia el límite inferior de 11 a 00:

∑j=0Naj=a0+∑j=1Naj.\sum_{j=0}^{N}a_j =a_0+\sum_{j=1}^{N}a_j.

Es igual a la suma original solo si a0=0a_0=0 está definido y se supone explícitamente. De lo contrario, la nueva suma contiene un término adicional, o puede no estar definida si la sucesión no tiene índice 00. Por tanto, el primer signo igual roto es el que cambia el límite inferior.

Fuentes

  1. Mathematics for Machine Learning companion website
  2. Mathematics for Machine Learning book PDF
  3. NumPy documentation: numpy.mean
  4. NumPy documentation: numpy.square