الـ margin الأقصى
من بين كل الخطوط اللي بتفصل فئتين، فيه خط واحد أحسن: الأبعد قد ما يمكن عن المجموعتين. ودي الفكرة الأساسية في الـ support vector machines (آلات المتجهات الداعمة).
الفصل الخطي
الفئتين linearly separable (قابلتين للفصل الخطي) لو فيه hyperplane بيفصلهم تمامًا. في بُعدين هو خط، وفي الأبعاد الأعلى هو hyperplane.
الـ hyperplane
الحد بيتعرّف بـ vector الـ weights w والـ bias b. والنقط اللي على الناحيتين بتدّي إشارات عكس بعض — وده اللي بيحدّد الفئة المتوقعة. ده الـ hyperplane (المستوى الفائق).
تكبير الـ margin
مستويين margin متوازيين جنب الحد على مسافة 1/‖w‖ من كل ناحية. والـ margin (الهامش) الكلي هو 2/‖w‖. وعشان نكبّر الـ margin، بنصغّر ‖w‖.
الـ support vectors
- النقط اللي على مستويين الـ margin بالظبط — ودي الـ support vectors (متجهات الدعم)
- هي لوحدها اللي بتحدّد الـ decision boundary
- شيل أي نقطة تانية — الحد مش بيتغيّر
- تمثيل متناثر: بنخزّن الـ support vectors بس
- عادةً جزء صغير من بيانات التدريب
الـ hard margin
لما البيانات تبقى بتتفصل تمامًا، الـ hard margin (الهامش الصلب) بيلاقي أوسع margin بـصفر أخطاء. مسألة quadratic optimization محدّبة ليها حل أمثل عالمي واحد.
الـ soft margin والـ slack
البيانات الحقيقية نادرًا ما بتتفصل تمامًا. الـ slack variables (متغيرات الترخيص) ξi بتسمح لشوية نقط تكسر الـ margin. ξi = 0 صح؛ 0 < ξi ≤ 1 جوه الـ margin؛ ξi > 1 غلط.
الـ parameter C
- C كبير — عقوبة عالية ← margin ضيق، bias واطي
- C صغير — عقوبة واطية ← margin واسع، أخطاء مسموحة
- C → ∞ بيقرّب من الـ hard margin
- ظبطه بالـ cross-validation على مقياس لوغاريتمي
- المدى المعتاد: 0.001 لـ 1000
رسم الـ margin
الـ decision boundary (الخط المتصل) محاط بمستويين الـ margin (المتقطّعين). والـ support vectors واقعة بالظبط على مستويين الـ margin. وكل اللي غيرها مالوش دعوة بالحد.
الـ feature scaling
الـ SVMs بتقيس الـ margin في فضاء الـ features الأصلي. والـ features اللي قيمها كبيرة بتسيطر على طول الـ vector. اعمل normalization دايمًا قبل التدريب.
لما الخطوط متقدرش
الـ hyperplane الخطي مبيقدرش يفصل فئات على شكل دواير أو حلزونات. والـ kernel trick (خدعة النواة) بيتغلّب على ده بإنه ينقل البيانات ضمنيًا لفضاء أبعاده أعلى.
اتعلّمت إيه
الـ SVMs بتلاقي الـ hyperplane اللي ليه أوسع margin بين الفئتين. والـ support vectors لوحدها بتحدّد الحد. والـ parameter C بيوازن عرض الـ margin قصاد الأخطاء. الجاي: الـ kernel trick بيوسّعها للمسائل اللي مش خطية.