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 من المدى الديناميكي.
  • المثال الخصومي نفسه يخدع بنيات مختلفة دُرِّبت على بيانات مختلفة. أي أن الخدعة ليست مرتبطة بنموذج بعينه.
  • الدفاعات المعتادة — الإسقاط العشوائي و وتجميع النماذج — لم توفّر أي حماية.
افتح في المختبر
العرض الكلاسيكي لـ FGSM: صورة باندا + ضجيج ضئيل = «قرد جيبون» بثقة 99.3%. اسحب ε لترى كيف تؤثر قوة الاضطراب على الهجوم.
تستيقظ التجربة عند وصولك…

الرؤية الجوهرية: الخطّية هي السبب وليست اللاخطية

التفسير الذي كان سائداً افترض أن الشبكات العميقة لاخطية بإفراط، وأن حدود القرار فيها شديدة الانحناء وتحوي جيوباً صغيرة يقع فيها تصنيف خاطئ. لكن غودفيلو وفريقه قدّموا فرضية معاكسة: المشكلة الحقيقية أن الشبكات الحديثة خطّية أكثر مما ينبغي.

لماذا خطّية؟ لأننا صمّمناها هكذا عن قصد. تنشيطات خطّية بالقطع. بوابات تعمل غالباً في نطاقها الخطّي. وحدات Maxout تختار بين دوال خطّية. حتى شبكات تُضبط لتتجنب التشبّع فتبقى في المنطقة الوسطى شبه الخطية. هذه الخطّية هي ما يجعل بـ سلسة وفعّالة، لكنها في المقابل تجعل الشبكات سهلة الخداع.

لنستعرض الحُجّة الرياضية الأساسية. لنفترض أن لدينا متجه أوزان w\mathbf{w} ومُدخلاً x\mathbf{x}. نُضيف اضطراباً η\boldsymbol{\eta} فنحصل على المُدخل الخصومي x~=x+η\tilde{\mathbf{x}} = \mathbf{x} + \boldsymbol{\eta}. الضرب النقطي يصبح:

wx~=wx+wη\mathbf{w}^\top \tilde{\mathbf{x}} = \mathbf{w}^\top \mathbf{x} + \mathbf{w}^\top \boldsymbol{\eta}

إذن الاضطراب يُغيّر بمقدار wη\mathbf{w}^\top \boldsymbol{\eta}. السؤال: كيف نجعل هذا التغيير أكبر ما يمكن مع إبقاء كل عنصر من η\boldsymbol{\eta} صغيراً (لا يتجاوز ϵ\epsilon)؟ الجواب أن نضبط η=ϵsign(w)\boldsymbol{\eta} = \epsilon \cdot \text{sign}(\mathbf{w})، فتصبح الإزاحة الناتجة ϵw1\epsilon \cdot \|\mathbf{w}\|_1.

لو كان لـw\mathbf{w} عدد nn من الأبعاد بمتوسط قيمة مطلقة mm لكل عنصر، فالإزاحة تساوي ϵmn\epsilon \cdot m \cdot n. كل عنصر من η\boldsymbol{\eta} لا يتعدى ϵ\epsilon — أي غير مرئي عملياً — لكن الأثر الكلّي ينمو خطّياً مع عدد الأبعاد nn. في فضاء بآلاف الأبعاد، تلك الدفعة الضئيلة على مستوى كل بكسل تتجمّع لتُحدث تغييراً ضخماً في المخرجات.

افتح في المختبر
كل بُعد يُسهم بدفعة ε ضئيلة. شاهد الأثر الكلّي ينمو خطّياً مع عدد الأبعاد n.
تستيقظ التجربة عند وصولك…

طريقة إشارة التدرج السريع (FGSM)

الجميل في الفرضية الخطّية أنها لا تفسّر الأمثلة الخصومية فحسب، بل تُعطينا فوراً طريقة لتوليدها. المنطق بسيط: ما دامت الخطّية هي السبب، فيكفي أن نُقرّب خطّياً حول المُدخل الحالي حتى يظهر لنا اتجاه الاضطراب الأمثل.

