بهینه‌سازی ابرپارامترها

در یادگیری ماشین، **بهینه‌سازی ابرپارامترها** (به انگلیسی: Hyperparameter Optimization) یا میزان‌سازی ابرپارامتر‌ها (به انگلیسی: Hyperparameter Tuning)  مسئله‌ی یافتن یک مجموعه‌ٔ بهینه از ابرپارامتر‌ها برای یک الگوریتم یادگیری است. یک ابرپارامتر، پارامتری است که با استفاده از مقدار آن، فرایند یادگیری کنترل می‌شود. در مقابل آن، مقادیر سایر پارامترها (معمولاً وزن گره‌ها) از طریق آموزش بدست می‌آیند.

برای عمومی‌سازی و تعمیم از الگو داده‌های مختلف، مدل‌های یکسان یادگیری ماشین می‌توانند به اعمال انواع محدودیت‌ها، وزن‌ها و نرخ‌های یادگیری متفاوتی نیاز داشته باشند که آن‌ها را ابرپارامتر می‌نامیم. این ابرپارامتر‌ها باید به گونه‌ای تنظیم شوند تا مسئله‌ٔ یادگیری ماشین به صورت بهینه حل شود. مسئله‌ٔ بهینه‌سازی ابرپارمتر‌ها، یک چندتایی مرتب از ابرپارامترها پیدا می‌کند که به کمک آن‌ها مدل بهینه‌‌ای پیدا ‌شود، به گونه‌ای که مقدار یک تابع زیان از پیش تعیین شده را بر روی داده‌های مستقل کمینه کند. تابع هدف یک چندتایی مرتب از ابرپارامترها را گرفته و مقدار زیان را برمی‌گرداند. برای تخمین این تعمیم کارایی، اغلب از روش اعتبارسنجی متقابل استفاده می‌شود.

## روش‌ها

### جستجوی شبکه‌ای
روش سنتی اجرای بهینه‌سازی ابرپارامتر‌ها، جستجوی شبکه‌ای بوده‌ که در اصل یک جستجوی فراگیر، در زیرمجموعه‌ای از فضای ابرپارامترهای الگوریتم‌ یادگیری که به صورت دستی مشخص می‌شود، است. یک الگوریتم جستجوی شبکه‌ای باید توسط سنجه‌ای از کاریی راهنمایی شود، که معمولاً از اجرای روش اعتبارسنجی متقابل بر روی مجموعه‌ داده‌های آموزشی، یا مجموعه داده‌های اعتبارسنجی که از پیش کنار گذاشته شده است، سنجیده می‌شود.

از آنجایی که امکان دارد فضای پارامترهای یک یادگیرندهٔ ماشینی، شامل مقادیر حقیقی یا مقادیر بی‌کران برای برخی از پارامتر‌هایش باشد، در این موارد، گسسته‌سازی و تعیین کران پیش از اجرای جستجوی شبکه‌ای ضروری است.بندانگشتی|جستجوی شبکه‌ای بر روی مقادیر مختلف دو ابرپارامتر. برای هر ابرپارامتر، ۱۰ مقدار مختلف در نظر گرفته شده است، پس در مجموع ۱۰۰ ترکیب مختلف ارزیابی و مقایسه شده‌اند. خطوط تراز آبی نواحی که نتایج قوی داشته‌اند و خطوط تراز سرخ نواحی که نتایج ضعیف داشته‌اند را نمایان می‌کنند.برای نمونه، یک بردار ماشین بردار پشتیبانی رده‌بندی کننده با حاشیهٔ نرم، با استفاده از هستهٔ تابع پایهٔ شعاعی، حداقل دو ابرپارامتر دارد که برای عملکرد مناسب بر روی داده‌های دیده نشده، نیازمند بهینه‌سازی و میزان‌سازی می‌باشد: یک ثابت تنظیم C و یک ابرپارامتر هسته \gamma. هر دوی این پارامترها پیوسته هستند، پس برای اینکه بتوانیم جستجوی شبکه‌ای را انجام دهیم، یک مجموعهٔ متناهی از مقادیر منطقی و معقول را برای هر یک از آن‌ها تعریف می‌کنیم:

