تصویر برگرفته از [3]
تصویر برگرفته از [3]

چرا نرمال‌سازی دسته‌ای کار می‌کند؟

نرمال‌سازی دسته‌ای (Batch Normalization) یک تکنیک پرکاربرد برای آموزش سریع‌تر و پایدارتر شبکه‌های عصبی عمیق است. در حالی که دلیل اثربخشی نرمال‌سازی دسته‌ای، کنترل توزیع لایه ورودی یا به اصطلاح تغییر کوواریانس داخلی (Internal Covariate Shift - ICS) عنوان می‌شود، اما هیچ مدرک و سندی برای حمایت از این ادعا در مقاله اصلی وجود ندارد. نرمال‌سازی دسته‌ای تا کنون بیش از 6000 بار در تحقیقات مورد استناد قرار گرفته و به طور پیش‌فرض در اکثر مدل‌های یادگیری عمیق استفاده می‌شود. اما هنوز مشخص نیست که اثربخشی نرمال‌سازی دسته‌ای از کجا ناشی می‌شود. توضیح اصلی این است که تغییر کوواریانس داخلی (ICS) به تغییر در توزیع ورودی‌های لایه ناشی از به‌روزرسانی لایه‌های قبلی اشاره دارد که تأثیر منفی بر آموزش دارد و بنابراین نرمال‌سازی دسته‌ای ICS را کاهش می‌دهد. اما ارتباط بین ICS و عملکرد آموزش هنوز درک نشده است.

توضیح جایگزینی در مقاله "نرمال‌سازی دسته‌ای چگونه به بهینه‌سازی کمک می‌کند؟" از MIT پیشنهاد شد. به طور خاص، آنها نشان دادند که نرمال‌سازی دسته‌ای با هموارتر کردن چشم‌انداز مسئله بهینه‌سازی مربوطه، بر آموزش شبکه تأثیر می‌گذارد، که تضمین می‌کند گرادیان‌ها قابل پیش‌بینی‌تر هستند و بنابراین امکان استفاده از دامنه وسیع‌تری از نرخ‌های یادگیری و همگرایی سریع‌تر شبکه را فراهم می‌کند.

ادعای اصلی در مقاله نرمال‌سازی دسته‌ای این است که کنترل میانگین و واریانس توزیع ورودی لایه، عملکرد آموزش را بهبود می‌بخشد. برای آزمایش این ایده، تجربه‌ای انجام شد که در آن نویز تصادفی به فعال‌سازی‌ها (خروجی‌ها) لایه‌های داخلی پس از اعمال نرمال‌سازی دسته‌ای اضافه کردند. این نویز، مقادیر خروجی‌ها را به گونه‌ای تغییر داد که پایداری معمول که نرمال‌سازی دسته‌ای قرار است ارائه دهد را مختل کند. به عبارت دیگر، آنها عمداً خروجی‌ها را ناپایدارتر کردند تا ببینند آیا به عملکرد شبکه آسیب می‌رساند یا خیر. نتیجه شگفت‌انگیز این بود که شبکه‌ای با نرمال‌سازی دسته‌ای "نویزی" هنوز به خوبی شبکه با نرمال‌سازی دسته‌ای معمولی آموزش دید و هر دو بسیار بهتر از شبکه‌ای بدون نرمال‌سازی دسته‌ای عمل کردند. این نشان می‌دهد که بهبود ناشی از نرمال‌سازی دسته‌ای فقط از تثبیت فعال‌سازی‌ها ناشی نمی‌شود. حتی زمانی که فعال‌سازی‌ها ناپایدار بودند، شبکه همچنان به طور موثر آموزش می‌دید.

بنابراین ظاهراً ICS مستقیماً به عملکرد آموزش مرتبط نیست، حداقل اگر ICS را به پایداری میانگین و واریانس توزیع ورودی مرتبط کنیم. اما آیا می‌تواند مفهوم گسترده‌تری از تغییر کوواریانس داخلی وجود داشته باشد که چنین ارتباط مستقیمی با عملکرد آموزش داشته باشد؟ و اگر چنین است، آیا نرمال‌سازی دسته‌ای واقعاً این مفهوم را کاهش می‌دهد؟ برای بررسی این موضوع، نویسندگان تعریف گسترده‌تری از تغییر کوواریانس داخلی (ICS) ارائه کردند که به جای پایداری توزیع ورودی، بر خود فرآیند بهینه‌سازی تمرکز دارد. آنها استدلال می‌کنند که هر لایه در یک شبکه عصبی را می‌توان به عنوان حل یک مسئله بهینه‌سازی در نظر گرفت و هنگامی که پارامترها در لایه‌های قبلی به روز می‌شوند، مسئله‌ای که لایه‌های بعدی باید حل کنند را تغییر می‌دهد. این تغییر در چشم‌انداز بهینه‌سازی ناشی از به روز رسانی لایه‌های قبلی است که آنها آن را ICS می‌نامند. برای اندازه‌گیری دقیق‌تر این موضوع، آنها بررسی می‌کنند که چگونه گرادیان‌های لایه‌ها قبل و بعد از به روز رسانی لایه‌های قبلی تغییر می‌کنند. نتایج نشان داد که افزودن نرمال‌سازی دسته‌ای لزوماً ICS را حتی برای این تعریف گسترده‌تر کاهش نمی‌دهد. در واقع، در برخی موارد، نرمال‌سازی دسته‌ای در واقع ICS را به ویژه در شبکه‌های خطی عمیق افزایش می‌دهد. با وجود این، شبکه‌های دارای نرمال‌سازی دسته‌ای همچنان عملکرد بهتری از نظر دقت و از دست دادن دارند.

