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

أول model ليك في الـ Machine Learning: الفكرة

~12 دقيقة قراية الدرس 3 في الوحدة 1

من البيانات للـ predictions

دلوقتي إنت عارف الـ Machine Learning (التعلم الآلي) إيه وأنواعه التلاتة الأساسية — الـ supervised والـ unsupervised والـ reinforcement learning. بس الـ model بتاع الـ Machine Learning بيتعلّم إزاي فعلًا؟ في الدرس ده، هنبني أول صورة في دماغك للعملية كلها — من البيانات الخام لحد الـ predictions (التنبؤات) بعد التدريب.

الفكرة الأساسية

الـ model بتاع الـ Machine Learning هو function بتوصّل الـ inputs بالـ outputs. بدل ما بني آدم يكتب القواعد، الـ model بيكتشفها من البيانات عن طريق لفّة بتتكرّر: يتنبأ، ويقيس الغلط، ويعدّل.

البرمجة التقليدية: قواعد + بيانات → إجابات  |  الـ Machine Learning: بيانات + إجابات → قواعد

يعني إيه model؟

في الـ Machine Learning، الـ model (النموذج) ببساطة function رياضية. بتدخّل فيه inputs — زي المساحة وعدد أوض النوم — ويطلّع output — زي سعر البيت المتوقع. وشغلانة الـ model إنه يتعلّم الربط الصح من الأمثلة.

تخيّله صندوق أسود جواه زراير بتتظبط. في الأول، الزراير متظبطة عشوائي والـ predictions وحشة. ومع التدريب، الـ model بيظبط الزراير دي (اسمها parameters (المعاملات) أو weights (الأوزان)) لحد ما الـ predictions بتاعته تبقى دقيقة.

الـ features والـ labels

كل مسألة supervised learning ليها جزئين. الـ features (الميزات) (عادة بنسمّيها X) هي متغيرات الـ input — المعلومات اللي الـ model بيستخدمها عشان يتنبأ. والـ labels (التسميات) (عادة بنسمّيها y) هي الإجابات اللي عايزين الـ model يتنبأ بيها.

في كاشف الـ spam، الـ features ممكن تبقى عدد مرات ظهور الكلمات، وسمعة اللي باعت، وطول الإيميل. والـ label ثنائي: spam ولا لأ. جودة الـ features بتاعتك غالبًا أهم من اختيار الـ algorithm. اللي داخل وحش، يبقى اللي خارج وحش.

بيانات التدريب

الـ model بيتعلّم من الـ training data (بيانات التدريب) — مجموعة أمثلة إحنا عارفين فيها من الأول الـ features والـ labels الصح. وكل ما الأمثلة تكتر وتبقى ممثّلة أكتر للمواقف الحقيقية، كل ما التعلّم يبقى أحسن.

فكّر فيها زي المذاكرة للامتحان: مسائل تدريب أكتر بتغطّي مواضيع أكتر يعني أداء أحسن. بس لو المسائل بتاعتك غطّت نص المنهج بس، هتقع في أسئلة النص التاني. بيانات تدريب منحازة أو ناقصة بتطلّع models منحازة أو ناقصة.

لفّة التعلّم

التعلّم بيحصل عن طريق لفّة بتتكرّر من تلات خطوات:

1. يتنبأ: الـ model بيستخدم الـ parameters الحالية بتاعته عشان يعمل predictions على بيانات التدريب.

2. يقيس الغلط: الـ loss function بتقارن الـ predictions بالإجابات الحقيقية وتطلّع رقم واحد بيقيس الـ model غلطان قد إيه.

3. يعدّل: optimization algorithm بيظبط الـ parameters عشان يقلّل الغلط.

اللفّة دي بتتكرّر آلاف أو ملايين المرات. ومع كل مرة، الـ model بيتحسّن شوية. ودي الآلية الأساسية ورا كل الـ supervised learning.

الـ loss functions

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

متوسط مربع الخطأ
\text{MSE}=\frac{1}{n}\sum_{i=1}^{n}(\hat{y}_i - y_i)^2
متوسط مربعات الفروق بين القيم المتوقعة ŷᵢ والقيم الحقيقية yᵢ. التربيع بيعاقب الأخطاء الكبيرة أكتر من الصغيرة.

الـ gradient descent

الـ gradient descent (النزول التدرجي) هو الطريقة اللي الـ model بيعدّل بيها الـ parameters بتاعته. تخيّل إنك واقف على أرض فيها طلوع ونزول وسط ضباب — مش شايف القاع بس حاسس بالميل تحت رجلك. بتاخد خطوة لتحت، وبعدين كمان واحدة، وكمان واحدة. وفي الآخر بتوصل لوادي.

