آلات المتجهات الداعمة | Support Vector Machines

ما هي آلات المتجهات الداعمة (SVM) آلات المتجهات الداعمة (SVM) هي خوارزميات رياضية تُستخدم في مجال تعلم الآلة، وتعد من أفضل الخوارزميات ذات التعلم الخاضع للإشراف. تعتبر هذه الخوارزمية مفيدة بشكل خاص في مهام التصنيف والانحدار، وتم تطويرها في مختبرات AT&T Bell بواسطة فلاديمير نوموفيتش فابنيك وزملاؤه في تسعينيات القرن الماضي. تستند آلات SVM على […]

شارك هذا المنشور

ما هي آلات المتجهات الداعمة (SVM)

آلات المتجهات الداعمة (SVM) هي خوارزميات رياضية تُستخدم في مجال تعلم الآلة، وتعد من أفضل الخوارزميات ذات التعلم الخاضع للإشراف. تعتبر هذه الخوارزمية مفيدة بشكل خاص في مهام التصنيف والانحدار، وتم تطويرها في مختبرات AT&T Bell بواسطة فلاديمير نوموفيتش فابنيك وزملاؤه في تسعينيات القرن الماضي. تستند آلات SVM على إطار التعلم الإحصائي وتعمل عن طريق تعيين البيانات إلى أبعاد أعلى، مما يساعد في حل مشاكل التصنيف غير الخطية. وتتميز هذه الخوارزمية بسرعة تدريبها وقدرتها على تحقيق نتائج جيدة باستخدام كمية صغيرة من بيانات التدريب، مما يجعلها مثالية لمجالات تصنيف النص والصور.

كيف تعمل آلات المتجهات الداعمة (SVM)

لنفترض أن لدينا بيانات من فئتين (أزرق، أصفر) وميزتين (x1، x2). نريد أن يقرر SVM ما إذا كان كائن البيانات مصنفًا على أنه أزرق أو أصفر بناءً على الميزتين x1 و x2. نظرًا لأن لدينا بُعديَن فقط، يمكننا تعيين بيانات التدريب في نظام إحداثيات كالشكل التالي.

المستوى الفائق (hyperplane)

تقدم آلة المتجهات الداعمة نتيجة لذلك ما يسمى بالمستوى الفائق (hyperplane) وهو عبارة عن فضاء فرعي يكون بُعده أقل بمقدار واحد من مساحته المحيطة، والذي يفصل بين المجموعتين بشكل أفضل. والمستوى الفائق يكون في فضاء ثنائي الأبعاد، هو عبارة عن خط بسيط. يستخدم هذا المستوى لتحديد الفئة التي تتواجد فيها عينة البيانات. في مثالنا، تم تصنيف جميع الكائنات الموجودة على يسار المستوى الفائق على أنها “صفراء” وكل الكائنات الموجودة على الجانب الأيمن على أنها “زرقاء”.

تحاول آلة المتجه الداعمة تحديد المستوى الفائق في دورات تدريبية مختلفة بحيث نصل إلى الفجوة القصوى. حيث يقيس المسافة من أقرب عنصر في كل مجموعة إلى المستوى الفائق. إذا كان هذا هو الحد الأقصى، فهذا يعني أنه تم اختيار المستوى بحيث يفصل SVM كلا الفئتين قدر الإمكان.

ما هي مزايا وعيوب خوارزمية آلة المتجه الداعمة ؟

مزايا عيوب
تدريب الخوارزمية بالبيانات يكون بسيط وغير معقد يحتاج العثور على دالة النواة الصحيحة والمَعلَمات إلى تكلفة حوسبة عالية
ذات مرونة بحيث يمكن تحجيمها جيدًا للبيانات ذات الأبعاد الأعلى لا تستطيع تصفية الضوضاء جيدًا
بديل جيد للشبكات العصبية يتطلب عدد عينات أكثر من عدد الخواص المميزة.
يمكن استخدامها للبيانات الخطية وغير الخطية القابلة للفصل لا يوجد تفسير محتمل للنتيجة (يقرر حصريًا بناءً على محاذاة العينة للمستوى الفائق)

مثال بسيط بلغة بايثون لشرح كيفية استخدام دالة SVM

نعرض مثالاً بسيطاً لتصنيف الجنس استنادًا على بعض الخواص المميزة ومنها الطول والوزن ومقاس الحذاء.

أولاً: سنقوم باستيراد مكتبة Scikit-Learn ، وهي مكتبة بايثون شهيرة للتعلم الآلي والتي تحتوي على دالة  مصنف SVM مُعد مسبقًا.

#Example Python SVM Classification
from sklearn import svm

ثانياً: سوف نستخدم مصفوفة x لتخزين أربع متجهات من قيم الطول بالسنتيميتر، والوزن بالكيلوجرام، ومقاس الحذاء، ونستخدم y لتخزين أربع تسميات من الأجناس المعروفة، سوف نعتمد 0 للذكور و1 للإناث.

X = [[164, 60, 30],  [159, 80,33],  [170, 80, 40], [180, 90, 42]]
#Height[cm], Weight[kg], Shoesize
y = [1, 1, 0, 0] #Gender, 0: Male, 1: Female

ثالثاً: سنقوم بتدريب مصنف SVM

clf = svm.SVC()# initialize for svm
clf.fit(X, y)

أخيراً، مصنف svm سوف نستخدمه لتوقع الجنس استناداً للبيانات التالية [[165, 65, 32]] القيمة الأولى للطول والثانية للوزن والثالثة مقاس الحذاء.

