روش بی اف جی اس با حافظه محدود (L-BFGS - Limited-memory BFGS)، در ریاضیات (Mathematics)
انواع روش های عددی (Numerical Methods) را در آموزش زیر شرح دادیم :
روش بی اف جی اس با حافظه محدود (L-BFGS - Limited-memory BFGS) :
نسخه کم حافظه BFGS برای مسائل بزرگ مقیاس
توضیح ساده: روش L-BFGS (Limited-memory BFGS) یک نسخه از روش BFGS است که برای حل مسائل بهینه سازی با تعداد متغیرهای بسیار زیاد (بیش از ۱۰۰۰۰) طراحی شده است. در BFGS استاندارد، یک ماتریس n×n ذخیره می شود که برای n بزرگ غیرممکن است. در L-BFGS، به جای ذخیره ماتریس کامل، تنها بردارهای s و y از چند تکرار آخر (معمولا ۵ تا ۲۰) ذخیره می شوند و جهت جستجو با استفاده از این بردارها به طور ضمنی محاسبه می گردد. این روش در یادگیری ماشین و شبکه های عصبی بسیار محبوب است.
شرح گام به گام: ایده اصلی L-BFGS:
۱. تاریخچه ای از m جفت (sᵢ, yᵢ) از m تکرار آخر را ذخیره کنید (معمولا m بین ۵ تا ۲۰).
۲. جهت جستجو dₐ با استفاده از این تاریخچه و یک الگوریتم دوحلقه ای (two-loop recursion) بدون تشکیل صریح ماتریس H محاسبه می شود.
۳. الگوریتم دوحلقه ای:
q = gₐ
برای i = k-1 down to k-m:
αᵢ = ρᵢ sᵢᵀ q
q = q - αᵢ yᵢ
r = Hₐ⁰ q (معمولا Hₐ⁰ = γ I با γ = (y_{k-1}ᵀ s_{k-1})/(y_{k-1}ᵀ y_{k-1}))
برای i = k-m up to k-1:
β = ρᵢ yᵢᵀ r
r = r + sᵢ (αᵢ - β)
dₐ = -r
۴. سپس با جستجوی خطی، xₐ₊₁ = xₐ + α dₐ محاسبه می شود.
مثال عددی: در یادگیری ماشین، بهینه سازی شبکه های عصبی با میلیون ها پارامتر. L-BFGS یکی از الگوریتم های محبوب برای مسائل با اندازه متوسط (نسبت به SGD) است. در نرم افزارهایی مانند SciPy، تابع minimize با روش L-BFGS-B (نسخه محدودشده با کران) موجود است.
مزایا: حافظه O(nm) (به جای O(n²))، مناسب برای مسائل بزرگ مقیاس، همگرایی سریع تر از گرادیان کاهشی.
معایب: پیچیده تر از گرادیان کاهشی، نیاز به تنظیم پارامتر m، برای مسائل با نویز زیاد ممکن است کارایی کمتری داشته باشد.
کاربردها: در یادگیری ماشین (بهینه سازی مدل ها)، در بینایی کامپیوتر، در پردازش سیگنال، در معکوس سازی.
نکته: نسخه L-BFGS-B کران های متغیرها را نیز پشتیبانی می کند.