كتابة: Noel Bambrick ترجمة: يحيى خوجه مراجعة: أسيل مسعد
لقراءة المقال الأصلي بالإنجيلزي, اضغط هنا.
مقدمة
في هذا المقال سنقوم بتعريف آلة المتجهات الداعمة (Support Vector Machines)، وهي إحدى خوارزميات تعلم الآلة. سنتبع منهجية مشابهة لآخر مقالة لنا “بايز البسيط للمبتدئين – شرح مبسط” بحيث سيكون الطرح قصير وغير معقد تقنياً. الهدف هو تزويد المبتدئين في مجال تعلم الآلة بفهم أولي للمبادئ الأساسية لهذه الخوارزمية.
آلة المتجهات الداعمة – ما هي؟
آلة المتجهات الداعمة هي خوارزمية تعلم موجّه تحت تعلم الآلة، وتستعمل لكلٍ من مهام التصنيف أو الإنحدار. لكن في الأغلب تستعمل آلة المتجهات الداعمة في التصنيف، ولذلك سيكون هذا هو ما نركز عليه في هذه المقالة.
آلة المتجهات الداعمة مبنية على فكرة إيجاد مستوي فائق (hyperplane) يقوم بتقسيم مجموعة البيانات إلى صنفين بأفضل طريقة، كما هو موضح في الصورة أدناه.
صورة 1: مستوي فائق يقسم البيانات إلى صنفين و تعتبر أقرب نقطتين للمستوي الفائق هي المتجهات الداعمة
المتجهات الداعمة
المتجهات الداعمة هي نقاط البيانات الأقرب للمستوي الفائق وهي النقاط التي إن تم إزالتها من مجموعة البيانات ستغير من موقع المستوي الفائق الذي يقسم البيانات. لذلك يمكن اعتبار هذه النقاط أنها العناصر المهمة في مجموعة البيانات.
ما هو المستوي الفائق؟
كمثال بسيط، لنأخذ عملية التصنيف لمجموعة بيانات ذات خاصيتين فقط (صورة 1) يمكنك اعتبار المستوي الفائق أنه الخط الذي يفصل خطياً و يصنف مجموعة البيانات.
بديهياً كلما ابتعدت النقاط عن المستوي الفائق كلما ازدادت ثقتنا بأنه تم تصنيف النقاط بشكل صحيح. لذلك نود أن تكون النقاط بعيدة عن المستوي الفائق قدر المستطاع مع مراعاة بقاءها على الجانب الصحيح من الخط الفاصل.
و بذلك عندما نضيف بيانات جديدة لاختبارها سيتم تصنيفها بناءاً على الجانب الذي تقع فيه بالنسبة للمستوي الفائق.
كيف نحدد المستوي الفائق الصحيح؟
أو بعبارة أخرى ما هي أفضل طريقة لفصل مجموعة البيانات إلى صنفين؟
المسافة بين المستوي الفائق و أقرب نقطة من أيٍ من مجموعات البيانات يعرف بالهامش (margin). الهدف هو اختيار مستوي فائق ذو أكبر هامش بينه وبين أي نقطة في مجموعة بيانات التدريب ليزيد ذلك من احتمالية تصنيف أي بيانات جديدة بالشكل الصحيح.
صورة 2: رسم يوضح الهامش وهو المسافة بين المستوي الفائق و أقرب النقاط له
لكن ماذا يحدث إذا لم يكن هناك مستوي فائق واضح؟
هنا قد تصبح الأمور أكثر تعقيداً. البيانات نادراً ما تكون منقحة مثل الأمثلة البسيطة بالأعلى وستكون البيانات في الأغلب أشبه بكرات مختلطة ببعض لتشكل مجموعة بيانات لا يمكن فصلها خطياً.
صورة 3: مجموعة بيانات لا يمكن فصلها بخط مستقيم
من أجل تصنيف مجموعة بيانات مثل التي في صورة 3، من اللازم أن نرحل من المنظور ثنائي الأبعاد للنظر للبيانات من منظور ثلاثي الأبعاد. لتسهيل شرح هذه الفكرة دعونا ننظر لمثال مبسط آخر. تخيل لو أن مجموعة الكرات أعلاه (صورة 3) موجودة على ورقة ثم قمنا برفع هذه الورقة فجأة لتطير الكرات في الهواء. و بينما الكرات في الهواء نستعمل الورقة لفصلها. تمثل عملية “الرفع” كيفية ربط البيانات ببعد أعلى. تعرف هذه العملية بربط النواة (kernel mapping) و يمكنكم قراءة المزيد عنها هنا.
صورة 4: مثال لنقل البيانات من تمثيل ثنائي الأبعاد إلى تمثيل ثلاثي الأبعاد لنستطيع فصلها
لأننا الآن في تمثيل ثلاثي الأبعاد، لا يمكن للمستوي الفائق أن يكون خط و يجب الآن أن يكون مستوي كما في المثال أعلاه (صورة 4). الفكرة أننا سنستمر بربط البيانات بأبعاد أعلى حتى نتمكن من تشكيل مستوي فائق ليفصلها.
إيجابيات و سلبيات آلة المتجهات الداعمة
الإيجابيات
- الدقة
- تعمل جيداً على مجموعات البيانات الصغيرة و المنقحة
- يمكن أن تكون كفاءتها أعلى لأنها تستعمل جزء من بيانات التدريب
السلبيات
- لا تصلح لمجموعات البيانات الكبيرة حيث أن المدة اللازمة لتدريبها عالية
- تعتبر أقل فعّالية مع البيانات الأكثر تشويشاً و تداخلاً بين الأصناف
استعمالات آلة المتجهات الداعمة
تستعمل آلة المتجهات الداعمة في مهام تصنيف النصوص مثل تصنيف المواضيع وتمييز الرسائل المزعجة وتحليل المشاعر. كما أنها تستعمل في تحديات التعرف على الصور، بالذات في التصنيف المبني على الألوان أو الخصائص. و هي أيضاً تلعب دور مهم في مجالات تمييز الأرقام المكتوبة يدوياً مثل أتمتة خدمات البريد.
الآن أصبح لديك معرفة مبسطة عن آلة المتجهات الداعمة. إذا أردت التعمق في الموضوع، فأنصحك بمشاهدة هذا الشرح.
شكرا استاذ يحيى ، مقال اكثر من رائع ومبسط وسهل الفهم ، اتمنى شروحات مبسطة لباقي الخوارزميات المهمة مثل decision forest, decision jungle
عشت و بارك الله فيك