سلام
قانون کلی وجود نداره اینطور که شما مدنظرتون هست.
ولی چندتا اصل هست که رعایت اونها باعث میشه عموما بهترین نتیجه رو بگیرین
1. معماری شما بصورت (pyramid ) شکل طراحی بشه . یعنی با افزایش عمق تعداد فیجر مپ ها افزایش پیدا کنه
2. بیشتر اوقات این معماری نیست که باعث میشه شما دقت خوبی نگیری بلکه سیاست بهینه سازی شماس. یعنی انتخاب سیاست نرخ یادگیری (sgd, adadelta,rmsprop,etc ) تاثیر بسیار زیادی داره .
3. از لایه تماما متصل استفاده نکنید برای لایه های اخر . بجاش از لایه کانولوشن استفاده کنید برای پیاده سازی اون. این کار اولا باعث میشه جلوی اورفیتیتنگ گرفته بشه تا حدودی از طرفی سرعت اموزش رو بسیار زیادی ترمیکنه تعداد پارامترها رو هم بشدت کم میکنه و همینطور تعمیم خیلی بهتری رو ارائه میکنه .
4.برای طراحی معماری چند شیوه رو میتونید در پیش بگیرید .
1.یک معماری کارآمد مثل ResNet یا WRN یا اخیرا DensNet یا حتی SimpleNet رو انتخاب کنید . بعد با تنظیمات پیشفرض شروع به آموزش شبکه کنید با رسم نمودار دقت /خطا سعی کنید شبکه رو تنظیم کنید . قدم اول اینجا استفاده از سیاست های یادگیری متفاوت و ثبت هر دقتی که میگیرید هست. بعد با توجه به نمودار مشخص میکنید دارید اورفیت میکنید یا اندرفیت . در صورت اورفیت از دراپ اوت استفاده کنید و L2-regularization . اگر باز اورفیت دارید سعی کنید از لایه های شبگه بصورت یکسان کاهش فیچر مپ داشته باشید . تست کنید و دقت جدید رو ثبت کنید . یادتون باشه فیچرمپ زیاد برای لایه های اولی ضروری نیست یعنی اگر هم بزارید کار خاصی انجام نمیدن . لایه های وسطی و خصوصا انتهایی خیلی تاثیر گذار هستن .
2. یک معماری عمیق خیلی کم عرض طراحی کنید و آموزش بدید و کم کم بع عرض شبکه اضافه کنید
3. یک معماری کم عمق با دو لایه ابتدا ایجاد کنید بعد برای افزایش کارایی عرض شبکه رو افزایش بدید . تا جایی که دیگه تاثیری نبینید . حالا لایه جدید اضافه کنید و عرض رو نصف کنید و به همین شکل تست ها رو ادامه بدید .
از این طریق میتونید به دقت مناسب برسید .
یادتون باشه من تکرار میکنم به همون اندازه که معماری مهم هست بهینه سازی هم مهمه . چه بسا یه معماری ایده آل بدست بیارید برای کارتون اما با انتخاب سیاست بهینه سازی نادرست فک کنید مناسب نیست و خرابش کنید و نهایتا از یه معماری غیربهینه شروع به استفاده کنید و خودتون هم خبر نداشته باشید چی رو ا زدست دادید .
این مقاله رو هم بخونید شاید بد نباشه براتون(اینم البته باید گفته بشه که شیوه های طراحی بیشتری وجود داره اما اینا ساده ترین و سر راست ترین شیوه هایی هستن که من الان به ذهنم میرسه)