Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
co-weight-drift — PyTorch-Referenzimplementierung einer schnellen adversarialen Trainingsmethode, die katastrophales Overfitting durch gekoppelte Ziele und einen EMA-basierten Weight-Drift-Schutz verhindert, mit AutoAttack-Evaluierung. | Kitploit
Tools/GitHubGitHub/fzjcdt/co-weight-drift
Maschinelles LernenPapers & ForschungKI-SicherheitAdversarial-Angriff
GitHubfzjcdt/co-weight-drift

co-weight-drift

PyTorch-Referenzimplementierung einer schnellen adversarialen Trainingsmethode, die katastrophales Overfitting durch gekoppelte Ziele und einen EMA-basierten Weight-Drift-Schutz verhindert, mit AutoAttack-Evaluierung.

Repository anzeigen
23vor 2 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Katastrophales Overfitting ist Gewichtsdrift, die der Trainingsverlust nicht sehen kann

Referenz-PyTorch-Implementierung der im obigen Paper beschriebenen Methode. Schnelles adversarisches Training (Fast Adversarial Training, FAT) leidet unter katastrophalem Overfitting (CO): Die robuste Genauigkeit gegenüber FGSM bleibt hoch, während die robuste Genauigkeit gegenüber PGD innerhalb weniger Epochen zusammenbricht. Diese Codebasis implementiert die beiden Beiträge des Papers:

  1. Mechanismus. CO ist Gewichtsdrift entlang von Richtungen, die der Trainingsverlust nicht sehen kann: Der Ein-Schritt-Angriff (im FGSM-Stil) macht den Verlust blind für einen Unterraum von Perturbationen, die Gewichte driften durch diesen hindurch, und die BN-Rekalibrierung verwandelt die Drift in Gradient Masking. Der EMA der Gewichte bleibt während des gesamten Verlaufs im robusten Becken — der Trainingslauf trägt seinen eigenen Anker vor dem Kollaps mit sich.
  2. Methode. Ein gekoppeltes Basisziel (zwei Kopplungsskalen, die jeweils die Fehlermodi der anderen abdecken) plus ein Guard: Wenn nach jeder Epoche die Validierungsgenauigkeit gegenüber PGD-10 um mehr als θ = 0,08 (8 Genauigkeitspunkte) gegenüber dem laufenden Bestwert fällt, werden die Rohgewichte auf ihren eigenen EMA zurückzentriert, mit einer Abklingzeit von 3 Epochen und einem Budget von 5 Auslösungen. Der Guard kostet keine zusätzlichen Vorwärts- oder Rückwärtsdurchläufe und löst bei gesunden Verläufen nie aus.

Ergebnisse

Robuste Genauigkeit (%) unter der vollständigen Standard-AutoAttack (AA) und dem Constraint-Relaxation-Angriff (CR), ε = 8/255, ResNet18 (PreActResNet18 auf Tiny-ImageNet), Mittelwert ± Stichproben-Standardabweichung. Die Baseline-Zeilen sind die veröffentlichten Ergebnisse des FastAT_Benchmark unter identischem Protokoll.

MethodeC10 AAC10 CRC100 AAC100 CRTiny AATiny CR
PGD-AT-WA (Mehrschritt-Referenz)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
Basis + Guard (unser Ansatz)50,45±0,2050,44±0,1627,15±0,0427,20±0,0720,47±0,1120,54±0,15

Stärkste AutoAttack- und CR-Genauigkeit unter allen schnellen Methoden auf allen drei Datensätzen, zu FAT-Kosten (~0,7–1,1 h pro Lauf auf einer A100, gegenüber ~2 h für die Mehrschritt-Referenz). Auf CIFAR-10 ist die ungeschützte Basis ein Münzwurf: 2 von 4 Seeds kollabieren zu CO-Artefakten (AutoAttack 7,5), während die überlebenden Seeds mit der geschützten Zeile übereinstimmen (50,67±0,08) — die Wirkung des Guards besteht genau in der Beseitigung dieses Fehlermodus. Bemerkenswert ist, dass die FAB-T- und Square-Komponenten von AutoAttack auf allen unseren veröffentlichten Checkpoints keine zusätzlichen Punkte finden (keine Signatur von Gradient Masking). Zahlen pro Seed und Rohprotokolle: logs/.

