به بخش پرسش و پاسخ یادگیری عمیق خوش آمدید,
این نسخه آزمایشی سایت است.
لطفا به نکات زیر توجه کنید:
  • برای ارتباط با مدیران میتوانید از صفحه مدیران اقدام کنید.
  • سوال و جواب ها باید به زبان فارسی باشند. استفاده از زبان انگلیسی یا فینگلیش برای پاسخ دادن مجاز نیست.
  • لطفا بعد از پرسش سوال لینک سوال خود را در گرو تلگرام (Iran Deep Learning Group) معرفی کنید تا سریعتر به جواب برسید. برای دسترسی به آخرین لینک از منابع یادگیری استفاده کنید
  • لطفا بجای عکس از متن استفاده کنید. اگر متون طولانی هستند از سایت pastebin.com برای اپلود استفاده کرده و لینک حاصل را در سوال خود قرار دهید. برای قرار دادن تصویر ، از بخش ارسال تصویر ادیتور سایت استفاده کنید.
  • بعد از دریافت پاسخ، بهترین پاسخ را از طریق کلیک بر روی علامت تیک انتخاب کنید
  • اگر با خطا و یا مشکلی مواجه شدید از بخش تماس با ما در انتهای صفحه و یا ایمیل Coderx7@gmail.com موضوع را اطلاع دهید.

با تشکر

دسته بندی ها

0 امتیاز

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

1-چرا در شبکه عصبی کانولوشنی از تابع relu استفاده میشه و چه مزیتی نسبت به توابع دیگر داره؟ همچنین ایراد کار این تابع relu در چیه؟ چون من در نظرات خوندم که vanishing gradient نداره اما بعضی مواقع باعث واگرا شدن شبکه میشه و چه موقع به مشکل برمیخوریم؟ همچنین چه موقع دیگه نورون های Relu فعال نمیشن و اصلاحا بهش میگن مرگ رلو میگن؟
2-اینکه توابع sig و tanh برای شبکه های عصبی کانولوشنی بدلیل vanishing gradient (مشکل اشباع) استفاده نمیشن ، خب در شبکه عصبی معمولی هم همین احتمال وجود داره ، پس چرا در اونجا ازشون استفاده میشن؟
تغییرات زیگزاکی و کج و معوج چه موقع در تغییرات بروز رسانی گرادیان ها اتفاق می افتد؟

یک سوال دیگه هم دارم که ربطی به این موضوع نداره...چرا استفاده از لایه بچ نرمالیزیشن ، تاثیر استفاده از مقداردهی اولیه رو کاهش میده؟

متشکرم

توسط (215 امتیاز)
ویرایش شده توسط

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

سلام.
1- مزیت relu:
تو ناحیه مثبت اشباع نمیشه که این خودش باعث میشه وزنها بهتر آپدیت و در نتیجه شبکه زودتر یاد بگیره ـ بار محاسباتی کمتری داره (دیگه نیازی به محاسبه exp نداره)
ایراد ReLu:
برای مقادیر منفی ورودی مقدار خروجی صفره و در نتیجه برای مقادیر منفی وزنهای متصل به اون نورون آپدیت نمیشن ـ ایراد دومش اینه که خروجی همیشه مثبته و در نتیجه مقادیر منفی نداره و در نتیجه حول صفر متقارن نیست و در نتیجه باعث میشه وزنها همگی یا در جهت مثبت یا همگی در جهت منفی آپدیت بشن (تو هر iteration) و این باعث میشه آپدیت زیگ زاگی میشه که همگرایی رو کندتر میکنه ـ در ضمن vanishing gradient تو ناحیه مثبت نداره. ولی وقتی نورون خاموش باشه کلا گرادیان صفر میشه و آپدیت نمیشه.
در مورد واگرایی هم چون خروجی تو ناحیه مثبت محدود نیست و میتونه مقادیر بالایی داشته باشه و چون خروجی هر لایه ورودی لایه بعد هستش و در آپدیت وزنهای لایه بعد تاثیر دارن میتونن باعث بشن که وزنهای لایه بعد با تغییرات زیادی آپدیت بشن (مشابه بالا بودن learning rate میشه تفسیر کرد) و در نتیجه شبکه واگرا بشه.

در مورد dead relu: وقتی وزنها initialize یا آپدیت میشن ممکنه حالتی رخ بده که وردودی نورون منفی باشه و نورون خاموش باشه. تا اینجا مشکلی نیست چون ممکنه تو iteration های بعدی با ورودی های بعدی (بچ های بعدی) ورودی نورون مقدارش مثبت بشه و روشن بشه و در نتیجه وزنهاش آپدیت بشه. اما مشکل چه زمانی هستش؟ مشکل زمانی هست که وزنها طوری انتخاب شده باشن که به ازای تمام دیتای ورودی که دارید این نورون هیچ وقت ورودیش مثبت نشه و همیشه خاموش بمونه و در نتیجه وزنهاش هیچ وقت آپدیت نشن. به این نورون ها میگن dead

سوال دوم:
تابع relu فکر میکنم سال 2012 اراپه شد. قبلش معمولا از tanh و relu استفاده میشد. بعدش معمولا از relu یا نسخه های دیگه استفاده میشه. خیلی فرقی نداره شبکه کانولوشنی باشه یا نه. (البته هر چی شبکه دیپتر باشه مساله vanishing gradient به خاطر فرمول مشتق زنجیره ای و یه سری مشکلات دیگه پر رنگتر میشه. مثلا فرض کن مشتق مقدارش تو یه لایه ای 0.001 هستش و مشتق تو لایه قبلیش میشه 0.001 ضرب در یک عدد کوچکتر از یک مثل 0.01 که نتیجه میشه 0.00001 تو لایه قبل و همین طور بیا لایه های اولیه. پس برای دیپ مساله vanishing gradient مهمتره). در ضمن tanh و sig باز هم استفاده میشن. تو شبکه LSTM استفاده میشن. کلا زمانی که بخواهیم خروجی نورون مقادیر محدود مثلا بین صفر و یک داشته باشه از sig میشه استفاده کرد. (برای یه کاربردش میتونید مقاله YOLO-v2 رو مطالعه کنید که مربوط به اواخر 2016 یا اوایل 2017 هستش و توی لایه آخر برای بعضی از نورونها از sig استفاده کرده).

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