؟Regularizationمن الـ Biasلماذا نستثني الـ

ولماذا نحتاجه في الموديل

الـregularization هو أحد الحلول الشائعة لمشكلة الـoverfitting، بيتم عن طريق إضافة penalty مباشرة على الـparameters في الـcost function عشان أقلل الـmodel complexity، لكن لو لاحظت هتلاقي إن الـbias مش موجود في الـpenalty دى على الرغم من إنه أحد الـparameters الى الموديل بيتعلمها، ايه السبب؟

Effect of adding bias on a linear regression model
Fig 1: Linear regression with bias term (right) vs without bias term (left).
Source: Click here

خلينا نبدأ من ورا شوية: إحنا ليه بنحتاج bias term ؟

لإن الـbias بيمنح الموديل حرية أكبر في الحركة والتعلم، لاحظ Figure 1: في الحالتين استخدمت linear regression ، لكن على اليمين وصلت لموديل جيد جداً والـerror فيه قليل، أما على اليسار أستخدمت نفس الموديل لكن بدون bias وكانت النتيجة بعيدة تماماً عن الـdata، لإن لما بحط الـbias بصفر كده أنا أجبرت الموديل يمر بنقطة الأصل، وبالتالي ربطته بحالة واحدة بس في الغالب هتكون غير مناسبة للداتا الى معايا.

الملاحظة التانية هى إن وجود الـbias أو عدمه مغيرش في الـmodel complexity على الإطلاق، في الحالتين الخط المستقيم متغيرش، الإختلاف الوحيد هو مكانه، ده معناه إن الـbias مش بيساهم في زيادة تعقيد الموديل، لكن بيمنحه حرية بيحتاجها في أوقات كتير، والميزة كمان إن ممكن الموديل بنفسه يتعلم إن الـbias صفر لو مش هيحتاجه.

طيب إيه الى هيحصل لو عملت regularization للـbias؟

الـregularization بيجبر كل الـparameters إنها تاخد قيم صغيرة (في حالة الـL1 regularization ممكن يخليها بصفر كمان) بهدف إنه يقلل الـpenalty الإضافية ويوصل لـminimum cost، بالتالي لو ضفت الـbias معاهم هيكون مضطر يحطله قيم صغيرة جداً، وده عكس الى انا كنت عايزه لما ضفت الـbias: أنا كده سحبت منه الحرية الى كنت عايز اديهاله لما ضفت الـbias من البداية! والنتيجة إن في الغالب هتلاقي underfitting كبير في الموديل (لاحظ Figure 2).

Regularized biad vs unregularized bias
Fig 2: linear regression model with regularized bias vs with unregularized bias.
Source: Click here




لمزيد من المعلومات: