قراية
وضع الحكايات

أنواع الـ Machine Learning (تعلم الآلة)

~14 دقيقة قراية الدرس 2 من 4 في الوحدة 1

التلات أنواع

في الدرس اللي فات، عرفنا إن الـ Machine Learning (تعلم الآلة) كله عن إنك تلاقي الـ patterns (الأنماط) في البيانات. بس مش كل التعلّم شبه بعضه. زي ما البني آدمين بيتعلّموا بطرق مختلفة — من المدرّسين، ومن الاستكشاف، ومن التجربة والغلط — الـ algorithms (الخوارزميات) بتاعة الـ Machine Learning بتتقسم لأنواع واضحة، كل نوع مناسب لمشاكل مختلفة.

التلات أنواع الأساسية هم الـ supervised learning (التعلم الخاضع للإشراف) والـ unsupervised learning (التعلم غير الخاضع للإشراف) والـ reinforcement learning (التعلم المعزز). إنك تعرف تستخدم كل واحد فيهم إمتى ده من أهم المهارات في الـ Machine Learning العملي. يلا نستكشف كل نوع بالتفصيل.

تشبيه على السريع

الـ supervised = تتعلّم مع مدرّس بيدّيك الإجابات. الـ unsupervised = تلف في مكتبة مالهاش فهرس وترتّب الكتب بنفسك. الـ reinforcement = تتعلّم ركوب العجلة بإنك تقع وتقوم تاني.

الـ supervised learning

الـ supervised learning هو أكتر نوع مستخدم في الـ Machine Learning. الفكرة بسيطة: بتدّي الـ algorithm بيانات تدريب labeled (مُعنونة) — أزواج من inputs والـ outputs الصح بتاعتها — والـ model (النموذج) بيتعلّم function بتوصّل الـ inputs بالـ outputs. وبعد التدريب، يقدر يتنبأ بالـ output لأي input جديد عمره ما شافه.

مشاكل الـ supervised learning بتتقسم لنوعين. الـ classification (التصنيف) بيتنبأ بـ label منفصل — الإيميل ده spam ولا لأ؟ الورم ده خبيث ولا حميد؟ والـ regression (الانحدار) بيتنبأ بقيمة مستمرة — البيت ده هيتباع بكام؟ الإيرادات هتبقى كام الربع الجاي؟

الـ classification
output منفصل
بيتنبأ بالفئات: spam/مش spam، قطة/كلب، مشاعر إيجابية/سلبية. الـ output واحد من مجموعة labels ثابتة.
الـ regression
output مستمر
بيتنبأ بقيم رقمية: أسعار البيوت، توقعات الحرارة، أسعار الأسهم. الـ output رقم على مقياس مستمر.

التدريب بيشتغل عن طريق إنك تقلّل الـ loss function (دالة الخسارة) — مقياس للـ predictions بتاعة الـ model بعيدة عن الـ labels الحقيقية قد إيه. وفي الـ regression، أشهر loss function هي متوسط مربع الخطأ:

متوسط مربع الخطأ (MSE)
J(\theta) = \frac{1}{n}\sum_{i=1}^{n}\left(h_\theta(x^{(i)}) - y^{(i)}\right)^2
الـ MSE loss بتقيس متوسط مربع الفرق بين الـ predictions والقيم الحقيقية — وبتعاقب الأخطاء الكبيرة أكتر

من أشهر algorithms الـ supervised learning: الـ linear regression (الانحدار الخطي) للتنبؤ بالقيم المستمرة، والـ decision trees (أشجار القرار) اللي بتقسم البيانات على حسب thresholds للـ features، والـ support vector machines (آلات المتجهات الداعمة) اللي بتلاقي أحسن decision boundary، والـ neural networks (الشبكات العصبية) اللي تقدر تتعلّم أي mapping معقّد مهما كان. كل واحد ليه نقط قوته — الـ linear models سهل تفسّرها، والـ trees بتتعامل مع البيانات اللي مش خطية من نفسها، والـ neural networks بتكسب لما البيانات تبقى كتير.

الـ unsupervised learning

الـ unsupervised learning بيشتغل على بيانات مش labeled. مفيش إجابات صح يتعلّم منها — وبدل كده، الـ algorithm لازم يكتشف البنية والـ patterns لوحده. وده بيخلّيه أصعب، وفي حالات كتير أقوى من الـ supervised learning، لأن البيانات الـ labeled غالية إنك تجيبها، والبيانات اللي مش labeled متوفرة بكترة.

التلات مهام الأساسية في الـ unsupervised learning هم الـ clustering (التجميع) والـ dimensionality reduction (تقليل الأبعاد) والـ anomaly detection (كشف الشذوذ).

الـ clustering بيجمّع نقط البيانات اللي شبه بعض مع بعض. أشهر algorithm هو K-Means، اللي بيقسم البيانات لـ k مجموعة عن طريق إنه يقلّل المسافة بين كل نقطة ومركز مجموعتها. والـ objective اللي K-Means بيقلّله هو:

الـ objective بتاع K-Means
J = \sum_{k=1}^{K}\sum_{x_i \in C_k} \|x_i - \mu_k\|^2
الـ K-Means بيقلّل مجموع مربعات المسافات بين كل نقطة بيانات ومركز المجموعة اللي اتحطّت فيها

الـ dimensionality reduction بيضغط البيانات اللي أبعادها كتير لأبعاد أقل، وهو محافظ على أكبر قدر ممكن من المعلومات. PCA (تحليل المكونات الرئيسية) بيلاقي الاتجاهات اللي فيها أكبر variance ويعمل projection للبيانات عليها. والـ autoencoders (المشفرات التلقائية) هي neural networks بتتعلّم تضغط البيانات وترجّع تبنيها، فبتكتشف representations كفءة.

الـ anomaly detection بيحدّد نقط البيانات اللي بتبعد أوي عن الـ patterns العادية. وده اللي بيشغّل كشف احتيال الكريدت كارد — النظام بيتعلّم المعاملات العادية شكلها إيه، وينبّه على أي حاجة غريبة. وبيتستخدم كمان في المصانع عشان يكشف المنتجات اللي فيها عيب، وفي الأمن السيبراني عشان يلاقي اختراقات الشبكات.

الـ reinforcement learning

الـ reinforcement learning (RL) مختلف خالص عن الـ supervised والـ unsupervised. بدل ما يتعلّم من dataset ثابتة، فيه agent (وكيل) بيتعلّم من تفاعله مع environment (بيئة). في كل خطوة، الـ agent بيبص على الـ state (الحالة) الحالية، ويعمل action (فعل)، وياخد reward (مكافأة) (أو عقوبة)، وينتقل لـ state جديدة. ومع الوقت، الـ agent بيتعلّم policy (سياسة) — strategy بتخلّي مجموع المكافآت أكبر ما يمكن.

لفّة الـ reinforcement learning

state ← action ← reward ← state جديدة ← وتعيد. هدف الـ agent إنه يتعلّم policy تخلّي مجموع المكافآت المتوقع مع الوقت أكبر ما يمكن.

G_t = R_{t+1} + γR_{t+2} + γ²R_{t+3} + …

مجموع المكافآت المتوقع، واسمه الـ return (العائد)، بيتعرّف كده:

الـ return المتوقع
G_t = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}, \quad 0 \leq \gamma < 1
الـ discount factor (عامل الخصم) γ (بين 0 و1) بيتحكم الـ agent بيقدّر المكافآت الجاية قد إيه قصاد المكافآت اللي على طول

أهم تطبيقات الـ RL: الألعاب (AlphaGo، Atari)، والروبوتات (إنها تتعلّم تمشي وتمسك الحاجات)، والسواقة الذاتية، وإدارة الموارد، ولحد تحسين تبريد الـ data centers بتاعة Google. الـ RL بيلمع في مشاكل القرارات المتتالية، اللي فيها أحسن strategy مش واضحة ولازم تتكشف بالاستكشاف.

أبعد من التلات أنواع

الحدود بين أنواع التعلّم مش دايمًا حادة. فيه طريقتين هجين مهمين ظهروا:

