به منظور پرداختن overfitting مدل یادگیری ماشین ، ممکن است به گزینههای زیر فکر کند:
الف) دریافت دادههای آموزشی بیشتر،
ب) کاهش تعداد ویژگیها،
ج) منظمسازی
کاهش تعداد ویژگیها در صورت عدم وجود دادههای آموزش کافی ممکن است گزینه خوبی باشد اما در عین حال منجر به از دست دادن اطلاعاتی خواهد شد که میتواند برای مدل مهم باشد. البته وسیلهای برای اندازهگیری اهمیت ویژگی وجود دارد که در یک وبلاگ در مورد آن بحث کردهام که هدف این پست نیست.
هنگامی که ما یک ویژگی را از بین میبریم[1]، از نظر عددی معادل آن است که پارامتر / وزن مربوطه برابر با "صفر" باشد. این میتواند خیلی سختگیرانه باشد زیرا ما فقط اطلاعات کمی را از این ویژگی دور میکنیم. اگر به جای حذف کامل یک ویژگی، ما به دنبال کاهش ارزش / پارامتر مربوط به وزن / پارامتر هستیم. این همان کاری است که منظمسازی انجام میدهد.
منظمسازی به شما امکان میدهد همه ویژگیها را حفظ کنید، اما مانع از تأثیرگذاری بیش از حد زیاد ویژگیها میشود که گاهی اوقات باعث بیش از حد برازش میشود.
بحث بالا در مورد معرفی یک "جریمه" روی پارامترها برای مسائل رگرسیون معتبر است. در رگرسیون کمند و رگرسیون ریج، ما با قرار دادن «محدودیتهایی» روی پارامترها با وارد کردن یک عامل جریمه در طول کمینهسازی تابع هزینه میانگین مربعات خطا، منظمسازی را انجام میدهیم. ناحیه محدودیت یک الماس در کمند و یک دایره در رگرسیون ریج است (تصویر زیر را ببینید)
موارد فوق برای مدلهای رگرسیونی است
در صورت تصمیم گیری، منظمسازی درختان از طریق هرس درختان (کاهش عمق درخت) است، زیرا عمق درختان بیشتر مستعد تر شدن مدل و یادگیری بیش از حد دادههای آموزشی و عملکرد ضعیف در دادههای نادیده میشود.
در مورد شبکههای عصبی، منظمسازی با استفاده از حذفهایی که نورونها را غیرفعال میکند، خوب است
2. منظمسازی: تابع هزینه برای مسسائل رگرسیون
اجازه دهید اکنون به جنبه تابع هزینه برویم و ببینیم که چگونه عبارت منظم سازی به تابع هزینه وارد می شود.
با در نظر گرفتن تابع هزینه میانگین مربعات خطا و یادآوری مجذوب بودن تابع هزینه بین مقدار واقعی و متغیر پیشبینی شده و سعی میکنیم این تفاوت را به حداقل برسانیم.
اکنون با فرض، ما عبارت منظمسازی را در اینجا اضافه میکنیم - به طور شهودی میتوانیم احساس کنیم که عبارت منظمسازی شامل وزن/پارامتر خواهد بود و میخواهیم مقدار وزن را پایین بیاوریم (به حداقل برسانیم) تا تأثیر بیشبرازش را کاهش دهیم. بنابراین، λ*w^2 را به عنوان دومین عبارت کمینهسازی معرفی می کنیم.
λ در اینجا یک فراپارامتر درست مانند نرخ یادگیری است که باید آن را انتخاب کنیم. این λ را می توان به عنوان یک جریمه برای وزنه هایی در نظر گرفت که سعی در کاهش اثر آنها برای کاهش واریانس دارند.
در مورد انتخاب λ در پست بعدی صحبت خواهم کرد. در این مرحله می توان تصور کرد که اگر λ 0 باشد، واضح است که هیچ نظمی وجود ندارد و از این رو ما بیش از حد برازش می کنیم. در حدی دیگر اگر λ بسیار بزرگ باشد مثلاً 10^7، پس از کمینهسازی، w ناچیز به دست میآوریم، بنابراین در نهایت فقط عبارت بایاس باقی مانده و بنابراین مدل بسیار کم تناسب خواهیم داشت.
بنابراین باید بین دو حد λ یک مبادله وجود داشته باشد. به طور خلاصه، 2 عبارت در مسئله کمینه سازی دخیل هستند:
الف) جمله اول که اختلاف مجذور بین متغیر واقعی و پیش بینی شده را به حداقل میرساند و بنابراین داده های آموزشی را یاد می گیرد.
ب) عبارت دوم که پارامترها (وزن ها) را کوچک می کند تا اثر آنها را به جای حذف کامل ویژگی کاهش دهد. این اصطلاح منظم سازی است
3. مقدار هایپرپارامتر λ برای منظم سازی
اولین چیزی که باید در مورد چیزی که به آن مسئله سوگیری بالا و واریانس بالا گفته میشود درک کرد و این را میتوان از آموزش و خطای اعتبار متقاطع توضیح داد.
در صورت عدم تناسب دادهها - مسئله بایاس بالا
J train >>0 and
J cross validation >>0
در صورت اضافه برازش داده ها - مسئله واریانس بالا
J train <<0 and
J cross validation >>0
در اینجا J train و J cross به ترتیب خطاهای آموزش و اعتبارسنجی متقاطع هستند
همانطور که در پست های بالا اشاره کردم، λ برای یک underfit بسیار بزرگ است و برای overfitting به 0 نزدیک می شود.
بنابراین ما به مقدار متوسط لامبدا نیاز داریم. روش انتخاب لامبدا شبیه ارزیابی (مثلاً) درجه چند جمله ای در حین تطبیق با مسئله رگرسیون است.
ما مقادیر مختلف λ را امتحان می کنیم.
لامبدا = 0،
لامبدا = 0.01،
لامبدا = 0.02،
لامبدا = 0.04 (دوبرابر کردن آن)
لامبدا = 0.08 (دوباره)
لامبدا = 0.16
لامبدا = 10
و هر بار تابع هزینه را به حداقل برسانید و w و b را بدست آورید و خطای اعتبارسنجی متقاطع را محاسبه کنید. و در نهایت از c مقادیر پارامترها با حداقل خطای اعتبار متقاطع استفاده می کنیم و عملکرد را با این پارامترها در مجموعه تست ارزیابی می کنیم.
نمودار بین λ و خطای آموزشی J قطار و خطای اعتبارسنجی متقاطع J cross باید تقریباً مانند شکل زیر باشد اگر کارها در جهت درست پیش میروند.
مقدار مناسب λ مقداری است که خطای اعتبارسنجی متقاطع برای آن حداقل است و این را می توان از شکل زیر مشاهده کرد:
4. منظم سازی با استفاده از ترک تحصیل و توقف زودهنگام
قطره ها:
در مورد شبکه های عصبی، منظم سازی معمولاً با استفاده از Dropouts انجام می شود. در Dropouts، در حین آموزش، اساساً به طور تصادفی تعدادی زیرمجموعه از نورونها را در شبکه عصبی انتخاب میکنیم و با احتمال کمی این نورونها را هرس میکنیم. ما به طور تصادفی این نورون ها را در تکرارهای مختلف در طول تمرین روشن و خاموش می کنیم.
این اساساً شبکه عصبی را مجبور میکند تا مجموعهای از مدلهای مختلف را بیاموزد. می توان آن را به این دلیل تفسیر کرد زیرا در هر تکرار شبکه در داخل در معرض مدل های متفاوتی نسبت به مدلی که در تکرارهای قبلی داشت قرار می گیرد زیرا مجموعه متفاوتی از نورون ها روشن و خاموش می شوند. این یک تکنیک بسیار قدرتمند است و به تعمیم بهتر کمک می کند.
شکل: هرس نورون ها در طول یک تکرار آموزش شبکه عصبی
توقف زودهنگام:
تکنیک منظم سازی بعدی اغلب برای شبکه های عصبی در "توقف زودهنگام" انجام می شود. در اینجا دانشمند داده معمولاً عملکرد شبکه را روی داده های آموزشی و آزمایشی ترسیم می کند. همانطور که شبکه آموزش داده می شود، فرد متوجه کاهش تلفات آموزش و مجموعه تست می شود، اما به مرحله ای می رسد که خطای آموزش همچنان کاهش می یابد اما خطای مجموعه تست شروع به افزایش می کند. اساساً در این نقطه است که مدل شروع به بیش از حد مناسب شدن می کند. و در این نقطه است که میخواهید فرآیند آموزش را متوقف کنید، زیرا در غیر این صورت مدل دادههای آموزشی را بسیار دقیق یاد میگیرد اما روی دادههای دیده نشده به خوبی عمل نمیکند (بیش از حد برازش).
شکل: توقف زودهنگام آموزش شبکه عصبی