◇ OpenCyber Academy
Ingeniería · Capítulo 1 · Español

Capítulo 1 — Cálculo I

Aprendizaje gratuito y abierto para quienes desean proteger a las personas y la tecnología. No se necesita una cuenta para estudiar ni consultar las respuestas.

Capítulo 1 — Cálculo I

Mapa de la lección

Lección 01 publicada. Mapa, ejemplo, EX001.

flowchart TD
  N0["Resultados de aprendizaje"]
  N1["1.1 Derivadas como sensibilidad"]
  N2["1.2 Reglas que usará constantemente"]
  N3["1.3 Comprobación numérica de derivadas"]
  N4["1.4 Por qué les importa a los ingenieros de segurida"]
  N5["Síntesis del capítulo"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5
  N5 --> EX["Ejemplo resuelto"]
  EX --> Q["Ejercicio EX001"]

Dibujo lógico

flowchart LR
  N0["Resultados de aprendizaje"]
  N1["1.1 Derivadas como sensibilidad"]
  N2["1.2 Reglas que usará constantemente"]
  N3["1.3 Comprobación numérica de derivadas"]
  N4["1.4 Por qué les importa a los ingenieros de segurida"]
  N5["Síntesis del capítulo"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX001"]
[Resultados de aprendizaje]
    |
    v
[1.1 Derivadas como sensibilidad]
    |
    v
[1.2 Reglas que usará constantemente]
    |
    v
[1.3 Comprobación numérica de derivadas]
    |
    v
[1.4 Por qué les importa a los ingenieros de segurida]
    |
    v
[Síntesis del capítulo]
    |
    v
[Ejemplo resuelto] --> [Ejercicio EX001]

Resultados de aprendizaje

Usted será capaz de (1) calcular derivadas de las funciones que se usan en el aprendizaje automático (polinomios, exponenciales, logaritmos, la función logística); (2) interpretar una derivada como sensibilidad; (3) comprobar derivadas numéricamente; y (4) explicar por qué la misma derivada que entrena un modelo también guía a un atacante.

1.1 Derivadas como sensibilidad

La derivada f′(x) mide cuánto cambia f cuando x cambia un poco: f(x + h) ≈ f(x) + h f′(x). Los ingenieros la usan como sensibilidad: si el modelo de temperatura de un rodamiento tiene una derivada grande respecto de una entrada, pequeños errores del sensor provocan grandes cambios en la salida. Los modelos de aprendizaje automático son funciones de entradas y parámetros, así que las derivadas nos dicen cómo responden las salidas a ambos. La aproximación solo vale para h pequeño, de modo que una derivada describe el entorno de un punto, no la función entera. Por eso Sam siempre indica dónde se midió una sensibilidad, por ejemplo en una imagen diurna típica, y la vuelve a comprobar en otros puntos de operación antes de sacar conclusiones sobre el modelo en su conjunto.

1.2 Reglas que usará constantemente

Regla de la potencia (xⁿ)′ = n xⁿ⁻¹; exponencial (eˣ)′ = eˣ; logaritmo (ln x)′ = 1/x; reglas del producto, del cociente y de la cadena. La función logística σ(z) = 1/(1 + e⁻ᶻ) transforma cualquier número real en un valor de (0, 1) y cumple σ′(z) = σ(z)(1 − σ(z)). La pérdida logística para una etiqueta y ∈ {−1, +1} y una puntuación z = w·x es L = ln(1 + e^(−y z)); por la regla de la cadena, ∂L/∂w = −y x / (1 + e^(y w x)). Conviene recordar la derivada logística porque es máxima en z = 0, donde σ′ = 0,25, y se reduce hacia cero a medida que la puntuación se vuelve segura en cualquiera de las dos direcciones. Por tanto, las entradas cercanas a la frontera de decisión son aquellas en las que pequeños cambios mueven más la salida, y es justamente ahí donde empieza un atacante.

1.3 Comprobación numérica de derivadas

Una diferencia finita centrada (f(x + h) − f(x − h)) / 2h aproxima f′(x) con un error proporcional a h². Compararla con la fórmula analítica es la prueba estándar del código de gradientes; una discrepancia indica un fallo. El laboratorio hace exactamente eso y después da seis pasos de descenso de gradiente que reducen la pérdida.

"""Lab G: gradients by calculus and by finite differences (stdlib only).
For logistic loss L(w) = log(1 + exp(-y * w * x)) the derivative is
dL/dw = -y * x / (1 + exp(y * w * x)). The same gradient drives both
training (descend) and evasion attacks (ascend with respect to the input)."""
import math
x, y = 2.0, 1.0
L = lambda w: math.log(1 + math.exp(-y * w * x))
dL = lambda w: -y * x / (1 + math.exp(y * w * x))
for w in (-1.0, 0.0, 0.5, 2.0):
    h = 1e-5
    fd = (L(w + h) - L(w - h)) / (2 * h)
    print(f"w={w:5.2f} loss={L(w):.4f} analytic={dL(w):.6f} finite_diff={fd:.6f}")
w = -1.0
for step in range(6):
    w -= 0.5 * dL(w)
    print(f"step {step+1}: w={w:.4f} loss={L(w):.4f}")

Salida esperada:

w=-1.00 loss=2.1269 analytic=-1.761594 finite_diff=-1.761594
w= 0.00 loss=0.6931 analytic=-1.000000 finite_diff=-1.000000
w= 0.50 loss=0.3133 analytic=-0.537883 finite_diff=-0.537883
w= 2.00 loss=0.0181 analytic=-0.035972 finite_diff=-0.035972
step 1: w=-0.1192 loss=0.8194
step 2: w=0.4401 loss=0.3469
step 3: w=0.7332 loss=0.2076
step 4: w=0.9207 loss=0.1472
step 5: w=1.0576 loss=0.1139
step 6: w=1.1652 loss=0.0928

En la tabla impresa, las dos columnas coinciden hasta el sexto decimal en los cuatro puntos de prueba, incluido w = 2, donde el gradiente es pequeño. Los pasos de descenso muestran que la pérdida baja de 2,1269 a 0,0928, y los pasos cada vez más cortos se deben a que el gradiente se aplana a medida que w crece y el ejemplo se clasifica con más confianza.

1.4 Por qué les importa a los ingenieros de seguridad

El entrenamiento mueve los parámetros en contra del gradiente de la pérdida. Un atacante de evasión mueve la entrada a lo largo del gradiente de la pérdida respecto de la entrada, para hacer la pérdida mayor: es la idea del método del signo del gradiente rápido (FGSM; Goodfellow et al., arXiv:1412.6572). Así, las derivadas son a la vez el motor del aprendizaje y un mapa para el atacante. Las defensas que ocultan o rompen los gradientes sin cambiar el comportamiento del modelo dan una falsa sensación de seguridad (Athalye et al., arXiv:1802.00420).

Para un revisor de seguridad, un gradiente es tanto una herramienta del atacante como del entrenador.

1.5 Ejemplo resuelto (caso sintético de NRS)

Sam calcula la derivada de la puntuación logística final de TrackEye respecto de una característica de intensidad de píxel y obtiene 0,8 por unidad, mientras que la mayoría de las características están por debajo de 0,05. Una lente sucia que desplace esa característica en 0,5 cambia la puntuación en aproximadamente 0,4, suficiente para invertir una decisión dudosa. Sam registra la característica como entrada de alta sensibilidad para las pruebas de robustez posteriores. La aritmética es la aproximación de primer orden en acción: 0,8 × 0,5 = 0,4. Solo vale cerca del punto donde se midió la derivada, así que Sam comprueba después el cambio real de la puntuación con imágenes con suciedad simulada, lo que muestra si la estimación lineal subestima o sobrestima el efecto. La característica entra en el plan de pruebas de robustez con esa salvedad registrada.

1.6 Errores y límites

Cada error tiene una salvaguarda sencilla. Escribir explícitamente la función interna antes de derivar detecta un factor de la regla de la cadena que falta. Probar varios tamaños de paso, como 1e-3, 1e-5 y 1e-7, muestra dónde son estables las diferencias finitas, ya que el error primero baja y luego vuelve a subir. Para el tercer error, un gradiente pequeño se trata como un motivo para probar directamente cambios más grandes, nunca como una garantía de que la salida no puede invertirse.

Ejercicios — capítulo 1

Síntesis del capítulo

Las derivadas cuantifican la sensibilidad. Entrenan modelos y también muestran a los atacantes qué pequeños cambios de la entrada importan más: el primer vínculo entre las matemáticas y la seguridad de la IA.

Siga estudiando — capítulo 01 de 50

← Página del curso · Índice de capítulos del curso · Capítulo 02 (borrador) →