OpenCyber Academy
Máster · Capítulo 5 · Español
Código del curso: OCA-181Capítulo 05: OCA-181-C005

Capítulo 5 — Propuesta y piloto

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.

Mapa de la lección

Lección 05 publicada. Mapa, ejemplo, EX027.

flowchart TD
  N0["Resultados de aprendizaje"]
  N1["5.1 La propuesta"]
  N2["5.2 El piloto"]
  N3["5.3 Tamaño muestral y potencia"]
  N4["5.4 Revisar el plan"]
  N5["5.6 Actividades de práctica"]
  N6["Síntesis del capítulo"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
  N6 --> EX["Ejemplo resuelto"]
  EX --> Q["Ejercicio EX027"]

Dibujo lógico

flowchart LR
  N0["Resultados de aprendizaje"]
  N1["5.1 La propuesta"]
  N2["5.2 El piloto"]
  N3["5.3 Tamaño muestral y potencia"]
  N4["5.4 Revisar el plan"]
  N5["5.6 Actividades de práctica"]
  N6["Síntesis del capítulo"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX027"]
[Resultados de aprendizaje]
    |
    v
[5.1 La propuesta]
    |
    v
[5.2 El piloto]
    |
    v
[5.3 Tamaño muestral y potencia]
    |
    v
[5.4 Revisar el plan]
    |
    v
[5.6 Actividades de práctica]
    |
    v
[Síntesis del capítulo]
    |
    v
[Ejemplo resuelto] --> [Ejercicio EX027]

Resultados de aprendizaje

Usted será capaz de (1) redactar una propuesta de trabajo de fin de máster con la pregunta, los antecedentes, el diseño, el plan de análisis, la ética, los riesgos y el calendario; (2) realizar un piloto para comprobar la viabilidad y estimar la variabilidad; (3) calcular tamaños muestrales; (4) revisar el plan a partir de la evidencia del piloto; y (5) obtener la aprobación con un registro claro de las decisiones.

5.1 La propuesta

Una propuesta de maestría suele tener entre 3.000 y 6.000 palabras. Secciones: pregunta y motivación (un párrafo cada una); antecedentes a partir de su matriz de evidencia; diseño (capítulo 3), incluidas las explicaciones alternativas y las ablaciones (capítulo 4); plan de análisis con los resultados principales y secundarios y la estadística que usará; ética y protección de datos; riesgos (técnicos, de datos, de calendario) con sus mitigaciones; calendario con hitos; y contribución esperada, formulada con modestia. El plan de análisis es la parte más descuidada: escríbalo ahora, antes de tener datos, para que las decisiones posteriores no puedan quedar dirigidas por los resultados. La propuesta de Leo siguió este esquema.

5.2 El piloto

Un piloto ejecuta toda la cadena de procesamiento a pequeña escala. Objetivos: confirmar que el código funciona de principio a fin, medir el tiempo de ejecución, medir la variabilidad del resultado principal, comprobar que el ataque y las métricas se comportan de forma razonable (por ejemplo, que el modelo sin defensa es atacable) y descubrir sorpresas. Los resultados del piloto no son pruebas de hipótesis; no los presente como hallazgos y mantenga los datos de prueba finales fuera del piloto. El piloto de Leo encontró un efecto suelo y un defecto en el generador. Anote ambos en el registro de decisiones.

5.3 Tamaño muestral y potencia

Para tasas, la aproximación normal n ≈ z² p(1−p)/h² da los ensayos necesarios para una semiamplitud h del intervalo de confianza. Para comparaciones entre condiciones, el análisis de potencia pregunta cuántas repeticiones se necesitan para detectar una diferencia d con una probabilidad (potencia) de 0,8 y un nivel de significación de 0,05; en los diseños emparejados, importa la varianza de las diferencias. Con pocas semillas (lo habitual en el aprendizaje automático), informe intervalos entre semillas y entre elementos de evaluación en lugar de confiar en una única prueba de significación. El piloto de Leo mostró una variación de unos 0,8 puntos entre semillas, lo que, junto con el bootstrap sobre los registros, hizo suficientes cinco semillas. Use la variación que observe realmente, no una suposición.

5.4 Revisar el plan

Los pilotos suelen cambiar algo: un ataque demasiado débil para separar las condiciones, una evaluación que tarda demasiado, una métrica con efecto suelo (todas las condiciones cerca de cero). Anote cada cambio en un registro de decisiones con su motivo. Los supervisores y los examinadores valoran una propuesta que muestra que aprendió de su piloto. El registro de Leo recoge dos cambios derivados de su piloto: sustituir el ataque limitado por el suelo por uno calibrado y corregir las plantillas que producían notas casi idénticas entre clases. Cada uno tiene una fecha y un motivo. Guarde el registro junto con la propuesta para que los examinadores puedan seguir la evolución del plan.

5.5 Ejemplo resuelto (caso sintético de Harbourline)

El piloto de Leo usó 2.000 registros y dos semillas. Tardó 40 minutos por ejecución, así que el plan completo (20.000 registros, cuatro condiciones, cinco semillas) supone unas 130 horas de cómputo, algo viable en el clúster del laboratorio. El ataque simple de umbral de confianza produjo una TPR con una FPR del 1 % de entre el 1 % y el 2 % en todas las condiciones: un efecto suelo. Lo sustituyó por un ataque calibrado con modelos de referencia, que separó las condiciones. La variabilidad entre semillas fue de unos 0,8 puntos, así que cinco semillas más el bootstrap sobre los registros se consideraron suficientes. También descubrió que dos plantillas generaban notas casi idénticas entre clases, lo que introducía ruido en las etiquetas; corrigió el generador y anotó el cambio.

El laboratorio de evasión ofrece un ejemplo de barrido en un piloto: antes de elegir un único presupuesto de perturbación para un estudio principal, barra varios para encontrar dónde el efecto es medible en lugar de quedar en el suelo o en el techo.

"""Lab E: evasion of a toy linear classifier (synthetic data, stdlib only).
Trains logistic regression on two synthetic clusters, then applies a
fast-gradient-sign (FGSM-style) perturbation of size eps to every test point
and reports clean vs adversarial accuracy. Teaching model only."""
import math, random
rng = random.Random(7)
def point(label):
    cx = 1.0 if label else -1.0
    return [rng.gauss(cx, 0.7), rng.gauss(cx, 0.7)], label
train = [point(i % 2) for i in range(400)]
test = [point(i % 2) for i in range(200)]
w, b = [0.0, 0.0], 0.0
sig = lambda z: 1 / (1 + math.exp(-z))
for epoch in range(200):
    gw, gb = [0.0, 0.0], 0.0
    for x, y in train:
        p = sig(w[0]*x[0] + w[1]*x[1] + b)
        gw[0] += (p - y)*x[0]; gw[1] += (p - y)*x[1]; gb += p - y
    w = [w[i] - 0.1*gw[i]/len(train) for i in range(2)]; b -= 0.1*gb/len(train)
def acc(data, eps):
    ok = 0
    for x, y in data:
        # gradient of the loss w.r.t. x is (p - y) * w; FGSM steps along its sign
        p = sig(w[0]*x[0] + w[1]*x[1] + b)
        xa = [x[i] + eps*math.copysign(1, (p - y)*w[i]) for i in range(2)]
        ok += (sig(w[0]*xa[0] + w[1]*xa[1] + b) >= 0.5) == bool(y)
    return ok / len(data)
print(f"weights w=({w[0]:.3f}, {w[1]:.3f}) b={b:.3f}")
for eps in (0.0, 0.25, 0.5, 0.75, 1.0):
    print(f"eps={eps:.2f} accuracy={acc(test, eps):.3f}")

Salida esperada:

weights w=(1.795, 1.756) b=-0.080
eps=0.00 accuracy=0.985
eps=0.25 accuracy=0.950
eps=0.50 accuracy=0.840
eps=0.75 accuracy=0.660
eps=1.00 accuracy=0.505

5.6 Actividades de práctica

  1. Redacte su plan de análisis con los resultados principales y secundarios. 2. Realice un piloto y rellene un registro de decisiones. 3. Calcule el tamaño muestral para su resultado principal. Para el plan de análisis, nombre el resultado principal, como la TPR con una FPR del 1 %, y los secundarios, con la estadística de cada uno. Para el piloto, ejecute toda la cadena a pequeña escala y anote cada cambio con su motivo, como hizo Leo. Para el tamaño muestral, use la fórmula anterior con la variación que observó en su piloto e indique si su presupuesto de cómputo lo permite.

5.7 Errores y límites

Cuatro errores se repiten, y cada uno debilita el estudio; revise su propuesta en busca de los cuatro:

Ejercicios — capítulo 5

Síntesis del capítulo

La propuesta fija lo que hará y cómo lo analizará; el piloto muestra si puede hacerlo. Las revisiones anotadas con sus motivos convierten las sorpresas en evidencia de un proceso cuidadoso.

Siga estudiando — capítulo 05 de 08

← Capítulo 04 (borrador) · Índice de capítulos del curso · Capítulo 06 (borrador) →

Respuestas desarrolladas

EX027. Pregunta/motivación; antecedentes; diseño; explicaciones alternativas/ablaciones; plan de análisis; ética y protección de datos; riesgos y mitigaciones; calendario; contribución esperada.

EX028. Confirmar que la cadena funciona de principio a fin; medir el tiempo de ejecución; estimar la variabilidad; comprobar que las métricas y los ataques se comportan de forma razonable; descubrir sorpresas.

EX029. n ≈ 1,96² × 0,05 × 0,95 / 0,01² ≈ 1.825.

EX030. Todas las condiciones se sitúan cerca del mínimo de la métrica, de modo que no pueden verse las diferencias. Leo sustituyó el ataque de umbral de confianza por un ataque calibrado con modelos de referencia.

EX031. eps 0.50 (0.840) y 0.75 (0.660): la exactitud no está cerca del techo con datos limpios (0.985) ni en el nivel del azar (0.505 con 1.00), así que pueden distinguirse las defensas.

EX032. «Día 3 del piloto: se sustituyó el ataque de umbral por un ataque calibrado; motivo: efecto suelo (TPR del 1–2 % en todas las condiciones); efecto: condiciones separables.» «Día 4 del piloto: se corrigieron las plantillas 12 y 19 del generador; motivo: notas casi idénticas entre clases; efecto: elimina el ruido en las etiquetas.»