C \in \{10,100,1000\}

\gamma \in \{0.1, 0.2, 0.5, 1.0\}

حال جستجوی شبکه‌ای به ازای هر جفت (C,\gamma) حاضر در ضرب کارتزین این دو مجموعه، یک ماشین بردار پشتیبانی را آموزش داده و عملکرد آن‌ها را بر روی یک مجموعه از داده‌های اعتبارسنجی از پیش کنار گذاشته شده (یا روش اعتبارسنجی متقابل درونی بر روی مجموعهٔ‌ داده‌های آموزشی، که در این صورت چندین ماشین بردار پشتیبانی به ازای هر جفت آموزش داده می‌شوند)، ارزیابی می‌کند. در نهایت الگوریتم جستجوی شبکه‌ای، ابرپارامتر‌هایی که به ازای آن‌ها بیشترین امتیاز در مرحلهٔ اعتبارسنجی بدست آمده است را به عنوان خروجی برمی‌گرداند.
جستجوی شبکه‌ای از مشقت بعدچندی رنج می‌برد ولی به علت اینکه ابرپارامترهایی که ارزیابی می‌کند عمداً مستقل از هم هستند، به آسانی می‌توان آن را به صورت موازی پردازش کرد.بندانگشتی|جستجوی تصادفی بر روی ترکیب‌های مختلف دو ابرپارامتر. در این مثال، ۱۰۰ مقدار تصادفی، انتخاب و ارزیابی شده‌اند. میله‌های سبز رنگ نشان می‌دهند که در مقایسه با جستجوی شبکه‌ای، تعداد مقادیر بیشتری برای هر ابرپارامتر در نظر گرفته شده‌اند.
### جستجوی تصادفی
جستجوی تصادفی به‌جای جستجوی فراگیر بر روی همهٔ ترکیب‌های ممکن، به صورت تصادفی حالاتی را انتخاب و بررسی می‌کند. این کار در حالت گسسته بودن که بالا شرح داده شد، به راحتی قابل انجام است ولی در فضاهای پیوسته و ترکیبی نیز کار می‌کند. این روش می‌تواند از روش جستجوی شبکه‌ای، به خصوص هنگامی که تعداد کمی از ابرپارامترها بر روی عملکرد نهایی الگوریتم یادگیری اثر می‌گذارند، بهتر عمل کند. در این صورت گفته می‌شود که مسئله‌ٔ بهینه‌سازی، بعد ذاتی کمی دارد. جستجوی تصادفی نیز همانند جستجوی شبکه‌ای به آسانی می‌تواند به صورت موازی پردازش می‌شود. همچنین در این روش می‌توان با تعریف توزیعی که قرار است از آن نمونه‌گیری کنیم، بر اساس دانش پیشین، عملکرد بهتری داشت. با وجود سادگی این روش، جستجوی تصادفی هنوز از مبناهای مهم به حساب می‌آید که برای مقایسهٔ عملکرد روش‌های جدید بهینه‌سازی ابرپارامترها، از آن استفاده می‌شود.  
بندانگشتی|روش‌هایی همچون بهینه‌سازی بیزی به‌طور هوشمندانه‌ای، در فضای گزینه‌های احتمالی ابرپارامتر‌ها، با تصمیم گرفتن بر اساس مشاهدات گذشته دربارهٔ ترکیب بعدی که قرار است اکتشاف شود، به اکتشاف می‌پردازند.

### بهینه‌سازی بیزی

