SGD و مومنتوم

بدانی گرادیان تصادفی چه نویزی دارد، اندازه‌ی دسته چه اثری می‌گذارد و مومنتوم چطور حرکت را سرعت می‌دهد.

12 دقیقه مطالعه · 4 سؤال تمرینی · یادگیری ماشین میانی و پیشرفته

گرادیان تصادفی

در یادگیری ماشین معمولاً f(w)=1n∑i=1nℓi(w)f(w) = \frac1n\sum_{i=1}^n \ell_i(w) است. محاسبه‌ی گرادیان کامل روی میلیون‌ها نمونه گران است. SGD در هر قدم گرادیان را فقط روی یک دسته‌ی کوچک BB تخمین می‌زند:

gt=1∣B∣∑i∈B∇ℓi(wt)g_t = \frac{1}{|B|}\sum_{i\in B}\nabla \ell_i(w_t)
  • اگر نمونه‌ها یکنواخت و تصادفی انتخاب شوند، gtg_t تخمین بی‌طرف گرادیان کامل است.
  • واریانس آن با 1/∣B∣1/|B| کم می‌شود، پس انحراف معیارش با 1/∣B∣1/\sqrt{|B|}.
  • با نرخ یادگیری ثابت، SGD در نزدیکی بهینه نوسان می‌کند. برای همگرایی کامل باید نرخ کاهش یابد (شرایط رابینز-مونرو: ∑tηt=∞\sum_t \eta_t = \infty و ∑tηt2<∞\sum_t \eta_t^2 < \infty).

مومنتوم

مومنتوم (روش گوی سنگین) یک «سرعت» نگه می‌دارد که میانگین نمایی گرادیان‌های قبلی است:

vt+1=β vt+∇f(wt),wt+1=wt−η vt+1v_{t+1} = \beta\,v_t + \nabla f(w_t), \qquad w_{t+1} = w_t - \eta\,v_{t+1}
  • در جهت‌هایی که گرادیان ثابت است، سرعت جمع می‌شود و حرکت تند می‌شود.
  • در جهت‌هایی که گرادیان مدام علامت عوض می‌کند (دیواره‌های یک دره‌ی باریک)، اثرها هم را خنثی می‌کنند و نوسان کم می‌شود.

اگر گرادیان ثابت gg باشد، vv به g/(1−β)g/(1-\beta) میل می‌کند. یعنی قدم مؤثر η/(1−β)\eta/(1-\beta) است و با β=0.9\beta = 0.9 حدود ۱۰ برابر می‌شود.

مومنتوم نستروف گرادیان را به‌جای نقطه‌ی فعلی، در نقطه‌ی «پیش‌بینی‌شده» حساب می‌کند و معمولاً کمی پایدارتر است.

تمرین‌های این درس را حل کن (رایگان)