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

با تشکر

دسته بندی ها

0 امتیاز

سلام و عرض ادب
من میدونم به هنگام فاین تیون، با تغییر کلاسها از 1000 به 32 باید در لایه تمام متصل اخر باید تغییر اعمال بشه
اما ایا در تعداد فیلترها (فیچر مب ها) لایه های دیگر به خصوص لایه اول نیاز به تغییر هست ؟
مثلا در معماری که در این مقاله اومده :
https://arxiv.org/pdf/1701.02620.pdf
در این معماری مستقیم نگفته ولی خودم حس کردم چون 33 کلاس داریم در لایه اول 32 فیلتر گذاشته
ممنون

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

1 پاسخ

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

سلام
در لایه آخر که حتما باید تغییرات داشته باشیم، به دلیل تغییر تعداد خروجی ها و این طبیعی هستش
اما در لایه های وسطی، اولا چون دارید از fine tune استفاده میکنید، معمولا تغییری در تعداد فیلترها داده نمیشه
ممکنه شما بگید من از فلان شبکه، مثل ResNet، فقط 10 تا لایه اولش رو برمیداریم و یه softmax سی و دو تایی می چسبونم بهش و train می کنم(یعنی عمق دست خودتونه)، اما معمولش اینه که تعداد feature mapهای هر لایه رو عوض نکنید
البته نمیگم این کار نادرست، یا نشدیه ولی در واقعیت در عموم موارد نیازی به این کار نیست

در مورد لایه اول هم حقیقتش اینه که معمولا تمامی این اعداد با آزمون و خطا یا تجربه استفاده میشه و ربطی به تعداد کلاسها نداره
البته بعضی جاها میشه حسی استدلال کرد که چون من 32 تا کلاس در لایه آخر دارم، پس اگه توی لایه‌ها 32 تا کلاس استفاده کنم، شاید شبکه یاد بگیره برای هر کلاس یه فیلتر جداگانه رو در نظر بگیره، اما در شبکه‌های معمولی که ما ازش استفاده میکنیم، این استدلال شکست خورده ایه (من خودم یکی از شکست خوردگان این موضوعم D; ) و شانس اتفاق افتادن همچین موضوعی خیلی کمه. برای اینکه شبکه رو مجبور کنید که به سمت این استدلال بره، باید ساختار شبکه رو مختص این موضوع طراحی کنید که یاد بگیره برای هر کلاس، یه سری feature خاص یاد بگیره

توسط (1.6k امتیاز)
انتخاب شده توسط
ممنون از پاسختون
در مورد خط اخر که فرمودید ساختار شبکه باید خاص باشه تا بشه  تعداد فیلتر ها به اندازه کلاس ها باشه منظور شبکه برای یک کاربری خاصه؟ و معماری های معروف از این قاعده پیروی نمیکنند.درسته؟
بله معماری‌های معروفی که بیشتر باهاش آشنا هستیم، اینطوری نیستن که رابطه تعداد feature map ها، با تعداد کلاسها، رابطه عمیقی داشته باشه
اما اصلا سخت نیست که بدون دستکاری loss function و optimization، ساختار شبکه رو جوری طراحی کنیم که سعی کنه فیلترهایی که یاد میگیره هم ساختار کلی مساله رو یاد بگیره(مثلا تشخیص لبه و بافت و ...) هم اینکه برای هر کلاس هم فیلترهای به خصوص در بیاره.
 اما این قضیه آخرش خیلی به دیتاست و مساله هم بستگی داره. یعنی مثلا یه کلاس خیلی راحته تشخیصش و شبکه شاید با 2 تا فیلتر اختصاصی تشخیصش بده، اما یه کلاس اینقدر پیچیدگی داشته باشه که چند لایه فیلتر اختصاصی هم نتونه پوشش بده. برای همین بیشتر تمرکز الان روی ساختارهای عمومی بوده که در کل خوب کار کنه
اما حداقل حدس شخصی من اینه که تا سال دیگه روی شبکه‌هایی با ساختارهای مهندسی شده خیلی بیشتر تحقیق میشه و نتایجش در میاد
...