![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
گرادیان نزول محبوبترین تکنیک بهینهسازی در مدلسازی یادگیری ماشین (ML) است. الگوریتم خطای بین مقادیر پیش بینی شده و حقیقت زمین را به حداقل می رساند. از آنجایی که این تکنیک هر نقطه داده را برای درک و به حداقل رساندن خطا در نظر می گیرد، عملکرد آن به اندازه داده های آموزشی بستگی دارد. تکنیک هایی مانند نزول گرادیان تصادفی (SGD) برای بهبود عملکرد محاسباتی طراحی شده اند، اما به قیمت دقت همگرایی.
گرادیان میانگین تصادفی، رویکرد کلاسیک را که به عنوان نزول گرادیان کامل و SGD شناخته می شود، متعادل می کند و هر دو مزیت را ارائه می دهد. اما قبل از اینکه بتوانیم از الگوریتم استفاده کنیم، ابتدا باید اهمیت آن را برای بهینه سازی مدل درک کنیم.
هر الگوریتم ML دارای یک تابع ضرر مرتبط است که هدف آن به حداقل رساندن یا بهبود عملکرد مدل است. از نظر ریاضی، ضرر را می توان به صورت زیر تعریف کرد:
این به سادگی تفاوت بین خروجی واقعی و پیش بینی شده است، و به حداقل رساندن این تفاوت به این معنی است که مدل ما به مقادیر حقیقت پایه نزدیک تر می شود.
الگوریتم کمینه سازی از شیب نزولی برای عبور از تابع ضرر و یافتن یک حداقل جهانی استفاده می کند. هر مرحله پیمایش شامل به روز رسانی وزن های الگوریتم برای بهینه سازی خروجی است.
الگوریتم نزولی گرادیان معمولی از میانگین همه گرادیان های محاسبه شده در کل مجموعه داده استفاده می کند. چرخه عمر یک مثال آموزشی به صورت زیر است:
معادله به روز رسانی وزن به صورت زیر است:
جایی که W
وزن مدل را نشان میدهد و dJ/dW
مشتق تابع کاهش با توجه به وزن مدل است. روش مرسوم نرخ همگرایی بالایی دارد، اما زمانی که با مجموعه داده های بزرگی که میلیون ها نقطه داده را شامل می شود، از نظر محاسباتی گران می شود.
روش SGD مانند GD ساده باقی می ماند، اما به جای استفاده از کل مجموعه داده برای محاسبه گرادیان ها، از یک دسته کوچک از ورودی ها استفاده می کند. این روش بسیار کارآمدتر است، اما ممکن است بیش از حد در اطراف حداقل های جهانی حرکت کند، زیرا هر تکرار فقط از بخشی از داده ها برای یادگیری استفاده می کند.
رویکرد گرادیان میانگین تصادفی (SAG) به عنوان یک حد وسط بین GD و SGD معرفی شد. یک نقطه داده تصادفی را انتخاب می کند و مقدار آن را بر اساس گرادیان در آن نقطه و میانگین وزنی گرادیان های گذشته ذخیره شده برای آن نقطه داده خاص به روز می کند.
مشابه SGD، SAG هر مسئله را به صورت مجموع محدودی از توابع محدب و قابل تمایز مدل میکند. در هر تکرار معین، از گرادیان های فعلی و میانگین گرادیان های قبلی برای به روز رسانی وزن استفاده می کند. معادله به شکل زیر است:
بین دو الگوریتم محبوب، گرادیان کامل (FG) و گرادیان نزولی تصادفی (SGD)، الگوریتم FG نرخ همگرایی بهتری دارد زیرا از کل مجموعه داده در طول هر تکرار برای محاسبه استفاده می کند.
اگرچه SAG ساختاری مشابه SGD دارد، اما نرخ همگرایی آن قابل مقایسه و گاهی بهتر از رویکرد گرادیان کامل است. جدول 1 زیر نتایج حاصل از آزمایشات را خلاصه می کند
علیرغم عملکرد شگفت انگیز آن، چندین اصلاح برای الگوریتم اصلی SGD برای کمک به بهبود عملکرد پیشنهاد شده است.
گرادیان نزول یک بهینه سازی محبوب است که برای مکان یابی حداقل های جهانی توابع هدف ارائه شده استفاده می شود. الگوریتم از گرادیان تابع هدف برای عبور از شیب تابع تا رسیدن به پایین ترین نقطه استفاده می کند.
نزول گرادیان کامل (FG) و شیب تصادفی نزول (SGD) دو نوع محبوب الگوریتم هستند. FG از کل مجموعه داده در طول هر تکرار استفاده می کند و نرخ همگرایی بالایی را با هزینه محاسباتی بالا ارائه می دهد. در هر تکرار، SGD از زیر مجموعه ای از داده ها برای اجرای الگوریتم استفاده می کند. بسیار کارآمدتر اما با همگرایی نامشخص است.
گرادیان میانگین تصادفی (SAG) تغییر دیگری است که مزایای هر دو الگوریتم قبلی را فراهم می کند. از میانگین گرادیان های گذشته و زیرمجموعه ای از مجموعه داده برای ارائه نرخ همگرایی بالا با محاسبات کم استفاده می کند. الگوریتم را می توان برای بهبود کارایی آن با استفاده از بردارسازی و مینی دسته ها اصلاح کرد.