مقاله نرمال‌سازی دسته‌ای علاوه بر کاهش ICS، تعدادی از ویژگی‌های دیگر نرمال‌سازی دسته‌ای مانند جلوگیری از انفجار یا ناپدید شدن گرادیان‌ها، مقاومت در برابر تنظیمات مختلف ابرپارامترها مانند نرخ یادگیری و طرح инициализаציה و غیره را شناسایی کرد، اما آنها کار چندانی برای آشکار ساختن عوامل اساسی مسئول موفقیت نرمال‌سازی دسته‌ای انجام نمی‌دهند.

بنابراین، نویسندگان توضیح جایگزینی را شناسایی کرده‌اند که این است که روند بهینه‌سازی را هموارتر می‌کند. در یک شبکه عصبی عمیق بدون نرمال‌سازی دسته‌ای، تابع ضرر می‌تواند بسیار نامنظم باشد که آموزش را دشوار می‌کند. این به این دلیل است که گرادیان‌ها می‌توانند خیلی بزرگ یا خیلی کوچک باشند و آموزش را ناپایدار کنند. نرمال‌سازی دسته‌ای با تغییر پارامترهای شبکه کمک می‌کند. یعنی نحوه تنظیم شبکه را تغییر می‌دهد تا چشم‌انداز از دست دادن هموارتر شود. این همواری به این معنی است که وقتی شبکه پارامترهای خود را به روز می‌کند، جهت گرادیان‌ها قابل پیش‌بینی‌تر و سازگارتر است. در نتیجه، روند آموزش پایدارتر می‌شود و می‌توانید گام‌های بزرگ‌تری در روند بهینه‌سازی بردارید بدون اینکه با مشکلاتی مانند ناپدید شدن یا انفجار گرادیان‌ها مواجه شوید. این پایداری امکان استفاده از نرخ‌های یادگیری بزرگ‌تر را فراهم می‌کند که سرعت آموزش را افزایش می‌دهد. همچنین شبکه را نسبت به انتخاب‌های ابرپارامتر کمتر حساس می‌کند، به این معنی که مجبور نیستید این تنظیمات را زیاد تنظیم کنید.

بنابراین، ما فهمیدیم که نرمال‌سازی دسته‌ای به هموار کردن چشم‌انداز بهینه‌سازی کمک می‌کند، اما آیا نرمال‌سازی دسته‌ای تنها راه برای دستیابی به این اثر است؟ برای آزمایش این موضوع، نویسندگان تکنیک‌های نرمال‌سازی دیگری را امتحان کردند که بر کنترل میانگین فعال‌سازی‌ها نیز تمرکز دارند. این روش‌های نرمال‌سازی جایگزین، تضمین نمی‌کنند که همان نوع کنترل را بر توزیع فعال‌سازی‌ها مانند نرمال‌سازی دسته‌ای داشته باشند، اما همچنان به آموزش خوب شبکه و هموار کردن روند بهینه‌سازی کمک می‌کنند. در واقع، برای شبکه‌های خاص، این جایگزین‌ها حتی بهتر از نرمال‌سازی دسته‌ای عمل کردند. به سادگی، می‌تواند استراتژی‌های نرمال‌سازی دیگری وجود داشته باشد که بتواند به نتایج بهتری دست یابد، بنابراین ارزش دارد این گزینه‌ها را برای بهبود بیشتر آموزش بررسی کنید.

در نتیجه، وجود تغییر کوواریانس داخلی هنگامی که از منظر پایداری توزیع مشاهده شود، پیش‌بینی‌کننده خوبی برای عملکرد آموزش نیست. از دیدگاه بهینه‌سازی، نرمال‌سازی دسته‌ای ممکن است حتی این تغییر را کاهش ندهد. در عوض، یک اثر کلیدی از موفقیت نرمال‌سازی دسته‌ای می‌تواند این باشد که مسئله بهینه‌سازی زیربنایی را دوباره پارامتربندی می‌کند تا آن را پایدارتر و هموارتر کند. یا اینکه گرادیان‌های مورد استفاده در آموزش قابل پیش‌بینی‌تر و خوش‌رفتارتر هستند که امکان بهینه‌سازی سریع‌تر و مؤثرتر را فراهم می‌کند. همچنین، این اثر هموارسازی منحصر به نرمال‌سازی دسته‌ای نیست. در واقع، چندین استراتژی نرمال‌سازی طبیعی دیگر تأثیر مشابهی دارند و منجر به سود عملکرد قابل مقایسه می‌شوند.