أساسيات تعلم الآلة1995متوسط12 دقيقة قراءة
شبكات ناقلات الدعم
Support-Vector Networks
Cortes, C. · Vapnik, V. — Machine Learning
المشكلة
في مطلع التسعينيات، كانت الشبكات العصبية قادرة على التقاط أنماط معقّدة لكنها تفتقر إلى أيّ ضمان نظري بأنها ستعمل جيداً على بيانات لم تَرَها من قبل. نفسه كان مليئاً بالمشاكل: حلول محلية لا يمكن الخروج منها وقرارات كثيرة تعتمد على التجربة والخطأ. في المقابل، كانت المصنّفات الخطية البسيطة موثوقة لكنها عاجزة عن التقاط العلاقات غير الخطية. كان الميدان بحاجة إلى تجمع الصرامة الرياضية للأمثَلة المحدّبة مع القدرة على التعامل مع بيانات معقّدة — خوارزمية تأتي بضمانات مُثبَتة رياضياً وليس مجرد نتائج تجريبية مُبشِّرة.
الإسهام
شبكة : مصنّف يبحث عن الذي يحقّق أقصى هامش — أوسع فجوة ممكنة — بين فئتين. عندما لا يمكن فصل البيانات بخطّ مستقيم، تُدخِل الورقة متغيرات ارتخاء تسمح بقدر محسوب من الأخطاء، ويتحكم المعامل C في الموازنة بين اتساع وعدد الأخطاء المسموح بها. أما فتنقل البيانات ضمنياً إلى فضاء سمات عالي الأبعاد عبر استبدال بدوال نواة (متعددة الحدود أو )، فلا تحتاج الخوارزمية أبداً للحساب في ذلك الفضاء مباشرة. مسألة الأمثَلة هنا برنامج تربيعي محدّب له حل وحيد وشامل — بلا حلول محلية. ولا يُحدّد حدّ القرار إلا مجموعة صغيرة من نقاط التدريب تُسمّى ناقلات الدعم، مما يجعل مُوجَزاً وسريعاً.
الأثر
هيمنت آلة ناقلات الدعم على تعلّم الآلة لأكثر من عقد كامل — من التعرّف على خط اليد إلى المعلوماتية الحيوية النصوص — قبل أن يتصدّر التعلّم العميق المشهد. تحوّلت خدعة النواة إلى مبدأ تصميمي عام: أي خوارزمية لا تعتمد إلا على الضرب النقطي يمكن تحويلها لتعمل بالنوى. كذلك أثّر مبدأ الهامش الأقصى في أساليب التعزيز التكراري وتعلّم المقاييس، بل وحتى في تدريب الشبكات العصبية الحديثة من خلال . ولا يزال الإطار النظري الذي بُنيت عليه — نظرية VC وتقليل المخاطر البنيوي — حجر الأساس في نظرية التعلّم الإحصائي.
تخيّل فريقَي كرة قدم يتشاركان ملعباً واحداً للتدريب، وأنت مطالَب برسم خط طباشيري يقسم الملعب بينهما. بإمكانك رسمه في أي مكان بين الفريقين، لكن الخيار الأذكى هو الخط الذي يترك أوسع منطقة فاصلة — بحيث لا يتجاوزها أيّ لاعب بالخطأ.
اللاعبون القلائل الواقفون عند حافة هذه المنطقة الفاصلة بالذات هم ناقلات الدعم. حرِّك أيّاً منهم وسيتغيّر موضع الخط، لكن لو أزلت لاعباً من وسط الملعب فلن يتأثر شيء.
تخيّل الآن أن اللاعبين مختلطون تماماً ولا يمكنك رسم خط مستقيم يفصلهم. هنا تأتي خدعة النواة: تخيّل أنك نفخت الملعب المسطح فصار تلّةً ثلاثية الأبعاد — اللاعبون الذين كانوا متداخلين على السطح المستوي أصبحوا على ارتفاعات مختلفة، وشريحة أفقية واحدة عبر التلّة تفصلهم بوضوح. حين تُسقط هذا القطع على الملعب الأصلي يظهر كمنحنى، رغم أن الحساب الرياضي لم يرسم سوى خط مستقيم.
المشكلة: أين يجب أن يمرّ حدّ الفصل؟
لنبدأ بمهمة تصنيف ثنائي كلاسيكية: لدينا نقاط بيانات تنتمي إلى فئتين، وكل نقطة تحمل عنواناً يدلّ على فئتها. المطلوب إيجاد حدّ فاصل بينهما. هناك حدود كثيرة تُحقّق خطأ تدريب صفرياً، لكن أيّها سيعمل بشكل أفضل على بيانات جديدة لم يَرَها من قبل؟
مصنّف الانحدار اللوجستي يجد حدّاً فاصلاً ما، لكنه ليس بالضرورة الحدّ الذي يُعظّم الفجوة بين الفئتين. قد تجد حدّاً أكثر تعقيداً، لكن عملية فيها تمرّ عبر سطوح خسارة غير محدّبة مليئة بالحلول المحلية، دون ضمان الوصول إلى أفضل حل.
السؤال الذي طرحه Vapnik وCortes كان: ماذا لو اشترطنا أن يكون حدّ الفصل أبعد ما يمكن عن كلتا الفئتين؟ أثبتا أن هذا الحدّ بالتحديد يُعطي أفضل ضمان لـالتعميم — وأن إيجاده مسألة أمثَلة محدّبة لها حل وحيد وشامل.
الفكرة المحورية: التصنيف بالهامش الأقصى
الهدف هو إيجاد مستوى فائق — سطح قرار مستوٍ — يفصل بين فئتين بـأوسع هامش ممكن. تخيّل الأمر كأنك تشقّ أعرض شارع ممكن بين حيَّيْن: الشارع نفسه هو حدّ القرار، والهامش هو المنطقة الفارغة على كلّ جانب.
لماذا يهمّنا أن يكون الهامش واسعاً؟ تُخبرنا نظرية VC أن المصنّف ذا الهامش الأوسع يملك سعة أقل (أي عدداً أقل من الدوال القادرة على ملاءمة البيانات)، وهذا يعني حدوداً أضيق على خطأ التعميم. بعبارة مبسّطة: حدّ القرار الذي يلتصق بالبيانات يقع في فخ ، بينما الحدّ الذي يُبقي أقصى مسافة من كلتا الفئتين يُقدّم الرهان الأكثر أماناً حول مكان النقاط المستقبلية.
النقاط التي تقع بالضبط على حافتَي الهامش هي ناقلات الدعم. هذه هي النقاط الحاسمة: الحل بأكمله يتوقف عليها وحدها. أي نقطة أخرى يمكن أن تختفي من مجموعة البيانات دون أن يتزحزح الحدّ قيد أنملة.
رياضياً، نُعطي الفئتين العنوانَيْن و. نبحث عن متجه أوزان وانحياز بحيث يفصل المستوى الفائق بين الفئتين. المسافة من أي نقطة إلى هذا المستوى تساوي ، والهامش هو ضعف المسافة إلى أقرب نقطة.
الهامش اللّيّن: مرونة محسوبة في التعامل مع الأخطاء
البيانات الحقيقية نادراً ما تقبل الفصل التام. بعض نقاط الفئة الأولى ستقع حتماً داخل منطقة الفئة الثانية، والإصرار على فصل مثالي إمّا أن يفشل أو يُنتج هامشاً رفيعاً كالشفرة يقع في فرط التخصيص. لذلك أدخل Cortes وVapnik — هامش مرونة صغير لكل نقطة:
- : النقطة على الجانب الصحيح من الهامش، لا خرق.
- : النقطة دخلت منطقة الهامش لكنها لا تزال مصنَّفة بشكل صحيح.
- : النقطة تجاوزت حدّ القرار إلى الجانب الخطأ — تصنيف خاطئ.
المعامل C هو مفتاح التحكم في الموازنة بين اتساع الهامش وعدد الأخطاء. قيمة C كبيرة تعني «عاقِب كل خطأ بشدّة» فيضيق الهامش وتقلّ الأخطاء. وقيمة C صغيرة تعني «تسامَح مع بعض الأخطاء مقابل هامش أوسع» فيتحسّن التعميم. تخيّل C كقرص تحكم بين الصرامة والمرونة — الإفراط في الصرامة يجعل النموذج يحفظ الضوضاء، والإفراط في المرونة يجعله يتجاهل الأنماط الحقيقية.
خدعة النواة: حسابات خطية في عالم لاخطي
ماذا لو كانت البيانات غير قابلة للفصل الخطي أصلاً — لا خط مستقيم ولا سطح مستوٍ يستطيع الفصل بين الفئتين؟ هنا تبرز فكرة أنيقة: انقل البيانات إلى فضاء أعلى أبعاداً تصبح فيه قابلة للفصل، ثم أوجد المستوى الفائق ذا الهامش الأقصى هناك.
مثال: فئتان مُرتبتان في دائرتين متحدتَي المركز لا يمكن فصلهما بخط في بُعدين. لكن إذا أضفت بُعداً ثالثاً (أي البُعد عن المركز)، ترتفع الدائرة الداخلية بعيداً عن الخارجية ويصبح بإمكان سطح مستوٍ أن يفصل بينهما بسهولة.
المشكلة أن الحساب في فضاءات عالية الأبعاد — بل لا نهائية الأبعاد أحياناً — مُكلف جداً. لكن خدعة النواة تتجاوز هذه العقبة بملاحظة ذكية: مسألة الأمثَلة في آلة ناقلات الدعم لا تعتمد إلا على الضرب النقطي بين نقاط البيانات — وليس على الإحداثيات الفردية. فإذا استطعنا حساب مباشرةً من المدخلات الأصلية دون حساب صراحةً، نحصل على النتيجة نفسها بلا أي تكلفة إضافية. هذه الدالة هي النواة.
النوى الشائعة: اختيار الأداة المناسبة
كل نواة تُعرِّف ضمنياً مختلفاً، وبالتالي تُنتج نوعاً مختلفاً من حدود القرار. أهم ثلاث نوى هي:
النواة الخطية: . لا تحويل هنا على الإطلاق — تُستخدم حين تكون البيانات قابلة للفصل الخطي تقريباً. سريعة وسهلة التفسير، وغالباً فعّالة بشكل مدهش مع البيانات عالية الأبعاد كالنصوص.
نواة متعددة الحدود: . تنقل البيانات إلى فضاء يحتوي كل التوليفات متعددة الحدود من حتى الدرجة . مناسبة للمسائل التي تهمّ فيها التفاعلات بين السمات، كأنماط XOR مثلاً.
نواة دالة الأساس الشعاعي (RBF/الغاوسية): . تنقل البيانات إلى فضاء لا نهائي الأبعاد. تُنشئ حدود قرار ناعمة ومحلية — كل ناقل دعم يعمل كنتوء شعاعي يؤثّر على محيطه. وهي أكثر النوى استخداماً للأغراض العامة.
الصيغة المُزدوَجة: لماذا يكفيك الضرب النقطي
يمكن إعادة صياغة مسألة الأمثَلة في آلة ناقلات الدعم بـصيغتها المُزدوَجة باستخدام . بدلاً من البحث عن و مباشرة، نبحث عن المضروبات التي تُعظّم دالة لا تعتمد إلا على الضرب النقطي بين نقاط البيانات. وهذا هو المفتاح الذي يُتيح استخدام خدعة النواة: أينما ظهر ضرب نقطي نستبدله بـ.
الحل الناتج يتميّز بإيجاز أنيق: معظم قيم . والنقاط التي تحمل هي بالضبط ناقلات الدعم. عند التنبؤ بنقطة جديدة ، نحسب تشابه النواة بينها وبين كل ناقل دعم ثم نأخذ تصويتاً موزوناً.
بعد انتهاء التدريب، تُصبح قاعدة التصنيف لأي نقطة جديدة بسيطة:
مجموع موزون يشمل ناقلات الدعم فقط — وهي في الغالب نسبة صغيرة من بيانات التدريب. النتيجة: مصنّف مبنيّ على أسس رياضية متينة وفي الوقت نفسه سريع حوسبياً عند التنبؤ.
مراحل عمل آلة ناقلات الدعم
لنتتبّع رحلة البيانات من حالتها الخام إلى لحظة التنبؤ. تمرّ آلة ناقلات الدعم بأربع مراحل:
1. : تحويل المدخلات الخام (بكسلات، كلمات) إلى متجهات سمات رقمية. هذه المرحلة الوحيدة التي تحتاج خبرة بالمجال التطبيقي.
2. حساب النواة: حساب مصفوفة النواة لكل أزواج نقاط التدريب. هذه هي عملية «الرفع الضمني» إلى الفضاء عالي الأبعاد.
3. : حل المسألة المُزدوَجة لإيجاد مضروبات لاغرانج . المسألة محدّبة بحل وحيد — لا حاجة لإعادة تشغيل عشوائية.
4. التنبؤ: لكل نقطة جديدة، نحسب قيم النواة بينها وبين ناقلات الدعم، ونأخذ المجموع الموزون، ونقرأ الإشارة.
الفكرة بالكود
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def linear_kernel(x, z):
"""الضرب النقطي — أبسط نواة."""
return x @ z.T
def rbf_kernel(x, z, gamma=0.5):
"""نواة RBF الغاوسية: تنقل البيانات إلى فضاء لا نهائي الأبعاد."""
sq = np.sum(x**2, 1).reshape(-1,1) + np.sum(z**2, 1) - 2 * x @ z.T
return np.exp(-gamma * sq)
def svm_predict(X_test, X_sv, y_sv, alphas, b, kernel=linear_kernel):
"""صنِّف نقاطاً جديدة مستخدماً ناقلات الدعم فقط."""
K = kernel(X_sv, X_test) # (عدد_ناقلات, عدد_الاختبار)
scores = (alphas * y_sv) @ K + b # تصويت موزون
return np.sign(scores)
# التدريب الكامل يحلّ برنامجاً تربيعياً لإيجاد قيم alpha.
# النقاط ذات alpha > 0 هي ناقلات الدعم — عادةً %5-30 من البيانات.
# ما عدا ذلك يُهمَل عند التنبؤ.الإثبات التجريبي: التعرّف على الأرقام المكتوبة بخط اليد
اختبر Cortes وVapnik آلة ناقلات الدعم على مجموعة بيانات الأرقام المكتوبة بخط اليد الصادرة عن البريد الأمريكي — المعيار نفسه الذي اختُبرت عليه الشبكات العصبية وخوارزمية أقرب الجيران وأشجار القرار. باستخدام نواة متعددة الحدود من الدرجة الرابعة، حققت آلة ناقلات الدعم معدل أخطاء يُنافس أفضل الشبكات العصبية مع ضمانات نظرية أقوى. بلغ معدل الخطأ %4.0 دون أي يدوية — وهو قريب بشكل لافت من معدل الخطأ البشري في هذه المهمة.
أبرز ما كشفته التجارب: النوى متعددة الحدود حسّنت الأداء تدريجياً حتى الدرجة الرابعة ثم بدأت العوائد بالتراجع. عدد ناقلات الدعم كان نسبة صغيرة من مجموعة التدريب مما يؤكّد إيجاز النموذج. والأهمّ أن التدريب كان عملية أمثَلة محدّبة واحدة — بلا بحث عن بنية شبكة، ولا جداول لـ، ولا تهيئات عشوائية متعددة للمقارنة بينها.
هيمنة طويلة الأمد
أصبحت آلة ناقلات الدعم الخوارزمية المهيمنة في من أواخر التسعينيات حتى مطلع العقد الثاني من الألفية. فازت بمسابقات في تصنيف النصوص والمعلوماتية الحيوية (بنية البروتينات والتعبير الجيني) وكشف الوجوه والتصوير الطبي. وتحوّلت خدعة النواة إلى نمط تصميمي: تحليل المكونات الرئيسية بالنواة والانحدار بالنواة والعمليات الغاوسية — كلها ترث الفكرة نفسها.
حين تفوّق على آلة ناقلات الدعم في مهام الرؤية واللغة واسعة النطاق نحو عام 2012، لم يمحُ إسهاماتها. مبدأ الهامش الأقصى يعيش في خسارة المِفصل المُستخدمة في كثير من الشبكات العصبية. وألهمت خدعة النواة تقريبات السمات العشوائية القادرة على التوسّع لملايين نقاط البيانات. ولا تزال نظرية VC حجر الأساس في نظرية التعلّم الإحصائي.
لماذا كانت هذه الورقة مهمّة
1963
Vapnik و Chervonenkis — المستوى الفائق الأمثل
الخوارزمية الأصلية لإيجاد المستوى الفائق الأمثل في بيانات قابلة للفصل الخطي. زرعت بذرة التصنيف بالهامش الأقصى لكنها لم تكن قادرة على التعامل مع بيانات لاخطية أو مشوَّشة.
1992
Boser و Guyon و Vapnik — آلة ناقلات الدعم بالنواة
أدخلوا خدعة النواة إلى آلة ناقلات الدعم فأصبحت قادرة على رسم حدود فصل لاخطية. كانت هذه النقلة النوعية التي جعلت الخوارزمية صالحة لمسائل العالم الحقيقي.
1995
Cortes و Vapnik — آلة ناقلات الدعم بالهامش اللّيّن
هذه الورقة. وسّعت آلة ناقلات الدعم لتشمل البيانات غير القابلة للفصل عبر متغيرات الارتخاء، وحققت أداءً متقدّماً في التعرّف الضوئي على الحروف. بهذا وُلدت آلة ناقلات الدعم الحديثة بصورتها الكاملة.
1998
خوارزمية SMO — Platt
جعلت خوارزمية الأمثَلة المتتالية الصُّغرى تدريب آلة ناقلات الدعم ممكناً عملياً على مجموعات بيانات كبيرة، عبر تقسيم البرنامج التربيعي إلى مسائل فرعية صغيرة تُحَلّ تحليلياً.
2001
libSVM — Chang و Lin
المكتبة المرجعية لآلة ناقلات الدعم التي وضعت الخوارزمية في متناول الممارسين حول العالم. لا تزال مستخدمة على نطاق واسع عبر scikit-learn وأُطر أخرى.
2006
العمليات الغاوسية — Rasmussen و Williams
وسّعت إطار النواة من التقديرات النقطية (كما في آلة ناقلات الدعم) إلى تنبؤات احتمالية كاملة. تُعدّ القريب البايزي لآلة ناقلات الدعم.
2007
السمات العشوائية — Rahimi و Recht
قرّبت دوال النواة باستخدام خرائط سمات عشوائية صريحة، مما أتاح توسيع أساليب النواة لتعمل على ملايين النقاط. شكّلت الجسر بين أساليب النوى والتعلّم العميق.
تُشكّل آلة ناقلات الدعم جسراً بين الإحصاء الكلاسيكي وتعلّم الآلة الحديث. أثبتت أن الصرامة الرياضية — الأمثَلة المحدّبة ونظرية VC وتقليل المخاطر البنيوي — قادرة على إنتاج خوارزميات ليست جميلة نظرياً فحسب بل مهيمنة عملياً أيضاً. كل أسلوب يعتمد على النوى اليوم، من العمليات الغاوسية إلى شبكات السمات العشوائية، يعود بنسبه إلى هذه الورقة الصادرة عام 1995.
المرجعCortes, Corinna and Vapnik, Vladimir. Support-Vector Networks. Machine Learning, 1995.
مصطلحات هذه الورقة
- آلة ناقلات الدعم (SVM)Support Vector Machine
- ناقلات الدعمSupport Vectors
- الهامشMargin
- المستوى الفائقHyperplane
- النواة الحسابيةKernel
- خدعة النواةKernel Trick
- الهامش اللّيّنSoft Margin
- متغيرات الارتخاءSlack Variables
- البرمجة التربيعيةQuadratic Programming
- مضروبات لاغرانجLagrange Multipliers
- دالة الأساس الشعاعيRadial Basis Function
- الانفصال الخطيLinear separability