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

تعد Support Vector Machine من أكثر خوارزميات التعلم الآلي شيوعًا. إنه فعال ويمكن أن يتدرب في مجموعات بيانات محدودة. ولكن ما هو؟

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

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

كيف يعمل SVM؟

ضع في اعتبارك مشكلة تصنيف بسيطة حيث لدينا بيانات لها ميزتان ، x و y ، ومخرج واحد – تصنيف إما باللون الأحمر أو الأزرق. يمكننا رسم مجموعة بيانات خيالية تبدو كالتالي:

بالنظر إلى مثل هذه البيانات ، ستكون المهمة هي إنشاء حدود القرار. حدود القرار هي الخط الذي يفصل بين فئتي نقاط البيانات لدينا. هذه هي نفس مجموعة البيانات ولكن بحد القرار:

مع حدود القرار هذه ، يمكننا بعد ذلك عمل تنبؤات للفئة التي تنتمي إليها نقطة البيانات ، نظرًا لمكانها بالنسبة لحد القرار. تنشئ خوارزمية Support Vector Machine أفضل حدود القرار التي سيتم استخدامها لتصنيف النقاط.

ولكن ماذا نعني بحدود القرار الأفضل؟

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

لذلك ، فإن تدريب آلة متجه الدعم ينطوي على محاولة العثور على خط يزيد الهامش بين متجهات الدعم.

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

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

البيانات غير القابلة للفصل خطيًا

يعتبر المثال أعلاه بيانات بسيطة للغاية ، عند رسمها ، يمكن فصلها بحد قرار خطي. ضع في اعتبارك حالة مختلفة حيث يتم رسم البيانات على النحو التالي:

في هذه الحالة ، من المستحيل فصل البيانات باستخدام خط. لكن يمكننا إنشاء ميزة أخرى ، z. ويمكن تعريف هذه الميزة بالمعادلة: z = x ^ 2 + y ^ 2. يمكننا إضافة z كمحور ثالث للمستوى لنجعله ثلاثي الأبعاد.

  28 أسئلة وأجوبة مقابلة Terraform في الوقت الحقيقي

عندما ننظر إلى الرسم ثلاثي الأبعاد من زاوية بحيث يكون المحور x أفقيًا بينما المحور z عموديًا ، فهذا هو العرض الذي نحصل عليه على شكل ما يلي:

تمثل قيمة z مدى بُعد النقطة عن الأصل بالنسبة إلى النقاط الأخرى في المستوى XY القديم. نتيجة لذلك ، فإن النقاط الزرقاء الأقرب إلى الأصل لها قيم z منخفضة.

في حين أن النقاط الحمراء البعيدة عن الأصل تحتوي على قيم z أعلى ، فإن رسمها مقابل قيمها z يعطينا تصنيفًا واضحًا يمكن ترسيمه بواسطة حدود قرار خطي ، كما هو موضح.

هذه فكرة قوية يتم استخدامها في دعم Vector Machines. بشكل عام ، إنها فكرة تعيين الأبعاد إلى عدد أكبر من الأبعاد بحيث يمكن فصل نقاط البيانات بحد خطي. الوظائف المسؤولة عن ذلك هي وظائف kernel. هناك العديد من وظائف النواة ، مثل السيني والخطي وغير الخطي و RBF.

لجعل تعيين هذه الميزات أكثر كفاءة ، يستخدم SVM خدعة kernel.

SVM في تعلم الآلة

تعد Support Vector Machine واحدة من العديد من الخوارزميات المستخدمة في التعلم الآلي جنبًا إلى جنب مع الخوارزميات الشائعة مثل Decision Trees و Neural Networks. إنه مفضل لأنه يعمل بشكل جيد مع بيانات أقل من الخوارزميات الأخرى. يتم استخدامه بشكل شائع للقيام بما يلي:

  • تصنيف النص: تصنيف البيانات النصية مثل التعليقات والمراجعات في فئة واحدة أو أكثر
  • اكتشاف الوجه: تحليل الصور لاكتشاف الوجوه للقيام بأشياء مثل إضافة عوامل تصفية للواقع المعزز
  • تصنيف الصورة: يمكن لآلات المتجهات الداعمة تصنيف الصور بكفاءة مقارنة بالطرق الأخرى.

مشكلة تصنيف النص

