القائمة الرئيسية

الصفحات

خوارزمية Support Vector Machine (ألجزء ألنظري)

خوارزمية Support Vector Machine (ألجزء ألنظري)
هي أحدى خوارزميات التعلم المراقب Supervised Learning وألتي يمكن أستخدامها في مسائل ألتصنيف والأنحدار.

خوارزمية Support Vector Machine (ألجزء ألنظري) 


تُعتبر مسائل ألتصنيف Classification من أهم ألمسائل في عالم تعلم الآلة Machine Learning،لأهميتها ألبالغة في ألحياة ألحقيقية في ألمجالات ألصناعية والمكتبية وألزراعية وألطبية،ومن هنا أهتمَ ألباحثون في هذه النوع من المسائل وأخترعوا ألعديد من الخوارزميات ألتي ساهمت في معالجة ألعديد من المشاكل ألمهمة ومن ضمن هذه ألخوارزميات هي خوارزمية Support Vector Machine والتي سنرمز لها SVM.
خصصنا هذا ألمقال للتعريف بهذه ألخوارزمية الرائعة،وألتي أكتسبت شهرتها في مجالات تشخيص الأنماط Pattern Recognition،تصنيف ألصور Image Classification،تمييز ألأرقام المكتوبة بخط اليد Handwritten Digits Recognition.. ألخ.

ماهي خوارزمية SVM؟

هي أحدى خوارزميات ألتعلم ألمراقب Supervised Learning،وألتي يمكن أستخدامها في مسائل ألتصنيف Classification و الأنحدار Regression،وعادةً تُستخدم في مسائل ألتصنيف لفعاليتها ولحصولها على دقة ممتازة في أغلب ألبيانات ألمستعملة.
وهي على نوعين ألتصنيف ألثنائي Binary Classification،حيث تقوم بالتصنيف لمجموعتين فقط.و Multi-class Classification، حيث تقوم بألتصنيف لأكثر من مجموعة.



كيف تعمل خوارزمية SVM؟

ألفكرة الرئيسية لعمل خوارزمية SVM هي أيجاد أفضل مستوي فاصل a separating hyperplane ألذي يفصل بين المجاميع classes،وذلك عن طريق ألمحاولة لجعل ألحاشية margin أكبر مايمكن.
وألحاشية margin هي المسافة بين بيانات التدريب training data وبين ألمستوي ألفاصل a separating hyperplane،ألتي تعتبر محور عملية ألتدريب في خوارزميةSVM. 
لنأتي الآن لتوضيح ماهوألمستوي ألفاصل a separating hyperplane؟ وكيف يكون شكله؟ وماهي خواصه وتعريفه ألرياضي؟


ماهو ألمستوي ألفاصل a separating Hyperplane؟

أذا لاحظنا في ألصورة أعلاه،يوجد لدينا مجموعتان classes تحتوي على بيانات تدريب training data، ألمجموعة الأولى متمثلة باللون الأحمر وألمجموعة الثانية متمثلة باللون الأخضر.
بمجرد النظر للصورة يمكننا أن نقسم هذه ألبيانات ألى مجموعتين منفصلتين،على سبيل ألمثال يمكننا أن نتخيل أن هناك خط فاصل يفصل بينها حيث ستكون التقاط ألحمراء على يمين ألخط والنقاط ألخضراء على يساره. هذا بالفعل هو يسمى ألمستوي الفاصل separating hyperplane، ولكن هناك ملاحظات واجب علينا ذكرها بخصوص هذا الخط ألفاصل وهي:

  •  ألصورة أعلاه تمثل ألبيانات في أبسط صورها وهي بيانات ذات بعدين فقط 2-Dimensions،أي أن هناك محورx ومحور y فقط،وفي هذه ألحالة ألذي يفصل بين هذه ألبيانات نسميه الخط الفاصل a separating line.
  • أذا كان تمثيل ألبيانات ذات 3 أبعاد 3-Dimension،أي أن هناك محور x،محور y ومحور z، ففي هذه ألحالة ألذي يفصل بين هذه ألبيانات نسميه ألمستوي ألفاصل separating hyperplane.
  •  أذا كان تمثيل ألبيانات ذات 3 أبعاد أو أكثر، ففي هذه ألحالة ألذي يفصل بين هذه ألبيانات نسميه أيضاً ألمستوي ألفاصل separating hyperplane.
كما ذكرنا من قبل أن ألهدف لدينا في خوارزمية SVM هو أيجاد أفضل مستوي فاصل لتصنيف ألبيانات، لكن عند ألبدء بهملية تدريب ألخوارزمية سيكون لدينا أكثر من مستوي فاصل واحد وعلينا في هذه ألحالة أختيار مستوي فاصل واحد فقط من بين كل هذه المستويات.
لكن كيف سنختار الأمثل من بينها؟ماهو ألمعيار للأختيار؟
لنرى ألأصورة الآتية ونقوم بتحليلها:


