«گرادیان کاهشی» (Gradient Descent) یک الگوریتم بهینه‌سازی برای پیدا کردن کمینه یک تابع است. در این الگوریتم کار با یک نقطه تصادفی روی تابع آغاز می‌شود و روی جهت منفی از گرادیان تابع حرکت می‌کند تا به کمینه محلی/سراسری برسد.

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

مثال ملموس

پرسش: کمینه محلی تابع 2(y=(x+5 که از نقطه x=3 آغاز می‌شود برابر چه مقداری است؟

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

راهکار: پاسخ صرفا با نگاه کردن به نمودار مشخص است. 2(y=(x+5 هنگامی به کمینه خود می‌رسد که x = -5 (یعنی x=-5, y=0). بنابراین، x=-5 کمینه محلی و سراسری تابع است. اکنون، می‌توان دید که چگونه مقدار مشابهی به صورت عددی حاصل می‌شود.

گام اول: مقداردهی اولیه با x=۳ انجام می‌شود. سپس، باید گرادیان تابع (dy/dx = 2*(x+5 را پیدا کرد

گام دوم: حرکت در جهت گرادیان منفی صورت می‌پذیرد. پرسشی که در این وهله مطرح می‌شود آن است که به چه میزان باید حرکت کرد؟ برای محاسبه این میزان نیاز به یک نرخ یادگیری است. فرض می‌کنیم که نرخ یادگیری برابر با ۰/۰۱ است.

گام ۳: اکنون دو تکرار از گرادیان کاهشی انجام می‌شود.

گام ۴: می‌توان مشاهده کرد که مقدار X به آهستگی کاهش پیدا می‌کند و باید به ۵- همگرا شود (کمینه محلی). اما سوال این است که چه تعداد تکرار باید انجام شود؟

در راستای پاسخگویی به این سوال، ابتدا یک متغیر دقت در الگوریتم تنظیم می‌شود که تفاوت بین دو مقدار متوالی x را محاسبه می‌کند. اگر تفاوت بین مقادیر x از دو تکرار متوالی کمتر از دقتی باشد که تعیین شده (توسط کاربر)، باید الگوریتم را متوقف کرد.

گرادیان کاهشی در پایتون

گام اول: مقداردهی اولیه

گام دوم: اجرای یک حلقه به منظور اجرای گرادیان کاهشی

نکته: هنگامی که تفاوت بین مقادیر x از دو تکرار متوالی کمتر از 0.000001 باشد یا هنگامی که تعداد تکرارها از ۱۰۰۰۰ بیشتر شود، باید الگوریتم را متوقف کرد.

خروجی: از خروجی زیر می‌توان مقادیر x را برای اولین ۱۰ تکرار  مشاهده کرد که با محاسبات بالا قابل بررسی متقابل است. الگوریتم برای ۵۹۵ تکرار پیش از آنکه متوقف شود اجرا می‌شود. کد و خروجی آن به منظور قابل ارجاع بودن در زیر قرار گرفته‌اند.

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

In [3]:

In [4]:

اگر نوشته بالا برای شما مفید بوده، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

الهام حصارکی (+)

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

بر اساس رای 10 نفر

آیا این مطلب برای شما مفید بود؟

یک نظر ثبت شده در “گرادیان کاهشی (Gradient Descent) و پیاده سازی آن در پایتون — راهنمای کاربردی

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

برچسب‌ها