Posts

خوارزميات التصنيف التي تعتمد على الإنتخاب

Image
Voting Classifiers فرضا أنه لدينا مشكلة صعبة و أردنا إستشارة الأخرين فأكيد كلما إستشرنا أكثر كلما حصلنا على قرار أفضل لأننا ببساطة نعلم أن رأي الجماعة أكثر حكمة من رأي الفرد و هذا ما يسمى ب "The wisdom of the crowd".  في مجال تعلم الألة نطبق هذا المبدأ بجعل مجموعة من الخوارزميات تشارك في عملية إتخاد القرار و الرأي الذي يحظى بالأغلبية يختار و يطلق على هذه العملية (Hard voting classifier). الصورة 1 مكتبة (Scikit-Learn ) توفر لنا إطار عمل يسهل علينا برمجة طريقة الإنتخاب بين مجموعة من المصنفات و هو (VotingClassifier). كمثال تطبيقي نستعمل قاعدة البيانات الجاهزة (breast_cancer) و التي تحتوي علي (Examples = 569, Features = 30)، في هذا المثال إستعملنا ثلاث خوارزميات و هم LogisticRegression RandomForestClassifier و SVM. بعد ذلك نعرف المصنف الذي يعتمد مبدأ الإنتخاب في السطر 22 - الصورة 1، و نقدم له هذه الخوارزميات كمدخلات ليعمل عليها مع المدخل (voting = hard)  لأنه توجد أنواع أخرى من طرق الإنتخاب. هو سيقوم بتدريب هذه الخوارزميات الثلاث و بعدها يعيد تطبيقها على الداتا...

التعاون بين الخوارزميات من أجل إتخاد قرار

Image
AdaBoost: AdaBoostClassifier, GradientBoostingClassifier عندما نصادف مشكلا معقدا في مجال تعلم الألة و نجرب عدة خوارزميات و لا نجد واحدة تقدم لنا نتائجا مقبولة لهذا المشكل فإنه من بين الحلول الممكنة هو أن تتعاون هذه الخوارزميات بمختلف طرق عملها من أجل إيجاد حل مناسب لهذا المشكل. من بين خوارزميات التعاون التي إقترحت هي خوارزمية ( AdaBoost ) في سنة 1996 و هدفها تحويل مجموعة من المصنفات الضعيفة (يعني التي لا تقدم نتائجا جيدة في عملية التصنيف) إلى مصنف قوي. مبدأ عملها هو الإنتخاب، في البداية تكون جميع المصنفات بنفس الوزن و خلال عملية التدريب تتفاضل هذه المصنفات أو الخوارزميات بحسب أداءها و بعدها  أثناء عملية التصنيف فإن القرار النهائي يتخد بتصويت كل الخوارزميات المشاركة في العملية مع أخد بعين الإعتبار وزن كل خوارزمية و قيمتها بعد عملية التدريب و نحسب لصالح أي فئة يتم تصنيف العنصر الجديد بالأغلبية. خوارزمية (AdaBoost)  موجودة في الصورة 1. الصورة 1 في مكتبة (Scikit-Learn ) وفرت لنا (AdaBoostClassifier) و هو مصنف يطبق مبادئ (AdaBoost) في التعاون بين الخوارزميات. من أ...

تحسين أداء خوارزميات تعلم الألة

Image
تحسين أداء خوارزميات تعلم الألة. Testing and Validation  أثناء تدريب نمودج (model) لخوازمية من خوارزميات تعلم الألة قد نجد نسبة الخطأ مرتفعة جدا فنحاول البحث عن أحسن القيم للمعاملات الداخلية للخوارزمية (Hyper-parameters ) من أجل تحسين الأداء و تقليل نسبة الخطأ. أبسط طريقة هي تدريب عدة نماذج و لتكن 100 نموذج  مثلا من هذه الخوارزمية و بمعاملا داخلية مختلفة و بعدها نختار أحسن نموذج لهذه الخوارزمية و نعتمده هو في عملنا، هناك طرق أخرى للقيام بذلك مثل (Gradient descent) بمكن القول أنه إستعمال لطرق (Optimization ) من أجل إيجاد أحسن القيم ل (Hyper-parameters ). لكن لسوء الحظ قد تجد أن نسبة الأداء مرتفعة و نسبة الخطأ صغيرة أثناء عملية التدريب أما في مرحلة الإختبار تجد أن نسبة الخطأ مرتفعة جدا! و هذا يعني أننا وقعنا في مشكل (Overfitting) و لتجنب ذلك سنشرح في هذه المقالة إحدى الطرق للقيام بذلك و هي ال (Validation ). في عملية تدريب نمودج لخوازمية في الطريقة العادية فإننا نقسم (dataset) إلى قسمين، قسم للتدريب و قسم للإختبار بنسبتي 80٪ و 20٪ على الترتيب في الحالة العامة. و من أجل اكثر ...

مقاييس تقيم نماذج خوارزميات التعلم

