Adversarial Machine Learning2015متوسط12 دقيقة قراءة
فهم الأمثلة الخصومية واستثمارها
Explaining and Harnessing Adversarial Examples
Goodfellow, I. J. · Shlens, J. · Szegedy, C. — ICLR
المشكلة
رغم الدقة المبهرة التي تحققها الشبكات العصبية، تعاني من هشاشة غير متوقعة: يكفي أن تضيف تعديلاً طفيفاً لا تدركه العين على صورة حتى ينقلب تصنيف تماماً وبثقة عالية. اكتشف سزيغدي وفريقه (2014) هذه الظاهرة، لكنهم فسّروها باللاخطية المفرطة والإفراط في الملاءمة. المشكلة الإضافية أنه لم تكن هناك طريقة سريعة لتوليد هذه الأمثلة الخصومية، ما جعل الخصومي مكلفاً حسابياً وغير عملي.
الإسهام
جاء غودفيلو وفريقه بطرح مغاير تماماً: مصدر الهشاشة الخصومية هو الخطّية لا اللاخطية. في الفضاءات عالية الأبعاد، حاصل بين الأوزان واضطراب صغير ينمو خطّياً مع عدد الأبعاد، حتى لو كان كل عنصر من الاضطراب ضئيلاً بمفرده. هذه الرؤية أنتجت طريقة إشارة التدرج السريع (FGSM) — خطوة انتشار عكسي واحدة تولّد أمثلة خصومية لحظياً. وحين استُخدمت FGSM في التدريب الخصومي، انخفض خطأ MNIST من 0.94% إلى 0.78% والخطأ الخصومي من 89.4% إلى 17.9%.
الأثر
أصبحت FGSM المرجع الأساسي لقياس الهجمات الخصومية وأداة عملية لتقوية النماذج عبر التدريب الخصومي. الفرضية الخطّية وحّدت مجالاً كان مُشتّتاً: فسّرت انتقال الأمثلة الخصومية بين النماذج، وعدم جدوى تجميع النماذج كدفاع، والمناعة الطبيعية لشبكات RBF. أطلقت الورقة برنامج أبحاث الخصومية الحديث، وألهمت مباشرةً أعمالاً مثل PGD وMixup والدفاعات المُعتمَدة والتدريب الخصومي على نطاق واسع.
تخيّل أنك مدرّس يصحّح امتحانات، ورسمتَ خطاً مستقيماً يفصل النجاح عن الرسوب. اكتشف أحد الطلاب أنه لو عدّل كل إجابة بمقدار ضئيل جداً — تعديل أصغر من أن يُلاحظ بمفرده — فإن مجموع هذه التعديلات يدفع درجته فوق خط النجاح. كل تعديل وحده لا يُرى، لكن مئات الدفعات الصغيرة في الاتجاه نفسه تتراكم لتصنع دفعة ضخمة.
هذا بالضبط ما تفعله بالشبكات العصبية: حدود القرار في الشبكة تُشبه سطحاً مستوياً في فضاء بآلاف . اضطراب لا تدركه العين على مستوى كل يمكنه — حين يتراكم عبر كل تلك الأبعاد — أن يدفع المُدخل إلى الجانب الآخر من الحدود تماماً.
اللغز: ضجيج لا يُرى يخدع أقوى النماذج
في عام 2014، كشف سزيغدي وفريقه عن ملاحظة مفاجئة: خذ أي صورة يصنّفها عميق بنجاح، وأضف إليها تعديلاً محسوباً بعناية لكنه صغير جداً بحيث لا تستطيع العين التمييز بين الصورتين — ومع ذلك يتنبأ النموذج بفئة خاطئة تماماً وبثقة عالية. صورة باندا تتحوّل إلى قرد جيبون، ولافتة «قف» تُقرأ كلافتة سرعة.
ثلاث ملاحظات جعلت هذه الظاهرة مُحيّرة بشكل خاص:
- الاضطرابات غير مرئية — تغيّر كل بكسل لا يتجاوز 1/255 من المدى الديناميكي.
- المثال الخصومي نفسه يخدع بنيات مختلفة دُرِّبت على بيانات مختلفة. أي أن الخدعة ليست مرتبطة بنموذج بعينه.
- الدفاعات المعتادة — الإسقاط العشوائي و وتجميع النماذج — لم توفّر أي حماية.
الرؤية الجوهرية: الخطّية هي السبب وليست اللاخطية
التفسير الذي كان سائداً افترض أن الشبكات العميقة لاخطية بإفراط، وأن حدود القرار فيها شديدة الانحناء وتحوي جيوباً صغيرة يقع فيها تصنيف خاطئ. لكن غودفيلو وفريقه قدّموا فرضية معاكسة: المشكلة الحقيقية أن الشبكات الحديثة خطّية أكثر مما ينبغي.
لماذا خطّية؟ لأننا صمّمناها هكذا عن قصد. تنشيطات خطّية بالقطع. بوابات تعمل غالباً في نطاقها الخطّي. وحدات Maxout تختار بين دوال خطّية. حتى شبكات تُضبط لتتجنب التشبّع فتبقى في المنطقة الوسطى شبه الخطية. هذه الخطّية هي ما يجعل بـ سلسة وفعّالة، لكنها في المقابل تجعل الشبكات سهلة الخداع.
لنستعرض الحُجّة الرياضية الأساسية. لنفترض أن لدينا متجه أوزان ومُدخلاً . نُضيف اضطراباً فنحصل على المُدخل الخصومي . الضرب النقطي يصبح:
إذن الاضطراب يُغيّر بمقدار . السؤال: كيف نجعل هذا التغيير أكبر ما يمكن مع إبقاء كل عنصر من صغيراً (لا يتجاوز )؟ الجواب أن نضبط ، فتصبح الإزاحة الناتجة .
لو كان لـ عدد من الأبعاد بمتوسط قيمة مطلقة لكل عنصر، فالإزاحة تساوي . كل عنصر من لا يتعدى — أي غير مرئي عملياً — لكن الأثر الكلّي ينمو خطّياً مع عدد الأبعاد . في فضاء بآلاف الأبعاد، تلك الدفعة الضئيلة على مستوى كل بكسل تتجمّع لتُحدث تغييراً ضخماً في المخرجات.
طريقة إشارة التدرج السريع (FGSM)
الجميل في الفرضية الخطّية أنها لا تفسّر الأمثلة الخصومية فحسب، بل تُعطينا فوراً طريقة لتوليدها. المنطق بسيط: ما دامت الخطّية هي السبب، فيكفي أن نُقرّب خطّياً حول المُدخل الحالي حتى يظهر لنا اتجاه الاضطراب الأمثل.
الآلية كالتالي: احسب بالنسبة للمُدخل، ثم خذ إشارة كل عنصر (موجب أو سالب). هذا يُعطيك الاتجاه الذي يرفع الخسارة أقصى ما يمكن عند كل بكسل، مع بقاء الاضطراب داخل كرة بنصف قطر .
تمرير أمامي واحد، واحد، عملية إشارة على كل عنصر — والمثال الخصومي جاهز. قارن ذلك بطريقة سزيغدي السابقة التي كانت تحتاج أمثَلة L-BFGS مكلّفة حسابياً عبر تكرارات كثيرة.
تخيّل FGSM كأنك تصعد أشدّ منحدر على سطح الخسارة، لكنك تأخذ خطوة واحدة فقط بحجم ثابت في كل بُعد. دالة الإشارة تضمن أن كل بكسل يدفع الخسارة للأعلى بالمقدار نفسه — وبهذا تستغل ميزانية الاضطراب المحدودة بأقصى كفاءة ممكنة.
ما مدى فعالية FGSM؟
النتائج مُدمّرة. مصنّف بسيط على MNIST حين يُهاجَم بـ يقفز خطؤه من 1.6% إلى 99.9% — أي أن كل عيّنة تقريباً تُصنَّف خطأً. حتى شبكة Maxout الأقوى بكثير تصل إلى 89.4% خطأ تحت الهجوم نفسه، مع ثقة وسطية تبلغ 97.6% في التنبؤات الخاطئة.
على CIFAR-10 بـ، شبكة Maxout تصل إلى 87.15% خطأ بثقة 96.6% في التصنيفات الخاطئة. لاحظ أن النماذج ليست مخطئة فقط — بل واثقة من خطئها.
لماذا تنتقل الأمثلة الخصومية بين النماذج المختلفة
من أكثر الظواهر إثارةً للتساؤل أن الأمثلة الخصومية تنتقل بين النماذج: صورة خصومية صُنعت لخداع النموذج (أ) كثيراً ما تخدع النموذج (ب) أيضاً، حتى لو اختلفت بنيته وبيانات تدريبه. لو كان التفسير هو اللاخطية المفرطة، فلا سبب مقنع لأن تتشارك دالتان لاخطيتان مختلفتان النقاط العمياء نفسها.
الفرضية الخطّية تُفسّر ذلك بشكل طبيعي. النماذج المُدرَّبة على المهمة ذاتها تتعلم أوزاناً متقاربة في اتجاهها، لأن هو جوهر . فإذا تشابه اتجاه أوزان النموذجَين، فإن الاضطراب المحسوب للنموذج (أ) سيكون له ضرب نقطي موجب وكبير مع أوزان النموذج (ب) أيضاً. الاضطراب يتحرك في اتجاه عريض داخل فضاء المدخلات وليس في نقطة دقيقة هشّة، ولذلك ينتقل بسهولة.
تسخير الأمثلة الخصومية: التدريب الخصومي
ما دامت FGSM تولّد أمثلة خصومية بتكلفة حسابية زهيدة، فالسؤال الطبيعي: لمَ لا ندرّب النموذج عليها؟ الفكرة بسيطة لكنها فعّالة: في كل خطوة تدريب، ولِّد نسخاً خصومية من الحالية ودرِّب النموذج على الأمثلة النظيفة والخصومية معاً. بهذا يتعلم النموذج مقاومة أقوى اضطراب يستطيع إيجاده، بدلاً من مجرد حفظ بيانات التدريب.
في تمزج بين الخسارة النظيفة والخسارة الخصومية:
النتائج ملفتة. على MNIST بشبكة Maxout أكبر (1600 وحدة في كل ):
- خطأ الاختبار النظيف: تحسّن من 0.94% إلى 0.78% — أي أن التدريب الخصومي يعمل كـ، ويتفوّق على وحده.
- الخطأ الخصومي: هبط من 89.4% إلى 17.9% — تحسُّن كبير في متانة النموذج.
- الأوزان المُتعلَّمة أصبحت أكثر تمركزاً وقابلية للتفسير، إذ ركّز النموذج على ذات دلالة معنوية بدلاً من أنماط منتشرة تشبه .
يمكن تأطير التدريب الخصومي بعدة أُطر نظرية: كلعبة مع خصم، أو كتقليل لحدّ أعلى على التكلفة المتوقعة عند وجود تشويش في المدخلات، أو كنوع من يطلب فيه النموذج تصنيفات لأصعب الأمثلة التي يواجهها.
ما لا ينجح — ولماذا
تختبر الورقة عدة دفاعات بشكل منهجي وتُسقطها واحداً تلو الآخر:
- الإسقاط العشوائي والتنظيم المعتاد: لا يمسّان العلاقة الخطّية الأساسية بين اضطراب المُدخل والمخرجات، فيظل النموذج سهل الخداع.
- : نموذج MP-DBM (توليدي بخطأ 0.88% على MNIST) يصل إلى 97.5% خطأ على أمثلة خصومية. كون النموذج توليدياً لا يوفّر حماية.
- تجميع النماذج: تجميعة من 12 شبكة Maxout تصل إلى 91.1% خطأ على أمثلة خصومية صُمّمت ضد التجميعة بأكملها. التوسيط لا يُلغي أثر الاضطرابات الخصومية.
- الضجيج العشوائي: التدريب بضجيج عشوائي يُعطي 86.2% خطأ خصومي مقابل 17.9% فقط مع التدريب الخصومي بـ FGSM. الضجيج العشوائي أمثلة «سهلة»، بينما FGSM تولّد الأمثلة «الصعبة» فعلاً.
عائلة النماذج الوحيدة التي أبدت مقاومة طبيعية هي شبكات (RBF)، بخطأ 55.4% فقط على الأمثلة الخصومية لأنها تستجيب بثقة منخفضة جداً (1.2%) حين تُخدع. لكن شبكات RBF لا تملك السعة الكافية لـالتعميم الجيد، وهنا يظهر التوتّر الجوهري: النماذج الخطّية سهلة الأمثَلة لكنها سهلة الهجوم، والنماذج اللاخطية المقاومة للهجوم صعبة التدريب.
التدريب الخصومي مقابل تناقُص الأوزان: فرق دقيق لكنه جوهري
في حالة اللوجستي، اضطراب FGSM دقيق تماماً وليس تقريباً. عندها تصبح دالة هدف التدريب الخصومي هي تقليل:
للوهلة الأولى يبدو هذا مشابهاً لـتنظيم ، لكن الفرق جوهري: عقوبة هنا تُطرح من التنشيط ولا تُضاف إلى التكلفة. ما يعنيه ذلك أنه حين يكون النموذج واثقاً من تنبؤاته الصحيحة، تتشبّع العقوبة وتتوقف تلقائياً. أما بـ فأكثر تشاؤماً — لا يتوقف أبداً حتى لو امتلك النموذج هامشاً كافياً. عملياً، التدريب الخصومي بـ يعمل جيداً على MNIST، بينما بمعامل 0.0025 يُسبّب .
FGSM في شيفرة برمجية
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import torch
import torch.nn.functional as F
def fgsm_attack(model, x, y, epsilon=0.25):
"""توليد أمثلة خصومية باستخدام FGSM.
x: صور الدفعة المُدخلة
y: التصنيفات الصحيحة
epsilon: ميزانية الاضطراب
"""
x.requires_grad_(True)
loss = F.cross_entropy(model(x), y)
loss.backward()
# جوهر FGSM: إشارة التدرج مضروبة في إبسيلون
perturbation = epsilon * x.grad.sign()
x_adv = (x + perturbation).clamp(0, 1)
return x_adv
def adversarial_train_step(model, optimizer, x, y, epsilon=0.25, alpha=0.5):
"""خطوة تدريب خصومي واحدة: مزج الخسارة النظيفة والخصومية."""
# الخسارة النظيفة
clean_loss = F.cross_entropy(model(x), y)
# توليد الأمثلة الخصومية (فصل النموذج عن مخطط FGSM)
x_adv = fgsm_attack(model, x.clone(), y, epsilon)
# الخسارة الخصومية
adv_loss = F.cross_entropy(model(x_adv.detach()), y)
# الهدف المُركَّب: α × نظيف + (1-α) × خصومي
total_loss = alpha * clean_loss + (1 - alpha) * adv_loss
optimizer.zero_grad()
total_loss.backward()
optimizer.step()
return total_loss.item()مسألة السعة: أي النماذج يمكنها المقاومة؟
ليست كل النماذج هشّة بالدرجة نفسها. تُميّز الورقة بوضوح بين نماذج تستطيع تعلّم المتانة وأخرى لا تستطيع:
- النماذج الخطّية (مثل انحدار Softmax) لا تملك أي آلية لمقاومة الاضطراب الخصومي. تستجيب بثقة في كل اتجاه من فضاء المدخلات ولا تستطيع أن «تقول لا أعرف».
- شبكات RBF تقاوم الأمثلة الخصومية بطبيعتها، لأنها لا تستجيب بثقة إلا بالقرب من مراكزها المُتعلَّمة. بعيداً عن البيانات تعود إلى ثقة منخفضة. لكن الثمن هو التعميم — لا تنقل المعرفة إلى مناطق لم ترها من قبل.
- الشبكات العميقة ذات تستطيع نظرياً تعلُّم المقاومة — مبرهنة المُقرِّب الشامل تضمن ذلك. لكنها تحتاج تدريباً صريحاً على المتانة، والتدريب المعتاد لا يطلبها فلا يتعلّمها النموذج.
هذا يرسم طيفاً: النماذج الخطّية عالية لكنها منخفضة (تستجيب لكل شيء لكن يسهل خداعها)، بينما شبكات RBF عالية الدقّة لكنها منخفضة الاستدعاء (لا تستجيب إلا للمُدخلات المألوفة وتفوتها المُدخلات الجديدة).
إرث FGSM
تمثّل هذه الورقة نقطة تحوّل حقيقية في المجال. قبلها، كانت الأمثلة الخصومية مجرد ظاهرة غريبة تثير الفضول. بعدها، تحوّلت إلى برنامج بحثي متكامل. الفرضية الخطّية قدّمت إطاراً موحَّداً جعل الظاهرة مفهومة ووفّر أدوات عملية للتعامل معها.
2014
الخصائص المُثيرة (سزيغدي وآخرون)
اكتشاف الأمثلة الخصومية باستخدام أمثَلة L-BFGS. طريقة بطيئة ومكلفة حسابياً، لكنها أثبتت وجود هذه الثغرة.
2015
FGSM (هذه الورقة)
الفرضية الخطّية + هجوم بخطوة واحدة + تدريب خصومي. جعلت المجال عملياً وأعطته إطاراً موحَّداً.
2018
PGD (مادري وآخرون)
نسخة متعددة الخطوات من FGSM تولّد أمثلة خصومية أقوى. أصبحت المعيار الذهبي في التدريب الخصومي.
2018
Mixup (جانغ وآخرون)
التدريب على مزيج محدب من الأمثلة وتصنيفاتها. أسلوب أخفّ من التنظيم الخصومي يعمل على تنعيم حدود القرار.
2019
الدفاعات المُعتمَدة
التنعيم العشوائي وطرق أخرى توفّر ضمانات رياضية للمتانة ضمن نصف قطر محدد.
2020
التدريب الخصومي واسع النطاق
تطبيق التدريب الخصومي على نماذج بحجم ImageNet، لسدّ الفجوة بين التجارب البحثية والاستخدام الفعلي.
المرجعGoodfellow, Shlens, Szegedy. Explaining and Harnessing Adversarial Examples. ICLR, 2015.
مصطلحات هذه الورقة
- العينات العدائية المضللةAdversarial Example
- الهجوم العدائي الموجهAdversarial Attack
- التدريب التنافسيAdversarial Training
- المتانةRobustness
- التدرج التفاضليGradient
- المعيار التفاضليNorm
- الضبط الهيكليRegularization
- دالة الوحدة الخطية المصححةReLU
- سوفت ماكسSoftmax
- التعميمGeneralization