کاهش گرادیان(Gradient Descent) در شبکه های عصبی

در درس قبلی با بحث پس انتشار خطا آشنا شدیم و متوجه شدیم که شبکه های عصبی برای به هنگام سازی وزن و انحراف های مختلف باید عملیات پس انتشار را در هر بار اجرای الگوریتم انجام دهند. هر تکرار از اجرای الگوریتم که یک Iterate شناخته می شود میتواند وزن و انحرف ها را به گونه ای به هنگام(Update) کند که الگوریتم شبکه عصبی بتواند ویژگی های مختلف و طبقه های مختلف را شناسایی کند. در این درس به بحث کاهش گرادیان(Gradient Descent) در شبکه های عصبی می پردازیم که در واقع پایه عملیات پس انتشار خطا می باشد.

شکل زیر را از درس قبل به خاطر دارید:

گفتیم که در این مثال به دنبال کمترین مقدار خطا می گردیم. که با توجه به وزن ها کمترین میزان خطا در وزن ۱.۵ رخ داده است که مقدار آن برابر ۱ است. یعنی ما با کم و زیاد کردن مقدار وزن میخواهیم کمترین میزان خطا را مشخص کنیم. اما در شبکه های عصبی(همان طور که بعدا خواهیم دید) تعداد بسیار بیشتری وزن خواهیم داشت که بایستی به هنگام(Update) شوند. مثلا در یک شبکه عصبی جهت پردازش تصویر ممکن است تا ۱۰۰۰ یا بیشتر وزن داشته باشیم که در این صورت میبایستی تابع خطا را با توجه به هر ۱۰۰۰ وزن مختلف ارزیابی کرده و سپس هر کدام از این وزن ها را تغییر داده و دوباره ارزش دهی کنیم. همان طور که تصور میکنید این عملیات بسیار وقت گیر و پرهزینه است. برای غلبه بر این مشکل از روشی به اسم کاهش گرادیان استفاده می شود که در این درس به آن می پردازیم.

فرض کنید به جای مثال بالا، نمودار(که در واقع بیان گر خطاها در وزن های مختلف است) مقادیر خطا بر وزن w1 به صورت زیر باشد:

همان طور که مشاهده میکنید، کمترین میزان خطا در وزن ۷ اتفاق افتاده است. در روش کاهش گرادیان برای پیدا کردن این وزن از قوانین مشتق استفاده میکنیم. همان طور که میدانید مشتق نشان دهنده شیب خط مماس بر یک نقطه از یک تابع است. برای اینکه کمترین میزان خطا را به دست آوریم فرض میکنیم یک نقطه دلخواه(یک وزن دلخواه) را در این تابع در نظر گرفته ایم. مثلا نقطه ۱(یعنی وزن ۱). حال به تصویر زیر نگاه کنید:

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

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

حال که یادگیری انجام شد، شبکه دارای وزن ها و انحراف مشخص است. از این به بعد شبکه میتواند یک سری ویژگی(مثلا ویژگی های یک پراید) را بگیرد و تشخیص دهد که این یک پراید است یا خیر. که البته همان طور که واضح است، این پیش بینی دارای خطایی نیز می باشد.

مثال بالا یک حالت بسیار بسیار ساده فقط با یک وزن بود. در شبکه های عصبی که وزن های بسیار زیاد(تا ۱۰۰۰یا بیشتر) برای به هنگام سازی وجود دارد سرعت روش کاهش گرادیان به خوبی نمایان می شود چرا که روش پس انتشار خطا همراه با کاهش گرادیان میتواند بسیار سریع نقطه کمینه معقول برای خطا را پیدا کند.

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

منابع این بحث و اطلاعات بیشتر

» وب سایت Analytics Vidhya

» وب سایت KD Nuggets

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

پاسخ دهید

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