بهینه‌سازی بیزی، یک روش بهینه‌‌سازی مطلق برای توابع جعبه‌ سیاه دارای نویز است. با به‌کارگیری این روش در بهینه‌سازی ابرپارامترها، بهینه‌ساز بیزی یک مدل احتمالاتی از تابعی که مقدار ابرپارامترها را به هدف ارزیابی شده بر روی مجموعه‌ داده‌های اعتبارسنجی نگاشت می‌کند، می‌سازد. سپس با ارزیابی یک ترکیب امیدبخش از ابرپارامترها بر اساس مدل فعلی، و بروزرسانی آن به صورت مکرر، بهینه‌ساز بیزی تلاش می‌کند با جمع‌آوری مشاهدات، بیشترین میزان اطلاعات ممکن را در رابطه با این تابع، و به‌طور خاص نقاط بهینهٔ آن، کسب کند. بهینه‌ساز بیزی تلاش می‌کند تا میان اکتشاف (ابرپارامترهایی که به ازایشان خروجی دارای بیشترین عدم قطعیت است) و استخراج (ابرپارامترهایی که انتظار می‌رود به نقطهٔ بهینه نزدیک باشند) تعادل ایجاد کند. به صورت عملی نشان داده شده است که در مقایسه با جستجوی شبکه‌ای و تصادفی، بهینه‌سازی بیزی با ارزیابی‌های کمتر، نتایج بهتری می‌گیرد چرا که قادر به استدلال دربارهٔ کیفیت آزمایش‌ها، پیش از اجرایشان است.

### بهینه‌سازی مبتنی بر گرادیان
برای برخی از الگوریتم‌های یادگیری خاص، امکان محاسبهٔ گرادیان نسبت به ابرپارامتر‌ها، و سپس بهینه‌سازی آن‌ها از راه گرادیان کاهش وجود دارد. نخستین به‌کارگیری از این روش‌ها، به مسائل شبکه‌های عصبی مربوط بوده است. زین پس، این روش‌ها به مدل‌هایی نظیر ماشین‌های بردار پشتیبان و رگرسیون لجستیک نیز توسعه داده شده‌اند.

یک روش دیگر برای بدست آوردن گرادیان نسبت به ابرپارامترها، مشتق‌گیری از مراحل یک الگوریتم‌ بهینه‌سازی تکرار شونده، به کمک مشتق‌گیری خودکار است. یک روش جدیدتر در همین راستا، استفاده از قضیهٔ تابع ضمنی برای محاسبهٔ ابرگرادیان‌ها و ارائهٔ یک تخمین پایدار از وارون هسین است. این روش با وجود میلیون‌ها ابرپارامتر نیز قابل اجرا است و تنها به حافظهٔ ثابت نیاز دارد.

در یک روش دیگر، یک ابرشبکه آموزش داده می‌شود تا بهترین تابع واکنش را تخمین بزند. یکی از فواید این روش این است که می‌تواند ابرپارامتر‌های گسسته را نیز بهینه کند. شبکه‌های خود-میزان‌ساز یک نسخه از این روش است که با به‌کارگیری از یک نمای فشرده از ابرشبکه، در استفاده از حافظه، کارآمد است. روش Δ-STN با یک بازپارامترگیری اندک از ابرشبکه، سرعت یادگیری این روش را افزایش داده است. همچنین، Δ-STN با خطی‌سازی شبکه در وزن‌هایش، تخمین بهتری از ژاکوبین بهترین واکنش ارائه می‌دهد، چرا که آثار غیرضروری غیرخطی حاصل از تغییرات بزرگ در وزن‌ها از بین می‌رود.

سوای روش‌های ابرشبکه‌ای، از روش‌های مبتنی بر گرادیان می‌توان برای بهینه‌سازی ابرپارامترهای گسسته نیز، با به‌کارگیری یک سست‌سازی پیوسته از متغیرها، استفاده کرد.  این روش‌ها به‌طور گسترده در بهینه‌سازی ابرپارامتر‌های معماری در جستجوی معماری عصبی استفاده شده‌اند.

### بهینه‌سازی فرگشتی

