40 گام به سوی آینده‌ای هوشمند - مجموعه وبینارهای رایگان در حوزه هوش مصنوعی
Filter by دسته‌ها
chatGTP
آموزش هوش مصنوعی و انواع آن
آموزش‌های پایه‌ای هوش مصنوعی
اصول هوش مصنوعی
پایتون و ابزارهای یادگیری عمیق
کتابخانه‌ های یادگیری عمیق
یادگیری با نظارت
یادگیری بدون نظارت
یادگیری تقویتی
یادگیری عمیق
یادگیری نیمه نظارتی
آموزش‌های پیشرفته هوش مصنوعی
بینایی ماشین
پردازش زبان طبیعی
پردازش گفتار
چالش‌های عملیاتی
داده کاوی و بیگ دیتا
رایانش ابری و HPC
سیستم‌‌های امبدد
علوم شناختی
دیتاست
اخبار
تیتر یک
رسانه‌ها
آموزش پردازش زبان طبیعی
آموزش علوم داده
اینفوگرافیک
پادکست
ویدیو
رویدادها
کاربردهای هوش مصنوعی
کسب‌و‌کار
تحلیل بازارهای هوش مصنوعی
کارآفرینی
هوش مصنوعی در ایران
هوش مصنوعی در جهان
 گرادیان کاهشی و گرادیان کاهشی تصادفی و نقش آن‌ها در شبکه‌های عصبی

گرادیان کاهشی و گرادیان کاهشی تصادفی و نقش آن‌ها در شبکه‌های عصبی

اگر قبلاً یک شبکه‌ عصبی آموزش داده‌اید، به طور حتم با الگوریتم گرادیان کاهشی و انواع آن آشنایی دارید. در شبکه های عصبی به منظور یافتن پارامتری که بتواند مقدار تابع زیان را به حداقل برساند، از این الگوریتم‌ها استفاده می‌شود. عملکرد این الگوریتم‌ها بسیار ساده است: به ازای تمامی جفت‌ نمونه‌هایی که در دیتاست آموزشی ? وجود دارند میانگین گرادیان را به دست می‌آوریم، سپس برای هر تکرار t گرادیان را تخمین می‌زنیم:

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

در معادله فوق، n برابر با تعداد کل نمونه‌هایی است که در دیتاست آموزشی قرار دارند؛ ?  همان تابع زیانی است که قصد داریم به حداقل برسانیم؛  گرادیان‌ها هستند، به عبارت دیگر، بُردار مشتق جزئی  نسبت به θ?. در شبکه‌های عصبی با استفاده از الگوریتم پس انتشار هم می‌توانیم مقدار گرادیان را به دست آوریم. پس از تخمین گرادیان، پارامتر را در جهت مخالف گرادیان به‌روز رسانی می‌کنیم:

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

در این معادله، η برابر با نرخ یادگیری است؛ نرخ یادگیری مقداری است که تعیین می‌کند پارامتر چقدر می‌تواند در جهت عکسِ مقدار برآوردشده‌ی گرادیان به روز رسانی شود.

همان‌گونه که در معادله شماره ۱ مشاهده می‌کنید، برای تخمین گرادیان در گرادیان کاهشی باید میانگین تمامی n نمونه را به دست بیاوریم. بدون شک، اگر دیتاست آموزشی‌مان از میلیون‌ها یا میلیاردها نمونه تشکیل شده باشد، در محاسبه میانگین به مشکل می‌خوریم و به همین دلیل هر تکرار (iteration) بسیار طولانی خواهد بود. برای ممانعت از بروز چنین مشکلی می‌توانیم از گرادیان کاهشی تصادفی استفاده کنیم. به عبارت دیگر، در هر تکرار، از  n′ نمونه‌ی موجود در دیتاست آموزشی یک ریز-دسته ? نمونه‌برداری می‌کنیم. این نمونه‌ها به طور یکنواخت از دیتاست آموزشی نمونه‌برداری می‌شوند و اندازه ریزدسته n′ ثابت و نسبتاً کوچک‌تر از n است. برای به‌روز رسانی تمامی پارامترها، به ازای تمامی جفت نمونه‌های موجود در ریز-دسته ? (به جای دیتاست آموزشی ?) گرادیان را تخمین می‌زنیم. در این حالت، معادل تخمین گرادیان به شکل زیر خواهد بود:

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

پس از تخمین گرادیان،  پارامتر را در جهت مخالف گرادیان به روز رسانی می‌کنیم:

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

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

