Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
co-weight-drift — Implementación de referencia en PyTorch de un método de entrenamiento adversario rápido que previene el sobreajuste catastrófico mediante objetivos acoplados y una protección contra la deriva de pesos basada en EMA, con evaluación mediante AutoAttack. | Kitploit
Herramientas/GitHubGitHub/fzjcdt/co-weight-drift
Aprendizaje AutomáticoPapers e InvestigaciónSeguridad de IAAtaque Adversario
GitHubfzjcdt/co-weight-drift

co-weight-drift

Implementación de referencia en PyTorch de un método de entrenamiento adversario rápido que previene el sobreajuste catastrófico mediante objetivos acoplados y una protección contra la deriva de pesos basada en EMA, con evaluación mediante AutoAttack.

Ver Repositorio
36hace 3 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

El sobreajuste catastrófico es deriva de pesos que la pérdida de entrenamiento no puede ver

Implementación de referencia en PyTorch del método descrito en el artículo anterior. El entrenamiento adversario rápido (FAT) sufre de sobreajuste catastrófico (CO): la precisión robusta frente a FGSM se mantiene alta mientras que la precisión robusta frente a PGD colapsa en un par de épocas. Este código implementa las dos contribuciones del artículo:

  1. Mecanismo. El CO es deriva de pesos a lo largo de direcciones que la pérdida de entrenamiento no puede ver: el ataque de un solo paso (estilo FGSM) hace que la pérdida sea ciega a un subespacio de perturbaciones, los pesos derivan a través de él y la recalibración de BN convierte la deriva en enmascaramiento de gradientes. La EMA de los pesos permanece en la cuenca robusta en todo momento — la ejecución de entrenamiento lleva consigo su propio ancla previa al colapso.
  2. Método. Un objetivo base acoplado (dos escalas de acoplamiento que cubren los modos de fallo de la otra) más un guardián: después de cada época, si la precisión de validación PGD-10 cae más de θ = 0.08 (8 puntos de precisión) respecto al mejor valor acumulado, los pesos brutos se recentran sobre su propia EMA, con un enfriamiento de 3 épocas y un presupuesto de 5 activaciones. El guardián no cuesta pases forward ni backward adicionales y nunca se activa en trayectorias saludables.

Resultados

Precisión robusta (%) bajo el AutoAttack (AA) estándar completo y el ataque de relajación de restricciones (CR), ε = 8/255, ResNet18 (PreActResNet18 en Tiny-ImageNet), media ± desviación estándar muestral. Las filas de referencia son los resultados publicados de FastAT_Benchmark bajo el protocolo idéntico.

MétodoC10 AAC10 CRC100 AAC100 CRTiny AATiny CR
PGD-AT-WA (ref. multi-paso)50.49±0.1550.51±0.1626.90±0.1726.87±0.1719.77±0.1619.75±0.13
NuAT50.10±0.1850.11±0.1914.41±3.2917.66±0.4210.20±0.4410.19±0.44
LIET49.99±0.1549.93±0.1526.64±0.1326.63±0.1419.88±0.0919.86±0.07
FGSM-PGI49.89±0.0849.89±0.1226.29±0.1626.31±0.1219.55±0.1119.52±0.12
FGSM-FUAP49.73±0.1249.71±0.1225.95±0.0825.94±0.0519.10±0.1819.09±0.19
FGSM-CUAP49.55±0.2249.54±0.2225.85±0.5025.83±0.4919.19±0.0919.20±0.11
Base + guardián (nuestro)50.45±0.2050.44±0.1627.15±0.0427.20±0.0720.47±0.1120.54±0.15

La mayor precisión frente a AutoAttack y CR entre los métodos rápidos en los tres conjuntos de datos, a coste de FAT (~0.7–1.1 h/ejecución en una A100, frente a ~2 h para la referencia multi-paso). En CIFAR-10 la base sin guardián es una moneda al aire: 2 de 4 semillas colapsan a artefactos de CO (AutoAttack 7.5) mientras que las supervivientes igualan la fila con guardián (50.67±0.08) — el efecto del guardián es exactamente la eliminación de este modo de fallo. Notablemente, los componentes FAB-T y square de AutoAttack encuentran cero puntos adicionales en todos nuestros checkpoints publicados (sin firma de enmascaramiento de gradientes). Números por semilla y registros brutos: logs/.

Configuración

pip install -r requirements.txt

Probado con Python 3.12, torch 2.5.1, torchvision 0.20.1, torchattacks 3.5.1, CUDA 12.4, en A100-PCIE-40GB. El directorio autoattack/ en este repositorio es la copia incluida con la que se generaron las cifras publicadas (AutoAttack de Francesco Croce); ejecutarlo desde la raíz del repositorio hace que tenga prioridad sobre cualquier copia instalada mediante pip.