بهینه‌سازی فرگشتی، یک روش بهینه‌‌سازی مطلق برای توابع جعبه‌ سیاه دارای نویز است. در بهینه‌سازی ابرپارامترها، بهینه‌سازی فرگشتی با استفاده از الگوریتم‌های فرگشتی، در فضای ابرپارامترهای الگوریتم یادگیری داده‌ شده به جستجو می‌پردازد. بهینه‌سازی فرگشتی ابرپارامترها، از فرایندی که برگرفته از مفهوم فرگشت در زیست‌شناسی است، پیروی می‌کند:

# ساخت یک جمعیت اولیه از پاسخ‌های تصادفی (تولید چندتایی‌های تصادفی از ابرپارامترها، معمولاً بیش از ۱۰۰ عضو)
# ارزیابی عضوهای جمعیت (چندتایی‌ ابرپارامتر‌ها) و بدست آوردن تابع شایستگی آن‌ها
# رتبه‌بندی عضو‌های جمعیت (چندتایی ابرپارامتر‌ها) بر اساس شایستگی نسبی آن‌ها
# جایگزینی عضو‌هایی از جمعیت (چندتایی ابرپارامتر‌ها) که بدترین عملکرد را داشته‌اند با چند‌تایی‌های جدید از ابرپارامتر‌ها که از طریق تقاطع و جهش ایجاد شده‌اند
# تکرار مراحل ۲ تا ۴، تا هنگامی که به خروجی خرسند کننده‌ای برسیم، یا تا هنگامی که در خروجی پیشرفتی مشاهده نکنیم

بهینه‌سازی فرگشتی در بهینه‌سازی ابرپارامترها برای الگوریتم‌های آماری یادگیری ماشین، یادگیری ماشین خودکاره، شبکه‌های عصبی معمولی و جستجوی معماری شبکه‌های عصبی ژرف، و همچنین در آموختن وزن‌های شبکه‌های عصبی ژرف بکار گرفته شده‌ است.

### جمعیت-پایه
آموزش جمعیت-پایه یا مبتنی بر جمعیت (PBT) هم از مقادیر ابرپارامتر‌ها و هم از وزن‌های شبکه می‌آموزد. چندین فرایند یادگیری به صورت مستقل و با ابرپارامترهای مختلف با هم کار می‌کنند. همانند روش‌های فرگشتی، مدل‌هایی که عملکرد ضعیفی دارند، به‌طور مکرر توسط مدل‌هایی که مقادیر ابرپارامتر‌ها و وزن‌های برگرفته از مدل‌های با عملکرد برتر دارند، جایگزین می‌شوند. این مدل جایگزینی آغاز گرم تفاوت اصلی میان PBT و سایر روش‌های فرگشتی است. PBT به ابرپارامتر‌ها اجازهٔ تغییر را می‌دهد و به همین علت، نیاز به بهینه‌سازی آن‌ها به صورت دستی، از بین می‌رود. این فرایند هیچ فرضی دربارهٔ معماری مدل، توابع هزینه یا فرایند‌های یادگیری نمی‌کند.

PBT و نسخه‌های مختلف آن از روش‌های سازوارپذیر هستند: مقدار ابرپارامترها را به هنگام آموزش مدل‌ها بروزرسانی می‌کنند. در مقابل روش‌های سازوارناپذیر از راهبرد غیر بهینهٔ تخصیص یک مجموعه از مقادیر ثابت به عنوان ابرپارامترها در تمام طول فرایند یادگیری، بهره می‌برند.

### توقف زودهنگام-پایه
در حال بروز رسانی ...

### دیگر روش‌ها
روش‌های RBF و طیفی نیز برای این کار توسعه داده شده‌اند.

## جستار‌های وابسته

* یادگیری ماشین خودکاره
* جستجوی معماری عصبی
* XGBoost

## منابع

__بافهرست__

رده:یادگیری ماشین
رده:بهینه‌سازی ریاضی
رده:مدل انتخاب
رده:شبکه‌های عصبی مصنوعی
رده:الگوریتم‌های گراف
رده:یادگیری نظارت‌شده
رده:یادگیری بی‌نظارت