روش گرادیان تصادفی (Stochastic Gradient Descent - SGD)، در ریاضیات (Mathematics)
انواع روش های بهینه سازی (Optimization Methods) را در آموزش زیر شرح دادیم :
روش گرادیان تصادفی (Stochastic Gradient Descent - SGD) :
📌 تعریف: روش گرادیان تصادفی (SGD) یک الگوریتم تکراری برای بهینه سازی توابع هدف است که به ویژه در یادگیری ماشین و یادگیری عمیق بسیار پرکاربرد است. برخلاف گرادیان کاهشی کلاسیک که از کل مجموعه داده برای محاسبه گرادیان استفاده می کند، SGD در هر تکرار از یک نمونه تصادفی (یا یک دسته کوچک) برای تخمین گرادیان استفاده می کند.
💡 ایده اصلی
در بسیاری از مسائل یادگیری ماشین، تابع هدف به صورت مجموع هزینه ها روی تمام نمونه های داده است:
\[ f(w) = \frac{1}{n} \sum_{i=1}^n f_i(w) \]محاسبه گرادیان کامل
\[ \nabla f(w) = \frac{1}{n} \sum \nabla f_i(w) \]برای مجموعه های داده بزرگ بسیار پرهزینه است. در SGD، به جای آن، یک نمونه
\[ i \]را به طور تصادفی انتخاب کرده و پارامترها را به روز می کنیم:
\[ w_{t+1} = w_t - \eta_t \nabla f_i(w_t) \]که
\[ \eta_t \]نرخ یادگیری (Learning Rate) است.
📊 انواع SGD
SGD خالص (Online SGD): در هر تکرار از یک نمونه استفاده می کند.
Mini-batch SGD: از یک دسته کوچک از نمونه ها (مثلا ۳۲ یا ۱۲۸ تایی) استفاده می کند. این رایج ترین شکل است.
Batch GD: از کل داده استفاده می کند (همان گرادیان کاهشی کلاسیک).
🔧 مزایا و معایب
مزایا: سرعت بالا، قابلیت خروج از بهینه های محلی به دلیل نویز، مناسب برای داده های بزرگ.
معایب: نوسان زیاد در مسیر بهینه سازی، نیاز به تنظیم دقیق نرخ یادگیری، همگرایی کندتر در نزدیکی بهینه.