Einrichtung

pip install -r requirements.txt

Getestet mit Python 3.12, torch 2.5.1, torchvision 0.20.1, torchattacks 3.5.1, CUDA 12.4, auf einer A100-PCIE-40GB. Das Verzeichnis autoattack/ in diesem Repo ist die gebündelte Kopie, mit der die veröffentlichten Zahlen erzeugt wurden (Francesco Croces AutoAttack); wenn man vom Repo-Stammverzeichnis aus startet, hat sie Vorrang vor jeder per pip installierten Kopie.

Training

train.py implementiert die Methode des Papers; die Standardwerte entsprechen dem CIFAR-10-Rezept.

# 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

Jeder Lauf schreibt train.log (pro Epoche Val PGD-10 der Roh- und EMA-Gewichte, Guard-Fire-Zeilen), probe.csv (optional CO-Dynamik auf Batch-Ebene) sowie best.pth / last.pth / ema_last.pth. best.pth ist die Epoche mit dem höchsten Validierungs-PGD-10 (Roh- vs. EMA-Gewichte, bei Gleichstand entscheidet die Clean-Accuracy).

Methoden-Schalter

  • --guard none deaktiviert den Guard (die ungeschützte Basis; erwarte den CO-Münzwurf auf CIFAR-10).
  • --init-style bu ändert die Perturbations-Initialisierung vom frischen Halbvorzeichen bei 0,5ε aus dem Paper zu 70 % ±ε Rademacher / 30 % U[−ε, ε].
  • --probe-every 0 deaktiviert die Diagnose-Probes. Beachte, dass die Probes RNG verbrauchen und dadurch die Trainings-Trajektorie verändern (die im Paper berichtete „Instrumentation Lottery") — stimme dieses Flag auf den veröffentlichten Lauf ab, mit dem du vergleichst (siehe logs/README.md).

Evaluation

# 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 führt die vollständige Standard-Suite aus (apgd-ce, apgd-t, FAB-T, square) — das Protokoll jedes AA-Werts im Paper. Ohne --full wird die 2-Angriffs-Entwicklungsvariante des Benchmarks ausgeführt (apgd-ce + apgd-t), die sich bei unseren Modellen um höchstens 0,02 unterscheidet.

Repo-Layout

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

Protokoll

Identisch zu FastAT_Benchmark: ResNet18 (CIFAR-10/100) und PreActResNet18 (Tiny-ImageNet); ε = 8/255; 100 Epochen; SGD (lr 0.1, Momentum 0.9, Weight Decay 5e-4) mit OneCycleLR; Batch-Größe 128; 49 000 / 1 000 Train-/Val-Split; Label Smoothing 0.4; Modellauswahl per Validierungs-PGD-10; Evaluierung auf dem vollständigen Testset mit PGD-{10,20,50}, AutoAttack und dem CR-Angriff. Alle Läufe verwenden set_seed mit cudnn-Determinismus-Modus.

Danksagungen

  • Das Benchmark-Gerüst (models/, utils/, attacks/ CR-Angriff) und alle Baseline-Ergebnisse stammen aus FastAT_Benchmark — bitte zitieren Sie es, wenn Sie die Vergleichszahlen verwenden.
  • autoattack/ ist AutoAttack von Francesco Croce (unverändert eingebunden).
  • Das Basisziel baut auf Ideen aus NuAT (Nuclear-Norm-Logit-Kopplung), FGSM-PGI (Per-Example-MSE-Kopplung) und DualC (MSE-Ramp) auf, und das Init-Schema folgt NuAT; vollständige Zitate finden Sie im Paper.

Zitation

Tool herunterladen