Entrenamiento

train.py implementa el método del artículo; los valores predeterminados corresponden a la receta de CIFAR-10.

# CIFAR-10 (γ_max=4.0, m_max=2.5, λ_d=0.3, guard θ=0.08) — 4 seeds
bash scripts/train_cifar10.sh 0            # GPU 0, seeds 0 1 2 3

# CIFAR-100 (γ_max=1.25, m_max=4.5, λ_d=0)
bash scripts/train_cifar100.sh 0

# Tiny-ImageNet (PreActResNet18, γ_max=1.0, m_max=2.5, λ_d=0)
bash scripts/train_tiny.sh 0

# or a single run directly (equivalent to the CIFAR-10 script)
python train.py --dataset cifar10 --seed 0 --gpu 0 \
    --nuc-max 4.0 --mse-extra 2.5 --lam-d 0.3 --guard val --guard-thr 0.08 \
    --out-dir results/cifar10/guard_s0

Cada ejecución escribe train.log (PGD-10 de validación por época de los pesos sin procesar y EMA, líneas de activación de la guarda), probe.csv (dinámica de CO a nivel de lote opcional) y best.pth / last.pth / ema_last.pth. best.pth es la época con el PGD-10 de validación más alto (pesos sin procesar vs EMA, desempatado por precisión limpia).

Interruptores de método

  • --guard none desactiva la guarda (la base sin guarda; se espera el lanzamiento de moneda de CO en CIFAR-10).
  • --init-style bu cambia la inicialización de la perturbación del medio signo fresco a 0.5ε del artículo a 70% ±ε Rademacher / 30% U[−ε, ε].
  • --probe-every 0 desactiva las sondas de diagnóstico. Tenga en cuenta que las sondas consumen RNG y, por lo tanto, perturban la trayectoria de entrenamiento (la "lotería de instrumentación" reportada en el artículo) — haga coincidir esta bandera con la ejecución publicada con la que compara (consulte logs/README.md).

Evaluación

# complete standard AutoAttack + CR attack, full test set, bs=200
bash scripts/eval.sh results/cifar10/guard_s0 0            # GPU 0, ResNet18
bash scripts/eval.sh results/tiny-imagenet/guard_s0 0 preact18

# or individually
python aa_eval.py --run-dir results/cifar10/guard_s0 --gpu 0 --full   # autoattack_full.log
python cr_eval.py --run-dir results/cifar10/guard_s0 --gpu 0          # cr_attack.log

aa_eval.py --full ejecuta la suite estándar completa (apgd-ce, apgd-t, FAB-T, square) — el protocolo de cada número de AA en el artículo. Sin --full, ejecuta la variante de desarrollo de 2 ataques del benchmark (apgd-ce + apgd-t), que en nuestros modelos difiere como máximo en 0.02.

Estructura del repositorio

train.py                 # coupled FAT + EMA self-anchor guard (the method)
aa_eval.py               # AutoAttack evaluation (full suite / 2-attack variant)
cr_eval.py               # CR attack evaluation
models/                  # ResNet18 / PreActResNet18 (from FastAT_Benchmark)
utils/                   # datasets, seeding, logger (from FastAT_Benchmark)
attacks/                 # CR attack (from FastAT_Benchmark)
autoattack/              # vendored AutoAttack (Francesco Croce, fra31)
scripts/                 # per-dataset training launchers + eval
logs/                    # raw logs of every run behind the paper's tables

Protocolo

Idéntico a FastAT_Benchmark: ResNet18 (CIFAR-10/100) y PreActResNet18 (Tiny-ImageNet); ε = 8/255; 100 épocas; SGD (lr 0.1, momentum 0.9, weight decay 5e-4) con OneCycleLR; tamaño de lote 128; división de 49 000 / 1 000 train / val; label smoothing 0.4; selección de modelo mediante validación PGD-10; evaluación sobre el conjunto de test completo con PGD-{10,20,50}, AutoAttack y el ataque CR. Todas las ejecuciones usan set_seed con modo determinista de cudnn.

Créditos

  • El andamiaje del benchmark (models/, utils/, ataque CR en attacks/) y todos los resultados de referencia provienen de FastAT_Benchmark — por favor, cítalo si utilizas las cifras de comparación.
  • autoattack/ es AutoAttack de Francesco Croce (incluido sin modificaciones).
  • El objetivo base se construye sobre ideas de NuAT (acoplamiento de logits con norma nuclear), FGSM-PGI (acoplamiento MSE por ejemplo) y DualC (rampa MSE), y el esquema de inicialización sigue a NuAT; consulta el artículo para las citas completas.
Descargar herramienta