#Predict
p = clf.predict([[165, 65, 32]])
print(p)

عند تشغيل الكود، ستحصل على الناتج التالي؛ [1] يعني هنا

إنها أنثى:

[1]

مثال لاستيراد ملف csv وشرح كيفية استخدام دالة آلة SVM

  • سنقوم بتحميل ملف csv من هنا :

مجموعة بيانات iris من المحتمل أنها هي المثال الأكثر استخداماً لمشاكل التصنيف. تتضمن ثلاثة أنواع من أزهار القزحية (السوسن) مع 50 عينة لكل منها بالإضافة إلى بعض الخصائص حول كل زهرة ومن ضمن هذه الخصائص طول وعرض كل من البتلة والسبلة. يوضح الشكل التالي صوراً لثلاثة أنواع مختلفة من أزهار القزحية وهم Versicolor ، Setosa ، و Virginica بالإضافة إلى موقع السبلة والبتلة.

  • شرح الكود وكيفية استدعاء ملف الـ csv

أولاً سنقوم باستيراد مكتبة Scikit-Learn والتي تحتوي على مصنف svm وسنقوم باستيراد أيضا مكتبة pandas المسؤولة عن قراءة الملفات.

from sklearn import svm
import pandas as pd

ثانياً: سوف نقوم بتخزين الملف الذي قمنا بتحميله سابقا بجانب ملف الكود الذي نبرمج فيه

ويتم استدعاء الملف وتخزينه في dataframe عن طريق مكتبة pandas

df = pd.read_csv('iris.csv')

سوف نستخدم مصفوفة x لتخزين جميع الأسطر (rows) بالإضافة إلى جميع الميزات التي سوف نحتاجها في عملية التصنيف وهي عبارة عن أربع أعمدة وهي طول وعرض السبلة وطول وعرض البتلة

X = df.values[:,:4]

ونستخدم y لتخزين الـ Label الخاص بالبيانات والذي يحتوي على الأنواع الثلاثة للأزهار ولكن هذه البيانات يجب أن نقوم بتحويلها إلى أرقام.
فيجب أن نخزن البيانات كنص في متغير وليكن s

s = df['species']

ثالثًا: سنقوم بإنشاء كود بسيط ليقوم بإنشاء dictionary والذي يحتوي على الكلمات الفريدة التي قمنا بتخزينها جميعا في المتغير s واعطائها ارقام من 0 إلى أخر كلمة فريدة

d = dict([(y,x) for x,y in enumerate(sorted(set(s)))])

عندما نقوم بطباعة d سيكون الناتج:

{'setosa': 0, 'versicolor': 1, 'virginica': 2}

بعد أن قمنا بإنشاء ال dictionary والذي يحتوي ارقاما لكل نوع من الأزهار سوف نقوم بتخزين هذه القيم كأرقام في y

y = [d[x] for x in s]

رابعًا: هذه المراحل التي في الأعلى تعد من مراحل تحضير مجموعة البيانات، أما الآن سنقوم بتدريب مصنف SVM.

clf = svm.SVC()# initialize for svm
clf.fit(X, y)

خامسًا وأخيراً: مصنف svm سوف نستخدمه لتوقع نوع الزهرة استناداً للبيانات التالية [[6.9,3.1,5.1,2.3]] حيث تعتبر القيمة الأولى لطول السبلة والثانية لعرض السبلة والثالثة لطول البتلة والأخيرة لعرض البتلة.

#Predict
p = clf.predict([[6.9,3.1,5.1,2.3]])
print(p)

عند تشغيل الكود، ستحصل على الناتج التالي؛ [2] يعني أنها زهرة virginica

[2]

الملخص:

  • تعد آلات المتجهات الداعمة (SVM) من أفضل الخوارزميات ذات التعلم الخاضع للإشراف.
  • تعد هذه خوارزمية آلات المتجهات الداعمة مفيدة بشكل خاص في مهام التصنيف والانحدار.
  • تتميز خوارزميات آلة المتجهات الداعمة بالمستوى الفائق (hyperplane) وهو عبارة عن فضاء فرعي يكون بُعده أقل بمقدار واحد من مساحته المحيطة، والذي يفصل بين المجموعتين بشكل أفضل.

المصادر:

Perry Xiao, Artificial Intelligence Programming with Python From Zero to Hero, 2022

الدروس:

Uncategorized

الدرس الرابع | التعرف على الوجوه

الدرس الرابع: التعرف على الوجوه محتويات هذا الدرس: خوارزمية هاار التتالي تطبيق عملي: تحديد الوجوه على صورة تطبيق عملي: تحديد الوجوه على فيديو الدروس الأخرى

دورات تعليمية

الدرس الثالث | المرشحات ونواة الالتفاف

الدرس الثالث : المرشحات والنواة الالتفافية محتويات هذا الدرس: المرشحات النواة الالتفافية عملية الترشيح شحذ الصورة تشويش الصورة تحديد الحواف الدروس الأخرى

دورات أخرى:

دورات تعليمية

الدرس الثالث | المرشحات ونواة الالتفاف

الدرس الثالث : المرشحات والنواة الالتفافية محتويات هذا الدرس: المرشحات النواة الالتفافية عملية الترشيح شحذ الصورة تشويش الصورة تحديد الحواف الدروس الأخرى

Uncategorized

الدرس الثاني | مساحات الألوان في الصورة

الدرس الثاني: مساحات الألوان في الصورة محتويات هذا الدرس: مساحات ألوان الصورة شرح مبادئ الألوان في الصور تحويل الألوان بين الصور تحويل الصورة الملونة إلى