تنظیم ابرپارامتر چیست؟
وقتی مدلهای یادگیری ماشین را آموزش میدهید، هر مجموعه داده و هر مدل به مجموعهای متفاوت از ابرپارامترها نیاز دارد که نوعی متغیر هستند. تنها راه تعیین این مقادیر، انجام آزمایشهای متعدد است؛ به این صورت که یک مجموعه اَبَرتنظیم انتخاب کرده و آن را روی مدل خود اجرا میکنید. به این فرایند، تنظیم ابرپارامترها گفته میشود. در اصل، شما مدل خود را بهصورت متوالی با مجموعههای مختلفی از ابرپارامترها آموزش میدهید. این فرایند میتواند بهصورت دستی انجام شود یا میتوانید از چندین روش خودکار موجود برای تنظیم ابرپارامترها استفاده کنید.
در هر روشی که استفاده کنید، باید نتایج آزمایشهای خود را ثبت و پیگیری کنید. لازم است نوعی تحلیل آماری، مانند تابع هزینه (Loss Function)، را به کار ببرید تا مشخص شود کدام مجموعه از ابرپارامترها بهترین نتیجه را میدهد. تنظیم ابرپارامترها فرایندی مهم و محاسباتی سنگین است.
ابرپارامترها چه هستند؟
ابرپارامترها متغیرهای پیکربندی خارجی هستند که دانشمندان داده برای مدیریت آموزش مدلهای یادگیری ماشین استفاده میکنند. گاهی به آنها ابرپارامترها مدل نیز گفته میشود و قبل از آموزش مدل، بهصورت دستی تنظیم میشوند. آنها با «پارامترها» متفاوتاند؛ پارامترها مقادیر داخلی هستند که بهطور خودکار در طی فرایند یادگیری بهدست میآیند و توسط دانشمند داده تعیین نمیشوند.
نمونههایی از ابرپارامترها شامل تعداد گرهها و لایهها در یک شبکه عصبی و تعداد شاخهها در یک درخت تصمیم هستند. ابرپارامترها ویژگیهای کلیدی مانند معماری مدل، نرخ یادگیری و پیچیدگی مدل را تعیین میکنند.
چگونه ابرپارامترها را شناسایی میکنید؟
انتخاب مجموعه مناسبی از ابرپارامترها از نظر عملکرد و دقت مدل مهم است. متأسفانه، هیچ قانون مشخصی در مورد اینکه کدام ابرپارامترها بهترین عملکرد را دارند یا مقادیر بهینه یا پیشفرض آنها وجود ندارد. شما باید آزمایش کنید تا مجموعه ابرپارامتر بهینه را پیدا کنید. این فعالیت به عنوان تنظیم ابرپارامتر یا بهینهسازی ابرپارامتر شناخته میشود.
چرا تنظیم ابرپارامتر مهم است؟
ابرپارامترها مستقیماً ساختار، عملکرد و کارایی مدل را کنترل میکنند. تنظیم ابرپارامتر به دانشمندان داده اجازه میدهد عملکرد مدل را برای نتایج بهینه تنظیم کنند. این فرآیند بخش اساسی یادگیری ماشین است و انتخاب مقادیر مناسب ابرپارامتر برای موفقیت بسیار مهم است.به عنوان مثال، فرض کنید از نرخ یادگیری مدل به عنوان یک ابرپارامتر استفاده میکنید. اگر مقدار خیلی زیاد باشد، مدل ممکن است خیلی سریع با نتایج زیربهینه همگرا شود. در حالی که اگر نرخ خیلی پایین باشد، آموزش زمان زیادی طول میکشد و نتایج ممکن است همگرا نشوند. انتخاب خوب و متعادل ابرپارامترها منجر به مدلهای دقیق و عملکرد عالی مدل میشود.
تنظیم ابرپارامتر چگونه کار میکند؟
همانطور که قبلاً گفته شد، تنظیم ابرپارامتر میتواند دستی یا خودکار باشد. در حالی که تنظیم دستی کند و خستهکننده است، یک مزیت آن این است که شما بهتر درک میکنید که وزنهای ابرپارامتر چگونه بر مدل تأثیر میگذارند. اما در بیشتر موارد، شما معمولاً از یکی از الگوریتمهای یادگیری ابرپارامتر شناخته شده استفاده میکنید.فرآیند تنظیم ابرپارامتر تکراری است و شما ترکیبات مختلفی از پارامترها و مقادیر را امتحان میکنید. شما معمولاً با تعریف یک متغیر هدف مانند دقت به عنوان معیار اصلی شروع میکنید و قصد دارید این متغیر را به حداکثر یا حداقل برسانید. استفاده از تکنیکهای اعتبارسنجی متقابل ایده خوبی است، بنابراین مدل شما بر روی یک بخش واحد از دادههای شما متمرکز نمیشود.
تکنیکهای تنظیم ابرپارامتر چه هستند؟
الگوریتمهای تنظیم ابرپارامتر متعددی وجود دارد، اگرچه رایجترین انواع آن بهینهسازی بیزی، جستجوی شبکهای و جستجوی تصادفی هستند.
بهینهسازی بیزی (Bayesian Optimization)
بهینهسازی بیزی روشی بر اساس قضیه بیز است که احتمال رخداد یک رویداد را با توجه به دانش موجود توصیف میکند. وقتی این روش در بهینهسازی ابرپارامترها به کار میرود، الگوریتم یک مدل احتمالی از مجموعهای از ابرپارامترها میسازد که یک معیار خاص را بهینه میکند. این روش از تحلیل رگرسیون برای انتخاب تکراری بهترین مجموعه ابرپارامترها استفاده میکند.
جستجوی شبکهای (Grid Search)
در جستجوی شبکهای، شما فهرستی از ابرپارامترها و یک معیار عملکرد تعیین میکنید و الگوریتم تمام ترکیبهای ممکن را بررسی میکند تا بهترین انتخاب را بیابد. این روش دقیق است اما بسیار زمانبر و پرهزینه از نظر محاسباتی، مخصوصاً وقتی تعداد ابرپارامترها زیاد باشد.
جستجوی تصادفی
اگرچه بر اساس اصول مشابه جستجوی شبکهای است، جستجوی تصادفی گروههای ابرپارامتر را به صورت تصادفی در هر تکرار انتخاب میکند. زمانی که تعداد نسبتاً کمی از ابرپارامترها عمدتاً نتیجه مدل را تعیین میکنند، خوب کار میکند.
نمونههایی از ابرپارامترها چه هستند؟
در حالی که برخی از ابرپارامترها رایج هستند، در عمل خواهید دید که الگوریتمها از مجموعههای خاصی از ابرپارامترها استفاده میکنند. به عنوان مثال، میتوانید مطالعه کنید که چگونه آمازون SageMaker از ابرپارامترهای طبقهبندی تصویر و چگونه SageMaker از ابرپارامترهای الگوریتم XGBoost استفاده میکند.
در اینجا چند نمونه از ابرپارامترهای رایج آورده شده است:
- نرخ یادگیری: نرخی است که الگوریتم تخمینها را بهروزرسانی میکند.
- کاهش نرخ یادگیری: کاهش تدریجی نرخ یادگیری در طول زمان برای سرعت بخشیدن به یادگیری است.
- مومنتوم: جهت گام بعدی نسبت به گام قبلی است.
- گرههای شبکه عصبی: به تعداد گرهها در هر لایه پنهان اشاره دارد.
- لایههای شبکه عصبی: به تعداد لایههای پنهان در یک شبکه عصبی اشاره دارد.
- اندازه مینیبچ: اندازه دستهای از دادههای آموزشی است.
- دورهها (Epochs): تعداد دفعاتی است که کل مجموعه داده آموزشی در طول آموزش به شبکه نشان داده میشود.
- اتا (Eta): کوچک کردن اندازه گام برای جلوگیری از برازش بیش از حد است.