نزول شیب تصادفی در مقابل دسته ای

  • 2021-09-19

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

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

نزول گرادیان

این یک الگوریتم بهینه سازی تکراری برای یافتن حداقل یک تابع است. الگوریتم گام هایی متناسب با شیب منفی تابع در نقطه فعلی برمی دارد [1]. در یادگیری عمیق شبکه های عصبی با تعریف تابع ضرر و بهینه سازی پارامترهای شبکه برای دستیابی به حداقل عملکرد تربیت می شوند. بهینه سازی با استفاده از الگوریتم گرادیان نزولی که در این دو مرحله عمل می کند:

  1. شیب (شیب) را که مشتق مرتبه اول تابع در نقطه فعلی است محاسبه کنید
  2. حرکت در جهت مخالف افزایش شیب از نقطه فعلی توسط مقدار محاسبه شده

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

نزول گرادیان تصادفی

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

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

مزایای نزول شیب تصادفی

  1. راحت تر به حافظه متصل می شود به دلیل یک نمونه تمرین واحد که توسط شبکه پردازش می شود
  2. از نظر محاسباتی سریع است زیرا فقط یک نمونه در یک زمان پردازش می شود
  3. برای مجموعه داده های بزرگتر می تواند سریعتر همگرا شود زیرا باعث بروزرسانی بیشتر پارامترها می شود
  4. با توجه به به روزرسانی های مکرر مراحل انجام شده به سمت حداقل عملکرد ضرر دارای نوساناتی است که می تواند به خارج شدن از حداقل های محلی عملکرد ضرر کمک کند (در صورتی که موقعیت محاسبه شده حداقل محلی باشد)

معایب نزول گرادیان تصادفی

  1. با توجه به به روز رسانی های مکرر مراحل انجام شده به سمت حداقل بسیار پر سر و صدا هستند. این اغلب می تواند شیب نزولی را به جهات دیگر هدایت کند.
  2. همچنین با توجه به مراحل پر سر و صدا ممکن است طولانی تر برای رسیدن به همگرایی به حداقل تابع از دست دادن
  3. به روزرسانی های مکرر به دلیل استفاده از همه منابع برای پردازش یک نمونه تمرین در یک زمان از نظر محاسباتی گران هستند
  4. این مزیت عملیات بردار را از دست می دهد زیرا فقط با یک مثال واحد در یک زمان سروکار دارد

نزول گرادیان دسته ای

مفهوم انجام نزول گرادیان همان است نزول گرادیان تصادفی. با این تفاوت که به جای بروزرسانی پارامترهای شبکه پس از محاسبه از دست دادن هر نمونه اموزشی در مجموعه اموزشی پارامترها یک بار بروزرسانی می شوند که بعد از گذر تمام نمونه های اموزشی از شبکه می باشد. به عنوان مثال اگر مجموعه داده شامل 100 نمونه تمرینی باشد پارامترهای شبکه عصبی یک بار به روز می شوند. معادله در شکل 2 فقط یک بار تکرار می شود.

مزایای نزول گرادیان دسته ای

  1. نوسانات کمتر و گام های پر سر و صدا به سمت حداقل جهانی تابع ضرر ناشی از به روزرسانی پارامترها با محاسبه میانگین تمام نمونه های تمرینی به جای مقدار یک نمونه واحد
  2. این می تواند از برداری بهره مند شود که سرعت پردازش تمام نمونه های تمرینی را با هم افزایش می دهد
  3. این یک همگرایی شیب نزولی پایدارتر و گرادیان خطای پایدار نسبت به نزول شیب تصادفی ایجاد می کند
  4. از نظر محاسباتی کارایی دارد زیرا از تمام منابع رایانه ای برای پردازش یک نمونه استفاده نمی شود بلکه برای همه نمونه های تمرینی استفاده می شود

معایب نزول گرادیان دسته ای

  1. گاهی اوقات یک گرادیان خطای پایدار می تواند منجر به حداقل محلی شود و بر خلاف نزول گرادیان تصادفی هیچ مرحله پر سر و صدایی برای کمک به خارج شدن از حداقل محلی وجود ندارد
  2. کل مجموعه تمرین می تواند برای پردازش در حافظه بسیار بزرگ باشد و به همین دلیل ممکن است به حافظه اضافی نیاز باشد
  3. بسته به منابع رایانه ای پردازش تمام نمونه های تمرینی به صورت دسته ای ممکن است خیلی طول بکشد

دسته مینی دسته ای شیب نزولی دسته ای : سازش

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

این تضمین می کند که مزایای زیر از هر دو نزول شیب تصادفی و دسته ای استفاده می شود که به همین دلیل از نزول شیب دسته ای مینی بیشتر در عمل استفاده می شود.

  1. به راحتی در حافظه جا می شود
  2. از نظر محاسباتی کارا است
  3. از بردار شدن بهره مند شوید
  4. اگر در حداقل های محلی گیر کرده, برخی از مراحل پر سر و صدا می تواند راه را از منجر
  5. میانگین نمونه های تمرینی باعث ایجاد گرادیان خطای پایدار و همگرایی می شود

در این پست من به طور خلاصه بیش از الگوریتم گرادیان نزول با توضیحات مفصل در روش های مختلف از تبار گرادیان رفت. من امیدوارم که این پست فراهم می کند برخی از وضوح در تفاوت بین نزول گرادیان تصادفی و تبار گرادیان دسته ای.

اگر دوست دارید این پست و یا مفید لطفا ترک یک کف زدن!

اگر در این پست خطا یا مشکلی مشاهده کردید, لطفا با من تماس بگیرید divakar239@icloud. com را اصلاح خواهم کرد.

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.