Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
co-weight-drift — Implementazione di riferimento in PyTorch di un metodo di addestramento avversariale rapido che previene l'overfitting catastrofico tramite obiettivi accoppiati e una protezione contro la deriva dei pesi basata su EMA, con valutazione AutoAttack. | Kitploit
Strumenti/GitHubGitHub/fzjcdt/co-weight-drift
Machine LearningPaper e RicercaSicurezza dell'IAAttacco Avversario
GitHubfzjcdt/co-weight-drift

co-weight-drift

Implementazione di riferimento in PyTorch di un metodo di addestramento avversariale rapido che previene l'overfitting catastrofico tramite obiettivi accoppiati e una protezione contro la deriva dei pesi basata su EMA, con valutazione AutoAttack.

Vedi Repository
232 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Il catastrophic overfitting è una deriva dei pesi che la loss di training non riesce a vedere

Implementazione di riferimento in PyTorch del metodo descritto nel paper sopra citato. Il fast adversarial training (FAT) soffre di catastrophic overfitting (CO): l'accuratezza robusta FGSM resta alta mentre l'accuratezza robusta PGD crolla nel giro di un paio di epoche. Questa codebase implementa i due contributi del paper:

  1. Meccanismo. Il CO è una deriva dei pesi lungo direzioni che la loss di training non riesce a vedere: l'attacco a un passo (in stile FGSM) rende la loss cieca rispetto a un sottospazio di perturbazioni, i pesi derivano attraverso di esso e la ricalibrazione delle BN trasforma la deriva in gradient masking. L'EMA dei pesi rimane nel bacino robusto per tutta la durata — la run di training porta con sé il proprio ancoraggio pre-collasso.
  2. Metodo. Un obiettivo base accoppiato (due scale di accoppiamento che coprono reciprocamente le rispettive modalità di fallimento) più una guardia: dopo ogni epoca, se l'accuratezza di validazione PGD-10 cala di più di θ = 0.08 (8 punti di accuratezza) rispetto al miglior valore corrente, i pesi grezzi vengono ricentrati sulla loro stessa EMA, con un cooldown di 3 epoche e un budget di 5 attivazioni. La guardia non costa alcun passaggio forward o backward aggiuntivo e non si attiva mai su traiettorie sane.

Risultati

Accuratezza robusta (%) sotto la completa AutoAttack (AA) standard e l'attacco a rilassamento dei vincoli (CR), ε = 8/255, ResNet18 (PreActResNet18 su Tiny-ImageNet), media ± deviazione standard campionaria. Le righe di baseline sono i risultati rilasciati di FastAT_Benchmark sotto il medesimo protocollo.

MetodoC10 AAC10 CRC100 AAC100 CRTiny AATiny CR
PGD-AT-WA (rif. multi-step)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 + guard (nostro)50.45±0.2050.44±0.1627.15±0.0427.20±0.0720.47±0.1120.54±0.15

La più alta accuratezza AutoAttack e CR tra i metodi fast su tutti e tre i dataset, a un costo da FAT (~0.7–1.1 h/run su una A100, contro ~2 h per il riferimento multi-step). Su CIFAR-10 la base senza guardia è un lancio di moneta: 2 semi su 4 collassano in artefatti di CO (AutoAttack 7.5) mentre i sopravvissuti eguagliano la riga con guardia (50.67±0.08) — l'effetto della guardia è esattamente la rimozione di questa modalità di fallimento. In particolare, le componenti FAB-T e square di AutoAttack trovano zero punti aggiuntivi su tutti i nostri checkpoint rilasciati (nessuna firma di gradient masking). Numeri per seme e log grezzi: logs/.

Setup

pip install -r requirements.txt

Testato con Python 3.12, torch 2.5.1, torchvision 0.20.1, torchattacks 3.5.1, CUDA 12.4, su A100-PCIE-40GB. La directory autoattack/ in questo repo è la copia vendorizzata con cui sono stati prodotti i numeri rilasciati (AutoAttack di Francesco Croce); eseguendo dalla radice del repo, questa ha la precedenza su qualsiasi copia installata tramite pip.

Addestramento

train.py implementa il metodo del paper; i valori predefiniti corrispondono alla ricetta per 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

Ogni esecuzione scrive train.log (PGD-10 di validazione per epoca dei pesi raw ed EMA, righe di attivazione della guardia), probe.csv (dinamica CO opzionale a livello di batch) e best.pth / last.pth / ema_last.pth. best.pth è l'epoca con il PGD-10 di validazione più alto (pesi raw vs EMA, spareggio basato sull'accuratezza pulita).

Interruttori di metodo

  • --guard none disabilita la guardia (la base non protetta; aspettarsi il lancio della moneta CO su CIFAR-10).
  • --init-style bu cambia l'inizializzazione della perturbazione dal semi-segno fresco a 0.5ε del paper a 70% ±ε Rademacher / 30% U[−ε, ε].
  • --probe-every 0 disabilita le sonde diagnostiche. Nota che le sonde consumano RNG e quindi perturbano la traiettoria di addestramento (la "lotteria della strumentazione" riportata nel paper) — allinea questo flag all'esecuzione rilasciata con cui confronti (vedi logs/README.md).

Valutazione

# 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 esegue la suite standard completa (apgd-ce, apgd-t, FAB-T, square) — il protocollo di ogni numero AA nel paper. Senza --full esegue la variante di sviluppo a 2 attacchi del benchmark (apgd-ce + apgd-t), che sui nostri modelli differisce al massimo di 0.02.

Struttura del repository

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

Protocollo

Identico a FastAT_Benchmark: ResNet18 (CIFAR-10/100) e PreActResNet18 (Tiny-ImageNet); ε = 8/255; 100 epoche; SGD (lr 0.1, momentum 0.9, weight decay 5e-4) con OneCycleLR; batch size 128; split 49 000 / 1 000 train / val; label smoothing 0.4; selezione del modello tramite PGD-10 di validazione; valutazione sull'intero test set con PGD-{10,20,50}, AutoAttack e l'attacco CR. Tutte le esecuzioni usano set_seed con modalità cudnn deterministica.

Crediti

  • L'impalcatura del benchmark (models/, utils/, attacco CR in attacks/) e tutti i risultati di baseline provengono da FastAT_Benchmark — si prega di citarlo se si utilizzano i numeri di confronto.
  • autoattack/ è AutoAttack di Francesco Croce (incluso senza modifiche).
  • L'obiettivo di base si fonda su idee tratte da NuAT (accoppiamento dei logit tramite norma nucleare), FGSM-PGI (accoppiamento MSE per esempio) e DualC (rampa MSE), e lo schema di inizializzazione segue NuAT; si veda il paper per le citazioni complete.

Citazione

Il paper è in fase di revisione. Se si utilizza questo codice, si prega di citarlo tramite il suo titolo fino alla disponibilità di una voce BibTeX:

Licenza

Scarica lo strumento