الآلية كالتالي: احسب بالنسبة للمُدخل، ثم خذ إشارة كل عنصر (موجب أو سالب). هذا يُعطيك الاتجاه الذي يرفع الخسارة أقصى ما يمكن عند كل بكسل، مع بقاء الاضطراب داخل كرة \ell_\infty بنصف قطر ϵ\epsilon.

تمرير أمامي واحد، واحد، عملية إشارة على كل عنصر — والمثال الخصومي جاهز. قارن ذلك بطريقة سزيغدي السابقة التي كانت تحتاج أمثَلة L-BFGS مكلّفة حسابياً عبر تكرارات كثيرة.

η=ϵsign ⁣(xJ(θ,x,y))\boldsymbol{\eta} = \epsilon \cdot \text{sign}\!\left(\nabla_{\mathbf{x}} J(\boldsymbol{\theta}, \mathbf{x}, y)\right)
طريقة إشارة التدرج السريع — اضطراب خصومي في خطوة واحدةθ = معاملات النموذج · x = المُدخل النظيف · y = التصنيف الصحيح · J = دالة الخسارة · ∇ₓJ = تدرج الخسارة بالنسبة للمُدخل · sign = إشارة كل عنصر (‎−1 أو 0 أو ‎+1) · ε = ميزانية الاضطراب (مثلاً 0.007 لـ ImageNet و 0.25 لـ MNIST)

تخيّل FGSM كأنك تصعد أشدّ منحدر على سطح الخسارة، لكنك تأخذ خطوة واحدة فقط بحجم ثابت ϵ\epsilon في كل بُعد. دالة الإشارة تضمن أن كل بكسل يدفع الخسارة للأعلى بالمقدار نفسه — وبهذا تستغل ميزانية الاضطراب المحدودة بأقصى كفاءة ممكنة.

افتح في المختبر
تابع خطوات FGSM: تمرير أمامي ← حساب التدرج ← أخذ الإشارة ← الضرب في ε ← إضافته إلى المُدخل.
تستيقظ التجربة عند وصولك…

ما مدى فعالية FGSM؟

النتائج مُدمّرة. مصنّف بسيط على MNIST حين يُهاجَم بـϵ=0.25\epsilon = 0.25 يقفز خطؤه من 1.6% إلى 99.9% — أي أن كل عيّنة تقريباً تُصنَّف خطأً. حتى شبكة Maxout الأقوى بكثير تصل إلى 89.4% خطأ تحت الهجوم نفسه، مع ثقة وسطية تبلغ 97.6% في التنبؤات الخاطئة.

على CIFAR-10 بـϵ=0.1\epsilon = 0.1، شبكة Maxout تصل إلى 87.15% خطأ بثقة 96.6% في التصنيفات الخاطئة. لاحظ أن النماذج ليست مخطئة فقط — بل واثقة من خطئها.

افتح في المختبر
اسحب ε من 0 إلى 0.3 لترى كيف يتغير معدل الخطأ والثقة. حتى قيم ε الضئيلة تُسبّب انهياراً حاداً في الدقة.
تستيقظ التجربة عند وصولك…

لماذا تنتقل الأمثلة الخصومية بين النماذج المختلفة

من أكثر الظواهر إثارةً للتساؤل أن الأمثلة الخصومية تنتقل بين النماذج: صورة خصومية صُنعت لخداع النموذج (أ) كثيراً ما تخدع النموذج (ب) أيضاً، حتى لو اختلفت بنيته وبيانات تدريبه. لو كان التفسير هو اللاخطية المفرطة، فلا سبب مقنع لأن تتشارك دالتان لاخطيتان مختلفتان النقاط العمياء نفسها.

الفرضية الخطّية تُفسّر ذلك بشكل طبيعي. النماذج المُدرَّبة على المهمة ذاتها تتعلم أوزاناً متقاربة في اتجاهها، لأن هو جوهر . فإذا تشابه اتجاه أوزان النموذجَين، فإن الاضطراب sign(xJ)\text{sign}(\nabla_\mathbf{x} J) المحسوب للنموذج (أ) سيكون له ضرب نقطي موجب وكبير مع أوزان النموذج (ب) أيضاً. الاضطراب يتحرك في اتجاه عريض داخل فضاء المدخلات وليس في نقطة دقيقة هشّة، ولذلك ينتقل بسهولة.

