استفاده از روش Xavier برای مقداردهی اولیه وزن ها - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

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

+1 امتیاز
سلام.

وقتی ما یک شبکه ایجاد می کنیم وزن های اولیه  شبکه را باید حتما با روش xavier مقداردهی نکنیم نمیشه با صفر پر کنیم مشکلی پیش میاد؟اصلا چیکار می کنه روش Xavier؟؟؟
سوال شده آذر 27, 1396  بوسیله ی ثریا (امتیاز 126)   6 24 30

1 پاسخ

+3 امتیاز

یکی از توابع فعال سازی رایج در ابتدا یادگیری عمیق تابع Logistic بود که با استفاده از این تابع واریانس خروجی هر لایه بیشتر از واریانس ورودیش بود وقتی تو شبکه رو به جلو میریم واریانس بعد از هر لایه لایه در حال افزایشه تا جائیکه تابع فعال سازی در لایه های بالایی به سمت صفر و یک اشباع میشه و در نهیت backpropagation دچار مشکل میشخ و عملاً گرادیانی به سمت عقب منتشر نمیشه و گرادیان های کوچک  انتهای شبکه وقتی میرسن به ابتدای شبکه  رقیق و رقیق تر میشن بطورئیکه  به صفر میل می کنند

برای چاره این مسئله باید هم جلوی vanishing gradient و exploding gradinet رو بگیریم که در عمل میشه برابر کردن واریانس در ورودی و خروجی لایه ها بعد از مرحله backward.

برای رفع مشکل بالا آقای Xavier در سال 2010 راه حلی ارائه میده که در آن مقداردهی اولیه وزن ها به صورت تصادفی با توزیع نرمال و یکنواخت انجام میشه البته پیشنهاد اولیه برای تایع Logsitic بوده ولی بعد ها برای تانژانت هایپربولیک و ReLU هم فرمول هایی را افراد دیگر معرفی کرد که در زیر نشان داده شده. در همه مواردی از تعداد ورودی ها و خروجی های شبکه به عنوان پارامتر استفاده شده.

Xavier initialization

پاسخ داده شده آذر 27, 1396 بوسیله ی RUCK_START (امتیاز 127)  
دوباره نشان داده شد آذر 28, 1396 بوسیله ی farnoosh
...