بهینه سازها در PyTorch – انجمن DEV

Summarize this content to 400 words in Persian Lang
برای من یک قهوه بخر☕
*پست من Batch، Mini-Batch و Stochastic Gradient Descent را در PyTorch توضیح می دهد.
بهینه ساز، الگوریزم نزول گرادیان است که می تواند حداقل (یا حداکثر) گرادیان (شیب) یک تابع را با به روز رسانی (تنظیم) پارامترهای یک مدل پیدا کند.weight و bias) برای به حداقل رساندن میانگین (متوسط) مجموع تلفات (تفاوت) بین پیش بینی های مدل و مقادیر واقعی (داده های قطار) در طول آموزش.
CGD (Classic Gradient Descent) (1847) توضیح داده شده در (1).
Momentum (1964) در (2) توضیح داد.
حرکت نستروف (1983) در (3) توضیح داده شد.
آداگراد (2011).
RMSprop (2012) در (4) توضیح داده شد.
AdaDelta (2012).
Adam (2014) در (5) توضیح داد.
AdaMax (2015).
امیدوارم (2016).
AMSGrad (2018).
AdaBound (2019) در (6) توضیح داده شد.
AMSBound (2019).
AdamW (2019).
(1) CGD (Classic Gradient Descent) (1847):
بهینه ساز برای انجام نزول پایه گرادیان بدون هیچ ویژگی خاصی است. *نرخ یادگیری ثابت است.
SGD() در PyTorch است. *SGD() در PyTorch کلاسیک Gradient Descent (CGD) است اما تصادفی Gradient Descent (SGD) نیست.
همچنین میتوان آن را Gradient Descent (VGD) نامید.
جوانب مثبت:
ساده است.
این بر اساس بهینه سازهای دیگر است.
معایب:
هیچ ویژگی خاصی ندارد.
(2) Momentum (1964) (افزونه):
بهینهساز الحاقی به بهینهسازهای دیگر برای تسریع (سرعت بخشیدن) همگرایی با کاهش نوسانات، با در نظر گرفتن گرادیانهای گذشته و فعلی، اهمیت بیشتری به گرادیانهای جدیدتر با EWA میدهد. *یادداشت ها:
EWA (Exponentially Weighted Average) الگوریتمی است برای هموارسازی روند (برای کاهش نوسانات یک روند)، با در نظر گرفتن مقادیر گذشته و فعلی، و اهمیت بیشتری به مقادیر جدیدتر می دهد.
EWA همچنین EWMA (میانگین متحرک وزنی نمایی) نامیده می شود.
به SGD() و Adam() در PyTorch اضافه می شود.
جوانب مثبت:
از EWA استفاده می کند.
از مینیمم های محلی و نقاط زینی فرار می کند.
یک مدل دقیق ایجاد می کند.
نوسان را کاهش می دهد.
بیش از حد را کاهش می دهد.
همگرایی را تسریع می کند.
معایب:
(3) حرکت نستروف (1983) (افزونه):
Momentum (1964) با تابع اضافی است که می تواند گرادیان یک موقعیت کمی جلوتر را محاسبه کند تا همگرایی را بیشتر از Momentum (1964) شتاب دهد.
همچنین شیب تسریع شده نستروف (NAG) نامیده می شود.
به SGD() و NAdam() در PyTorch اضافه می شود.
جوانب مثبت:
از EWA استفاده می کند.
راحتتر از Momentum (1964) از حداقلهای محلی و نقاط زینی فرار میکند.
مدل دقیق تری نسبت به Momentum (1964) ایجاد می کند.
بیشتر از Momentum (1964) نوسانات را کاهش می دهد.
این بیش از Momentum (1964) بیش از حد را کاهش می دهد.
بیشتر از Momentum (1964) همگرایی را تسریع می کند.
معایب:
(4) RMSProp (2012):
بهینهسازی است که میتواند با تطبیق خودکار نرخ یادگیری با پارامترها، با در نظر گرفتن گرادیانهای گذشته و کنونی، شیب نزولی را انجام دهد، و به شیبهای جدیدتر از Momentum (1964) با EWA اهمیت بیشتری میدهد تا با کاهش نوسان، همگرایی را تسریع بخشد. *نرخ یادگیری ثابت نیست.
نرخ یادگیری با نزدیک شدن به حداقل جهانی برای یافتن دقیق راه حل بهینه کاهش می یابد.
EWA کمی با Momentum (1964) متفاوت است.
نسخه بهبودیافته AdaGrad (2011) است که می تواند با تطبیق نرخ یادگیری با پارامترها، با در نظر گرفتن گرادیان های گذشته و فعلی برای تسریع همگرایی با کاهش نوسان، شیب نزولی را انجام دهد. *نرخ یادگیری ثابت نیست.
جوانب مثبت:
به طور خودکار نرخ یادگیری را با پارامترها تطبیق می دهد.
از EWA استفاده می کند.
معایب:
RMSprop() در PyTorch است.
(5) آدام (تخمین لحظه تطبیقی) (2014):
ترکیبی از Momentum (1964) و RMSProp (2012) است.
از EWA Momentum (1964) به جای RMSProp (2012) استفاده می کند.
جوانب مثبت:
به طور خودکار نرخ یادگیری را با پارامترها تطبیق می دهد.
از EWA استفاده می کند.
معایب:
Adam() در PyTorch است.
(6) AdaBound (2019):
Adam (2014) با مرزهای پویا (حد بالا و پایین پویا) است که می تواند همگرایی را تثبیت کند تا همگرایی را بیشتر از Adam (2014) تسریع کند.
جوانب مثبت:
به طور خودکار نرخ یادگیری را با پارامترها تطبیق می دهد.
از EWA استفاده می کند.
از مرزهای پویا (حد بالا و پایین پویا) استفاده می کند.
معایب:
هنوز در PyTorch نیست، بنابراین می توانید از AdaBound() استفاده کنید.
برای من یک قهوه بخر☕
*پست من Batch، Mini-Batch و Stochastic Gradient Descent را در PyTorch توضیح می دهد.
بهینه ساز، الگوریزم نزول گرادیان است که می تواند حداقل (یا حداکثر) گرادیان (شیب) یک تابع را با به روز رسانی (تنظیم) پارامترهای یک مدل پیدا کند.weight
و bias
) برای به حداقل رساندن میانگین (متوسط) مجموع تلفات (تفاوت) بین پیش بینی های مدل و مقادیر واقعی (داده های قطار) در طول آموزش.
- CGD (Classic Gradient Descent) (1847) توضیح داده شده در (1).
- Momentum (1964) در (2) توضیح داد.
- حرکت نستروف (1983) در (3) توضیح داده شد.
- آداگراد (2011).
- RMSprop (2012) در (4) توضیح داده شد.
- AdaDelta (2012).
- Adam (2014) در (5) توضیح داد.
- AdaMax (2015).
- امیدوارم (2016).
- AMSGrad (2018).
- AdaBound (2019) در (6) توضیح داده شد.
- AMSBound (2019).
- AdamW (2019).
(1) CGD (Classic Gradient Descent) (1847):
- بهینه ساز برای انجام نزول پایه گرادیان بدون هیچ ویژگی خاصی است. *نرخ یادگیری ثابت است.
- SGD() در PyTorch است. *
SGD()
در PyTorch کلاسیک Gradient Descent (CGD) است اما تصادفی Gradient Descent (SGD) نیست. - همچنین میتوان آن را Gradient Descent (VGD) نامید.
- جوانب مثبت:
- ساده است.
- این بر اساس بهینه سازهای دیگر است.
- معایب:
- هیچ ویژگی خاصی ندارد.
(2) Momentum (1964) (افزونه):
- بهینهساز الحاقی به بهینهسازهای دیگر برای تسریع (سرعت بخشیدن) همگرایی با کاهش نوسانات، با در نظر گرفتن گرادیانهای گذشته و فعلی، اهمیت بیشتری به گرادیانهای جدیدتر با EWA میدهد. *یادداشت ها:
- EWA (Exponentially Weighted Average) الگوریتمی است برای هموارسازی روند (برای کاهش نوسانات یک روند)، با در نظر گرفتن مقادیر گذشته و فعلی، و اهمیت بیشتری به مقادیر جدیدتر می دهد.
- EWA همچنین EWMA (میانگین متحرک وزنی نمایی) نامیده می شود.
- به SGD() و Adam() در PyTorch اضافه می شود.
- جوانب مثبت:
- از EWA استفاده می کند.
- از مینیمم های محلی و نقاط زینی فرار می کند.
- یک مدل دقیق ایجاد می کند.
- نوسان را کاهش می دهد.
- بیش از حد را کاهش می دهد.
- همگرایی را تسریع می کند.
- معایب:
(3) حرکت نستروف (1983) (افزونه):
- Momentum (1964) با تابع اضافی است که می تواند گرادیان یک موقعیت کمی جلوتر را محاسبه کند تا همگرایی را بیشتر از Momentum (1964) شتاب دهد.
- همچنین شیب تسریع شده نستروف (NAG) نامیده می شود.
- به SGD() و NAdam() در PyTorch اضافه می شود.
- جوانب مثبت:
- از EWA استفاده می کند.
- راحتتر از Momentum (1964) از حداقلهای محلی و نقاط زینی فرار میکند.
- مدل دقیق تری نسبت به Momentum (1964) ایجاد می کند.
- بیشتر از Momentum (1964) نوسانات را کاهش می دهد.
- این بیش از Momentum (1964) بیش از حد را کاهش می دهد.
- بیشتر از Momentum (1964) همگرایی را تسریع می کند.
- معایب:
(4) RMSProp (2012):
- بهینهسازی است که میتواند با تطبیق خودکار نرخ یادگیری با پارامترها، با در نظر گرفتن گرادیانهای گذشته و کنونی، شیب نزولی را انجام دهد، و به شیبهای جدیدتر از Momentum (1964) با EWA اهمیت بیشتری میدهد تا با کاهش نوسان، همگرایی را تسریع بخشد. *نرخ یادگیری ثابت نیست.
- نرخ یادگیری با نزدیک شدن به حداقل جهانی برای یافتن دقیق راه حل بهینه کاهش می یابد.
- EWA کمی با Momentum (1964) متفاوت است.
- نسخه بهبودیافته AdaGrad (2011) است که می تواند با تطبیق نرخ یادگیری با پارامترها، با در نظر گرفتن گرادیان های گذشته و فعلی برای تسریع همگرایی با کاهش نوسان، شیب نزولی را انجام دهد. *نرخ یادگیری ثابت نیست.
- جوانب مثبت:
- به طور خودکار نرخ یادگیری را با پارامترها تطبیق می دهد.
- از EWA استفاده می کند.
- معایب:
- RMSprop() در PyTorch است.
(5) آدام (تخمین لحظه تطبیقی) (2014):
- ترکیبی از Momentum (1964) و RMSProp (2012) است.
- از EWA Momentum (1964) به جای RMSProp (2012) استفاده می کند.
- جوانب مثبت:
- به طور خودکار نرخ یادگیری را با پارامترها تطبیق می دهد.
- از EWA استفاده می کند.
- معایب:
- Adam() در PyTorch است.
(6) AdaBound (2019):
- Adam (2014) با مرزهای پویا (حد بالا و پایین پویا) است که می تواند همگرایی را تثبیت کند تا همگرایی را بیشتر از Adam (2014) تسریع کند.
- جوانب مثبت:
- به طور خودکار نرخ یادگیری را با پارامترها تطبیق می دهد.
- از EWA استفاده می کند.
- از مرزهای پویا (حد بالا و پایین پویا) استفاده می کند.
- معایب:
- هنوز در PyTorch نیست، بنابراین می توانید از AdaBound() استفاده کنید.