الإنترنت مليء بالكثير والكثير من البيانات النصية. ومع ذلك ، فإن الكثير من هذه البيانات غير منظم وغير موسوم. لاستخدام هذه البيانات النصية بشكل أفضل وفهمها أكثر ، هناك حاجة للتصنيف. تتضمن أمثلة الأوقات التي يتم فيها تصنيف النص ما يلي:

  • عندما يتم تصنيف التغريدات في موضوعات حتى يتمكن الأشخاص من متابعة الموضوعات التي يريدونها
  • عندما يتم تصنيف رسالة بريد إلكتروني على أنها اجتماعية أو رسائل ترويجية أو بريد عشوائي
  • عندما يتم تصنيف التعليقات على أنها تحض على الكراهية أو بذيئة في المنتديات العامة

كيف يعمل SVM مع تصنيف اللغة الطبيعية

يتم استخدام Support Vector Machine لتصنيف النص إلى نص ينتمي إلى موضوع معين ونص لا ينتمي إلى الموضوع. يتم تحقيق ذلك من خلال تحويل البيانات النصية أولاً وتمثيلها في مجموعة بيانات مع العديد من الميزات.

تتمثل إحدى طرق القيام بذلك في إنشاء ميزات لكل كلمة في مجموعة البيانات. ثم بالنسبة لكل نقطة بيانات نصية ، تقوم بتسجيل عدد مرات ظهور كل كلمة. لذا افترض أن الكلمات الفريدة تحدث في مجموعة البيانات ؛ سيكون لديك ميزات في مجموعة البيانات.

بالإضافة إلى ذلك ، ستقدم تصنيفات لنقاط البيانات هذه. بينما يتم تصنيف هذه التصنيفات حسب النص ، تتوقع معظم تطبيقات SVM تسميات رقمية.

  7 طرق لإصلاح عدم فتح تطبيق MSI Gaming

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

إنشاء SVM في بايثون

لإنشاء آلة متجه دعم (SVM) في Python ، يمكنك استخدام فئة SVC من مكتبة sklearn.svm. فيما يلي مثال لكيفية استخدام فئة SVC لبناء نموذج SVM في Python:

from sklearn.svm import SVC 

# Load the dataset 
X = ... y = ... 

# Split the data into training and test sets 

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=19) 

# Create an SVM model 
model = SVC(kernel="linear") 

# Train the model on the training data 
model.fit(X_train, y_train) 

# Evaluate the model on the test data 
accuracy = model.score(X_test, y_test) 

print("Accuracy: ", accuracy) 

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

بعد ذلك ، نقوم بإنشاء نموذج SVM عن طريق إنشاء كائن SVC وتحديد معلمة kernel كـ “خطي”. ثم نقوم بتدريب النموذج على بيانات التدريب باستخدام الطريقة الملائمة وتقييم النموذج على بيانات الاختبار باستخدام طريقة النتيجة. تقوم طريقة النقاط بإرجاع دقة النموذج ، والتي نطبعها على وحدة التحكم.

يمكنك أيضًا تحديد معلمات أخرى لكائن SVC ، مثل معلمة C التي تتحكم في قوة التنظيم ، ومعلمة جاما ، التي تتحكم في معامل النواة لنواة معينة.

فوائد SVM

فيما يلي قائمة ببعض فوائد استخدام آلات متجه الدعم (SVM):

  • كفاءة: تعد SVMs فعالة بشكل عام في التدريب ، خاصة عندما يكون عدد العينات كبيرًا.
  • قوية للضوضاء: تعتبر أجهزة SVM قوية نسبيًا للضوضاء في بيانات التدريب لأنها تحاول العثور على مصنف الهامش الأقصى ، وهو أقل حساسية للضوضاء من المصنفات الأخرى.
  • كفاءة الذاكرة: تتطلب SVMs فقط مجموعة فرعية من بيانات التدريب لتكون في الذاكرة في أي وقت ، مما يجعلها ذاكرة أكثر كفاءة من الخوارزميات الأخرى.
  • فعال في المساحات عالية الأبعاد: لا يزال بإمكان أجهزة SVM أن تعمل بشكل جيد حتى عندما يتجاوز عدد الميزات عدد العينات.
  • تعدد الاستخدامات: يمكن استخدام SVMs لمهام التصنيف والانحدار ويمكنها التعامل مع أنواع مختلفة من البيانات ، بما في ذلك البيانات الخطية وغير الخطية.

