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

با تشکر

دسته بندی ها

0 امتیاز

ممکنه راهکاری برای یک شبکه کانولوشن ساده که دقت ترین بالا و دقت تست پایینی داره ، پیشنهاد بدید؟
سپاس

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

1 پاسخ

+1 امتیاز

سلام.
من سوال رو کاملا برعکس متوجه شدم. فکر کردم شما دنبال راهکارهایی هستید که دقت ترین رو بهتر و تست رو بدتر کنه(احساس کردم شاید برای ارائه ای چیزی نیاز به این دارید!!!) از قرار معلوم برعکسه و شما این مشکل رو دارید و میخوایید برطرفش کنید. (لطفا وقت خیلی بیشتری برای انتخاب عنوان سوال صرف کنید تا عنوان مشخص باشه!)
از دلایل رخ دادن این اتفاق میشه موارد زیر باشه :
1. بشدت اورفیت کنید (مدل خیلی بزرگتر از نیاز بدون استفاده از رگیولایریزشن وتکنیک های مشابه)
2.توزیع داده تست شما با داده ترینینگ شما کاملا متفاوت باشه
هر دو این سناریوها باعث میشه دقت ترینینگ شما بالا و دقت تست شما خیلی کم باشه.
برای اینکه بتونید این مساله رو کاهش بدید از دراپ اوت استفاده کنید و از weight decay
دارپ اوت رو روی همه لایه ها لحاظ کنید با نرخ ناچیز مثل 0.1 یا 0.2 و بعد بر اساس تعداد پارامترتون و طی چند گام مقادیر رو تنظیم کنید معمولا 0.2 مقدار مناسبیه . (البته نسبیه با توجه به حجم و اندازه مدل شما) . دراپ اوت زیادی باعث اندرفیت شبکه میشه. ترجیح اینه بتونید با دراپ اوت رگیولارایز کنید تا weight decay که پایین میگم ولی در عمل بالانس بین این دو بهترین جواب رو میده.
مقدار weight decay رو کم کم افزایش بدید (مثلا در قدم های 10 برابری مثلا اگر اول 0.00005 هست در گام بعدی 0.0005 در گام بعدی 0.005 و بعد 0.05 . مثلا در قدم اخر دیید نتیجه بد شد تو همین رنج مقدارش رو کم میکنید مثلا میکنید 0.03 اگر بهبود داشت کمی بیشتر پیش میرید و ببینید ایا نسبت به گام از مرحله قبلی بهتر شده یا بدتر نهایتا میرسید به 0.01 اگر اینم بدتر بود برمیگردید به مرحله قبل و حالا تو اون رنج کم و زیاد میکنید مثلا 0.003 و بعد 0.006 واینطور سعی میکنید به یک نرخ مناسب برسید . (اگر کمتر کردید بهتر شد برید سراغ کاهش تدریجی اگر بدتر شدبرید سراغ افزایش تدریجی)

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

توسط (4.3k امتیاز)
سپاس از راهنمایی جنابعالی....
از راهکارهای مطرح شده اصلاح loss function و وارد کردن وزن ها در تابع و یا اصلاح دراپ اوت هست...درسته؟
اها من تازه متوجه شدم!
کلا جواب برعکس بشما دادم . فکر کردم شما دنبال مثالی میگردید که ترین بالا و تست کم بده بشما! از قرار معلوم شما این مشکل رو دارید و میخوایید برطرفش کنید! من جواب رو ویرایش میکنم اونو ببینید.
سلام . پاسخ رو ویرایش کردم لطفا ببینید. در مورد وارد کردن وزنها هم لطفا بیشتر توضیح بدید چون متوجه نشدم منظورتون چیه .
ممنون از پاسخ کاملتون....در مقاله ای من خوندم یکی از این راهکارها اضافه کردن پارامتر وزن در فرمول لاس فانکشن هست....

ممکنه لینک هایی رو معرفی بفرمایید در مورد نحوه اعمال drop out و weight decay که فرمودید...
سپاس مجدد
سلام . اینها بخشی از بحثهایی بود که من تو ورکشاپ هفته گذشته ارائه کردم و باز بصورت مبسوط تو مقاله جدید ما اومده. انشاءالله اگر مشکلی پیش نیاد تا انتهای سال میلادی پابلیش میشه و میتونید همون مقاله رو بخونید.
به غیر از این کار مقاله دیگه ای که ای موارد رو مثل ما توضیح داده باشه من ندیدم و اینها هم برحسب تجربه شخصی هست. چیز خاصی نیست شما هم یکم تست کنید همه اینها میاد دستتون.
اها یک نکته دیگه اموزش های اندرو ان جی در مورد یادگیری ماشین و بحثهای دیپ لرنینگ(در کورس ایرا که تو تلگرام هم لینکهای اموزشش هست) رو هم ببینید خیلی خوبه در این بین یکسری نکات هم ایشون میگن میتونه خیلی بدرد شما بخوره .
در مورد مقاله ای هم که فرمایش میکنید اطلاعات خاصی ندادید احتمالا من مطالعه نکردم شاید همین بحث نامتوازن بودن دیتاها بوده که بال ااشاره کردم یا اگر بحث دیگه ای هست که خب شما مطالعه کردید و قائدتا باید درجهت رفع این مشکل کمک کنه و میتونید ازش استفاده کنید
سپاس فراوان از صبر و حوصله جنابعالی و راهنمایی مفیدتون
خواهش میکنم .
درود و احترام....ممکنه لینک مقاله ای رو که درکامنت های بالا اشاره فرمودید ارسال بفرمایید؟
سپاس از لطف جنابعالی
سلام. under review ایمیج پراسسینگ ترنزکشن هست هنوز. تا یک ماه دیگه  منتشر میشه انشاءالله.
...