نرخ یادگیری
یادگیری ماشین و دادهکاوی |
---|
در یادگیری ماشینی و آمار، نرخ یادگیری یک پارامتر تنظیم در یک الگوریتم بهینهسازی است که اندازه گام هر تکرار را هنگام حرکت به سمت حداقل یک تابع زیان تعیین میکند.[۱] این پارامتر روی میزان رونویسی اطلاعات کسب شده بر اطلاعات قدیمی تاثیر میگذارد، به همین دلیل به صورت استعاری نمایش میدهد که مدل یادگیری ماشین به چه سرعتی «یادمیگیرد». در ادبیات کنترل تطبیقی، به نرخ یادگیری بهره گفته میشود.[۲]
برای تنظیم یک نرخ یادگیری، بین پرت شدن و نرخ همگرایی یک موازنه هست. درحالیکه جهت کاهشی معمولا از گرادیان تابع زیان تعیین میشود، نرخ یادگیری تعیین میکند که یک گام در آن جهت چقدر بزرگ است. اگر نرخ یادگیری خیلی بزرگ باشد، روی حداقل یک جهش انجام میشود، اما اگر نرخ یادگیری خیلی کوچک باشد، یا میزان همگرایی بسیار طولانی میشود یا در داخل حداقل محلی ناخواسته گیر خواهیم کرد.[۳]
برای دسترسی به همگرایی سریعتر، جلوگیری از نوسان، و گیر افتادن در حداقل محلی ناخواسته، باید نرخ یادگیری را در حین یادگیری تغییر داد، یا براساس یک برنامه نرخ یادگیری یا به کمک یک نرخ یادگیری تطبیقی باید آن را متغیر کرد.[۴] نرخ یادگیری و تنظیمات آن میتواند بر اساس پارامتر تغییر کند، که در این حالت یک ماتریس قطری است که میتوان آن را به صورت یک تقریب به وارون ماتریس هسین در روش نیوتون تفسیر کرد.[۵] نرخ یادگیری با اندازه گام که توسط جستجوی خط در روشهای شبه-نیوتون و دیگر الگوریتمهای بهینهسازی تعیین میشود، مرتبط است.[۶][۷]
برنامه نرخ یادگیری
[ویرایش]نرخ اولیه را میتوان به صورت پیشفرض سامانه قرار داد یا میتوان آن را به کمک فنونی انتخاب کرد.[۸] یک برنامه نرخ یادگیری، در واقع نرخ یادگیری را در مدت یادگیری تغییر میدهد، و به صورت معمول بین تکرارها/دورهها تغییر میکند. این کار معمولا توسط دو پارامتر انجام میشود: زوال و تکانه. تعداد بسیار متنوعی برنامه نرخ یادگیری وجود دارد، اما معمولترین آنها زمان-بینان، گام-بنیان، و نمایی است.[۴]
از پارامتر زوال برای قرار دادن یادگیری در محل مناسب و جلوگیری از نوسان استفاده میشود، این حالت وقتی اتفاق میافتد که نرخ یادگیری ثابت بسیار زیاد یک پرش یادگیری جلو و عقب روی حداقل ایجاد میکند، که این توسط یک فراپارامتر کنترل میشود.
پارامتر تکانه مشابه یک توپ است که از یک تپه پایین میآید؛ ما میخواهیم تا توپ در پایینترین نقطه تپه قرار گیرد (که متناظر با خطای حداقل است). تکانه هم یادگیری را تسریع میکند (افزایش نرخ یادگیری) وقتیکه گرادیان هزینه خطا به یک جهت برای مدت طولانی اشاره میکند، و همچنین از حداقل محلی با غلتزدن از روی برآمدگیها جلوگیری میکند. تکانه توسط یک فراپارامتر کنترل میشود، که مشابه جرم یک توپ است که باید به صورت دستی انتخاب شود- اگر بسیار بلند باشد، توپ از روی حداقل غلت میزند که ما میخواهیم، اگر کم باشد این هدف را برآورده نمیکند. فرمول فاکتورگیری در تکانه بسیار پیچیدهتر از زوال است، اما معمولا در کتابخانههای یادگیری عمیق مثل کراس ساخته میشود.
برنامههای یادگیری زمان-بنیان نرخ یادگیری را بر اساس نرخ یادگیری تکرار زمانی قبل تغییر میدهد. با فاکتورگیری در زوال، فرمول ریاضی برای نرخ یادگیری این چنین است:
که در آن نرخ یادگیری است، پارامتر زوال است، و گام تکرار است.
برنامههای یادگیری گام-بنیان نرخ یادگیری را براساس چند گام از قبل معین تغییر میدهد. فرمول کاربردی روال به صورت زیر تعریف میشود:
که در آن همان نرخ یادگیری در تکرار است، همان نرخ یادگیری اولیه است، و میزان تغییر نرخ یادگیری در هر رهاسازی است (0.5 متناسب با نیمه کردن است) و متناظر با نرخ رهاسازی است، و چقدر نرخ باید رهاسازی شود (10 متناظر با یک رهاسازی در هر 10 تکرار است). یک تابع کف () در اینجا مقدار ورودی را برای همه مقادیر کمتر از 1 به 0 انجام میدهد.
برنامه یادگیری نمایی مشابه با گام-بنیان است، اما در عوض گام، از یک تابع نمایی کاهشی استفاده میشود. فرمول ریاضی برای فاکتورگیری در زوال به این صورت است:
که در آن همان متغیر زوال است.
نرخ یادگیری تطبیقی
[ویرایش]مشکلی که با برنامه نرخ یادگیری وجود دارد آن است که همه به فراپارامتر بستگی دارند، که باید همه برای هر جلسه یادگیری معین به صورت دستی انتخاب شوند، که بسته به مشکل با مدل استفاده شده بسیار متغیر هستند. برای حل مشکل، الگوریتمهای کاهش گرادیان تطبیقی متنوعی مثل Adagrad, Adadelta, RMSprop و Adam[۹] که معمولا در کتابخانههای یادگیری عمیق مثل کراس ساخته میشوند.[۱۰]
پانویس
[ویرایش]- ↑ Murphy, Kevin P. (2012). Machine Learning: A Probabilistic Perspective. Cambridge: MIT Press. p. 247. ISBN 978-0-262-01802-9.
- ↑ Delyon, Bernard (2000). "Stochastic Approximation with Decreasing Gain: Convergence and Asymptotic Theory". Unpublished Lecture Notes. Université de Rennes. CiteSeerX 10.1.1.29.4428.
- ↑ Buduma, Nikhil; Locascio, Nicholas (2017). Fundamentals of Deep Learning : Designing Next-Generation Machine Intelligence Algorithms. O'Reilly. p. 21. ISBN 978-1-4919-2558-4.
- ↑ ۴٫۰ ۴٫۱ Patterson, Josh; Gibson, Adam (2017). "Understanding Learning Rates". Deep Learning : A Practitioner's Approach. O'Reilly. pp. 258–263. ISBN 978-1-4919-1425-0.
- ↑ Ruder, Sebastian (2017). "An Overview of Gradient Descent Optimization Algorithms". arXiv:1609.04747 [cs.LG].
- ↑ Nesterov, Y. (2004). Introductory Lectures on Convex Optimization: A Basic Course. Boston: Kluwer. p. 25. ISBN 1-4020-7553-7.
- ↑ Dixon, L. C. W. (1972). "The Choice of Step Length, a Crucial Factor in the Performance of Variable Metric Algorithms". Numerical Methods for Non-linear Optimization. London: Academic Press. pp. 149–170. ISBN 0-12-455650-7.
- ↑ Smith, Leslie N. (4 April 2017). "Cyclical Learning Rates for Training Neural Networks". arXiv:1506.01186 [cs.CV].
- ↑ Murphy, Kevin (2021). Probabilistic Machine Learning: An Introduction. Probabilistic Machine Learning: An Introduction. MIT Press. Retrieved 10 April 2021.
- ↑ Brownlee, Jason (22 January 2019). "How to Configure the Learning Rate When Training Deep Learning Neural Networks". Machine Learning Mastery. Retrieved 4 January 2021.
منابع
[ویرایش]مشارکتکنندگان ویکیپدیا. «Learning rate». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۱۰ ژوئن ۲۰۲۳.
خواندن بیشتر
[ویرایش]- Géron, Aurélien (2017). "Gradient Descent". Hands-On Machine Learning with Scikit-Learn and TensorFlow. O'Reilly. pp. 113–124. ISBN 978-1-4919-6229-9.
- Plagianakos, V. P.; Magoulas, G. D.; Vrahatis, M. N. (2001). "Learning Rate Adaptation in Stochastic Gradient Descent". Advances in Convex Analysis and Global Optimization. Kluwer. pp. 433–444. ISBN 0-7923-6942-4.تابع
پیوند به بیرون
[ویرایش]- de Freitas, Nando (February 12, 2015). "Optimization". Deep Learning Lecture 6. University of Oxford.