سلام
علاوه بر صحبتهایی که جناب Farahnak کردن من هم این نکات رو اضافه میکنم .
مومنتوم در Adadelta هم استفاده میشه . adadelta پارامترهای مختلفی داره که باید ست بشن تا به حالت بهینه برسید. شما میتونید از قبل با adagrad یا inv استفاده کنید که پارامترهای کمی دارن و تقریبا همه چیز خودکار انجام میشه.
اینکه لاس کاهش پیدا نمیکنه دلایل زیادی میتونه داشته شما باید قدم به قدم سعی کنید مسائلی که باعث این مشکل میشه رو برطرف کنید.
یک مشکل مقداردهی اولیه نامناسب هست. که با Xavier تا حد خیلی زیادی میشه برطرفش کرد .
یک مشکل میتونه نرخ یادگیری بالا باشه
یک مشکل میتونه مقدار regularization بالا باشه .
یک مشکل میتونه اورفیت کردن شبکه باشه (پارامتر زیاد، داده کم)
یک مشکل میتونه Underfit کردن شبکه باشه که مقدار regularization بالا و همینطور استفاده زیاد از dropout و یا حتی کافی نبودن پارامترها باشه
در فاین تونینگ میتونه بخاطر تفاوت بین دیتای جدید و دیتای قبلی باشه و همینطور کم بودن دیتای جدید. در این حالت اول با فریز لایه ها استارت زده میشه بعد اگر تفاوت بین دیتاست ها زیاد باشه لایه ها ازاد و تعداد لایه های بیشتری از ابتدا مقداردهی اولیه میشن . نرخ یادگیری هم کاهش پیدا میکنه و عوضش ضریب (همون lr_mult یا lr_blob ها ) در لایه های اخر برای تسریع افزایش پیدا میکنن .
یک نکته مهم دیگه هم اینه که ممکنه در saddle point باشید برای همین لاس تغییر چندانی نکنه و با آموزش بیشتر از اون ناحیه خارج بشید.
در زمان ساخت دیتای جدید نوع اگمنتیشن مهمه . مثلا شما اگر تصاویرتون رو نرمالایز کنید و مثلا zeropad کنید و بصورت random crop استفاده کنید و دیتاستتون هم مثلا 60هزار تصویر داشه باشه ممکنه به مراتب دقت خیلی بهتری از همون دیتاست که این اعمال استفاده نشده و فقط تصاویر rotate شده باشن چند بار و دیتاست شما شده باشه 400 هزار تصویر! ارائه میده . پس کیفیت کاری که انجام میدید هم مهمه.
در مورد سوال آخر هم هرچقدر مدل شما عظیم تر باشه (تعداد پارامتر بیشتر باشه) دیتای بیشتری نیاز هست و هرچند ر صورت وجود دیتای مناسب همگرایی سریعتر اتفاق می افته نسبت به یک شبکه با تعداد پارامتر کمتر ، اما دردسرهاش هم بیشتره.
در مورد گوگل نت تعداد پارامترش از پارامتر الکس نت کمتره . الکس نت 60 میلیون پارامتر داره اما گوگل نت اگر اشتباه نکرده باشم 4 یا 5 میلیون پارامتر (آخرین ورژنش رو چک نکردم ببینم بیشتر یا نه ) . اما نکته ای که هست اینه که گوگل نت معماری عجیب و غریبی داره و تنظیم و استفاده اون تو فاین تونینگ خصوصا زمانی که دیتاست ها متفاوت باشن ممکنه سخت تر باشه . معماری الکس نت و VGGNet تو فاین تونینگ ها خیلی زیاد استفاده میشن چون معماری ساده و سر راستی دارن و شما مشخصا میدونید کجا ها رو چه تغییراتی باید بدید حتی اگر هم ندونید تعداد لایه های کم و ماهیت اونها کار رو خیلی ساده میکنه اما این موارد تو گوگل نت صدق نمیکنه.
دقت کنید من نمیگم گوگل نت بده من فقط میگم ، همونطور که قبلا جناب Farahnak هم گفتن استارتتون با الکس نت باشه بهتره چون با پارامترهای ناآشنای کمتری مواجه هستید.
مقاله Deep Image: Scaling up Image Recognition بایدو هم پیدا کنید بخونید خوبه بخش دیتا اگمنتیشنش شاید براتون جذاب باشه . مقاله APAC: Augmented PAttern Classification with Neural Networks هم انتهاش در مورد دیتا اگمنتیشن بخونید بد نیست.
من چیزایی که به ذهنم میرسید رو گفتم حالا نمیدونم چیزی رو جا انداختم یا نه امیدوارم این نکات تو رفع مشکل شما مفید باشه.