ترويض التعقيد
الـ model بتاعك بيناسب بيانات التدريب بالظبط — بس بيقع مع البيانات الجديدة. ده الـ overfitting (الإفراط في التخصيص). والـ regularization (التنظيم) بيزوّد عقوبة عشان الـ weights تفضل صغيرة، وبيبدّل شوية دقة في التدريب بـ generalization أحسن بكتير.
فخ الـ overfitting
polynomial درجته عالية ممكن يعدّي على كل نقطة تدريب — training error صفر. بس بين النقط دي بيتهز بجنون، ويطلّع predictions فظيعة على البيانات الجديدة.
عاقب الـ weights الكبيرة
زوّد حد عقوبة على الـ cost function. دلوقتي الـ optimizer لازم يوازن بين إنه يناسب البيانات وإنه يخلّي الـ weights صغيرة. والـ parameter λ بيتحكم في التوازن.
الـ ridge regression
الـ L2 regularization بيزوّد مجموع مربعات الـ weights على التكلفة. ده الـ ridge regression (انحدار ريدج): بيقلّص كل الـ weights ناحية الصفر — بنعومة وبالتناسب — بس عمره ما بيوصّلها للصفر بالظبط.
حل الـ ridge
زي الـ linear regression العادي، الـ ridge ليه حل مقفول. الحد λI بيخلّي الـ matrix دايمًا ينفع تتعكس — حتى لو عدد الـ features أكتر من عدد الـ samples.
الـ lasso regression
الـ L1 regularization بيزوّد مجموع القيم المطلقة للـ weights. ده الـ lasso regression (انحدار لاسو)، وقوته الخارقة: بيزق الـ weights اللي مش مهمة للصفر بالظبط — feature selection أوتوماتيك.
الدايرة قصاد الماسة
منطقة قيد الـ L2 دايرة (ناعمة، من غير زوايا). ومنطقة قيد الـ L1 ماسة (زوايا حادة على المحاور). خطوط تساوي الـ loss بتخبط في زوايا الماسة — وهناك واحد من الـ weights بيبقى صفر بالظبط.
الـ elastic net
ليه تختار؟ الـ elastic net (الشبكة المرنة) بتجمع عقوبتي L1 وL2. بتعمل feature selection زي الـ lasso وفي نفس الوقت بتحافظ على استقرار الـ ridge لما الـ features تبقى مترابطة.
اختيار λ
صغيرة أوي ← overfitting. كبيرة أوي ← تبسيط زيادة. استخدم الـ cross-validation (التحقق المتقاطع): جرّب مدى من قيم λ، واختار اللي بتدّي أقل validation error.
الـ Bayesian prior
الـ regularization بيساوي إنك تحط اعتقاد مسبق على الـ weights. الـ L2 = Gaussian prior (الـ weights غالبًا قريبة من الصفر). والـ L1 = Laplace prior (الـ weights غالبًا صفر بالظبط). والبيانات بتحدّث الاعتقاد ده. وده الـ prior (التوزيع القبلي).
تستخدم إيه إمتى
ابدأ بسيط. ولو حصل overfitting، زوّد regularization:
- الـ ridge — features كتير، كلها ممكن تبقى مفيدة
- الـ lasso — شاكك إن features كتير مالهاش علاقة
- الـ elastic net — features مترابطة + محتاج تناثر
- دايمًا اعمل scaling للـ features قبل الـ regularization
اتعلّمت إيه
الـ regularization بيحارب الـ overfitting بمعاقبة الـ weights الكبيرة. الـ L2 (ridge) بيقلّص كل الـ weights. الـ L1 (lasso) بيصفّر اللي مش مهمة. والـ elastic net بتجمع الاتنين. وλ بتتحكم في القوة.