سلام
طراحی معماری خم و چم های مختلف و زیادی داره که توضیح اونا در اینجاو تحت یه پاسخ نمیگنجه.
بصورت خاص نیازی به استفاده از تمامی لایه ها ندارید اما باید بدونید هر لایه چه کاری میکنه و برای چه چیزی استفاده میشه اینطور میتونید مشخص کنید ایا بهش نیاز دارید یا خیر.
لایه پولینگ فقط نقش یه کاهش دهنده ابعاد رو نداره و استفاه از اون تاثیر مستقیمی در دقت و کارایی نهایی داره .
نکته ای که در مورد لایه پولینگ باید دقت کنید اینه که استفاده افراطی از اون نتیجه خوبی نداره . یعنی سعی نکنید در ابتدای شبکه (لایه های ابتدایی) پشت سر هم با فاصله کم از پولینگ استفاده کنید. یا بجای چند لایه پولینگ از یه لایه پولینگ با اندازه کرنل بزرگ استفاده کنید . داده بیشتری برای لایه ها فراهم کنید و رفته رفته گام به گام هم کاهش ابعاد داشته باشید و هم داده های مهمتر رو به لایه های بعدی ارسال کنید (از پولینگ استفاده کنید) . بعضی ها بجای پولینگ از یه لایه کانولوشن استفاده میکنن (این تو مقاله striving for simplicity اولین بار مطرح شد) اما من پیشنهاد نمیکنم این روش رو چون تنها اشتراکشون بحث کاهش ابعاد هست و ویژگی هاشون متفاوته.
شما میتونید از معماری ای که قید کردید استفاده کنید از این لحاظ مشکلی نیست . اما بحث اینجا بهینگی یا دستیابی به بهترین دقت هست با کمترین سربار ممکنه .
لایه FC در این شبکه کوچیک مشکلی ایجاد نمیکنه اما در شبکه های عمیق تر سربار زیادی تحمیل میکنه که میشه با کانولوشن 1 در 1 تا حدودی اون رو شبیه سازی کرد با تعداد پارامتر کمتر.
(در ورژن جدید مقاله ما این بحث بیشتر باز شده و انشاالله بعد اتمام کارهاش اینجا لینکش رو میزارم تا استفاده کنید. )