به بخش پرسش و پاسخ یادگیری عمیق خوش آمدید,
این نسخه آزمایشی سایت است.
لطفا به نکات زیر توجه کنید:
  • برای ارتباط با مدیران میتوانید از صفحه مدیران اقدام کنید.
  • سوال و جواب ها باید به زبان فارسی باشند. استفاده از زبان انگلیسی یا فینگلیش برای پاسخ دادن مجاز نیست.
  • لطفا بعد از پرسش سوال لینک سوال خود را در گرو تلگرام (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 امتیاز)
خواهش میکنم .
درود و احترام....ممکنه لینک مقاله ای رو که درکامنت های بالا اشاره فرمودید ارسال بفرمایید؟
سپاس از لطف جنابعالی
سلام. under review ایمیج پراسسینگ ترنزکشن هست هنوز. تا یک ماه دیگه  منتشر میشه انشاءالله.
...