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

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

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

روش‌ها

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

منابع

__بافهرست__

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