الـ semi-supervised learning (التعلم شبه الخاضع للإشراف) بيستخدم شوية بيانات labeled مع كمية كبيرة من البيانات اللي مش labeled. وده عملي لأن عمل labels للبيانات مكلّف — زي وقت دكتور بيعمل labels لصور طبية. الـ model بيتعلّم البنية الأساسية من البيانات اللي مش labeled، ويظبط فهمه بالأمثلة الـ labeled. وعمليًا، الطرق الـ semi-supervised تقدر توصل لأداء قريب من الـ supervised بجزء صغير من الـ labels.

الـ self-supervised learning (التعلم ذاتي الإشراف) بيعمل الـ labels بتاعته من البيانات نفسها. مثلًا، language model بيتعلّم يتنبأ بالكلمة الجاية في جملة — و"الـ label" هو ببساطة الكلمة الجاية، اللي جاية ببلاش من النص نفسه. كده بيتدرّب GPT وBERT. وبنفس الشكل، في الـ computer vision، ممكن model يتعلّم يلوّن صورة أبيض وأسود أو يرجّع يبني حتة متغطية منها. والـ self-supervised learning بقى هو استراتيجية الـ pretraining (التدريب المسبق) الأساسية في الـ AI الحديث.

إزاي تختار الطريقة الصح

اختيار النوع الصح من الـ Machine Learning بيعتمد على بياناتك ومشكلتك:

دليل الاختيار
?
فيه labels؟
آه ← supervised
?
فيه بنية؟
آه ← unsupervised
?
قرارات متتالية؟
آه ← reinforcement
?
labels قليلة؟
آه ← semi-supervised

لو معاك بيانات labeled وعايز تتنبأ بنتايج محددة، استخدم الـ supervised learning. لو معاك بيانات مش labeled وعايز تكتشف patterns مستخبية، استخدم الـ unsupervised learning. لو مشكلتك فيها قرارات متتالية والمكافآت بتيجي متأخر، يبقى الـ reinforcement learning هو الطريق. ولو معاك شوية labels بس مش كفاية، الطريقة الـ semi-supervised أو الـ self-supervised تقدر تسد الفجوة.

وعمليًا، أغلب أنظمة الـ Machine Learning في الدنيا الحقيقية بتجمع بين كذا نوع. ممكن recommendation system يستخدم الـ clustering الـ unsupervised عشان يجمّع المستخدمين، والـ supervised learning عشان يتنبأ بالتقييمات، والـ reinforcement learning عشان يحسّن ترتيب الترشيحات. وفهمك للتلات أنواع كلهم بيدّيك المرونة إنك تصمّم حلول بتشتغل بجد.

في الدرسين الجايين، هنستكشف الـ supervised learning بعمق أكتر — الأول هنبني model ونمشي في لفّة التدريب، وبعدين نتعلّم إزاي نحكم هو نافع فعلًا ولا لأ بمقاييس زي الـ accuracy والـ precision والـ recall.

أهم النقط
  • الـ supervised learning بيستخدم بيانات labeled عشان يتنبأ بالنتايج — يا إما labels منفصلة (classification) يا إما قيم مستمرة (regression).
  • الـ unsupervised learning بيكتشف البنية المستخبية في البيانات اللي مش labeled عن طريق الـ clustering والـ dimensionality reduction والـ anomaly detection.
  • الـ reinforcement learning بيدرّب agent ياخد قرارات متتالية عن طريق إنه يكبّر مجموع المكافآت بالتجربة والغلط.
  • الـ semi-supervised والـ self-supervised learning بيسدّوا الفجوة لما البيانات الـ labeled تبقى قليلة، والـ AI الحديث بيعتمد أكتر وأكتر على الـ pretraining الـ self-supervised.
  • اختيار النوع الصح بيعتمد على بياناتك (labeled ولا لأ) ونوع مشكلتك (تنبؤ، اكتشاف، ولا أخد قرارات).
الدرس اللي بعده أول model ليك في الـ Machine Learning: الفكرة نظرة عامة على الموديول اللي فات يعني إيه Machine Learning (تعلم الآلة)؟