افتح في المختبر
تتبّع قيم ε من ‎−15 إلى ‎+15: التصنيف الخصومي الخاطئ مستقرّ عبر نطاق واسع وليس شريحة رفيعة.
تستيقظ التجربة عند وصولك…

تسخير الأمثلة الخصومية: التدريب الخصومي

ما دامت FGSM تولّد أمثلة خصومية بتكلفة حسابية زهيدة، فالسؤال الطبيعي: لمَ لا ندرّب النموذج عليها؟ الفكرة بسيطة لكنها فعّالة: في كل خطوة تدريب، ولِّد نسخاً خصومية من الحالية ودرِّب النموذج على الأمثلة النظيفة والخصومية معاً. بهذا يتعلم النموذج مقاومة أقوى اضطراب يستطيع إيجاده، بدلاً من مجرد حفظ بيانات التدريب.

في تمزج بين الخسارة النظيفة والخسارة الخصومية:

J~(θ,x,y)=αJ(θ,x,y)+(1α)J ⁣(θ,x+ϵsign(xJ),y)\tilde{J}(\boldsymbol{\theta}, \mathbf{x}, y) = \alpha \, J(\boldsymbol{\theta}, \mathbf{x}, y) + (1 - \alpha) \, J\!\left(\boldsymbol{\theta}, \mathbf{x} + \epsilon \cdot \text{sign}(\nabla_{\mathbf{x}} J), y\right)
دالة هدف التدريب الخصومي — تعلَّم من أسوأ المدخلاتα = معامل المزج (0.5 في الورقة) · الحد الأول: الخسارة على المُدخل النظيف · الحد الثاني: الخسارة على المُدخل المُضطرب بـ FGSM · يُحدَّث النموذج لتقليل كليهما في آنٍ واحد.

النتائج ملفتة. على MNIST بشبكة Maxout أكبر (1600 وحدة في كل ):

  • خطأ الاختبار النظيف: تحسّن من 0.94% إلى 0.78% — أي أن التدريب الخصومي يعمل كـ، ويتفوّق على وحده.
  • الخطأ الخصومي: هبط من 89.4% إلى 17.9% — تحسُّن كبير في متانة النموذج.
  • الأوزان المُتعلَّمة أصبحت أكثر تمركزاً وقابلية للتفسير، إذ ركّز النموذج على ذات دلالة معنوية بدلاً من أنماط منتشرة تشبه .

يمكن تأطير التدريب الخصومي بعدة أُطر نظرية: كلعبة مع خصم، أو كتقليل لحدّ أعلى على التكلفة المتوقعة عند وجود تشويش في المدخلات، أو كنوع من يطلب فيه النموذج تصنيفات لأصعب الأمثلة التي يواجهها.

افتح في المختبر
قارن بين رؤى الأوزان: التدريب التقليدي (ضجيج منتشر) مقابل التدريب الخصومي (مُركَّز وقابل للتفسير).
تستيقظ التجربة عند وصولك…

ما لا ينجح — ولماذا

تختبر الورقة عدة دفاعات بشكل منهجي وتُسقطها واحداً تلو الآخر:

  • الإسقاط العشوائي والتنظيم المعتاد: لا يمسّان العلاقة الخطّية الأساسية بين اضطراب المُدخل والمخرجات، فيظل النموذج سهل الخداع.
  • : نموذج MP-DBM (توليدي بخطأ 0.88% على MNIST) يصل إلى 97.5% خطأ على أمثلة خصومية. كون النموذج توليدياً لا يوفّر حماية.
  • تجميع النماذج: تجميعة من 12 شبكة Maxout تصل إلى 91.1% خطأ على أمثلة خصومية صُمّمت ضد التجميعة بأكملها. التوسيط لا يُلغي أثر الاضطرابات الخصومية.
  • الضجيج العشوائي: التدريب بضجيج عشوائي ±ϵ\pm\epsilon يُعطي 86.2% خطأ خصومي مقابل 17.9% فقط مع التدريب الخصومي بـ FGSM. الضجيج العشوائي أمثلة «سهلة»، بينما FGSM تولّد الأمثلة «الصعبة» فعلاً.

