Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
co-weight-drift — تطبيق مرجعي بـ PyTorch لطريقة تدريب خصومي سريعة تمنع الإفراط في التخصيص الكارثي عبر أهداف مقترنة وحاجز انحراف أوزان قائم على EMA، مع تقييم AutoAttack. | Kitploit
أدوات/GitHubGitHub/fzjcdt/co-weight-drift
تعلم الآلةالأوراق والأبحاثأمن الذكاء الاصطناعيالهجوم العدائي
GitHubfzjcdt/co-weight-drift

co-weight-drift

تطبيق مرجعي بـ PyTorch لطريقة تدريب خصومي سريعة تمنع الإفراط في التخصيص الكارثي عبر أهداف مقترنة وحاجز انحراف أوزان قائم على EMA، مع تقييم AutoAttack.

عرض المستودع
23منذ 2 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Catastrophic Overfitting هو انحراف الأوزان الذي لا تراه خسارة التدريب

تنفيذ مرجعي بـ PyTorch للطريقة الموصوفة في الورقة أعلاه. يعاني التدريب العدائي السريع (FAT) من catastrophic overfitting (CO): تبقى المتانة تجاه FGSM عالية بينما تنهار المتانة تجاه PGD خلال بضع epochs. تنفّذ قاعدة الشيفرة هذه مساهمتي الورقة:

  1. الآلية. إن CO هو انحراف في الأوزان على طول اتجاهات لا تراها خسارة التدريب: يجعل الهجوم أحادي الخطوة (بنمط FGSM) الخسارة عمياء عن فضاء فرعي من الاضطرابات، فتنحرف الأوزان عبره، ثم يحوّل إعادة معايرة BN هذا الانحراف إلى إخفاء للتدرجات (gradient masking). يبقى المتوسط المتحرك الأسي (EMA) للأوزان داخل الحوض المتين طوال الوقت — أي أن مسار التدريب يحمل مرساة الانهيار المسبق الخاصة به.
  2. الطريقة. هدف أساسي مقترن (مقياسا اقتران يغطي كل منهما أنماط فشل الآخر) بالإضافة إلى حارس (guard): بعد كل epoch، إذا انخفضت دقة التحقق PGD-10 بأكثر من θ = 0.08 (8 نقاط دقة) عن أفضل قيمة مسجلة، تُعاد الأوزان الخام إلى مركزها وفق EMA الخاص بها، مع فترة تهدئة مدتها 3 epochs وميزانية إطلاق قدرها 5 مرات. لا يكلّف الحارس أي تمريرات أمامية أو خلفية إضافية ولا يُطلق أبدًا على المسارات السليمة.

النتائج

الدقة المتينة (%) تحت AutoAttack (AA) القياسي الكامل وهجوم استرخاء القيد (CR)، ε = 8/255، ResNet18 (PreActResNet18 على Tiny-ImageNet)، المتوسط ± الانحراف المعياري للعينة. صفوف خط الأساس هي النتائج المنشورة لـ FastAT_Benchmark تحت البروتوكول نفسه.

الطريقةC10 AAC10 CRC100 AAC100 CRTiny AATiny CR
PGD-AT-WA (مرجع متعدد الخطوات)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 (خاصتنا)50.45±0.2050.44±0.1627.15±0.0427.20±0.0720.47±0.1120.54±0.15

أقوى دقة AutoAttack وCR بين الطرق السريعة على مجموعات البيانات الثلاث، وبتكلفة FAT (نحو 0.7–1.1 ساعة/تشغيل على A100 واحدة، مقابل نحو ساعتين للمرجع متعدد الخطوات). على CIFAR-10 يكون الأساس غير المحروس رمية عملة: 2 من أصل 4 بذور تنهار إلى آثار CO (AutoAttack 7.5) بينما تطابق البذور الناجية الصف المحروس (50.67±0.08) — أي أن أثر الحارس هو بالضبط إزالة نمط الفشل هذا. والجدير بالذكر أن مكوّني FAB-T وsquare في AutoAttack يجدان صفر نقاط إضافية على جميع نقاط التحقق المنشورة لدينا (لا وجود لبصمة إخفاء التدرجات). الأرقام لكل بذرة والسجلات الخام: logs/.

الإعداد

pip install -r requirements.txt

