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

با تشکر

دسته بندی ها

0 امتیاز

با سلام عرض ادب
دوستان دلیل استفاده از mean subtract تصاویر چی هست ؟ و چگونه صورت میگیرد یعنی اینکه تمامی مقادیر پیسکل های تصویر ورودی که فرضا به cnn میخواهیم بدیم از یک مقدار ثابتی کم میشوند ؟ چرا ؟ چه مزیتی دارد ؟ و اینکه خود فریم ورک حین آموزش اینکار رو انجام میدهد یا اینکه قبلش باید برای تمامی تصاویر ورودی اینکار صورت بگیرد بعدش به cnn داده شوند ؟

توسط (389 امتیاز)

1 پاسخ

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

هنگامی که یک شبکه عصبی رو آمورش میدید یکی از تکنیک هایی که باعث بالا رفتن سرعت آموزش شبکه میشه نرمال سازی داده های ورودی هست.
پیش پردازش داده‌ها نقش مهمی در سایر الگوریتم های یادگیری عمیق بازی میکنه. در عمل متد هایی که از سایر الگوریتم های پیش پردازش داده ها مانند نرمال سازی استفاده میکنند خیلی بهتر عمل میکنند اگر چه انتخاب پارامتر های سودمند برای پیش پردازش داده ها با توجه به نوع داده متفاوت هست و به صورت تجربی بدست میاد .
تفریق میانگین
تفریق میانگین رایج ترین نوع پیش پردازش دادهاست. همانطور که از نام پیداست این عملیات شامل کسر میانگین داده ها از سایر نمونه های آموزشی هست .
نرمال سازی
نرمال سازی به نرمال سازی ابعاد داده ها اشاره داره بطوریکه داده ها تقریبا در یک مقیاس مشابه قرار می‌گیرند . دو نوع رایج نرمال سازی داده وجود داره. یک تقسیم هر بعد از داده بر انحراف معیار آن بعد از انتقال مرکز داده ها به صفر ، دو پیش پردازش داده ها به صورتی که مینیمم و ماکسیمم داده ها در هر بعد در بازه ۱ و -۱ است . این عملیات در صورتی مفید است که ویژگی ها دارای مقیاس متفاوتی هستند . در مورد عکس ها ، چون مقادیر پیکسل ها در بازه ۰ تا ۲۵۵ است اعمال این عملیات لزوما اجباری نیست .

فرض کنید ویژگی های ورودی ما دو ویژگی x1 و x2 هستند:

نرم مال سازی ورودی شامل دو مرحله هست : مرحله اول subtract mean

که ميو

ميو از میانگین تمامی نمونه های آموزشی(عکس ها) محاسبه میشه. نتیجه این عملیات باعث میشه که داده ها zero-center شوند:

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

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

من همیشه قبل از تغدیه مدلم بوسیله داده اونها رو توسط تابعی در numpy پیش پردازش میکنم. گاهی اوقات نیازه که PCA و Whitening رو نیز اعمال کنم. در این عملیات ابتدا داده ها به مرکز صفر انتقال داده میشوند و سپس ماتریس کواریانس داده ها محاسبه می‌شود ، این ماتریس همبستگی ساختار داده ها را نشان میده
روش Principal Component Analysis بر اساس تعیین مولفه های اصلی یا (Principal Component ها) در داده ها این کار را انجام میده. مولفه های اصلی در حقیقت همان بردار ویژه های ماتریس کوواریانس داده ها هستند.
بیشترین واریانس داد ها در راستایی قرار دارده که بردار ویژه ی متناظر با بزرگترین مقدار ویژه در آن راستا قرار دارد. به همین ترتیب هر چقدر مقدار ویژه کوچکتر شود واریانس داده ها در راستای بردار ویژه متناظر با آن کمتر می شه.
اما فریم ورکی مثل keras این کار رو میتونه به صورت خودکار با معرفی چند تا پارامتر انجام بده

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