لنفرض أن هناك ثلاث مستويات فاصلة تكونت لدينا أثناء عملية ألتدريب training process كما موضحة في ألصورة،نلاحظ كل من ألمستويينA و C عدم قدرتهما على تقسيم ألبيانات بصورة صحيحة بسبب موقعهما ألخاطيء بين ألمجموعتين،وايضاً بسبب تقارب نقاط البيانات منهما وتكاد أن تكون ملامسة للمستوي وهذا شيء سلبي في عمل ألخوارزميات،بينما نلاحظ ألمستوي B قد قام بمهمته بصورة صحيحة وأيضاً ألحاشية margin وألتي وضحناها أنها ألمسافة بين نقاط البيانات والمستوي ألفاصل كبيرة وهذه تعتبر ألحالة المثلى لدينا من بين كل ألمستويات ألفاصلة.
أذن يعتبر ألمستوي ألفاصل B هو ألمستوي الأمثل في عملية تدريب ألخوارزمية.

أذن نستنتج من كلامنا هذا أن أفضل مستوي فاصل separating hyperplane هو ذلك ألمستوي ألذي يقوم بتقسيم البيانات بصورة صحيحة وتكون ألحاشية margin بينه وبين نقاط البيانات كبيرة،وبذلك سيمتلك تعميم Generalization عالي أي يمكنه تصنيف والتنبؤ بالبيانات ألمستقبلية ألتي لم يرها من قبل unseen data.



لنتكلم عن ألصيغ ألرياضية في خوارزمية SVM ألتمثيل الرياضي للمستوي hyperplane يكون بالشكل الآتي:


حيث يمثل W و x ألمتجهات vectors وتمثل WT.x ألضرب ألنقطي dot product لهذا ألمتجهين،وعادةً مايسمى ألمتجه W بمتجه الأوزان.بيانات ألتدريب training data لدينا يمكن تمثيلها رياضياً بالشكل التالي:




وتعني أن ألبيانات ألتي لدينا متمثلة بزوج ألبيانات (xn,yn ) حيث تمثل xn متجه ألميزات feature vector ويكون أبعاده nمن الأبعاد،وتمثل yn ألعنوان label ألخاص ب xn.
عندما تكون yi=1 فهذا يعني أن البيانات تنتمي ألى المجموع 1،وأذا كانت yi=-1 فأنها تنتمي ألى ألمجموعة -1.

في مسائل ألتصنيف Classification ، هدفنا هو أيجاد دالة ألتصنيف وألتي ستكون بالصيغة ألرياضية ألتالية:


حيث ستقوم دالة (f(x بالتعلم من بيانات ألتدريب ألتي نقوم بتغذيتها أليها ومن ثم تصبح قادرة على تصنيف ألبيانات ألمستقبلية أو ألبيانات ألتي لم ترها من قبل unseen data.
وعملية ألتدريب ألتي يتم أجراءها هي لأيجاد أقصى مقدار للحاشية margin يمكن ألحصول عليه،ويمكننا أن نمثل ألحاشية رياضياً بالشكل التالي:

حيث نلاحظ أن العلاقة عكسية بين ألحاشية margin و متجه الأوزان Weights vector،كلما قل ألوزن زادَت مقدار ألحاشية. ستكون لدينا معادلة رئيسية لخوارزمية SVM ألتي سيرتكز ألعمل عليها وستكون بالشكل ألتالي:


ويجب علينا أن نذكر ملاحظة مهمة وهي أننا شرحنا في هذا ألمقال تصنيف ألبيانات في أبسط صورة وهو ألتصنيف ألخطي Linear Classification حين تكون البيانات سهل تصنيفها خطياً،لكن عندما تكون ألبيانات في أبعاد كثيرة،عندئذ نستخدم طريقة أخرى في خوارزمية SVM وهي تقنية ألكرنل Kernel،ألتي يمكننا بواسطتها تصنيف ألبيانات ألتي من ألمستحيل تصنيفها خطياً.
كان هذا ألجزء ألنظري في هذا المقال، وأن شاء الله في ألمقال ألقادم سنتطرق ألى تطبيق خوارزمية Support Vector Machine بصورة عملية من خلال لغة بايثون ألرائعة.


إلى هنا نأتي لنهاية المقال وأتمنى أن أكون قد وفقت في الطرح والتوضيح لهذه الخوارزمية الرائعة،وأي سؤال أو أستفسار فيمكنكم تركه لي في خانة ألتعليقات ألموجودة في الاسفل.
دمتم بخير

يمكنكم الأنتقال إلى ألجزء ألعملي من خلال ألضغط على ألمقال ألتالي:

م.م رسول حسن










هل اعجبك الموضوع :

تعليقات