Image
Common Classification / Regression Model Evaluation Metrics في مجال تعلم الألة و بعد الإنتهاء من عملية تدريب النموذج الخاص بنا فإنه يتوجب علينا حينها الإنتقال إلى الخطوة التالية و هي تقيم أداءه من أجل معرفة مقدار دقته أو مقارنته مع نموذج أخر من أجل إختيار الأفضل. سنتطرق في هذه المقالة لبعض أشهر طرق تقيم نماذج خوارزميات التعلم. 1- في حالة (Classification ) فإننا نعتمد على حساب (Confusion Matrix) كما في الصورة 1. (TP) يعني أن الصنف الذي نعرفه و الذي إستنتجته خوارزمية التعلم أثناء الإختبار متطابقان في الحالة الموجبة. مثلا نريد تصنيف مجموعة من الأشخاص ما إذا كانوا مصابين بمرض محدد (-) أم لا (+)، في هذه الحالة الشخص سليم و الخوارزمية إستنتجت أنه سليم. (FN) الشخص سليم و الخوارزمية إستنتجت أنه مريض. (FP) الشخص مريض و الخوارزمية إستنتجت أنه سليم. (TN) الشخص مريض و الخوارزمية إستنتجت أنه مريض. من أجل كل (Examples) التي لدينا في مجموعة الإختبار نقوم بحساب هؤولاء المعاملات الأربعة لنستعملهم في حساب مختلف أدوات القياس الموضحة في الصورة 2، ك (Accuracy) و غيرها. في الصورة 3، مثال بإستعمال (Scikit-...

Instance-based learning VS Model-based learning

Image
أغلب أعمال مجال تعلم الألة تتمحور حول عملية التنبؤ و هو يعني أنه من البيانات التي لدينا و من التي خصصت لعملية التدريب فإن النظام أو البرنامج الذي نرغب في إنشائه يجب أن يكون قادرا على تعميم النتائج التي تحصل عليها علي بيانات جديدة من نفس النوع لم تشارك في عملية التدريب. و حتى و إن حصلنا على (accuracy ) جيدة أثناء عملية التدريب فهذا لا يعني أن برنامجنا جيدا! بل الأهم من ذلك هو تحقيق نتائج مرغوبة مع بيانات جديدة. و هناك نوعان من الطرق أو إستراتيجيتان نعتمد عليهما من أجل إنشاء أنظمة برمجية في مجال تعلم الألة. النوع 1: (Instance-based learning)  في هذا النوع النظام البرمجي يقوم بدراسة البيانات و إستخراج العلاقات التي تميزها بشكل عام، ثم بالإعتماد على ألية لقياس التشابه بين مختلف الأصناف يتم تحديد صنف البيانات الجديدة الواردة إلى النظام بناء على أقرب مسافة بينها و بين مختلف الأصناف الموجودة. رغم أن مفهوم هذا النوع يبدو بسيطا إلا أننا لا يمكننا قول ذلك فما زالت الكثير من المشاكل يتناسب معها هذا النوع. و كمثال صادفني سابقا و عملت عليه، كان لدي قاعدة بيانات و كل (Example) عل...

نصائح إلى الطلبة الذين سيدرسون تخصص الإعلام الألي

Image
نصائح إلى الطلبة الذين سيدرسون تخصص الإعلام الألي (علوم الحاسوب ) informatique : في هذا المقال مجموعة من النصائح و التوجيهات موجهة إلى الطلبة الجدد الذين إختاروا تخصص الإعلام الألي (أو رياضيات و إعلام ألي و يعتزمون إكمال الدراسة في تخصص الإعلام الألي بعد إعادة التوجيه في السنة الثانية). 1- نتمنى أن تكونوا قد إخترتم هذا التخصص عن قناعة و دراية و حب و إلا فليراجع الطالب نفسه قبل بداية الموسم الدرا سي و يتخد قرارا نهائيا حول مستقبله الدراسي، لأن الأشياء التي تفعل إرغاما أو إكراها و دون حب لن يكون فيها النجاح و إن كان فلن يكون هناك إبداع و تفوق. 2- كل الشائعات عن هذا التخصص خاطئة سواء بالقول: أنه تخصص صعب أو سهل. فمن يعمل و يجتهد ينجح و العكس صحيح، و هذا ينطبق على جميع التخصصات الأخرى. 3- ما يميز الإعلام الألي أنه يعتبر من العلوم الجديدة مقارنة بالرياضيات و الفيزياء و الكيمياء و العلوم الطبيعية و لهذا جزء كبير من مفاهيمه متجدد بإستمرار و يحتاج شخصا يظل متابعا لكل المستجدات في هذا المجال و مواظبا على ذلك. شهادتك بعد التخرج أو مهارتك قد تصبح بلا قيمة إذا لم تجد...

التحديات الرئيسية لتعلم الألة المتعلقة بخوارزميات التدريب

Image
نقول عن نمودج لخوازمية من خوارزميات تعلم الألة أنه يعمل بشكل جيد إذا قام بتعميم أي بيانات إدخال جديدة من قاعدة بيانات المشكلة التي نود حلها بطريقة مناسبة. هذا سيساعدنا على عمل تنبؤات حول البيانات المستقبلية. هناك مشكلتان رئيسيتان متعلقتان بالخوارزميات المختارة و هما : 1- Overfitting : لأبسط هذه المشكلة نأخد المثال التالي، تخيل أنك زرت مدينة سياحية و ذهبت إلى الشاطئ و إستأجرت مكانا فيه شمسية و كرسي و طاولة و بعدها إكتشفت أن صاحب المكان أخد منك مبلغا أكثر من اللازم بسبب أنك لا تعرف الثمن الحقيقي و غريب عن المدينة! بعض الناس ممن يحدث معهم مثل هذا و للأسف يقعون في التعميم بأن سكان هذه المدينة كلهم لصوص! في حين يوجد الأمناء و الطيبين في هذه المدينة و بكثرة! مادام أن البشر يقعون في التعميم المغلوط (التعميم الأكثر من اللازم) فالألة أيضا ليس حالها أفضل من البشر. يحدث هذا في مجال تعلم الألة عندما نجد أن الخوارزمية تعمل بشكل جيد أثناء عملية التدريب و تقدم نسبة خطأ قليلة و لكن في مرحلة الإختبار نحصل على نتائج سيئة للغاية و لا تستطيع الخوارزمية المستعملة التعميم على البيانات الجديدة المد...