سامان بعد از یادگیری نحوه پسانتشار خطا و الگوریتم گرادیان نزولی، احساس کرد که به درک بهتری از عملکرد شبکه های عصبی دست یافته است. اما یک روز، هنگام کار با شبکه عصبیاش، متوجه شد که عملکرد شبکه در مرحله آموزش عالی است، اما وقتی دادههای جدیدی به آن میدهد، شبکه کاملاً سردرگم میشود. او فکر کرد: «چرا شبکه نمیتواند با دادههای جدید همانقدر خوب کار کند؟»
سامان دوباره در فکر فرو رفت و از هوش مصنوعی پرسید: «این بار چه اتفاقی افتاده؟»
قسمت قبل: سفر به دنیای شبکه های عصبی با سامان: پس انتشار خطا (قسمت سوم)
سرفصل های مقاله
وقتی شبکههای عصبی بیش از حد دقیق میشوند!
صدای هوش مصنوعی ظاهر شد و پاسخ داد: «سامان، به مشکلی برخوردی که به آن بیشبرازش (Overfitting) میگویند. این اتفاق زمانی میافتد که شبکه عصبی تو بیش از حد خودش را با دادههای آموزشی وفق میدهد و دقیقاً همان الگوها را یاد میگیرد. به عبارت دیگر، شبکه آنقدر روی دادههای موجود تمرکز کرده که نمیتواند الگوهای جدید و ناشناخته را تعمیم دهد.»
سامان گیج شد: «یعنی چی بیش از حد یاد میگیرد؟ یاد گرفتن زیاد نباید خوب باشه؟» هوش مصنوعی با لحنی مهربان ادامه داد: «بله، یادگیری خوب است، اما وقتی شبکه فقط دادههای خاصی را به خوبی بشناسد و نتواند الگوهای جدید را تعمیم دهد، دچار مشکل میشود. درست مثل یک دانشآموزی که فقط حفظ میکند و نمیتواند مفاهیم را درک کند.»
تعریف بیشبرازش به زبان ساده
برای اینکه موضوع در دنیای شبکه های عصبی برای سامان شفافتر شود، هوش مصنوعی یک مثال ساده آورد: «فرض کن در حال یادگیری زبان فرانسه هستی و فقط با جملات کتابی که داری تمرین میکنی. اگر کسی با لهجهای متفاوت یا کلمات جدیدی صحبت کند، نمیتوانی جواب بدهی چون فقط به جملات کتاب خودت عادت کردهای. در شبکههای عصبی هم اگر مدل خیلی دقیق فقط دادههای آموزشیاش را بشناسد، ممکن است با دادههای جدید دچار مشکل شود.»
چگونه میتوانیم جلوی بیشبرازش را بگیریم؟
سامان کمی نگران شد: «خب، چه کاری میتوانم انجام دهم تا جلوی این مشکل را بگیرم؟» صدای هوش مصنوعی توضیح داد: «چند روش وجود دارد. یکی از بهترین روشها تنظیم منظمسازی (Regularization) است. این کار به شبکه کمک میکند تا از یادگیری بیش از حد جزئیات بیاهمیت جلوگیری کند. همچنین میتوانی از دادههای بیشتری استفاده کنی تا شبکه بتواند الگوهای متنوعتری را یاد بگیرد.»
راه حل Regularization و Dropout: هوش مصنوعی برای شفافتر شدن موضوع، دو روش را به سامان معرفی کرد:
Regularization: این روش به شبکه اجازه میدهد که از یادگیری ویژگیهای خیلی خاص که فقط در دادههای آموزشی دیده میشوند، جلوگیری کند. این ویژگیها ممکن است در دادههای جدید بیمعنی باشند.
Dropout: در این روش، در حین آموزش، برخی از نورونها بهطور تصادفی غیرفعال میشوند تا شبکه نتواند به طور کامل به تمام نورونها وابسته شود. این کار شبکه را انعطافپذیرتر میکند و به آن کمک میکند که به جای حفظ کردن جزئیات، روی الگوهای کلی تمرکز کند.
سامان و اولین تجربه حل چالش
سامان برای اولین بار تصمیم گرفت که این تکنیکها را در شبکه عصبیاش پیادهسازی کند. او با دقت از Regularization و Dropout استفاده کرد و دوباره مدلش را اجرا کرد. این بار، شبکه نه تنها در دادههای آموزشی خوب عمل کرد، بلکه در دادههای جدید نیز نتایج بهتری به دست آورد. سامان احساس کرد که حالا شبکهاش بهتر میتواند با دادههای مختلف کنار بیاید و الگوهای جدید را تعمیم دهد.
مثال ساده برای فهم بهتر
هوش مصنوعی برای اطمینان بیشتر یک مثال دیگر زد: «فرض کن در کلاس ریاضی تمرین میکنی و فقط به یک نوع مسئله نگاه میکنی. اگر معلمت یک مسئله جدید با تغییرات کوچکی ارائه دهد، ممکن است گیج شوی. اما اگر انواع مختلفی از مسائل را تمرین کرده باشی، میتوانی بهتر با چالشهای جدید مواجه شوی. در شبکههای عصبی هم ما میخواهیم که مدل بتواند با انواع مختلف دادهها کنار بیاید و فقط به یک نوع خاص عادت نکند.»
پایان قسمت چهارم
در این قسمت، سامان با یکی از مهمترین چالشهای یادگیری شبکههای عصبی یعنی بیشبرازش آشنا شد و یاد گرفت چگونه با تکنیکهایی مثل Regularization و Dropout این مشکل را حل کند. اما هنوز سوالات دیگری در ذهن او وجود داشت: «آیا شبکههای عصبی همیشه نیاز به دادههای زیادی دارند؟ چگونه میتوانیم با دادههای کم، مدلهای هوشمندی ایجاد کنیم؟» در قسمت بعد، سامان با روشهای بهینهسازی و تکنیکهایی مثل انتقال یادگیری (Transfer Learning) آشنا خواهد شد.
در این قسمت، چالش بیشبرازش و راهحلهای مقابله با آن مثل Regularization و Dropout به زبان ساده توضیح داده شد. در قسمت بعدی، میتوانی به انتقال یادگیری و روشهایی که به کمک دادههای کمتر، شبکههای عصبی را بهینهسازی میکنند بپردازی.