ده هو الـ gradient descent: احسب الميل (الـ gradient) بتاع الـ loss بالنسبة لكل parameter، وبعدين خد خطوة صغيرة في الاتجاه اللي بيقلّل الـ loss. وحجم كل خطوة اسمه الـ learning rate (معدل التعلم) — لو كبير أوي هتعدّي الهدف؛ ولو صغير أوي التدريب هيفضل شغّال للأبد.

تحديث الـ gradient descent
w \leftarrow w - \alpha \frac{\partial \mathcal{L}}{\partial w}
كل parameter w بيتحدّث بإننا نطرح الـ learning rate α مضروب في الـ gradient بتاع الـ loss. وده بيحرّك w في الاتجاه اللي بيقلّل الـ loss.

الـ linear regression: أبسط model

أبسط model في الـ Machine Learning هو الـ linear regression (الانحدار الخطي): خط مستقيم بيناسب البيانات أحسن مناسبة.

الـ linear model
\hat{y} = wx + b
w هو الـ weight (الميل)، وb هو الـ bias (نقطة التقاطع). التدريب بيلاقي قيم w وb اللي بتقلّل الـ loss.

مع إنه بسيط، الـ linear regression مستخدم في كل حتة وقوي. والأهم إن كل فكرة اتكلمنا فيها — الـ features والـ loss functions والـ gradient descent — بتنطبق بنفس الشكل بالظبط على الـ neural networks اللي فيها ملايين الـ parameters. والدرس 2.1 بيغطّي الـ linear regression كله — الـ cost function والـ gradient descent والحل المقفول — وهناك الـ bias b بيتكتب على شكل w₀.

الـ overfitting قصاد الـ underfitting

الـ overfitting (الإفراط في التخصيص) بيحصل لما الـ model يحفظ بيانات التدريب بس يقع مع الأمثلة الجديدة. اتعلّم الـ noise مش الـ signal. والـ underfitting (التبسيط المفرط) بيحصل لما الـ model يبقى بسيط زيادة إنه يمسك الـ patterns الحقيقية في البيانات.

النقطة المثالية هي الـ generalization (التعميم) — إنك تتعلّم الـ pattern الحقيقي اللي تحت من غير ما تحفظ أمثلة بعينها. ده التحدي الأساسي في الـ Machine Learning، وجزء كبير من الشغل العملي فيه كله عن إنك تلاقي التوازن ده.

تقسيم الـ train/test

عشان تكشف الـ overfitting، بنـشيل شوية بيانات على جنب الـ model مش بيشوفها أثناء التدريب — الـ test set (مجموعة الاختبار). بندرّب على الـ training set ونقيّم على الـ test set. ولو الـ model أداؤه حلو على التدريب بس ضعيف على بيانات الاختبار، يبقى عنده overfitting.

التقسيم المعتاد 80% للتدريب و20% للاختبار. التقنية البسيطة دي هي أساس كل تقييم للـ models في الـ Machine Learning. ومن غيرها، معندكش أي فكرة إذا كان الـ model بتاعك شغّال فعلًا على بيانات حقيقية ولا لأ.

خطوات شغل الـ Machine Learning

1. اجمع البيانات وجهّزها → 2. قسّمها train/test → 3. درّب الـ model → 4. قيّم على الـ test set → 5. عيد لو محتاج. الـ Machine Learning بطبيعته شغل بيتكرّر.

في الدرس الجاي، هنشتغل بإيدينا وندرّب أول model حقيقي — هننفّذ الـ linear regression من الصفر ونشوف الأفكار دي بتتحرّك قدامنا مع بيانات حقيقية.

أهم النقط
  • الـ model هو function بتتعلّم توصّل الـ inputs بالـ outputs من البيانات. الـ features (X) هي الـ inputs؛ والـ labels (y) هي الـ outputs.
  • لفّة التعلّم: يتنبأ ← يقيس الغلط (الـ loss function) ← يعدّل الـ parameters (الـ gradient descent). وتعيد.
  • متوسط مربع الخطأ بيقيس دقة الـ regression؛ والـ gradient descent بيحسّن الـ parameters بإنه يمشي مع نزول الـ loss.
  • الـ linear regression (y = wx + b) أبسط model، بس بيوضّح كل أفكار الـ Machine Learning الأساسية.
  • الـ overfitting بيحفظ الـ noise؛ والـ underfitting بيفوّت الـ patterns. وتقسيم الـ train/test بيكشف الـ overfitting لأنه بيقيّم على بيانات الـ model مشافهاش.
الدرس اللي فاتأنواع الـ Machine Learning (تعلم الآلة) نظرة عامة على الموديول الدرس اللي بعدهتقييم الـ models (النماذج)