◇ OpenCyber Academy
Grado · Capítulo 12 · Español

Capítulo 12 — Probabilidad y estadística

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 12 — Probabilidad y estadística

Mapa de la lección

Lección 12 publicada. Mapa, ejemplo, EX034.

flowchart TD
  N0["Resultados de aprendizaje"]
  N1["12.1 Probabilidad condicionada"]
  N2["12.2 Tasas base"]
  N3["12.3 Intervalos de confianza"]
  N4["12.4 Comparar sistemas"]
  N5["12.4b Variación y tamaño de la muestra"]
  N6["Síntesis"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
  N6 --> EX["Ejemplo resuelto"]
  EX --> Q["Ejercicio EX034"]

Dibujo lógico

flowchart LR
  N0["Resultados de aprendizaje"]
  N1["12.1 Probabilidad condicionada"]
  N2["12.2 Tasas base"]
  N3["12.3 Intervalos de confianza"]
  N4["12.4 Comparar sistemas"]
  N5["12.4b Variación y tamaño de la muestra"]
  N6["Síntesis"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX034"]
[Resultados de aprendizaje]
    |
    v
[12.1 Probabilidad condicionada]
    |
    v
[12.2 Tasas base]
    |
    v
[12.3 Intervalos de confianza]
    |
    v
[12.4 Comparar sistemas]
    |
    v
[12.4b Variación y tamaño de la muestra]
    |
    v
[Síntesis]
    |
    v
[Ejemplo resuelto] --> [Ejercicio EX034]

Resultados de aprendizaje

Usted podrá (1) usar la probabilidad condicionada y la regla de Bayes; (2) explicar las tasas base y la precisión de las alertas; (3) calcular e interpretar intervalos de confianza para tasas; y (4) comparar dos sistemas de forma justa.

12.1 Probabilidad condicionada

P(A | B) es la probabilidad de A dado B. La tasa de verdaderos positivos de un detector es P(alerta | ataque); lo que necesitan los operadores es P(ataque | alerta), que la regla de Bayes obtiene a partir de las tasas de verdaderos y falsos positivos y de la tasa base de ataques. Las dos se confunden con facilidad, y los proveedores suelen citar la primera. Un detector que detecta el 95 % de los ataques sigue produciendo sobre todo falsas alarmas si los ataques son raros, porque la mayoría limpia genera muchos falsos positivos. La regla de Bayes hace explícito el cálculo, y el Laboratorio B muestra cuánto depende la respuesta de la tasa base.

12.2 Tasas base

Cuando los ataques son raros, incluso los buenos detectores producen sobre todo falsas alarmas. El laboratorio muestra un detector con un 95 % de TPR y un 5 % de FPR que da menos de un 2 % de precisión con una tasa base de 1 entre 1.000.

"""Lab B: base rates and alarm precision (Bayes' rule).
A detector for malicious prompts with given true- and false-positive rates
is applied to traffic with different shares of malicious prompts."""
for tpr, fpr in ((0.95, 0.05), (0.95, 0.01), (0.80, 0.001)):
    for prev in (0.10, 0.01, 0.001):
        tp = tpr * prev; fp = fpr * (1 - prev)
        prec = tp / (tp + fp)
        per_10k = round(10000 * (tp + fp))
        print(f"tpr={tpr:.2f} fpr={fpr:.3f} prevalence={prev:.3f} precision={prec:.3f} alerts_per_10k={per_10k}")

Salida esperada:

tpr=0.95 fpr=0.050 prevalence=0.100 precision=0.679 alerts_per_10k=1400
tpr=0.95 fpr=0.050 prevalence=0.010 precision=0.161 alerts_per_10k=590
tpr=0.95 fpr=0.050 prevalence=0.001 precision=0.019 alerts_per_10k=509
tpr=0.95 fpr=0.010 prevalence=0.100 precision=0.913 alerts_per_10k=1040
tpr=0.95 fpr=0.010 prevalence=0.010 precision=0.490 alerts_per_10k=194
tpr=0.95 fpr=0.010 prevalence=0.001 precision=0.087 alerts_per_10k=109
tpr=0.80 fpr=0.001 prevalence=0.100 precision=0.989 alerts_per_10k=809
tpr=0.80 fpr=0.001 prevalence=0.010 precision=0.890 alerts_per_10k=90
tpr=0.80 fpr=0.001 prevalence=0.001 precision=0.445 alerts_per_10k=18

Leyendo el Laboratorio B por filas: con una tasa base de uno entre mil, bajar la tasa de falsos positivos del 5 % al 1 % eleva la precisión de 0,019 a 0,087, y el detector de 0,001 llega a 0,445. Las alertas por cada 10.000 conversaciones muestran la carga de trabajo: 509 para el primer detector frente a 18 para el último. Los revisores pueden atender dieciocho alertas; quinientas acabarían ignoradas.

12.3 Intervalos de confianza

Una tasa observada en una muestra es incierta. El intervalo de Wilson funciona bien con muestras pequeñas y tasas extremas. Tres éxitos de veinte son compatibles con tasas reales de aproximadamente el 5 % al 36 %.

"""Lab S: reporting attack-success rates honestly: Wilson intervals,
seed variation and a paired bootstrap. Synthetic trial outcomes only."""
import math, random
def wilson(k, n, z=1.96):
    p = k/n; d = 1 + z*z/n
    c = (p + z*z/(2*n))/d; h = z*math.sqrt(p*(1-p)/n + z*z/(4*n*n))/d
    return c - h, c + h
for k, n in ((3, 20), (30, 200), (300, 2000)):
    lo, hi = wilson(k, n); print(f"successes={k}/{n} rate={k/n:.3f} wilson95=[{lo:.3f}, {hi:.3f}]")
# five seeds of a synthetic defence evaluation: per-seed attack success rate
rates = []
for seed in range(5):
    r = random.Random(seed); rates.append(sum(r.random() < 0.12 for _ in range(200))/200)
m = sum(rates)/5; sd = math.sqrt(sum((x-m)**2 for x in rates)/4)
print("per-seed rates:", " ".join(f"{x:.3f}" for x in rates), f"mean={m:.3f} sd={sd:.3f}")
# paired bootstrap: baseline vs defence on the same 300 synthetic prompts
r = random.Random(42)
base = [r.random() < 0.30 for _ in range(300)]
defn = [b and r.random() < 0.6 for b in base]   # defence blocks ~40% of successes
diffs = []
for _ in range(2000):
    idx = [r.randrange(300) for _ in range(300)]
    diffs.append(sum(base[i] for i in idx)/300 - sum(defn[i] for i in idx)/300)
diffs.sort()
print(f"baseline_asr={sum(base)/300:.3f} defended_asr={sum(defn)/300:.3f} "
      f"reduction_ci95=[{diffs[50]:.3f}, {diffs[1949]:.3f}]")

Salida esperada:

successes=3/20 rate=0.150 wilson95=[0.052, 0.360]
successes=30/200 rate=0.150 wilson95=[0.107, 0.206]
successes=300/2000 rate=0.150 wilson95=[0.135, 0.166]
per-seed rates: 0.110 0.130 0.135 0.105 0.145 mean=0.125 sd=0.017
baseline_asr=0.350 defended_asr=0.190 reduction_ci95=[0.120, 0.203]

El laboratorio muestra cómo se estrecha el intervalo con el tamaño de la muestra: la misma tasa del 15 % da un intervalo de aproximadamente el 11 % al 21 % con 200 ensayos y de 0,135 a 0,166 con 2.000. Una demostración con 20 instrucciones no puede distinguir una defensa débil de una fuerte. La línea por semilla añade otra fuente de dispersión: cinco ejecuciones de la misma evaluación van de 0,105 a 0,145.

12.4 Comparar sistemas

Para comparar dos defensas, pruebe ambas con los mismos elementos y observe la diferencia emparejada con un intervalo bootstrap. Si el intervalo incluye el cero, no puede afirmar que una sea mejor. Probar con los mismos elementos elimina la variación causada por que algunas instrucciones sean más difíciles que otras. En el Laboratorio S, la defensa reduce el éxito de los ataques de 0,350 a 0,190, y el intervalo bootstrap de la reducción va de 0,120 a 0,203. Como excluye el cero, la mejora es real para este conjunto de prueba; si se mantiene con otras instrucciones es otra cuestión.

12.4b Variación y tamaño de la muestra

Los resultados también varían con las semillas aleatorias, las particiones de los datos y la redacción de las instrucciones. Ejecute varias semillas e informe de su dispersión, como muestra la línea por semilla del laboratorio. Para planificar cuántos casos de prueba necesita para una tasa cercana a p con una semiamplitud de intervalo h al 95 % de confianza, use n ≈ 1,96² × p(1 − p) / h². Para p = 0,1 y h = 0,02 son unos 864 casos, muchos más de los que usan la mayoría de las demostraciones rápidas, por eso muchas «tasas de éxito» publicadas son menos seguras de lo que parecen. La fórmula también muestra el coste de la precisión: reducir h a la mitad, a 0,01, exige cuatro veces más casos, unos 3.457.

12.5 Ejemplo resuelto (caso sintético de LCH)

Un proveedor ofrecía un «detector de ataques por instrucciones» con un 98 % de exactitud. Rina pidió la TPR y la FPR: 90 % y 2 %. Con una estimación de 1 conversación maliciosa por cada 2.000, la precisión sería de aproximadamente un 2 %: la mayoría de las alertas serían falsas. LCH usó el detector solo para marcar conversaciones para una revisión semanal, no para bloquear a pacientes. La cifra del 98 % de exactitud apenas significaba nada aquí, ya que un detector que nunca se activara obtendría aproximadamente un 99,95 % con el mismo tráfico. Usarlo para la revisión semanal en lugar de para bloquear significa que las falsas alertas cuestan tiempo de los revisores, no el acceso de los pacientes.

12.6 Errores y límites

La exactitud oculta el equilibrio entre ataques no detectados y falsas alarmas, y puede parecer alta en un detector inútil cuando los ataques son raros. Una cifra única sin intervalo invita al exceso de confianza, sobre todo en pruebas pequeñas como tres éxitos de veinte. Comparar sistemas con conjuntos de prueba distintos confunde las diferencias entre los sistemas con las diferencias entre las instrucciones. El Laboratorio S muestra la corrección de cada uno con las mismas instrucciones sintéticas.

Ejercicios

Síntesis

La probabilidad le dice qué significa una alerta y cuánta seguridad puede tener. Las tasas base, los intervalos y las comparaciones emparejadas son el mínimo para hacer afirmaciones honestas en seguridad de la IA.

Siga estudiando — capítulo 12 de 40

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

Respuestas desarrolladas

EX034. VP = 0,90 × 0,0005 = 0,00045; FP = 0,02 × 0,9995 ≈ 0,01999; precisión ≈ 0,00045 / 0,02044 ≈ 0,022.

EX035. [0,135; 0,166].

EX036. Los elementos difieren en dificultad; usar los mismos elementos permite que esa variación se cancele en la diferencia emparejada, lo que da una comparación justa y más precisa.