تخطَّ إلى المحتوى

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

الدرس 1 من 8 · تعلّم الآلة

كيف يعرف بريدك الإلكتروني أن رسالة ما احتيالية؟ وكيف يتوقع تطبيق التوصيل وقت وصول طلبك؟ لم يكتب أحد قاعدة لكل رسالة أو لكل طلب، بل تعلّمت هذه الأنظمة من أمثلة سابقة. في هذا الدرس ستفهم ما هو تعلّم الآلة، وأهم مصطلحاته، وستكتب «نموذجاً» بسيطاً جداً بلغة Python بنفسك.

تعلّم الآلة (Machine Learning) فرع من الذكاء الاصطناعي، يجعل الكمبيوتر يتعلم من البيانات ويحسّن أداءه بالتجربة، دون أن نبرمجه بقواعد صريحة لكل حالة.

ومن أشهر الأمثلة التاريخية: في الخمسينيات كتب العالم آرثر صامويل (Arthur Samuel) برنامجاً يلعب لعبة الداما، وجعله يلعب آلاف المباريات ضد نفسه ويتعلم من نتائجها، حتى أصبح يلعب أفضل من صامويل نفسه! وهو من أوائل من استخدموا مصطلح «تعلّم الآلة».

تخيّل أنك انتقلت إلى مدينة جديدة وتريد أن تعرف أسعار الشقق. لا يوجد كتاب يعطيك «قاعدة» السعر. ماذا تفعل؟ تسأل عن أسعار شقق كثيرة: هذه 50 متراً بكذا، وتلك 100 متر بكذا… وبعد عدة أمثلة، تبدأ بتكوين إحساس: «الشقة هنا تقريباً بكذا للمتر». وعندما تسمع عن شقة جديدة، تتوقع سعرها بثقة معقولة.

هذا بالضبط ما يفعله تعلّم الآلة، لكن بطريقة رياضية ودقيقة، ومع آلاف أو ملايين الأمثلة.

  • البيانات (Data): الأمثلة التي نتعلم منها. في مثالنا: الشقق ومساحاتها وأسعارها.
  • الخصائص (Features): المعلومات التي نستخدمها للتوقع، مثل المساحة وعدد الغرف والموقع.
  • الهدف (Label): ما نريد توقعه، مثل السعر.
  • النموذج (Model): «الخلاصة» التي يستنتجها البرنامج من البيانات، مثل «السعر تقريباً 10 آلاف للمتر». تخيّله مثل الخبرة التي اكتسبتها بعد سؤال الناس.
  • التدريب (Training): عملية تعلّم النموذج من البيانات.
  • التنبؤ (Prediction): استخدام النموذج المدرَّب على حالة جديدة لم يرها من قبل.

لنكتب «نموذجاً» بسيطاً جداً بأنفسنا، دون أي مكتبات، لنفهم الفكرة. عندنا بيانات أربع شقق: (المساحة بالمتر، السعر بالألف جنيه):

apartments.py
# البيانات: (المساحة، السعر بالألف)
data = [(50, 520), (80, 790), (100, 1010), (120, 1180)]
# التدريب: نستنتج متوسط سعر المتر من الأمثلة
ratios = [price / area for area, price in data]
price_per_meter = sum(ratios) / len(ratios)
print(round(price_per_meter, 2))
# التنبؤ: شقة جديدة مساحتها 90 متراً
new_area = 90
print(round(new_area * price_per_meter))
الناتج
10.05
905

ماذا حدث؟

  1. التدريب: حسبنا سعر المتر في كل شقة، ثم أخذنا المتوسط. هذا الرقم 10.05 هو «النموذج» الذي تعلمناه.
  2. التنبؤ: استخدمنا النموذج لنتوقع سعر شقة 90 متراً: حوالي 905 آلاف.

لاحظ أننا لم نكتب قاعدة السعر بأنفسنا، بل استنتجناها من البيانات. ولو أعطينا البرنامج بيانات مدينة أخرى، لتعلّم سعراً مختلفاً دون أن نغيّر سطراً واحداً من الكود. هذه هي روح تعلّم الآلة.

  • التصنيف (Classification): اختيار فئة من فئات محددة. هل هذه الرسالة احتيالية أم لا؟ هل هذه صورة قطة أم كلب؟
  • الانحدار (Regression): توقع رقم. ما سعر هذه الشقة؟ كم درجة الحرارة غداً؟
  • التجميع (Clustering): تقسيم البيانات إلى مجموعات متشابهة دون أن نخبر النظام بالمجموعات مسبقاً. مثل تقسيم عملاء متجر حسب عاداتهم في الشراء.

ومثال الشقق الذي كتبناه هو مثال على الانحدار، لأننا نتوقع رقماً.

النموذج لا يكون أفضل من البيانات التي تعلّم منها. إذا كانت البيانات قليلة، أو خاطئة، أو غير متنوعة، سيتعلم النموذج أشياء خاطئة.

تخيّل أنك سألت عن أسعار الشقق في حي فاخر واحد فقط، ثم حاولت أن تتوقع سعر شقة في حي شعبي. ستخطئ كثيراً! لهذا يقول المتخصصون: «بيانات سيئة تعطي نتائج سيئة» (Garbage In, Garbage Out).

عدّل مثال الشقق في ملف Python:

  1. أضف شقتين جديدتين إلى البيانات، مثل (70, 690) و (150, 1530).
  2. شغّل البرنامج ولاحظ كيف تغيّر «النموذج» (سعر المتر) بعد إضافة بيانات جديدة.
  3. توقع سعر شقة مساحتها 200 متر. هل تثق في هذا التوقع رغم أن أكبر شقة في بياناتك 150 متراً؟ فكّر لماذا.
  • الاعتقاد أن النموذج «يفهم»: النموذج يكتشف أنماطاً رياضية في البيانات، ولا يفهم معنى «الشقة» أو «السعر».
  • الثقة العمياء في التنبؤات: كل تنبؤ فيه نسبة خطأ، خصوصاً للحالات البعيدة عن بيانات التدريب.
  • إهمال جودة البيانات: أغلب وقت المتخصصين يذهب في جمع البيانات وتنظيفها، وليس في كتابة الخوارزميات.

سؤال

في تعلّم الآلة، من أين يأتي «النموذج» بمعرفته؟

سؤال

توقع درجة الحرارة غداً بالأرقام هو مثال على:

  • تعلّم الآلة فرع من الذكاء الاصطناعي يجعل البرامج تتعلم من البيانات بدلاً من القواعد المكتوبة.
  • المصطلحات الأساسية: البيانات، والخصائص، والهدف، والنموذج، والتدريب، والتنبؤ.
  • أشهر المهام: التصنيف، والانحدار، والتجميع.
  • جودة البيانات تحدد جودة النموذج: بيانات سيئة تعطي نتائج سيئة.
  • Python هي اللغة الأساسية لهذا المجال.