فصل یازدهم: بهبود عملکرد در شبکههای عمیق
مقدمه
در فصل قبل مشاهده کردیم که افزایش عمق شبکههای کانولوشنی از هشت لایه در AlexNet به هجده لایه در VGG منجر به بهبود عملکرد طبقهبندی تصاویر شد. با این حال، افزودن لایههای بیشتر به شبکههای عمیقتر، عملکرد را کاهش داد. این فصل به معرفی بلوکهای باقیمانده میپردازد که با محاسبه تغییرات افزایشی در نمایش دادهها، امکان آموزش شبکههای عمیقتر را فراهم میکنند. این بلوکها از نرمالسازی دستهای برای کنترل فعالسازیها در هر لایه استفاده میکنند و عملکرد را در وظایف مختلف بهبود میبخشند.
پردازش متوالی و محدودیتهای آن
پردازش متوالی در شبکههای عصبی
شبکههای عصبی استاندارد دادهها را بهصورت متوالی پردازش میکنند، بهطوری که هر لایه خروجی لایه قبلی را دریافت کرده و به لایه بعدی منتقل میکند. برای مثال، یک شبکه سهلایه بهصورت زیر تعریف میشود:
در شبکههای کانولوشنی، هر لایه شامل عملیات پیچشی است که به دنبال آن یک تابع فعالسازی اعمال میشود.
محدودیتهای پردازش متوالی
با افزایش عمق شبکه، عملکرد طبقهبندی تصاویر نهتنها بهبود نمییابد، بلکه کاهش مییابد. این پدیده به دلیل تغییرات غیرقابل پیشبینی در گرادیانهای لایههای اولیه در طول آموزش رخ میدهد. در شبکههای عمیق، گرادیانها بهسرعت تغییر میکنند و همبستگی بین گرادیانهای مجاور از بین میرود. این مشکل بهعنوان «گرادیانهای متلاشی شده» شناخته میشود و آموزش شبکههای عمیق را دشوار میسازد.
اتصالات باقیمانده و بلوکهای باقیمانده
تعریف اتصالات باقیمانده
اتصالات باقیمانده یا «پرش» مسیرهایی هستند که ورودی هر لایه را مستقیماً به خروجی آن اضافه میکنند. این کار باعث میشود هر لایه تنها تغییرات افزایشی را یاد بگیرد. برای مثال، یک شبکه باقیمانده بهصورت زیر تعریف میشود:
مزایای اتصالات باقیمانده
اتصالات باقیمانده مسیرهای کوتاهتری را در شبکه ایجاد میکنند که گرادیانها میتوانند از طریق آنها بهراحتی منتشر شوند. این ویژگی باعث کاهش مشکل گرادیانهای متلاشی شده میشود. همچنین، سطح تابع تلفات در شبکههای باقیمانده صافتر است و یادگیری را تسهیل میکند.
ترتیب عملیات در بلوکهای باقیمانده
ترتیب عملیات در بلوکهای باقیمانده مهم است. معمولاً ابتدا نرمالسازی دستهای، سپس تابع فعالسازی ReLU و در نهایت لایه کانولوشن اعمال میشود. این ترتیب تضمین میکند که خروجی بلوک میتواند مقادیر مثبت و منفی را به درستی مدیریت کند.
نرمالسازی دستهای
تعریف و کاربرد
نرمالسازی دستهای (Batch Normalization) فعالسازیهای هر لایه را بر اساس میانگین و واریانس دسته استاندارد میکند و سپس آنها را با پارامترهای قابلآموزش مقیاس و جابجا مینماید.
مزایای نرمالسازی دستهای
پایداری آموزش: نرمالسازی دستهای از انفجار یا ناپدید شدن گرادیانها جلوگیری میکند.
نرخ یادگیری بالاتر: شبکه میتواند با نرخ یادگیری بزرگتر آموزش ببیند.
نوعی منظمسازی: تغییرات آماری در دستهها نقش مشابهی با دراپاوت داشته و باعث افزایش تعمیمپذیری مدل میشود.
معماریهای رایج با اتصالات باقیمانده
ResNet
معماری ResNet از بلوکهای باقیمانده برای آموزش شبکههای بسیار عمیق استفاده میکند. این شبکه شامل بلوکهای گلوگاهی (bottleneck) نیز هست که با کاهش و افزایش تعداد کانالها، تعداد پارامترها را کنترل میکند. مدل ResNet-200 با ۲۰۰ لایه از نمونههای موفق این معماری است.
DenseNet
در DenseNet، خروجی تمام لایههای قبلی به لایه فعلی متصل میشود. این نوع اتصال باعث استفاده مجدد از ویژگیها میشود و کارایی مدل را بهبود میبخشد.
U-Net و شبکههای ساعتشنی
U-Net معماری رمزگذار–رمزگشا است که از اتصالات باقیمانده برای انتقال اطلاعات بین لایههای مشابه در رمزگذار و رمزگشا استفاده میکند. این شبکه در وظایف تقسیمبندی تصویر، بهویژه در حوزه پزشکی، بسیار مؤثر است. معماریهای ساعتشنی نیز از اتصالات باقیمانده برای بهبود تخمین وضعیت انسان استفاده میکنند.
چرا شبکههای باقیمانده عملکرد بهتری دارند؟
شبکههای باقیمانده بهواسطه امکان ایجاد مسیرهای گرادیانی مستقیم، از مشکل ناپدید شدن گرادیان جلوگیری میکنند. علاوه بر این، سطح تابع هزینه در این شبکهها صافتر بوده و فرآیند آموزش پایدارتر است. ترکیب این ساختار با نرمالسازی دستهای موجب بهبود چشمگیر در عملکرد و سرعت یادگیری میشود.
نتیجهگیری
اتصالات باقیمانده و نرمالسازی دستهای تحولی در آموزش شبکههای عمیق ایجاد کردهاند. این روشها با کاهش مشکلات گرادیانی، امکان آموزش شبکههایی با صدها لایه را فراهم میکنند. معماریهایی نظیر ResNet، DenseNet و U-Net گواهی بر اثربخشی این تکنیکها در بهبود عملکرد در طیف وسیعی از وظایف یادگیری ماشین هستند.