عائلة النماذج الوحيدة التي أبدت مقاومة طبيعية هي شبكات (RBF)، بخطأ 55.4% فقط على الأمثلة الخصومية لأنها تستجيب بثقة منخفضة جداً (1.2%) حين تُخدع. لكن شبكات RBF لا تملك السعة الكافية لـالتعميم الجيد، وهنا يظهر التوتّر الجوهري: النماذج الخطّية سهلة الأمثَلة لكنها سهلة الهجوم، والنماذج اللاخطية المقاومة للهجوم صعبة التدريب.

التدريب الخصومي مقابل تناقُص الأوزان: فرق دقيق لكنه جوهري

في حالة اللوجستي، اضطراب FGSM دقيق تماماً وليس تقريباً. عندها تصبح دالة هدف التدريب الخصومي هي تقليل:

Ex,y[ζ ⁣(y(w1wxb))]\mathbb{E}_{x,y} \left[ \zeta\!\left(y(||\mathbf{w}||_1 - \mathbf{w}^\top \mathbf{x} - b)\right) \right]

للوهلة الأولى يبدو هذا مشابهاً لـتنظيم L1L_1، لكن الفرق جوهري: عقوبة L1L_1 هنا تُطرح من التنشيط ولا تُضاف إلى التكلفة. ما يعنيه ذلك أنه حين يكون النموذج واثقاً من تنبؤاته الصحيحة، تتشبّع العقوبة وتتوقف تلقائياً. أما بـL1L_1 فأكثر تشاؤماً — لا يتوقف أبداً حتى لو امتلك النموذج هامشاً كافياً. عملياً، التدريب الخصومي بـϵ=0.25\epsilon = 0.25 يعمل جيداً على MNIST، بينما L1L_1 بمعامل 0.0025 يُسبّب .

FGSM في شيفرة برمجية

هجوم FGSM والتدريب الخصومي — تنفيذ كاملpython

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

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 عالية الدقّة لكنها منخفضة الاستدعاء (لا تستجيب إلا للمُدخلات المألوفة وتفوتها المُدخلات الجديدة).

افتح في المختبر
مقايضة الدقّة والاستدعاء: النماذج الخطّية تستجيب لكل شيء (سهلة الخداع)، شبكات RBF تستجيب للمألوف فقط (صعبة الخداع لكنها محدودة).
تستيقظ التجربة عند وصولك…

إرث FGSM

تمثّل هذه الورقة نقطة تحوّل حقيقية في المجال. قبلها، كانت الأمثلة الخصومية مجرد ظاهرة غريبة تثير الفضول. بعدها، تحوّلت إلى برنامج بحثي متكامل. الفرضية الخطّية قدّمت إطاراً موحَّداً جعل الظاهرة مفهومة ووفّر أدوات عملية للتعامل معها.

  1. 2014

    الخصائص المُثيرة (سزيغدي وآخرون)

    اكتشاف الأمثلة الخصومية باستخدام أمثَلة L-BFGS. طريقة بطيئة ومكلفة حسابياً، لكنها أثبتت وجود هذه الثغرة.

  2. 2015

    FGSM (هذه الورقة)

    الفرضية الخطّية + هجوم بخطوة واحدة + تدريب خصومي. جعلت المجال عملياً وأعطته إطاراً موحَّداً.

  3. 2018

    PGD (مادري وآخرون)

    نسخة متعددة الخطوات من FGSM تولّد أمثلة خصومية أقوى. أصبحت المعيار الذهبي في التدريب الخصومي.

  4. 2018

    Mixup (جانغ وآخرون)

    التدريب على مزيج محدب من الأمثلة وتصنيفاتها. أسلوب أخفّ من التنظيم الخصومي يعمل على تنعيم حدود القرار.

  5. 2019

    الدفاعات المُعتمَدة

    التنعيم العشوائي وطرق أخرى توفّر ضمانات رياضية للمتانة ضمن نصف قطر محدد.

  6. 2020

    التدريب الخصومي واسع النطاق

    تطبيق التدريب الخصومي على نماذج بحجم ImageNet، لسدّ الفجوة بين التجارب البحثية والاستخدام الفعلي.

المرجعGoodfellow, Shlens, Szegedy. Explaining and Harnessing Adversarial Examples. ICLR, 2015.

مصطلحات هذه الورقة