الآن ، دعنا نستكشف بعضًا من أفضل الموارد لتعلم Support Vector Machine (SVM).

مصادر التعلم

مقدمة لدعم آلات المتجهات

يعرّفك هذا الكتاب حول مقدمة إلى دعم آلات المتجهات بشكل شامل وتدريجي على طرق التعلم القائمة على Kernel.

يمنحك أساسًا ثابتًا على نظرية آلات المتجهات الداعمة.

دعم تطبيقات آلات المتجهات

بينما ركز الكتاب الأول على نظرية آلات المتجهات الداعمة ، يركز هذا الكتاب على تطبيقات آلات المتجهات الداعمة على تطبيقاتها العملية.

يبحث في كيفية استخدام SVM في معالجة الصور واكتشاف الأنماط ورؤية الكمبيوتر.

دعم آلات المتجهات (علم المعلومات والإحصاء)

الغرض من هذا الكتاب حول آلات المتجهات الداعمة (علم المعلومات والإحصاء) هو تقديم نظرة عامة على المبادئ الكامنة وراء فعالية آلات ناقلات الدعم (SVM) في مختلف التطبيقات.

  كيفية إلغاء موسيقى أمازون من الهاتف أو الكمبيوتر الشخصي أو أي تيونز

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

التعلم مع Kernels

“التعلم باستخدام Kernels” هو كتاب يقدم للقراء دعم آلات المتجهات (SVMs) وتقنيات النواة ذات الصلة.

إنه مصمم لمنح القراء فهمًا أساسيًا للرياضيات والمعرفة التي يحتاجون إليها لبدء استخدام خوارزميات kernel في التعلم الآلي. يهدف الكتاب إلى توفير مقدمة شاملة ولكن يمكن الوصول إليها عن طرق SVM وطرق kernel.

دعم آلات المتجهات مع Sci-kit Learn

تعلم أجهزة Vector Support عبر الإنترنت مع Sci-kit Learn من شبكة مشروع Coursera كيفية تنفيذ نموذج SVM باستخدام مكتبة التعلم الآلي الشهيرة Sci-Kit Learn.

بالإضافة إلى ذلك ، سوف تتعلم النظرية الكامنة وراء SVMs وتحدد نقاط القوة والقيود الخاصة بها. الدورة على مستوى المبتدئين وتتطلب حوالي 2.5 ساعة.

دعم آلات المتجهات في Python: المفاهيم والتعليمات البرمجية

هذه الدورة التدريبية المدفوعة عبر الإنترنت حول Support Vector Machines في Python بواسطة Udemy لديها ما يصل إلى 6 ساعات من التعليمات المستندة إلى الفيديو وتأتي مع شهادة.

إنه يغطي SVMs وكيف يمكن تنفيذها بقوة في Python. علاوة على ذلك ، فهو يغطي تطبيقات الأعمال الخاصة بـ Support Vector Machines.

التعلم الآلي والذكاء الاصطناعي: دعم آلات المتجهات في Python

في هذه الدورة التدريبية حول التعلم الآلي والذكاء الاصطناعي ، ستتعلم كيفية استخدام آلات ناقلات الدعم (SVMs) لمختلف التطبيقات العملية ، بما في ذلك التعرف على الصور واكتشاف البريد العشوائي والتشخيص الطبي وتحليل الانحدار.

ستستخدم لغة برمجة Python لتنفيذ نماذج ML لهذه التطبيقات.

الكلمات الأخيرة

في هذه المقالة ، تعلمنا بإيجاز عن النظرية الكامنة وراء آلات المتجهات الداعمة. تعلمنا عن تطبيقاتهم في التعلم الآلي ومعالجة اللغة الطبيعية.

لقد رأينا أيضًا كيف يبدو تنفيذها باستخدام scikit-Learn. علاوة على ذلك ، تحدثنا عن التطبيقات العملية وفوائد دعم Vector Machines.

بينما كانت هذه المقالة مجرد مقدمة ، أوصت الموارد الإضافية بالخوض في مزيد من التفاصيل ، وشرح المزيد حول Support Vector Machines. نظرًا لمدى تنوعها وفعاليتها ، فإن الأجهزة الافتراضية الخاصة (SVM) تستحق الفهم لتنمو كعالم بيانات ومهندس ML.

بعد ذلك ، يمكنك التحقق من أفضل نماذج التعلم الآلي.