کاهش دقت با قرار دادن batchnormalization - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

کاهش دقت با قرار دادن batchnormalization

0 امتیاز

سلام دوستان

من وقتی از batchnormalization در شبکم استفاده می کنم دقت به جای افزایش کاهش پیدا می کنه

شبکم رزنت هست

از keras در پایتون استفاده می کنم

لطفا راهنمایی کنید

 
 
سوال شده شهریور 8, 1399  بوسیله ی pilapila (امتیاز 232)   14 43 56
کدتون قرار بدید ما چطور باید متوجه شیم شما چیکار کردید؟
کلا هرجا استفاده می کنم به جای افزایش، دقتم کاهش پیدا می کنه. این نشون میده شکل استفاده من اشتباه هست. حتی در شبکه unet هم استفاده کردم دقت کاهش پیدا کرد
https://www.kaggle.com/shaojiaxin/u-net-with-simple-resnet-blocks
از کد بالا استفاده می کنم.
از batchnormalization  به صورت ساده و بدون ورود خاصی استفاده می کنم تنها یک تنسور بهش می دم.
طرف خودش ترین کرده loss‌رو رسم هم کرده قشنگ loss افتاده اگر شما دقیقا با همون کد ترین کرده باشید که باید بیوفته.
نه من از داده خودم استفاده کردم فقط شبکه اون به کار بردم کلا تو هر شبکه ای از batchnorm  استفاده می کنم دقت پایین میاد مثلا با batch norm خطا 0.097 هست بدون اون 0.068
در تمام شبکه هام همین طور هست جالب اینجاست هرچی تعداد لایه بیشتر باشه تاثیر منفی batch norm بیشتر هست
شاید در داده ی شما اشکالی وجود داره برچسب اشتباه که داره تو batchnorm خودشو نشون میده.
فکر نمی کنم چون اون طوری اصلا نباید همگرا بشه. تازه بدون batchnorm بهتر هم هست
عکس هم rgb هست
من دو کلاس دارم یکی پس زمینه و دیگری شی
ماسکم سه بعدی هست طول و عرض عکس و بعد سوم هم تعداد کلاس ها هست یعنی یا صفر هستن یا یک. پس زمینه دقیقا برعکس شی هست.
شبکه درست کار می کنه تنها دقتش کاهش پیدا می کنه
برای تابع هزینه هم از categorical cross entropy استفاده می کنم

1 پاسخ

0 امتیاز
کاهش دقت در هنگام افزودن نرمال سازی دسته ای به یک شبکه غیر معمول نیست، به خصوص اگر شبکه از قبل به خوبی آموزش دیده باشد. این می تواند اتفاق بیفتد زیرا نرمال سازی دسته ای می تواند توزیع فعال سازی ها را تغییر دهد و مشکل بهینه سازی را سخت تر کند.
 
در اینجا چند پیشنهاد برای کمک به حل مشکل وجود دارد:
 
1- تنظیم دقیق پارامترهای نرمال سازی دسته ای: می توانید فراپارامترهای نرمال سازی دسته ای مانند تکانه، اپسیلون یا گاما را تنظیم کنید.
 
2- یک روش نرمال سازی متفاوت را امتحان کنید: به جای نرمال سازی دسته ای، می توانید سایر تکنیک های عادی سازی مانند نرمال سازی لایه یا نرمال سازی وزن را امتحان کنید.
 
3- نرخ یادگیری را بررسی کنید: کاهش نرخ یادگیری می‌تواند به جلوگیری از بهینه‌ساز از حل بهینه کمک کند.
 
4- وزن‌ها را مجدداً راه‌اندازی کنید: راه‌اندازی متفاوت وزن‌ها قبل از افزودن نرمال‌سازی دسته‌ای می‌تواند به بهبود عملکرد کمک کند.
 
5- با معماری های مختلف آزمایش کنید: سعی کنید از معماری شبکه متفاوتی مانند اضافه کردن لایه های بیشتر یا تغییر اندازه لایه ها استفاده کنید تا ببینید آیا تأثیر مثبتی بر عملکرد دارد یا خیر.
 
به یاد داشته باشید که همیشه از دست دادن و دقت را در مجموعه های آموزشی و اعتبارسنجی نظارت کنید تا بفهمید تغییراتی که ایجاد می کنید چگونه بر عملکرد تأثیر می گذارد.
پاسخ داده شده بهمن 14, 1401 بوسیله ی عباس همت خواه (امتیاز 436)   2 8 13
...