8 مشکلات رایج در آموزش شبکه عصبی و راه حل ها برای آنها

  • 2022-05-5

در این مقاله ، مشکلاتی مانند Optima محلی ، نوسانات و انحنای با شرط بد را مشاهده خواهیم کرد که ممکن است هنگام آموزش یک شبکه عصبی بوجود بیاید. ما همچنین بحث خواهیم کرد که چگونه می توان این مسائل و ترفندها را برای غلبه بر آنها مشاهده کرد.

هنگامی که ما در حال آموزش یک شبکه عصبی هستیم ، از الگوریتم نزول شیب برای آموزش مدل استفاده می کنیم و هدف ما به حداقل رساندن عملکرد هزینه برای دستیابی به مقادیر بهینه برای پارامترهای مدل یعنی برای رسیدن به Optima جهانی است. اما اگر ضرر را برای شبکه عصبی ترسیم کنید ، باید مشاهده کرده باشید که بهینه جهانی وجود دارد اما در عین حال ، به Optima محلی نیز وجود دارد. و بسته به نوع شبکه عصبی که در حال آموزش هستید ، تعداد انگشت شماری از هایپرپارامتری وجود دارد که برای رسیدن به بهینه جهانی نیاز به تنظیم آنها دارید. بنابراین ، بیشتر اوقات سفر به سمت بهینه جهانی ساده نیست و ممکن است فرد با چندین مسئله روبرو شود ، حتی اگر الگوریتم به درستی اجرا شود.

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

تقارن وزن

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

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

پیشرفت آهسته

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

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

بی ثباتی و نوسانات

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

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

راه حل: همانطور که در بالا توضیح داده شد، داشتن نرخ یادگیری زیاد منجر به ناپایداری یا نوسان می شود. بنابراین، اولین راه حل این است که میزان یادگیری را با کاهش تدریجی آن تنظیم کنید.

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

در اینجا Θ بردار پارامتر مدل (وزن‌ها و سوگیری‌ها) است، «α» نرخ یادگیری، «ε» هزینه و «μ» حرکت است. Momentum مقدار 0≤μ≤1 را می گیرد. وقتی μ=0، گرادیان نزول استاندارد (نزول گرادیان بدون مومنتوم) را دریافت می کنیم.

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

اپتیما محلی

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

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

نوسانات

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

راه حل: راهی بهتر برای مقابله با نوسانات ، پوسیدگی نرخ یادگیری است. در این رویکرد ، ما نرخ یادگیری را نسبتاً زیاد در طول آموزش و درست به پایان می رسانیم ، وقتی پارامترهای مدل به طور متوسط خوب هستند اما به دلیل نوسانات هزینه بالایی داریم ، ما آن را با استفاده از قانون زیر پوسیدگی می کنیم:

در اینجا ، α0 نرخ یادگیری اولیه است ، t تعداد تکرار ، τ بازه زمانی پوسیدگی است و t = 0 با شروع پوسیدگی مطابقت دارد.

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

واحدهای مرده و اشباع

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

راه حل: از آنجا که واحدهای مرده و اشباع شده باعث ایجاد وضعیت فلات می شوند ، می توانیم از یک عملکرد فعال سازی مانند RELU استفاده کنیم که اشباع نمی شود. RELU برای مقادیر مثبت اشباع نمی شود ، که راحت است اما می تواند برای مقادیر منفی بمیرد. بنابراین اولیه سازی تعصبات با مقادیر مثبت مفید است.

انحنای بد شرط

مشکل: یک انحنای با شرط بد ، یعنی دره سطحی است که انحنای آن از جهات مختلف متفاوت است.

عملکرد Rosenbrock به عنوان نمونه بهینه سازی مورد استفاده قرار می گیرد. منطقه آبی دره یا منطقه ای با انحنای بد با شرط را نشان می دهد.

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

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

ثبت دیدگاه

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