زمان تخمینی مطالعه: 8 دقیقه

مدل‌های بینایی کامپیوتر از داده‌های آموزشی برای یادگیری رابطه بین داده‌های ورودی و خروجی استفاده می‌کنند. آموزش یک فرآیند بهینه‌سازی است. گرادیان نزولی(Gradient descent) یک روش بهینه‌سازی(Optimization) مبتنی بر تابع هزینه است. تفاوت بین ارزش پیش‌بینی شده و واقعی داده‌ها را مشخص می‌کند. مدل‌های بینایی کامپیوتر(CV) سعی می‌کنند این تابع تلفات(Loss Function) را به حداقل برسانند یا شکاف بین داده‌های پیش‌بینی شده و خروجی واقعی را کاهش دهند. برای آموزش یک مدل یادگیری عمیق ما تصاویر حاشیه نویسی شده را ارائه می دهیم. در هر تکرار گرادیان نزولی سعی می‌کند خطا را کاهش دهد و دقت مدل را بهبود بخشد. سپس برای رسیدن به هدف مورد نظر، فرآیند آزمایشی را طی می‌کند. شبکه‌های عصبی پویا از روش‌های بهینه‌سازی برای رسیدن به هدف استفاده می‌کنند. آنها به روشی کارآمد برای دریافت بازخورد در مورد موفقیت نیاز دارند. الگوریتم‌های بهینه‌سازی این حلقه بازخورد را ایجاد می‌کنند تا به مدل کمک کند تا به طور دقیق به هدف برسد.
به عنوان مثال، مدل‌های طبقه‌بندی تصویر از مقادیر RGB تصویر برای تولید کلاس‌هایی با امتیاز اطمینان استفاده می‌کنند. آموزش آن شبکه در مورد به حداقل رساندن یک تابع ضرر است. مقدار تابع تلفات معیاری را ارائه می‌کند که نشان می‌دهد که یک شبکه با یک مجموعه داده مشخص چقدر از عملکرد هدف فاصله دارد. در این مقاله، قصد داریم یکی از محبوب‌ترین روش‌های بهینه‌سازی در بینایی ماشین یعنی Gradient Descent (GD) را توضیح خواهیم داد.

گرادیان نزولی چیست؟

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

نمایش گرافیکی الگوریتم گرادیان نزولی

در این الگوریتم آموزش تدریجی با تقویت‌های مثبت هنگام رسیدن به یک هدف خاص انجام می‌شود.

گرادیان نزولی چگونه کار می کند؟

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

میزان یادگیری در گرادیان نزولی

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

مسائل مربوط به گرادیان نزولی

ساختارهای پیچیده مانند شبکه‌های عصبی شامل تبدیل‌های غیر خطی در تابع فرض(hypothesis function) هستند. این امکان وجود دارد که تابع ضرر آنها مانند یک تابع محدب با حداقل یک به نظر نرسد. گرادیان می‌تواند در یک حداقل محلی صفر یا در یک حداقل سراسری در کل دامنه صفر باشد. اگر به حداقل‌های محلی برسد، فرار از آن نقطه دشوار خواهد بود. نقاط زینی شکل نیز در تابع وجود دارد که تابع در یک جهت حداقل و در جهت دیگر ماکزیمم محلی است. این توهم همگرایی را به حداقل می‌رساند. غلبه بر این چالش‌های گرادیان نزولی مفهومی مهم است:

نظارت بر گرادیان نزولی در نمودارها به شما امکان می‌دهد تشخیص دهید که آیا به درستی کار می‌کند یا خیر. در بیشتر موارد، دلیل افزایش تابع هزینه هنگام استفاده از گرادیان نزولی، نرخ یادگیری زیاد است.

انواع گرادیان نزولی

بر اساس مقدار داده‌ای که الگوریتم استفاده می‌کند سه نوع گرادیان نزولی وجود دارد:

دیدگاهتان را بنویسید

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