
تسلط بر هنر تنظیم فراپارامتر: نکات، ترفندها و ابزارها
تصویر توسط آنتونی در Pexels
مدلهای یادگیری ماشینی (ML) حاوی تنظیمات قابل تنظیم متعددی به نام هایپرپارامتر هستند که نحوه یادگیری آنها از دادهها را کنترل میکنند. برخلاف پارامترهای مدل که به طور خودکار در طول آموزش یاد میشوند، ابرپارامترها باید به دقت توسط توسعهدهندگان پیکربندی شوند تا عملکرد مدل را بهینه کنند. این تنظیمات از نرخ یادگیری و معماری شبکه در شبکههای عصبی تا عمق درختان در جنگلهای تصمیمگیری را شامل میشود که اساساً نحوه پردازش اطلاعات را مدلها شکل میدهد.
این مقاله روشهای ضروری و شیوههای اثباتشده برای تنظیم این پیکربندیهای حیاتی برای دستیابی به عملکرد بهینه مدل را بررسی میکند.
هایپرپارامترها چیست؟
در ML، هایپرپارامترها مانند دکمهها و چرخدندههای یک سیستم رادیویی یا هر ماشین دیگری هستند: این چرخدندهها را میتوان به روشهای مختلف تنظیم کرد و بر نحوه عملکرد دستگاه تأثیر گذاشت. به طور مشابه، فراپارامترهای مدل ML تعیین میکنند که مدل چگونه دادهها را در طول آموزش و استنتاج یاد میگیرد و پردازش میکند و بر عملکرد، دقت و سرعت آن در انجام بهینه کار مورد نظر تأثیر میگذارد.
نکته مهم، همانطور که در بالا گفته شد، پارامترها و هایپرپارامترها یکسان نیستند. پارامترهای مدل ML – که وزن نیز نامیده می شود – توسط مدل در طول تمرین یاد گرفته و تنظیم می شود. این مورد ضرایب در مدل های رگرسیون و وزن اتصال در شبکه های عصبی است. در مقابل، هایپرپارامترها توسط مدل یاد نمیگیرند، اما قبل از آموزش برای کنترل فرآیند یادگیری، توسط توسعهدهنده ML تنظیم میشوند. به عنوان مثال، چندین درخت تصمیم که تحت تنظیمات فراپارامترهای مختلف برای حداکثر عمق، معیار تقسیم و غیره آموزش داده شدهاند، ممکن است مدلهایی را ارائه دهند که ظاهر و رفتار متفاوتی دارند، حتی زمانی که همه آنها بر روی مجموعه دادههای یکسان آموزش دیده باشند.


تفاوت بین پارامترها و فراپارامترها در مدل های ML
تصویر توسط نویسنده
تنظیم فراپارامترها: نکات، ترفندها و ابزارها
به عنوان یک قاعده کلی، هرچه یک مدل ML پیچیدهتر باشد، دامنه فراپارامترهایی که باید برای بهینهسازی رفتار آن تنظیم شوند، بیشتر میشود. جای تعجب نیست که شبکههای عصبی عمیق در میان انواع مدلهایی هستند که متفاوتترین هایپرپارامترها را دارند – از نرخ یادگیری گرفته تا تعداد و نوع لایهها تا اندازه دستهای، بدون ذکر توابع فعالسازی، که به شدت بر غیرخطی بودن و توانایی یادگیری پیچیده اما مفید تأثیر میگذارند. الگوهای از داده ها
بنابراین، این سوال پیش می آید: چگونه بهترین تنظیمات را برای فراپارامترهای مدل خود پیدا کنیم، در حالی که به نظر می رسد سوزنی در انبار کاه پیدا کنیم؟
یافتن بهترین «نسخه» مدل ما مستلزم ارزیابی عملکرد آن بر اساس معیارها است، بنابراین به عنوان بخشی از فرآیند چرخهای آموزش، ارزیابی و اعتبارسنجی مدل، همانطور که در زیر نشان داده شده است، انجام میشود.