تم الاختبار باستخدام Python 3.12، وtorch 2.5.1، وtorchvision 0.20.1، وtorchattacks 3.5.1، وCUDA 12.4، على A100-PCIE-40GB. يُعدّ دليل autoattack/ في هذا المستودع النسخة المضمّنة التي أُنتجت بها الأرقام المنشورة (نسخة AutoAttack الخاصة بـ Francesco Croce)؛ ويؤدي التشغيل من جذر المستودع إلى جعلها تتقدّم على أي نسخة مثبّتة عبر pip.

التدريب

يُنفّذ train.py طريقة الورقة البحثية؛ والقيم الافتراضية هي وصفة 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

كل تشغيل يكتب train.log (قيمة val PGD-10 لكل حقبة للأوزان الخام وأوزان EMA، وأسطر تفعيل الحارس)، وprobe.csv (ديناميكيات CO على مستوى الدفعة، اختياري)، وbest.pth / last.pth / ema_last.pth. يمثل best.pth الحقبة ذات أعلى قيمة تحقق PGD-10 (الأوزان الخام مقابل أوزان EMA، مع كسر التعادل بالدقة النظيفة).

مفاتيح التبديل الخاصة بالطريقة

  • --guard none يعطّل الحارس (الأساس غير المحروس؛ توقّع تقلّب CO العشوائي على CIFAR-10).
  • --init-style bu يبدّل تهيئة الاضطراب من نصف الإشارة الجديدة عند 0.5ε كما في الورقة إلى 70% ±ε Rademacher / 30% U[−ε, ε].
  • --probe-every 0 يعطّل مجسّات التشخيص. لاحظ أن المجسّات تستهلك مولّد الأرقام العشوائية (RNG) وبالتالي تُشوّش مسار التدريب (ما يُعرف في الورقة بـ "يانصيب الأدوات") — طابِق هذا المفتاح مع التشغيل المنشور الذي تقارن به (انظر logs/README.md).

التقييم

# 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 يشغّل المجموعة القياسية الكاملة (apgd-ce، apgd-t، FAB-T، square) — بروتوكول كل رقم AA في الورقة البحثية. وبدون --full يشغّل النسخة التطويرية المكوّنة من هجومين الخاصة بالمعيار (apgd-ce + apgd-t)، والتي تختلف على نماذجنا بمقدار 0.02 على الأكثر.

تخطيط المستودع

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

البروتوكول

مطابق لـ FastAT_Benchmark: ResNet18 (CIFAR-10/100) وPreActResNet18 (Tiny-ImageNet)؛ ε = 8/255؛ 100 حقبة؛ SGD (lr 0.1، momentum 0.9، weight decay 5e-4) مع OneCycleLR؛ حجم الدفعة 128؛ تقسيم 49 000 / 1 000 تدريب / تحقق؛ تنعيم التسميات 0.4؛ اختيار النموذج عبر التحقق PGD-10؛ التقييم على مجموعة الاختبار الكاملة باستخدام PGD-{10,20,50} وAutoAttack وهجوم CR. تستخدم جميع التشغيلات set_seed مع وضع cudnn الحتمي.

الشكر والتقدير

  • البنية الأساسية للمعيار (models/، utils/، هجوم CR في attacks/) وجميع نتائج خطوط الأساس مأخوذة من FastAT_Benchmark — يُرجى الاستشهاد بها إذا استخدمت أرقام المقارنة.
  • autoattack/ هي AutoAttack من إعداد Francesco Croce (مضمّنة دون تعديل).
  • يستند الهدف الأساسي إلى أفكار من NuAT (اقتران logit بالمعيار النووي)، وFGSM-PGI (اقتران MSE لكل مثال)، وDualC (تدرّج MSE)، ويتبع مخطط التهيئة نهج NuAT؛ راجع الورقة البحثية للاطلاع على الاستشهادات الكاملة.

الاستشهاد

الورقة البحثية قيد المراجعة. إذا استخدمت هذا الكود، فيُرجى الاستشهاد به بعنوانه حتى يتوفر مدخل BibTeX:

الترخيص

MIT (انظر LICENSE). تحتفظ ملفات الطرف الثالث المضمّنة بتراخيصها الأصلية وترويسات حقوق النشر الخاصة بها.

تنزيل الأداة