گرادیان کاهشی و گرادیان کاهشی تصادفی و نقش آنها در شبکههای عصبی
اگر قبلاً یک شبکه عصبی آموزش دادهاید، به طور حتم با الگوریتم گرادیان کاهشی و انواع آن آشنایی دارید. در شبکه های عصبی به منظور یافتن پارامتری که بتواند مقدار تابع زیان را به حداقل برساند، از این الگوریتمها استفاده میشود. عملکرد این الگوریتمها بسیار ساده است: به ازای تمامی جفت نمونههایی که در دیتاست آموزشی ? وجود دارند میانگین گرادیان را به دست میآوریم، سپس برای هر تکرار t گرادیان را تخمین میزنیم:
در معادله فوق، n برابر با تعداد کل نمونههایی است که در دیتاست آموزشی قرار دارند؛ ? همان تابع زیانی است که قصد داریم به حداقل برسانیم؛ گرادیانها هستند، به عبارت دیگر، بُردار مشتق جزئی نسبت به θ?. در شبکههای عصبی با استفاده از الگوریتم پس انتشار هم میتوانیم مقدار گرادیان را به دست آوریم. پس از تخمین گرادیان، پارامتر را در جهت مخالف گرادیان بهروز رسانی میکنیم:
در این معادله، η برابر با نرخ یادگیری است؛ نرخ یادگیری مقداری است که تعیین میکند پارامتر چقدر میتواند در جهت عکسِ مقدار برآوردشدهی گرادیان به روز رسانی شود.
همانگونه که در معادله شماره 1 مشاهده میکنید، برای تخمین گرادیان در گرادیان کاهشی باید میانگین تمامی n نمونه را به دست بیاوریم. بدون شک، اگر دیتاست آموزشیمان از میلیونها یا میلیاردها نمونه تشکیل شده باشد، در محاسبه میانگین به مشکل میخوریم و به همین دلیل هر تکرار (iteration) بسیار طولانی خواهد بود. برای ممانعت از بروز چنین مشکلی میتوانیم از گرادیان کاهشی تصادفی استفاده کنیم. به عبارت دیگر، در هر تکرار، از n′ نمونهی موجود در دیتاست آموزشی یک ریز-دسته ? نمونهبرداری میکنیم. این نمونهها به طور یکنواخت از دیتاست آموزشی نمونهبرداری میشوند و اندازه ریزدسته n′ ثابت و نسبتاً کوچکتر از n است. برای بهروز رسانی تمامی پارامترها، به ازای تمامی جفت نمونههای موجود در ریز-دسته ? (به جای دیتاست آموزشی ?) گرادیان را تخمین میزنیم. در این حالت، معادل تخمین گرادیان به شکل زیر خواهد بود:
پس از تخمین گرادیان، پارامتر را در جهت مخالف گرادیان به روز رسانی میکنیم:
قانون به روزرسانی این معادله نیز همانند گرادیان کاهشی است. تنها تفاوت این دو گرادیان در تخمین گرادیان است که از آن برای به روزرسانی پارامترها استفاده میکنیم.
یکی از مزایای گرادیان کاهشی تصادفی در این است که در این الگوریتم گرادیان را فقط به ازای نمونههای موجود در ریز-دسته تخمین میزنیم و به همین دلیل اندازه دیتاست آموزشی بر مدت زمان انجام محاسبات تاثیری نخواهد داشت. از سوی دیگر بدون نگرانی راجع به مدت زمان انجام محاسبات میتوانیم حجم دیتاست آموزشی را افزایش دهیم؛ دیتاستهای آموزشی بزرگتر این امکان را برای ما فراهم میکنند تا از مدلهای پیچیدهتری که احتمال بیش برازششان کمتر است، استفاده کنیم. جالب است بدانید مقدار مورد انتظار گرادیان در الگوریتم گرادیان کاهشی تصادفی برابر با مقدار گرادیان در دسته گرادیان کاهشی است؛ این مقدار نشان میدهد چه زمانی از ریزدسته با اندازه 1 (n′=1) استفاده میکنیم. اگر بخواهیم مقدار گرادیان را در x تخمین بزنیم، در حالتیکه x در هر تکرار t به طور یکنواخت انتخاب میشود، معادله به شکل زیر خواهد بود:
با توجه به اینکه برای n نمونهی موجود در دیتاست آموزشی، نمونهها را به صورت یکنواخت نمونهبرداری میکنیم، برای محاسبه مقدار مورد انتظار از معادله زیر استفاده میکنیم:
در گرادیان کاهشی تصادفی، مقدار برآوردشدهی گرادیان را باید برآوُرد گرادیانِ تمامی نمونههای موجود در دیتاست آموزشی در نظر بگیرید که توسط نویز به دیتاست اضافه شدهاند؛ این نویز در نتیجه نمونهبرداری تصادفی از ریز-دسته های به وجود آمده است. شاید این سؤال برای شما پیش بیاید که « زمانیکه گرادیان کاهشی میتواند گرادیانی بدون نویز به ما بدهد، چه لزومی دارد از گرادیانهای نویزدارِ گرادیان کاهشی تصادفی استفاده کنیم؟» سؤال خوبی است. جواب این سوال را هم میتوانید در بخش اول همین مطلب آموزشی بیابید. اگر توجه کرده باشد من همیشه از عبارت « تخمین/ برآوُرد گرادیان» استفاده میکنم. دلیل آن هم این است که ما تمامی جفتدادههای احتمالی را نمیدانیم و در نتیجه نمیتوانیم «مقدار گرادیان حقیقی» را محاسبه کنیم و فقط بر مبنای جفت نمونههای موجود در دیتاست آموزشی است که میتوانیم «گرادیان حقیقی» را تخمین بزنیم. در الگوریتم گرادیان کاهشی میتوانیم به ازای تمامی نمونههای موجود در دیتاست آموزشی گرادیان را تخمین بزنیم. البته این کار باعث میشود مقدار برآوردشدهی گرادیان نسبت به دیتاست آموزشی بایاس شود. و این یکی دیگر از مزایای گرادیان کاهشی تصادفی است؛ به عبارت دیگر، در تخمین گرادیان، ریزدسته کوچک میتواند به مثابه یک تنظیمکننده (regularizer) عمل کند.
توجه داشته باشید که اصطلاح گرادیان کاهشی تصادفی اغلب در موارد آنلاین یا استفاده از یک نمونه در هر تکرار به کار میرود. من در این مطلب آموزشی، اصطلاح گرادیان کاهشی تصادفی را به جای گرادیان کاهشی ریز-دسته به کار بردم و زمانی به صورت آنلاین استفاده میشود که n′=1. البته گرادیان کاهشی تصادفی معایب و محدودیتهایی نیز دارد که موجب میشود تغییرات و اصلاحاتی در الگوریتمها، به ویژه برای افزایش نرخ همگرایی الگوریتمها، اعمال شود. برخی از مهمترین الگوریتمهایی که برای آموزش شبکههای عصبی استفاده میشوند، عبارتند از: Momentum، Nesterov، AdaGrad، RMSProp، Adam و غیره.