در چرخه عمر سیستم های ML، تنظیم فراپارامتر در طول آموزش و ارزیابی مدل صورت می گیرد
تصویر توسط نویسنده
البته، هنگامی که چندین فراپارامتر برای بازی وجود دارد، و هر کدام ممکن است طیفی از مقادیر ممکن را داشته باشند، تعداد ترکیبهای ممکن – موقعیتهایی که در آن همه دکمهها در سیستم رادیویی قابل تنظیم هستند – میتواند به سرعت بسیار زیاد شود. آموزش هر ترکیب ممکن ممکن است از نظر هزینه و زمان سرمایه گذاری شده غیرقابل تحمل باشد، بنابراین راه حل های بهتری مورد نیاز است. به عبارت فنی تر، فضای جستجو بسیار زیاد می شود. یک ابزار رایج برای انجام کارآمدتر این کار بهینه سازی دلهره آور، استفاده از آن است فرآیندهای جستجو. دو تکنیک رایج جستجو برای تنظیم هایپرپارامتر عبارتند از:
- جستجوی شبکه ای: این روش به طور کامل از طریق یک زیرمجموعه مشخص شده دستی از فضای فراپارامتر، با آزمایش تمام ترکیبات ممکن در آن زیر مجموعه جستجو می کند. بار امتحان کردن مناطق مختلف فضای جستجو را کاهش می دهد، اما ممکن است در هنگام برخورد با بسیاری از پارامترها و مقادیر در هر پارامتر، همچنان از نظر محاسباتی گران شود. برای مثال یک مدل شبکه عصبی را فرض کنید که در آن دو ابرپارامتر را تنظیم می کنیم: میزان یادگیری، با ارزش ها، 0.01، 0.1 و 1; و اندازه دسته، با مقادیر 16، 32، 64 و 128. جستجوی شبکه ای ارزیابی می کند 3 × 4 = 12 در مجموع، 12 نسخه از مدل را آموزش داده و آنها را برای شناسایی بهترین عملکرد ارزیابی می کند.
- جستجوی تصادفی: جستجوی تصادفی با نمونه برداری از ترکیبات تصادفی فراپارامترها فرآیند را ساده می کند. این سریعتر از جستجوی شبکه ای است و اغلب راه حل های خوبی با هزینه محاسباتی کمتر پیدا می کند، به ویژه زمانی که برخی از فراپارامترها در عملکرد مدل تاثیر بیشتری نسبت به سایرین دارند.
علاوه بر این تکنیک های جستجو، دیگر نکات و ترفندها برای بهبود بیشتر فرآیند تنظیم هایپرپارامترها عبارتند از:
- اعتبارسنجی متقابل برای ارزیابی مدل قوی تر: اعتبارسنجی متقابل یک رویکرد ارزیابی رایج برای اطمینان از تعمیم مدل شما به داده های آینده یا غیرقابل مشاهده است و معیار قابل اعتمادتری از عملکرد ارائه می دهد. ترکیب روشهای جستجو با اعتبارسنجی متقابل یک رویکرد بسیار متداول است، حتی اگر به معنای دورههای آموزشی بیشتر و صرف زمان بیشتر در فرآیند کلی باشد.
- به تدریج جستجو را محدود کنید: با دامنه وسیع یا درشت مقادیر برای هر هایپرپارامتر شروع کنید، سپس بر اساس نتایج اولیه برای تجزیه و تحلیل بیشتر نواحی اطراف امیدوارکنندهترین ترکیبها، آن را محدود کنید.
- از توقف زودهنگام استفاده کنید: در فرآیندهای آموزشی بسیار وقت گیر مانند آنهایی که در شبکه های عصبی عمیق وجود دارد، توقف زودهنگام به توقف فرآیند کمک می کند، در حالی که عملکرد به سختی بهبود می یابد. این یک راه حل موثر در برابر مشکلات بیش از حد برازش است. آستانه توقف زودهنگام را می توان به عنوان نوع خاصی از فراپارامتر در نظر گرفت که می تواند نیز تنظیم شود.
- دانش دامنه برای نجات: از دانش دامنه استفاده کنید تا مرزها یا زیرمجموعه های واقعی را برای فراپارامترهای خود تنظیم کنید، و شما را به معقول ترین محدوده هایی که از ابتدا امتحان کنید هدایت می کند و فرآیند جستجو را چابک تر می کند.
- راه حل های خودکار: رویکردهای پیشرفتهای مانند بهینهسازی بیزی برای بهینهسازی هوشمندانه فرآیند تنظیم با متعادل کردن اکتشاف و بهرهبرداری، مشابه برخی از اصول یادگیری تقویتی مانند الگوریتمهای راهزن وجود دارد.
نمونه های فراپارامتر
بیایید به چند پارامتر کلیدی Random Forest با مثال ها و توضیحات عملی نگاهی بیندازیم:
⚙️ n_estimators: [100, 500, 1000]
- چه: تعداد درختان در جنگل
- مثال: با 10000 نمونه، شروع از 500 درخت اغلب به خوبی جواب می دهد
- چرا: درختان بیشتر = تعمیم بهتر اما بازدهی کاهشی. برای پیدا کردن نقطه شیرین، خطای OOB را کنترل کنید
⚙️ max_depth: [10, 20, 30, None]
- چه: حداکثر عمق هر درخت
- مثال: برای داده های جدولی با 20 ویژگی، با شروع کنید
max_depth=20
- چرا: درختان عمیقتر الگوهای پیچیدهتری را میگیرند، اما خطر بیش از حد برازش را دارند.
None
اجازه می دهد تا درختان رشد کنند تا زمانی که برگ ها پاک شوند
⚙️ min_samples_split: [2, 5, 10]
- چه چیزی: حداقل نمونه مورد نیاز برای تقسیم گره
- مثال: با داده های پر سر و صدا،
min_samples_split=10
می تواند به کاهش بیش از حد مناسب کمک کند - چرا: مقادیر بالاتر = تقسیم محافظه کارانه تر، تعمیم بهتر در داده های پر سر و صدا
⚙️ min_samples_leaf: [1, 2, 4]
- چه: حداقل نمونه های مورد نیاز در گره های برگ
- مثال: برای طبقه بندی نامتعادل،
min_samples_leaf=4
پیش بینی های معنی دار برگ را تضمین می کند - چرا: مقادیر بالاتر از گره های برگ بسیار کوچک که ممکن است نویز را نشان دهند، جلوگیری می کند
⚙️ bootstrap: [True, False]
- چه: آیا هنگام ساخت درخت از بوت استرپینگ استفاده شود یا خیر
- مثال: نادرست برای مجموعه داده های کوچک (چرا:
True
تخمین خطای خارج از کیسه را فعال می کند اما فقط از 63% نمونه ها در هر درخت استفاده می کند.
بسته بندی
با اجرای استراتژی های بهینه سازی سیستماتیک فراپارامتر، توسعه دهندگان می توانند زمان توسعه مدل را به میزان قابل توجهی کاهش دهند و در عین حال عملکرد را بهبود بخشند. ترکیبی از تکنیکهای جستجوی خودکار با تخصص دامنه، تیمها را قادر میسازد تا به طور مؤثر در فضاهای پارامترهای وسیع پیمایش کنند و پیکربندیهای بهینه را شناسایی کنند. همانطور که سیستمهای ML پیچیدهتر میشوند، تسلط بر این رویکردهای تنظیم برای ساختن مدلهای قوی و کارآمدی که تأثیری در دنیای واقعی ایجاد میکنند، ارزش فزایندهای پیدا میکند، مهم نیست که کار چقدر پیچیده به نظر میرسد.