یکی از مزایای گرادیان کاهشی تصادفی در این است که در این الگوریتم گرادیان را فقط به ازای نمونه‌های موجود در ریز-دسته تخمین می‌زنیم و به همین دلیل اندازه دیتاست آموزشی بر مدت زمان انجام محاسبات تاثیری نخواهد داشت. از سوی دیگر بدون نگرانی راجع به مدت زمان انجام محاسبات می‌توانیم حجم دیتاست آموزشی را افزایش دهیم؛ دیتاست‌های آموزشی بزرگ‌تر این امکان را برای ما فراهم می‌کنند تا از مدل‌های پیچیده‌تری که احتمال بیش‌ برازش‌شان کمتر است، استفاده کنیم. جالب است بدانید مقدار مورد انتظار گرادیان در الگوریتم گرادیان کاهشی تصادفی برابر با مقدار گرادیان در دسته گرادیان کاهشی است؛ این مقدار نشان می‌دهد چه زمانی از ریزدسته با اندازه ۱ (n′=۱) استفاده می‌کنیم. اگر بخواهیم مقدار گرادیان را در x تخمین بزنیم، در حالتی‌که x در هر تکرار t به طور یکنواخت انتخاب ‌می‌شود، معادله به شکل زیر خواهد بود:

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

با توجه به اینکه برای n نمونه‌ی موجود در دیتاست آموزشی، نمونه‌ها را به صورت یکنواخت نمونه‌برداری می‌کنیم، برای محاسبه مقدار مورد انتظار از معادله زیر استفاده می‌کنیم:

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

در گرادیان کاهشی تصادفی، مقدار برآوردشده‌ی گرادیان را باید برآوُرد گرادیانِ تمامی نمونه‌های موجود در دیتاست آموزشی در نظر بگیرید که توسط نویز به دیتاست اضافه شده‌اند؛ این نویز در نتیجه نمونه‌برداری تصادفی از ریز-دسته های به وجود آمده است. شاید این سؤال برای شما پیش‌ بیاید  که « زمانی‌که گرادیان کاهشی می‌تواند گرادیانی بدون نویز به ما بدهد، چه لزومی دارد از گرادیان‌های نویزدارِ گرادیان کاهشی تصادفی استفاده کنیم؟» سؤال خوبی است. جواب این سوال را هم می‌توانید در بخش اول همین مطلب آموزشی بیابید. اگر توجه کرده باشد من همیشه از عبارت « تخمین/ برآوُرد گرادیان» استفاده می‌کنم. دلیل آن هم این است که ما تمامی جفت‌داده‌های احتمالی را نمی‌دانیم و در نتیجه نمی‌توانیم «مقدار گرادیان حقیقی» را محاسبه کنیم و فقط بر مبنای جفت نمونه‌های موجود در دیتاست آموزشی است که می‌توانیم «گرادیان حقیقی» را تخمین بزنیم. در الگوریتم گرادیان کاهشی می‌توانیم به ازای تمامی نمونه‌های موجود در دیتاست آموزشی گرادیان را تخمین بزنیم. البته این کار باعث می‌شود مقدار برآوردشده‌ی گرادیان نسبت به دیتاست آموزشی بایاس شود. و این یکی دیگر از مزایای گرادیان کاهشی تصادفی است؛ به عبارت دیگر، در تخمین گرادیان، ریزدسته کوچک می‌تواند به مثابه یک تنظیم‌کننده (regularizer) عمل کند.

توجه داشته باشید که اصطلاح گرادیان کاهشی تصادفی اغلب در موارد آنلاین یا استفاده از یک نمونه در هر تکرار به کار می‌رود. من در این مطلب آموزشی، اصطلاح گرادیان کاهشی تصادفی را به جای گرادیان کاهشی ریز-دسته به کار بردم و زمانی به صورت آنلاین استفاده می‌شود که n′=۱. البته گرادیان کاهشی تصادفی معایب و محدودیت‌هایی نیز دارد که موجب می‌شود تغییرات و اصلاحاتی در الگوریتم‌ها، به ویژه برای افزایش نرخ همگرایی الگوریتم‌ها، اعمال شود. برخی از مهم‌ترین الگوریتم‌هایی که برای آموزش شبکه‌های عصبی استفاده می‌شوند، عبارتند از: Momentum، Nesterov، AdaGrad، RMSProp، Adam و غیره.

میانگین امتیاز / ۵. تعداد ارا :

مطالب پیشنهادی مرتبط

اشتراک در
اطلاع از
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
[wpforms id="48325"]