انتقل إلى المحتوى الرئيسي

جارٍ تحميل المختبر المرئي…

#svm-marginsالتعلّم المُشرَف

آلات متّجهات الدعم: أوسع هامش ممكن، المعامل C، ونواة RBF التي تُقوِّس الحدّ.

ما ستُجرّبه

  1. مرحبًا بك في #svm-margins. على المستوى: 80 نقطة موزَّعة على فئتَين، زرقاء ووردية، مفصولتان جيّدًا. الخطّ الورديّ هو الفاصل الفائق (separating hyperplane) الذي وجدته آلة متّجهات الدعم الخطّيّة عند C = 1؛ والخطّان الأصفران المتقطِّعان هما حَدَّا الهامش (margin)، الشريط الفارغ الذي تتركه على كلّ جانب. يوجد ما لا نهاية من الخطوط التي تفصل هاتين السحابتَين. من بينها جميعًا، تختار آلة متّجهات الدعم ذلك الذي يترك أوسع مساحة ممكنة: أعرض هامش. تخيَّل ممرًّا في وسط شارع بدلًا من الالتصاق بالرصيف: عدد المارّة الذين سيقطعونه أقلّ.
  2. من الذي يقرّر موضع هذا الخطّ؟ ليست النقاط الثمانون كلّها: فقط تلك التي تلامس الهامش. اكتب /vectors كي تُحاط بحلقات صفراء.
  3. المعامل C يحدّد ثمن نقطة في غير موضعها (داخل الهامش أو على الجانب الخطأ). ادفعه إلى الحدّ الأدنى: /c 0.01.
  4. على العكس تمامًا: ادفعه إلى الحدّ الأقصى: /c 100. كلّ نقطة داخل الهامش صارت تُكلِّف ثروة.
  5. غيِّر المشكلة: /dataset rings. فئة في المركز، والأخرى محيطة بها.
  6. انتقل إلى النواة الغاوسيّة: /kernel rbf. تُسقِط النواة النقاط في فضاء تصير فيه قابلة للفصل بفاصل فائق؛ من مستوانا، يبدو ذلك الفاصل الفائق منحنى.
  7. gamma يحدّد مدى تأثير كلّ نقطة في نواة RBF. ارفعه: /gamma 10.
  8. دورك: /gamma 0.3 لحدّ ناعم، /dataset overlap ثمّ /c 0.1 و/c 100 لتراقب كيف يُوازن C بين عرض الهامش وعدد النقاط المصنَّفة خطأً، /margin لإخفاء حدّي الهامش أو إظهارهما، /train 10 لتلحق بالمُحسِّن قبل أن يتقارب، /seed 12 لسحب آخر، /reset للعودة إلى البداية. لتحكم على هذه الحدود بأكثر من عينَيك، توجَّه إلى #classification-metrics؛ ولطريقة لا ترسم حدًّا صريحًا البتّة، #knn.

أوامر القناة

  • /c <C=0.01..100>يضبط المعامل C: ثمن نقطة داخل الهامش (صغير = هامش واسع، كبير = هامش صلب).
  • /kernel <linear|rbf>يختار النواة: خطّيّة (خطّ) أو RBF (ينحني الحدّ).
  • /gamma <gamma=0.1..10>يضبط gamma، مدى تأثير كلّ نقطة في نواة RBF (صغير = حدّ ناعم، كبير = مسنّن).
  • /vectorsيُظهر أو يُخفي الحلقات الصفراء حول متّجهات الدعم.
  • /marginيُظهر أو يُخفي حدَّي الهامش (خطّان أصفران متقطِّعان، نواة خطّيّة).
  • /train <passes=10..500>يضبط عدد مرّات المرور في التحسين (SMO) ويُعيد التدريب: مرّات قليلة = حلّ خشن.
  • /dataset <separable|overlap|rings>يبدّل مجموعة البيانات ثنائيّة الأبعاد ويُعيد تدريب آلة متّجهات الدعم الحاليّة.
  • /noise <0..1>يضبط تشتّت النقاط (0 = سحابات ضيّقة، 1 = واسعة الانتشار) ويُعيد التدريب.
  • /seed <1..99>يغيّر بذرة السحب العشوائيّ (المجموعة نفسها، عيّنة أخرى) ويُعيد التدريب.
  • /resetيعيد الحالة الابتدائيّة: قابلة للفصل، نواة خطّيّة، C = 1، gamma = 1، 200 مرّة.

المسرد

