گرادیان کاهشی

کاهش گرادیان () الگوریتم بهینه‌سازی مرتبهٔ اول از نوع الگوریتم‌های تکرار شونده است. برای یافتن کمینهٔ محلی یک تابع با استفاده از این الگوریتم، گام‌هایی متناسب با منفی گرادیان (یا گرادیان تخمینی) تابع در محل فعلی برداشته خواهد شد. اگر در استفاده از این الگوریتم، گام‌هایی متناسب با جهت مثبت گرادیان برداشته شود، به بیشینهٔ محلی تابع نزدیک می‌شویم که به این فرایند افزایش گرادیان گفته می‌شود. اگر تابع محدب یا مقعر باشد به بیشینه جهانی می‌رسیم. بسیاری از مسائل یادگیری ماشینی محدب هستند و ازین رو گرادیان کاهشی جواب بهینه را در این مسائل تولید می‌کند.

 توضیح الگوریتم 
فرض می‌کنیم تابعی چند متغیره به اسم داریم که مشتق‌پذیر است و هدف یافتن یک نقطه  است که تابع را به حداقل ممکن برساند. برای نقطه  جهتی که مقدار تابع با بیشترین شیب به صورت محلی کاهش پیدا می‌کند، خلاف جهت گرادیان تابع در آن نقطه یعنی بردار است.

الگوریتم گرادیان کاهشی به صورت متناوب هر بار مقداری در خلاف جهت گرادیان حرکت می‌کند به این معنی که . در اینجا  مقداری است که هربار الگوریتم در خلاف جهت گرادیان حرکت می‌کند. معمولاً این مقدار بسیار کوچک است.

برای توابع محدب هر بار مقدار تابع یا کمتر می‌شود یا ثابت می‌ماند به این معنی که

با نزدیک شدن به نقطه بهینه، از آنجا که گرادیان به صفر نزدیک می‌شود مقادیر به ثبات می‌رسند و تغییر محسوسی نمی‌کنند.

 توضیح ساده 
تصور کنید در حال اسکی بازی هستید! هر چقدر شیب بیشتر باشد، در هر لحظه طول بیشتری را لیز خواهید خورد! در روش نزول شیب، هر چه شیب بیشتر باشد، طول گام در جهت مخالف بیشتر خواهد شد. دربارهٔ پرسپترون یک لایه:

 مثال 
فرض کنید می‌خواهیم کمینه تابع را با استفاده از الگوریتم کاهش گرادیان پیدا کنیم.

گرادیان این تابعِ دومتغیّریه این بردار است:

معادله الگوریتم گرادیان کاهشی به شکل پایین خواهد بود، برای مقدار  را در نظر گرفته‌ایم،  ورودی در مرحله  است و  ورودی در مرحله  است:

این الگوریتم را می‌توانیم با شکل پایین به تصویر بکشیم.

پیوند=https://en.wikipedia.org/wiki/File:Banana-SteepDesc.gif|400x400پیکسل

 جستارهای وابسته 
 روش گرادیان همیوغ
 روش بی‌اف‌جی‌اس
 روش نلدر - مید
 تقویت گرادیان
رگرسیون خطی
رگرسیون لجیستیک

 منابع 

 پیوند به بیرون 

رده:روش‌های بهینه‌سازی
رده:مقاله‌های دارای کد نمونه به زبان پایتون