بهینهسازی ابرپارامترها
در یادگیری ماشین، بهینهسازی ابرپارامترها (به انگلیسی: Hyperparameter Optimization) یا میزانسازی ابرپارامترها (به انگلیسی: Hyperparameter Tuning) مسئلهی یافتن یک مجموعهٔ بهینه از ابرپارامترها برای یک الگوریتم یادگیری است.[۱] یک ابرپارامتر، پارامتری است که با استفاده از مقدار آن، فرایند یادگیری کنترل میشود. در مقابل آن، مقادیر سایر پارامترها (معمولاً وزن گرهها) از طریق آموزش بدست میآیند.
برای عمومیسازی و تعمیم از الگو دادههای مختلف، مدلهای یکسان یادگیری ماشین میتوانند به اعمال انواع محدودیتها، وزنها و نرخهای یادگیری متفاوتی نیاز داشته باشند که آنها را ابرپارامتر مینامیم. این ابرپارامترها باید به گونهای تنظیم شوند تا مسئلهٔ یادگیری ماشین به صورت بهینه حل شود. مسئلهٔ بهینهسازی ابرپارمترها، یک چندتایی مرتب از ابرپارامترها پیدا میکند که به کمک آنها مدل بهینهای پیدا شود، به گونهای که مقدار یک تابع زیان از پیش تعیین شده را بر روی دادههای مستقل کمینه کند.[۲] تابع هدف یک چندتایی مرتب از ابرپارامترها را گرفته و مقدار زیان را برمیگرداند.[۲] برای تخمین این تعمیم کارایی، اغلب از روش اعتبارسنجی متقابل استفاده میشود.[۳]
روشها
[ویرایش]جستجوی شبکهای
[ویرایش]روش سنتی اجرای بهینهسازی ابرپارامترها، جستجوی شبکهای بوده که در اصل یک جستجوی فراگیر، در زیرمجموعهای از فضای ابرپارامترهای الگوریتم یادگیری که به صورت دستی مشخص میشود، است. یک الگوریتم جستجوی شبکهای باید توسط سنجهای از کاریی راهنمایی شود، که معمولاً از اجرای روش اعتبارسنجی متقابل بر روی مجموعه دادههای آموزشی،[۴] یا مجموعه دادههای اعتبارسنجی که از پیش کنار گذاشته شده است،[۵] سنجیده میشود.
از آنجایی که امکان دارد فضای پارامترهای یک یادگیرندهٔ ماشینی، شامل مقادیر حقیقی یا مقادیر بیکران برای برخی از پارامترهایش باشد، در این موارد، گسستهسازی و تعیین کران پیش از اجرای جستجوی شبکهای ضروری است.
برای نمونه، یک بردار ماشین بردار پشتیبانی ردهبندی کننده با حاشیهٔ نرم، با استفاده از هستهٔ تابع پایهٔ شعاعی، حداقل دو ابرپارامتر دارد که برای عملکرد مناسب بر روی دادههای دیده نشده، نیازمند بهینهسازی و میزانسازی میباشد: یک ثابت تنظیم و یک ابرپارامتر هسته . هر دوی این پارامترها پیوسته هستند، پس برای اینکه بتوانیم جستجوی شبکهای را انجام دهیم، یک مجموعهٔ متناهی از مقادیر منطقی و معقول را برای هر یک از آنها تعریف میکنیم:
حال جستجوی شبکهای به ازای هر جفت حاضر در ضرب کارتزین این دو مجموعه، یک ماشین بردار پشتیبانی را آموزش داده و عملکرد آنها را بر روی یک مجموعه از دادههای اعتبارسنجی از پیش کنار گذاشته شده (یا روش اعتبارسنجی متقابل درونی بر روی مجموعهٔ دادههای آموزشی، که در این صورت چندین ماشین بردار پشتیبانی به ازای هر جفت آموزش داده میشوند)، ارزیابی میکند. در نهایت الگوریتم جستجوی شبکهای، ابرپارامترهایی که به ازای آنها بیشترین امتیاز در مرحلهٔ اعتبارسنجی بدست آمده است را به عنوان خروجی برمیگرداند.
جستجوی شبکهای از مشقت بعدچندی رنج میبرد ولی به علت اینکه ابرپارامترهایی که ارزیابی میکند عمداً مستقل از هم هستند، به آسانی میتوان آن را به صورت موازی پردازش کرد.[۳]
جستجوی تصادفی
[ویرایش]جستجوی تصادفی بهجای جستجوی فراگیر بر روی همهٔ ترکیبهای ممکن، به صورت تصادفی حالاتی را انتخاب و بررسی میکند. این کار در حالت گسسته بودن که بالا شرح داده شد، به راحتی قابل انجام است ولی در فضاهای پیوسته و ترکیبی نیز کار میکند. این روش میتواند از روش جستجوی شبکهای، به خصوص هنگامی که تعداد کمی از ابرپارامترها بر روی عملکرد نهایی الگوریتم یادگیری اثر میگذارند، بهتر عمل کند.[۳] در این صورت گفته میشود که مسئلهٔ بهینهسازی، بعد ذاتی کمی دارد.[۶] جستجوی تصادفی نیز همانند جستجوی شبکهای به آسانی میتواند به صورت موازی پردازش میشود. همچنین در این روش میتوان با تعریف توزیعی که قرار است از آن نمونهگیری کنیم، بر اساس دانش پیشین، عملکرد بهتری داشت. با وجود سادگی این روش، جستجوی تصادفی هنوز از مبناهای مهم به حساب میآید که برای مقایسهٔ عملکرد روشهای جدید بهینهسازی ابرپارامترها، از آن استفاده میشود.
بهینهسازی بیزی
[ویرایش]بهینهسازی بیزی، یک روش بهینهسازی مطلق برای توابع جعبه سیاه دارای نویز است. با بهکارگیری این روش در بهینهسازی ابرپارامترها، بهینهساز بیزی یک مدل احتمالاتی از تابعی که مقدار ابرپارامترها را به هدف ارزیابی شده بر روی مجموعه دادههای اعتبارسنجی نگاشت میکند، میسازد. سپس با ارزیابی یک ترکیب امیدبخش از ابرپارامترها بر اساس مدل فعلی، و بروزرسانی آن به صورت مکرر، بهینهساز بیزی تلاش میکند با جمعآوری مشاهدات، بیشترین میزان اطلاعات ممکن را در رابطه با این تابع، و بهطور خاص نقاط بهینهٔ آن، کسب کند. بهینهساز بیزی تلاش میکند تا میان اکتشاف (ابرپارامترهایی که به ازایشان خروجی دارای بیشترین عدم قطعیت است) و استخراج (ابرپارامترهایی که انتظار میرود به نقطهٔ بهینه نزدیک باشند) تعادل ایجاد کند. به صورت عملی نشان داده شده است که در مقایسه با جستجوی شبکهای و تصادفی، بهینهسازی بیزی با ارزیابیهای کمتر، نتایج بهتری میگیرد چرا که قادر به استدلال دربارهٔ کیفیت آزمایشها، پیش از اجرایشان است.[۷][۸][۹][۱۰]
بهینهسازی مبتنی بر گرادیان
[ویرایش]برای برخی از الگوریتمهای یادگیری خاص، امکان محاسبهٔ گرادیان نسبت به ابرپارامترها، و سپس بهینهسازی آنها از راه گرادیان کاهش وجود دارد. نخستین بهکارگیری از این روشها، به مسائل شبکههای عصبی مربوط بوده است.[۱۱] زین پس، این روشها به مدلهایی نظیر ماشینهای بردار پشتیبان[۱۲] و رگرسیون لجستیک[۱۳] نیز توسعه داده شدهاند.
یک روش دیگر برای بدست آوردن گرادیان نسبت به ابرپارامترها، مشتقگیری از مراحل یک الگوریتم بهینهسازی تکرار شونده، به کمک مشتقگیری خودکار است.[۱۴][۱۵][۱۶][۱۷] یک روش جدیدتر در همین راستا، استفاده از قضیهٔ تابع ضمنی برای محاسبهٔ ابرگرادیانها و ارائهٔ یک تخمین پایدار از وارون هسین است. این روش با وجود میلیونها ابرپارامتر نیز قابل اجرا است و تنها به حافظهٔ ثابت نیاز دارد.
در یک روش دیگر، یک ابرشبکه آموزش داده میشود تا بهترین تابع واکنش را تخمین بزند.[۱۸] یکی از فواید این روش این است که میتواند ابرپارامترهای گسسته را نیز بهینه کند. شبکههای خود-میزانساز[۱۹] یک نسخه از این روش است که با بهکارگیری از یک نمای فشرده از ابرشبکه، در استفاده از حافظه، کارآمد است. روش Δ-STN با یک بازپارامترگیری اندک از ابرشبکه، سرعت یادگیری این روش را افزایش داده است.[۲۰] همچنین، Δ-STN با خطیسازی شبکه در وزنهایش، تخمین بهتری از ژاکوبین بهترین واکنش ارائه میدهد، چرا که آثار غیرضروری غیرخطی حاصل از تغییرات بزرگ در وزنها از بین میرود.
سوای روشهای ابرشبکهای، از روشهای مبتنی بر گرادیان میتوان برای بهینهسازی ابرپارامترهای گسسته نیز، با بهکارگیری یک سستسازی پیوسته از متغیرها، استفاده کرد.[۲۱] این روشها بهطور گسترده در بهینهسازی ابرپارامترهای معماری در جستجوی معماری عصبی استفاده شدهاند.
بهینهسازی فرگشتی
[ویرایش]بهینهسازی فرگشتی، یک روش بهینهسازی مطلق برای توابع جعبه سیاه دارای نویز است. در بهینهسازی ابرپارامترها، بهینهسازی فرگشتی با استفاده از الگوریتمهای فرگشتی، در فضای ابرپارامترهای الگوریتم یادگیری داده شده به جستجو میپردازد.[۸] بهینهسازی فرگشتی ابرپارامترها، از فرایندی که برگرفته از مفهوم فرگشت در زیستشناسی است، پیروی میکند:
- ساخت یک جمعیت اولیه از پاسخهای تصادفی (تولید چندتاییهای تصادفی از ابرپارامترها، معمولاً بیش از ۱۰۰ عضو)
- ارزیابی عضوهای جمعیت (چندتایی ابرپارامترها) و بدست آوردن تابع شایستگی آنها
- رتبهبندی عضوهای جمعیت (چندتایی ابرپارامترها) بر اساس شایستگی نسبی آنها
- جایگزینی عضوهایی از جمعیت (چندتایی ابرپارامترها) که بدترین عملکرد را داشتهاند با چندتاییهای جدید از ابرپارامترها که از طریق تقاطع و جهش ایجاد شدهاند
- تکرار مراحل ۲ تا ۴، تا هنگامی که به خروجی خرسند کنندهای برسیم، یا تا هنگامی که در خروجی پیشرفتی مشاهده نکنیم
بهینهسازی فرگشتی در بهینهسازی ابرپارامترها برای الگوریتمهای آماری یادگیری ماشین،[۸] یادگیری ماشین خودکاره، شبکههای عصبی معمولی[۲۲] و جستجوی معماری شبکههای عصبی ژرف،[۲۳][۲۴] و همچنین در آموختن وزنهای شبکههای عصبی ژرف بکار گرفته شده است.[۲۵]
جمعیت-پایه
[ویرایش]آموزش جمعیت-پایه یا مبتنی بر جمعیت (PBT) هم از مقادیر ابرپارامترها و هم از وزنهای شبکه میآموزد. چندین فرایند یادگیری به صورت مستقل و با ابرپارامترهای مختلف با هم کار میکنند. همانند روشهای فرگشتی، مدلهایی که عملکرد ضعیفی دارند، بهطور مکرر توسط مدلهایی که مقادیر ابرپارامترها و وزنهای برگرفته از مدلهای با عملکرد برتر دارند، جایگزین میشوند. این مدل جایگزینی آغاز گرم تفاوت اصلی میان PBT و سایر روشهای فرگشتی است. PBT به ابرپارامترها اجازهٔ تغییر را میدهد و به همین علت، نیاز به بهینهسازی آنها به صورت دستی، از بین میرود. این فرایند هیچ فرضی دربارهٔ معماری مدل، توابع هزینه یا فرایندهای یادگیری نمیکند.
PBT و نسخههای مختلف آن از روشهای سازوارپذیر هستند: مقدار ابرپارامترها را به هنگام آموزش مدلها بروزرسانی میکنند. در مقابل روشهای سازوارناپذیر از راهبرد غیر بهینهٔ تخصیص یک مجموعه از مقادیر ثابت به عنوان ابرپارامترها در تمام طول فرایند یادگیری، بهره میبرند.[۲۶]
توقف زودهنگام-پایه
[ویرایش]در حال بروز رسانی ...
دیگر روشها
[ویرایش]روشهای RBF[۲۷] و طیفی[۲۸] نیز برای این کار توسعه داده شدهاند.
جستارهای وابسته
[ویرایش]منابع
[ویرایش]- ↑ Matthias Feurer and Frank Hutter. Hyperparameter optimization. In: AutoML: Methods, Systems, Challenges, pages 3–38.
- ↑ ۲٫۰ ۲٫۱ Claesen, Marc; Bart De Moor (2015). "Hyperparameter Search in Machine Learning". arXiv:1502.02127cs.LG.
- ↑ ۳٫۰ ۳٫۱ ۳٫۲ Bergstra، James؛ Bengio، Yoshua (۲۰۱۲). «Random Search for Hyper-Parameter Optimization» (PDF). Journal of Machine Learning Research. ۱۳: ۲۸۱-۳۰۵.
- ↑ Chin-Wei Hsu, Chih-Chung Chang and Chih-Jen Lin (2010). A practical guide to support vector classification. Technical Report, دانشگاه ملی تایوان.
- ↑ Chicco, Davide (2017-12-08). "Ten quick tips for machine learning in computational biology". BioData Mining. 10 (1): 35. doi:10.1186/s13040-017-0155-3. ISSN 1756-0381. PMC 5721660. PMID 29234465.
{{cite journal}}
: نگهداری یادکرد:فرمت پارامتر PMC (link) - ↑ Wang, Ziyu; Hutter, Frank; Zoghi, Masrour; Matheson, David; Feitas, Nando de (2016-02-19). "Bayesian Optimization in a Billion Dimensions via Random Embeddings". Journal of Artificial Intelligence Research (به انگلیسی). 55: 361–387. doi:10.1613/jair.4806. ISSN 1076-9757.
- ↑ Hutter, Frank; Hoos, Holger; Leyton-Brown, Kevin (2011), "Sequential model-based optimization for general algorithm configuration" (PDF), Learning and Intelligent Optimization, Lecture Notes in Computer Science, 6683: 507–523, CiteSeerX 10.1.1.307.8813, doi:10.1007/978-3-642-25566-3_40, ISBN 978-3-642-25565-6
- ↑ ۸٫۰ ۸٫۱ ۸٫۲ Bergstra, James; Bardenet, Remi; Bengio, Yoshua; Kegl, Balazs (2011), "Algorithms for hyper-parameter optimization" (PDF), Advances in Neural Information Processing Systems
- ↑ Snoek, Jasper; Larochelle, Hugo; Adams, Ryan P. (2012-08-29). "Practical Bayesian Optimization of Machine Learning Algorithms". arXiv:1206.2944 [cs, stat].
- ↑ Thornton, Chris; Hutter, Frank; Hoos, Holger H.; Leyton-Brown, Kevin (2013-03-06). "Auto-WEKA: Combined Selection and Hyperparameter Optimization of Classification Algorithms". arXiv:1208.3719 [cs].
- ↑ Larsen, J.; Hansen, L.K.; Svarer, C.; Ohlsson, M. (1996-09). "Design and regularization of neural networks: the optimal use of a validation set". Neural Networks for Signal Processing VI. Proceedings of the 1996 IEEE Signal Processing Society Workshop: 62–71. doi:10.1109/NNSP.1996.548336.
{{cite journal}}
: Check date values in:|date=
(help) - ↑ Chapelle, Olivier; Vapnik, Vladimir; Bousquet, Olivier; Mukherjee, Sayan (2002-01-01). "Choosing Multiple Parameters for Support Vector Machines". Machine Learning (به انگلیسی). 46 (1): 131–159. doi:10.1023/A:1012450327387. ISSN 1573-0565.
- ↑ Chuong B; Chuan-Sheng Foo; Andrew Y Ng (2008). "Efficient multiple hyperparameter learning for log-linear models" (PDF). Advances in Neural Information Processing Systems 20.
- ↑ Domke, Justin (2012). "Generic Methods for Optimization-Based Modeling" بایگانیشده در ۲۴ ژانویه ۲۰۱۴ توسط Wayback Machine (PDF). Aistats. 22.
- ↑ Maclaurin, Douglas; Duvenaud, David; Adams, Ryan P. (2015). "Gradient-based Hyperparameter Optimization through Reversible Learning". arXiv:1502.03492 [stat.ML].
- ↑ Franceschi, Luca; Donini, Michele; Frasconi, Paolo; Pontil, Massimiliano (2017-12-12). "Forward and Reverse Gradient-Based Hyperparameter Optimization". arXiv:1703.01785 [stat].
- ↑ Shaban, A., Cheng, C. A., Hatch, N., & Boots, B. (2019, April). Truncated back-propagation for bilevel optimization. In The 22nd International Conference on Artificial Intelligence and Statistics (pp. 1723-1732). PMLR.
- ↑ Lorraine, J., & Duvenaud, D. (2018). Stochastic hyperparameter optimization through hypernetworks. arXiv preprint arXiv:1802.09419.
- ↑ MacKay, M., Vicol, P., Lorraine, J., Duvenaud, D., & Grosse, R. (2019). Self-tuning networks: Bilevel optimization of hyperparameters using structured best-response functions. arXiv preprint arXiv:1903.03088.
- ↑ Bae, J., & Grosse, R. B. (2020). Delta-stn: Efficient bilevel optimization for neural networks using structured response jacobians. Advances in Neural Information Processing Systems, 33, 21725-21737.
- ↑ Liu, H., Simonyan, K., & Yang, Y. (2018). Darts: Differentiable architecture search. arXiv preprint arXiv:1806.09055.
- ↑ Kousiouris, George; Cucinotta, Tommaso; Varvarigou, Theodora (2011-08-01). "The effects of scheduling, workload type and consolidation scenarios on virtual machine performance and their prediction through optimized artificial neural networks". Journal of Systems and Software (به انگلیسی). 84 (8): 1270–1291. doi:10.1016/j.jss.2011.04.013. ISSN 0164-1212.
- ↑ Miikkulainen R, Liang J, Meyerson E, Rawal A, Fink D, Francon O, Raju B, Shahrzad H, Navruzyan A, Duffy N, Hodjat B (2017). "Evolving Deep Neural Networks". arXiv:1703.00548 [cs.NE].
- ↑ Jaderberg M, Dalibard V, Osindero S, Czarnecki WM, Donahue J, Razavi A, Vinyals O, Green T, Dunning I, Simonyan K, Fernando C, Kavukcuoglu K (2017). "Population Based Training of Neural Networks". arXiv:1711.09846 [cs.LG].
- ↑ Such FP, Madhavan V, Conti E, Lehman J, Stanley KO, Clune J (2017). "Deep Neuroevolution: Genetic Algorithms Are a Competitive Alternative for Training Deep Neural Networks for Reinforcement Learning". arXiv:1712.06567 [cs.NE].
- ↑ Li, Ang; Spyra, Ola; Perel, Sagi; Dalibard, Valentin; Jaderberg, Max; Gu, Chenjie; Budden, David; Harley, Tim; Gupta, Pramod (2019-02-05). "A Generalized Framework for Population Based Training". arXiv:1902.01894 [cs.AI].
- ↑ Diaz, Gonzalo; Fokoue, Achille; Nannicini, Giacomo; Samulowitz, Horst (2017). "An effective algorithm for hyperparameter optimization of neural networks". arXiv:1705.08520 [cs.AI].
- ↑ Hazan, Elad; Klivans, Adam; Yuan, Yang (2017). "Hyperparameter Optimization: A Spectral Approach". arXiv:1706.00764 [cs.LG].