عندما تبدأ في تعلم التعلم الآلي، فإن إحدى أولى الشوكات في الطريق هي: ما نوع التعلم الذي تقوم به؟ الإجابة تغير كل شيء — الخوارزميات المتاحة لك، والبيانات التي تحتاجها، وما يمكن أن تتوقع أن يفعله نموذجك.
الفئتان الأساسيتان هما التعلم الخاضع للإشراف والتعلم غير الخاضع للإشراف. إن فهم الفرق ليس أمرًا أكاديميًا فحسب، بل هو القرار الأول الذي ستتخذه عند التعامل مع أي مشكلة جديدة في تعلم الآلة.
الفرق الأساسي بين التعلم الخاضع للإشراف وغير الخاضع للإشراف هو ما إذا كانت بيانات التدريب الخاصة بك تتضمن تسميات.
البيانات المُصنَّفة تعني أن كل مثال في مجموعة البيانات الخاصة بك يأتي مع "الإجابة الصحيحة" - وهي النتيجة التي تريد أن يتنبأ بها النموذج أو يصنفها:
# Labelled dataset (supervised)
email_text | label
------------------------------------|-------
"Congratulations! You've won £1000" | spam
"Meeting rescheduled to Thursday" | not_spam
"URGENT: Your account is suspended" | spam
البيانات غير المُصنَّفة تعني أن لديك المدخلات ولكن لا توجد إجابات محددة مسبقًا - فقط الملاحظات الأولية:
# Unlabelled dataset (unsupervised)
customer_id | age | annual_spend | frequency | location
------------|-----|--------------|-----------|----------
C001 | 34 | £2,400 | 12/year | London
C002 | 52 | £18,000 | 52/year | Manchester
C003 | 28 | £650 | 3/year | London
إن إنتاج البيانات المصنفة أمر مكلف ويستغرق وقتًا طويلاً، إذ يتطلب من البشر إضافة تعليقات توضيحية للأمثلة يدويًا. البيانات غير المصنفة وفيرة (معظم البيانات في العالم ليس لها تسميات). يشكل هذا القيد العملي النهج الممكن لمشكلة معينة.
في التعلم الخاضع للإشراف، يتعلم النموذج رسم الخرائط من المدخلات إلى المخرجات من خلال دراسة الأمثلة المسماة. "المشرف" هو البيانات المصنفة نفسها - كل مثال تدريبي يخبر النموذج بالمخرج الصحيح الذي يجب أن يكون.
عندما يكون الإخراج فئة منفصلة، فهذه مشكلة تصنيف.
أمثلة:
تسجيل الدخول للانضمام إلى النقاش
الخوارزميات الشائعة:
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
classifier = RandomForestClassifier(n_estimators=100)
classifier.fit(X_train, y_train)
accuracy = classifier.score(X_test, y_test)
print(f"Test accuracy: {accuracy:.2%}")
عندما يكون الناتج رقمًا مستمرًا، فهذه مشكلة انحدار.
أمثلة:
الخوارزميات الشائعة:
from sklearn.ensemble import GradientBoostingRegressor
model = GradientBoostingRegressor(n_estimators=200, learning_rate=0.1)
model.fit(X_train, y_train)
predictions = model.predict(X_test)
# predictions = [245000, 182000, 412000, ...] (house prices in £)
في التعلم غير الخاضع للإشراف، يستكشف النموذج بنية البيانات بدون أي تسميات. بدلاً من تعلم التعيين لمخرجات معروفة، فإنه يكتشف الأنماط أو المجموعات أو التمثيلات المخفية من تلقاء نفسه.
تقوم الخوارزميات العنقودية بتجميع نقاط البيانات المتشابهة معًا دون أن يتم إخبارها بما يجب أن تكون عليه المجموعات.
أمثلة:
الخوارزميات الشائعة:
from sklearn.cluster import KMeans
# We don't know how many customer segments exist — let's try 4
kmeans = KMeans(n_clusters=4, random_state=42)
kmeans.fit(customer_data_scaled)
# Each customer now has a cluster label (0, 1, 2, or 3)
df['segment'] = kmeans.labels_
# Analyse what each segment looks like
print(df.groupby('segment')[['age', 'annual_spend', 'frequency']].mean())
ضغط البيانات عالية الأبعاد إلى أبعاد أقل مع الحفاظ على أكبر قدر ممكن من البنية. يستخدم للتصور والمعالجة المسبقة وإزالة المعلومات الزائدة عن الحاجة.
الخوارزميات الشائعة:
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
# Reduce 50-dimensional data to 2D for visualisation
pca = PCA(n_components=2)
X_2d = pca.fit_transform(X_scaled)
plt.scatter(X_2d[:, 0], X_2d[:, 1], c=cluster_labels, cmap='tab10')
plt.title('Customer segments visualised in 2D')
plt.show()
يعد التمييز تحت الإشراف/غير الخاضع للإشراف أمرًا أساسيًا، ولكن مشهد تعلم الآلة أكثر ثراءً من هاتين الفئتين فقط.
يستخدم كمية صغيرة من البيانات المصنفة مع كمية كبيرة من البيانات غير المصنفة. هذا عملي للغاية لأن وضع العلامات مكلف.
مثال: لديك 1000 فحص طبي مصنف و100000 فحص طبي غير مصنف. يتيح لك التعلم شبه الخاضع للإشراف الاستفادة من البيانات غير المُصنفة لتحسين الأداء بما يتجاوز ما يمكن أن تحققه الـ 1000 تصنيف وحدها.
حالة خاصة حيث يتم إنشاء التصنيفات تلقائيًا من البيانات نفسها. هذه هي الطريقة التي يتم بها تدريب نماذج اللغات الكبيرة الحديثة مسبقًا.
مثال: خذ جملة، وقم بإخفاء بعض الكلمات، وقم بتدريب النموذج على التنبؤ بالكلمات المفقودة. "التسميات" (الكلمات الصحيحة) مجانية، فهي تأتي مباشرة من النص نفسه. هذه هي الطريقة التي تم بها تدريب بيرت.
Input: "The cat sat on the [MASK]."
Target: "mat"
لقد كان التعلم الخاضع للإشراف الذاتي بمثابة تحويل لأنه يسمح بالتدريب على البيانات على نطاق الإنترنت دون الحاجة إلى شرح بشري.
يتعلم الوكيل من خلال اتخاذ الإجراءات في البيئة وتلقي المكافآت أو العقوبات. لا توجد تسميات - فقط إشارات ردود الفعل من النتائج.
أمثلة: لعب الشطرنج، وتدريب الروبوت على المشي، وتحسين نظام التبريد في مركز البيانات. ونحن نغطي هذا بعمق في الدرس الخاص به.
إليك إطار القرار العملي:
Do you have labelled data?
├── YES → Supervised Learning
│ ├── Output is a category? → Classification
│ │ (spam/not spam, dog/cat, fraud/legit)
│ └── Output is a number? → Regression
│ (price, temperature, sales volume)
└── NO → Unsupervised Learning
├── Want to find groups? → Clustering
│ (customer segments, document topics)
├── Want to compress data? → Dimensionality Reduction
│ (visualisation, pre-processing)
└── Want to detect anomalies? → Anomaly Detection
(fraud, equipment failure)
Partially labelled? → Semi-Supervised Learning
Learning from interaction? → Reinforcement Learning
لديك 50000 مراجعة للمنتج بدون تصنيفات نجوم أو تصنيفات مشاعر. تريد تجميعها تلقائيًا حسب الموضوع. ما هو أسلوب التعلم الذي يجب عليك استخدامه؟