مخلصات

ملخص كتاب

The Machine Learning Landscape
What Is Machine Learning?
Why Use Machine Learning?

Types of Machine Learning Systems
1. Supervised/Unsupervised Learning
2. Batch and Online Learning
3. Instance-Based Versus Model-Based Learning

Main Challenges of Machine Learning
1. Insufficient Quantity of Training Data
2. Nonrepresentative Training Data
3. Poor-Quality Data
4. Irrelevant Features
5. Overfitting the Training Data
6. Underfitting the Training Data

Stepping Back

Testing and Validating
1. Hyperparameter Tuning and Model Selection
2. Data Mismatch

الجزء الأول : أساسيات التعلم الآلي

الفصل الأول:

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

ما هو تعلم الآلة؟

التعلم الآلي هو علم (وفن) برمجة أجهزة الكمبيوتر حتى يتمكنوا من ذلكالتعلم من البيانات .
وهنا تعريف أكثر عمومية قليلاً:
[التعلم الآلي] هو مجال الدراسة الذي يمنح أجهزة الكمبيوتر القدرة على التعلم دون أن تكون مبرمجة بشكل صريح.

لماذا استخدم التعلم الآلي؟

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

أنواع نظم التعلم الآلي

هناك العديد من أنواع أنظمة التعلم الآلي المختلفة التي من المفيد استخدامها صنّفهم في فئات واسعة بناءً على:
• تم تدريبهم أو لا تحت توجيه أو إشراف بشري (supervised, unsupervised, semisupervised, and Reinforcement Learning)
• معرفة ما إذا كان بإمكانهم التعلم بشكل متزايد (online versus batch learning)
• ما إذا كانت تعمل ببساطة عن طريق مقارنة التشابه بين نقاط البيانات الجديدة بنقاط بيانات معروفة مسبقا، أو عن طريق اكتشاف الأنماط في بيانات التدريب وبناء نموذج تنبؤي (instance-based versus model-based learning)

التعلم الموجه / غير الموجه / التعزيزي

التعلم الموجه

البيانات التي يتم تدريب النموذج عليها تحتوي على الحلول المطلوبة أو مايسمى labels . من الأنواع المشهورة للتعلم الموجه هي التصنيف classification وآخر للتنبؤ regression وهنا بالكتاب مجموعة أخرى سيتم تناولها هي:
• k-Nearest Neighbors
• Linear Regression
• Logistic Regression
• Support Vector Machines (SVMs)
• Decision Trees and Random Forests
• Neural networks

التعلم غير الموجه

