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

با تشکر

دسته بندی ها

+2 امتیاز

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

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

4 پاسخ

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

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

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

امیدوارم با این مثال درک بهتری از اتفاقی که رخ میده رو پیدا کرده باشید

توسط (4.3k امتیاز)
انتخاب شده توسط
+2 امتیاز

سلام
دوست عزیز برای اینکه به جواب سوالاتتون برسید پیشنهاد میکنم ویدیوی لکچر شماره 6 ( Training Neural Networks, part I ) دانشگاه استندفورد رو ببینید. تقریبا از وسط های ویدیو به بعد همین موضوع رو بحث میکنه.

https://www.youtube.com/watch?v=wEoyxE0GP2M&list=PL3FW7Lu3i5JvHM8ljYj-zLfQRF3EO8sYv

توسط (830 امتیاز)
سلام..ممنونم ازت دوست عزیز...والا حقیقتش اصلا فرصتی ندارم ....اگر شما میدونید ، لطفا بهش پاسخ بدید ، چون خیلی برام مهمه ....متشکرم
+3 امتیاز

سلام دوست عزیز
طبق اطلاعاتی که بنده دارم
برای اینکه به لایه های فعالسازی با واریانس واحد برسیم بچ نرمالیزیشن انجام میدیم. و این قضیه ابتدا از دیتای ورودی شروع میشه که دیتای ورودی رو از میانگین داده کم و به واریانس داده تقسیم میکنند تا دیتای ورودی zero-mean و با واریانس واحد بدست بیاد. این قضیه باعث میشه تا لایه فعال سازی خروجی گوسی با واریانس یک بشه
این لایه های نرمالازسیون رو بعد از لایه های conv و fc قرار میدهیم تا به لایه های بعد از اونها دیتای نرمال شده برسه.

بطور شهودی برای درک بهتر این قضیه تصور کنید که دیتای دو کلاسه شما همگی در ناحیه 4 مختصاتی و به مرکزیت x1 = 5 و x2 = -5‌ قرار داشت و دیتای شما مثلا خطی جدا پذیر باشه. برای اینکه بتونید این خط رو پیدا کنید بهتره وزن ها رو رندم و به مرکزیت صفر و دیتا رو هم به مرکز مختصات و واریانس واحد بیارید اینجوری اون خط جدا کننده زودتر پیدا میشه.
و این یعنی شبکه سرعتر همگراه میشه

توسط (830 امتیاز)
+4 امتیاز

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

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