آلة متّجهات الدعم (SVM)
مصنِّف خاضع للإشراف يبحث عن الفاصل الفائق (separating hyperplane) الذي يترك أوسع هامش ممكن بين الفئتَين. يعتمد حدُّه على حفنة نقاط فقط، هي متّجهات الدعم.
الفاصل الفائق (separating hyperplane)
مجموعة النقاط التي يتحقّق عندها w·x + b = 0: خطّ في المستوى، مستوى في ثلاثة أبعاد، فاصل فائق في ما فوق. إشارة w·x + b تعطي الفئة المتوقَّعة.
الهامش (margin)
المسافة بين الفاصل الفائق وأقرب النقاط إلى كلّ فئة، أي 1/||w|| بعد التطبيع y·(w·x + b) ≥ 1. تُعظِّمه آلة متّجهات الدعم: الهامش الواسع يتحمّل النقاط الجديدة بشكل أفضل.
متّجه الدعم (support vector)
نقطة تدريب تقع على حدّ الهامش أو داخله (y·f(x) ≤ 1)، أي معاملها α غير صفريّ. هذه النقاط وحدها تحدّد الحدّ؛ يمكن للأخرى أن تختفي دون أن يتغيّر شيء.
المعامل C (التنظيم)
الثمن المدفوع لكلّ نقطة في غير موضعها في الهدف ½||w||² + C·Σξᵢ. C صغير: تنظيم قويّ، هامش واسع، أخطاء مقبولة. C كبير: هامش ضيّق يلتصق بالنقاط، خطر فرط التعلّم.
خسارة hinge
الخسارة max(0, 1 − y·f(x)): صفر بمجرّد أن تكون نقطة على الجانب الصحيح وما وراء الهامش، وتتنامى بعد ذلك. هذا ما تُصغِّره آلة متّجهات الدعم مع التنظيم؛ ومتوسّطها يقيس مدى احترام البيانات للهامش.
النواة (kernel)
دالّة K(x, z) تقيس تشابه نقطتَين كضرب داخليّ في فضاء أعلى أبعادًا، دون أن نذهب إليه أبدًا. خطّيّة: x·z؛ RBF: exp(−gamma·||x − z||²).
حيلة النواة (kernel trick)
استبدال كلّ ضرب داخليّ في الخوارزميّة بـ K(x, z): تجد آلة متّجهات الدعم عندها فاصلًا فائقًا بأكبر هامش في فضاء النواة، ويظهر بوصفه حدًّا منحنيًا في المستوى الأصليّ. تبقى التكلفة O(n²) مهما كان البُعد الضمنيّ.
نواة RBF (غاوسيّة) وgamma
K(x, z) = exp(−gamma·||x − z||²): يُصدر كلّ متّجه دعم كتلة غاوسيّة. gamma يحدّد مداها (≈ 1/√(2·gamma)): صغير، يكون الحدّ ناعمًا؛ كبير، يلتوي حول كلّ نقطة.
هامش ليّن / هامش صلب
هامش صلب: لا يجوز لأيّ نقطة أن تدخل الهامش (بيانات قابلة للفصل، C → ∞). هامش ليّن: التجاوزات ξᵢ مسموحة بثمن C، وهذا ما يجعل آلة متّجهات الدعم قابلة للاستعمال على بيانات فيها ضوضاء أو غير قابلة للفصل.

قنوات أخرى في التعلّم المُشرَف

  • #live-trainingستّ خوارزميات تتعلّم أمام عينيك كفيديو: REC، عدّاد زمني، تعليقات توضيحية، مؤشّرات مباشرة. المشاهدة مجانية؛ تعديل النموذج بريميوم.
  • #linear-regressionمطابقة خطّ: المربّعات الصغرى، البواقي، MSE، R² والنزول التدرّجي — اللبنة الأولى لكلّ نموذج تعلّم مُوجَّه.
  • #logistic-regressionالتصنيف إلى فئتين: السيغمويد، حدّ القرار، العتبة والخسارة اللوغاريتمية — ولماذا لا يكفي الخطّ دائمًا.
  • #decision-treesشجرة تنحت المستوى إلى مستطيلات: جيني، الإنتروبيا، العمق، التقليم — وفرط التعلّم الذي تراه بأمّ عينيك.
  • #knnأقرب k جار: صنِّف بالشبه، اختر k، غيّر المسافة — وشاهد الحدّ ينعم أو يتشظّى.
  • #svm-marginsآلات متّجهات الدعم: أوسع هامش ممكن، المعامل C، ونواة RBF التي تُقوِّس الحدّ.
  • #classification-metricsالدقّة، الاستدعائيّة، F1، مصفوفة الالتباس، ROC وAUC: قراءة مصنِّف بأمانة، خاصّة عند اختلال توازن الفئات.