ML Learning Hub
التقييممبتدئ

مقايضة التحيز والتباين وتحليل الأخطاء

كل خطأ في النموذج إما افتراض خاطئ أو حساسية للضوضاء — تشخيص أيهما يغير كل شيء

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

25 min
5 مخططات
6 المفاهيم المغطاة

المتطلبات الأساسية

Model Evaluation

المفاهيم المغطاة

BiasVarianceUnderfittingOverfittingLearning CurvesModel Complexity

الصيغ الرئيسية

تحليل الخطأ

الخطأ الكلي المتوقع لا يمكن أن ينخفض تحت الضوضاء التي لا يمكن تقليلها σ² — سقف الأداء

التحيز

مدى بُعد متوسط التنبؤ عن الحقيقة — افتراض هيكلي خاطئ في النموذج

التباين

مقدار تذبذب التنبؤات عبر مجموعات تدريب مختلفة — حساسية النموذج لضوضاء البيانات

محاكاة تفاعلية

Loading visualization…

هندسة النموذج

Loading visualization…
🎯

تشخيص ما يعيب نموذجك

motivation

عندما يؤدي نموذج بشكل سيئ، هناك فقط سببان أساسيان: يضع افتراضات هيكلية خاطئة (تحيز/تقصير في الملاءمة) أو يكون حساساً جداً لبيانات التدريب المحددة (تباين/إفراط في الملاءمة). هذان لهما حلول معاكسة — المزيد من البيانات يساعد التباين لكن ليس التحيز؛ المزيد من السعة يساعد التحيز لكن ليس التباين.

💡

تشبيه لوحة الدارت

intuition

تخيل رمي 100 سهم على هدف (الدالة الحقيقية). تحيز عالٍ = السهام تتجمع بعيداً عن المركز (نموذج خاطئ). تباين عالٍ = السهام تتشتت (تنبؤات غير متسقة). تحيز منخفض + تباين منخفض = السهام تتجمع على المركز. كثير الحد 1 تحيز عالٍ. كثير الحد 20 تباين عالٍ.

الخطأ الذي لا يمكن تقليله (σ²) هو الضوضاء المتأصلة في البيانات — خطأ القياس، المتغيرات غير المرصودة. لا يمكن لأي نموذج التغلب عليه.

التحليل الرياضي

math

خطأ الاختبار المتوقع لأي مُقدِّر يتحلل إلى ثلاثة مصطلحات جمعية. الخطأ الذي لا يمكن تقليله σ² خاصية لعملية توليد البيانات، ليس النموذج. مع زيادة التعقيد، ينخفض التحيز لكن يزداد التباين. التنظيم يضيف صراحةً مصطلح تحيز لتقليل التباين.

تحليل التحيز-التباين-الضوضاء
🔬

منحنيات التعلم: قراءة التشخيص

deepdive

ارسم خطأ التدريب وخطأ التحقق مقابل حجم مجموعة التدريب. سمة التحيز العالي: كلا المنحنيين يستقران عند خطأ مرتفع — المزيد من البيانات لن يُفيد. سمة التباين العالي: فجوة كبيرة بين خطأ التدريب والتحقق — المزيد من البيانات سيُفيد.

⚙️

بروتوكول تحليل الأخطاء المنهجي

algorithm
1

إنشاء خط أساس: نموذج ساذج (الفئة الغالبة، التنبؤ بالمتوسط) يحدد الحد الأدنى

2

الأداء على المستوى البشري: الحد الأعلى للدقة القابلة للتحقيق (أرضية الخطأ الذي لا يمكن تقليله)

3

التحيز القابل للتجنب = خطأ_التدريب - خطأ_بشري: إصلاح بنموذج أكبر، مزيد من الميزات

4

التباين = خطأ_التحقق - خطأ_التدريب: إصلاح بمزيد من البيانات، dropout، التنظيم

5

عدم تطابق البيانات = توزيع_التحقق ≠ توزيع_التدريب: إصلاح بالتكيف مع النطاق

6

تحليل الأخطاء: فحص 100 خطأ تحقق يدوياً، تصنيف حسب الفئة → إصلاح أكبر فئة

</>

تشخيص منحنى التعلم

code
python35 lines
from sklearn.model_selection import learning_curve, train_test_split
from sklearn.datasets import make_classification
from sklearn.ensemble import GradientBoostingClassifier
import matplotlib.pyplot as plt
import numpy as np

class="tok-comment"># ── Sample data + model ────────────────────────────────────────────────
X, y = make_classification(n_samples=class="tok-num">800, n_features=class="tok-num">10, random_state=class="tok-num">42)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=class="tok-num">0.2, random_state=class="tok-num">42)
model = GradientBoostingClassifier(n_estimators=class="tok-num">100, random_state=class="tok-num">42)

train_sizes, train_scores, val_scores = learning_curve(
    estimator=model,
    X=X_train, y=y_train,
    train_sizes=np.linspace(class="tok-num">0.1, class="tok-num">1.0, class="tok-num">10),
    cv=class="tok-num">5, scoring=class="tok-str">'roc_auc',
    n_jobs=-class="tok-num">1, shuffle=True
)

train_mean = train_scores.mean(axis=class="tok-num">1)
train_std = train_scores.std(axis=class="tok-num">1)
val_mean = val_scores.mean(axis=class="tok-num">1)
val_std = val_scores.std(axis=class="tok-num">1)

class="tok-comment"># Diagnosis:
gap = train_mean[-class="tok-num">1] - val_mean[-class="tok-num">1]
level = val_mean[-class="tok-num">1]

if level < class="tok-num">0.7:
    print(class="tok-str">"HIGH BIAS: increase model complexity or add features")
elif gap > class="tok-num">0.1:
    print(class="tok-str">"HIGH VARIANCE: add more data, regularization, or reduce complexity")
else:
    print(class="tok-str">"Good generalization — optimize hyperparameters")

?اختبار المعرفة

يتم حفظ التقدم في متصفحك — لا حاجة لحساب.

تحتاج مهندس ذكاء اصطناعي أو عالم بيانات؟

أبني نماذج تعلم آلي مخصصة، ووكلاء ذكاء اصطناعي، ورؤية حاسوب، وأتمتة — من الفكرة إلى الإنتاج.