في التعلم غير الموجه فإن بيانات التدريب لايوجد بها labels ويحاول النموذج أن يتعلم بدون معلم. وهنا بعض الأمثلة التي سيتم تناولها بالكتاب:
• Clustering
— K-Means
— DBSCAN
— (Hierarchical Cluster Analysis (HCA
• Anomaly detection and novelty detection
— One-class SVM
— Isolation Forest
• Visualization and dimensionality reduction
— (Principal Component Analysis (PCA
— Kernel PCA
— (Locally-Linear Embedding (LLE
— (t-distributed Stochastic Neighbor Embedding (t-SNE
• Association rule learning
— Apriori
— Eclat

التعلم شبه الموجة

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

(deep belief networks (DBNsيعتمد على تعلم غير موجه يسمى restricted Boltzmann (اmachines (RBMs

التعلم التعزيزي

هذا النوع مختلف جدا عن ما قبله. هناك نظام التعلم فيه وكيل وله بييئة محيطة به، يمكن مراقبة تفاعل الوكيل مع البيئة وتحديد الإجراءات وتنفيذها لكل تفاعل ايجابي أو سلبي والحصول المكافآت أو العقوبات بناء عليها ومع مرور الوقت يتعلم الوكيل من تفاعله هذا مع البيئة.
مثال:
– robots
– DeepMind’s AlphaGo program

Batch and Online Learning

معيار آخر يستخدم لتصنيف أنظمة التعلم الآلي ويصف هل يمكن للنظام التعلم تدريجيا من دفق من البيانات الواردة إليه أم لا؟

Batch learning التعلم دفعة

غير قادر على التعلم تدريجيا بل دفعة واحدة باستخدام جميع البيانات ويأخذ كثير من الوقت ويحتاج لكثير من الموارد الحسابية. ويسمى أيضا Offline

Online Learning التعلم على الانترنت

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

Instance-Based Versus Model-Based Learning

طريقة أخرى لتصنيف أنظمة التعلم الآلي هي كيفية تعميمها generalize. هناك طريقتان رئيسيتان للتعميم: التعلم القائم على المثال والتعلم القائم على النموذج.

التعلم القائم على المثال

النظام يتعلم الأمثلة ـ بحفظها عن ظهر قلب ـ ، ثم يعمم على الحالات الجديدة من خلال مقارنتها بالأمثلة التي تعلمها ـ وحفظها عن ظهر قلب ـ وذلك باستخدام مقياس التشابه.

التعلم القائم على النموذج

وهي بناء نموذج باستخدام الأمثلة واختباره ومن ثم استخدم هذا النموذج لعمل تنبؤات.

التحديات الرئيسية للتعلم الآلي

مهمتك الرئيسية هي اختيار خوارزمية تعليمية وتدريبها على البعض البيانات ،لكن هناك سببان يمكن أن يسببا خطأ في النتائج وهما “الخوارزمية السيئة” أو “البيانات السيئة”.
لنبدأ مع أمثلة من البيانات السيئة

١- كمية غير كافية من بيانات التدريب

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

٢- بيانات التدريب غير التمثيلية (أي لاتمثل المشكلة)

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

٣- بيانات سيئة الجودة

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

٤- المميزات غير ذات صلة

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

  • اختيار الميزة Feature selection:اختيار الميزات الأكثر فائدة للتدريب عليها بين القائمةالميزات.
  • استخراج الميزة Feature extraction:الجمع بين الميزات الموجودة لإنتاج ميزة واحدة أكثر فائدة.
  • إنشاء ميزات جديدة Creating new features: من خلال جمع بيانات جديدة.

الآن لنكمل مع أمثلة من الخوارزمية السيئة

٥- Overfitting فرط التخصيص في تدريب البيانات

عندما يكون دقيق جدا فالنموذج يعمل بشكل جيد على بيانات التدريب ولا يعمل جيدا على بيانات الاختبار أى انه لا يعمم بشكل جيد.

٦- Underfitting فرط التعميم في تدريب البيانات

على عكس Overfitting فهو غير دقيق اطلاقاً ولا يعطي نتائج جيدة عند اختباره حتى على بيانات التدريب.

وقفة للمراجعة Stepping Back

ربما تداخلت عليك المعلومات لذا دعنا نراجع ما قلناه:

• تعلم الآلة هو جعل الآلات تتحسن في بعض المهام من خلال التعلم من البيانات ، بدلاً من الاضطرار إلى برمجة القواعد بشكل صريح.
• هناك العديد من الأنواع المختلفة من أنظمة ML: الخاضعة الموجه أو غير الموجه ، الدفعية أو عبر الإنترنت ، القائمة على مثال أو القائمة على نموذج ، وهكذا.
• في مشروع ML ، تقوم بجمع البيانات في مجموعة تدريب ، وتغذي مجموعة التدريب لخوارزمية التعلم إذا كانت الخوارزمية قائمة على النموذج لتتمكن من التنبؤ الجيد بالحالات الجديدة. إذا كانت الخوارزمية قائمة على المثال ، فإنها تتعلم فقط الأمثلة عن ظهر قلب وتعمم على حالات جديدة من خلال مقارنتها مع الحالات السابقة باستخدام مقياس التشابه.
• لن يعمل النظام بشكل جيد إذا كانت مجموعة التدريب الخاصة بك صغيرة جدًا ، أو إذا كانت البيانات غير ممثلة للمشكلة أو مشوشة أو فيها ميزات غير ذات صلة. أخيرًا لا ينبغي أن يكون النموذج الخاص بك بسيطًا جدًا (Underfitting) أو معقدًا للغاية (Overfitting).

هناك موضوع مهم أخير يجب تغطيته: بمجرد تدريب النموذج تريد تقييمه وصقله إذا لزم الأمر.

الإختبار والتقييم Testing and Validating

قبل ان تنشر النموذج تحتاج لاختباره وتقييمه لكي تعرف اذا كان نموذجك يعمل بشكل جيد ولكي لا يشتكي مستخدميه من عدم صحة نتائجه. أفضل طريقة لمعرفة اذا كان نموذجك يعمل بشكل جيد هو تقسيم بياناتك الي إلى مجموعتين: مجموعة التدريب و مجموعة اختبار . تدرب النموذجك باستخدام مجموعة التدريب ومن ثم تختبره باستخدام مجموعة الاختبار. ويسمى معدل الخطأ في الحالات الجديدة خطأ التعميم generalization error. لاحظ إذا كان خطأ التدريب منخفضًا ولكن خطأ التعميم كبير فهذا يعني أن النموذج وقع في Overfitting.

ضبط المعلمات واختيار النموذج Hyperparameter Tuning and Model Selection

لنفترض الآن أن النموذج الخطي يعمم بشكل أفضل ، لكنك ترغب في تطبيق بعض التنظيمات regularization لتجنب overfitting .
والسؤال هو: كيف يمكنك اختيار قيمة hyperparameter التنظيم regularization وضبطها ؟ هناك عدة حلول من ضمنها التالي

holdout validation
نقسم بياناتنا بشكل عشوائي إلى قسمين: مجموعة التدريب والاختبار و التحقق من الصحة. نقوم بعد ذلك بتدريب النموذج على مجموعة بيانات التدريب وتقييم النموذج على مجموعة بيانات الاختبار و التحقق من الصحة.

الصورة ليست من الكتاب تم ادراجها للتوضيح
المصدر https://www.datavedas.com/holdout-cross-validation

cross-validation
تظهر في الطريقة السابقة مشكلة خصوصا عندما تكون مجموعة البيانات صغيرة. يمكن بالطريقة هذه cross-validatio استخدام مجموعة البيانات بالكامل عند التدريب لكنها تستخدم عمليات حسابية أطول.

الصورة ليست من الكتاب تم ادراجها للتوضيح
المصدر https://www.datavedas.com/k-fold-cross-validation

عدم تطابق البيانات Data Mismatch

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