امروز میخوام درباره یک موضوع جذاب در یادگیری ماشین با شما صحبت کنم. شاید قبلاً با مفاهیمی مثل underfitting و overfitting روبهرو شده باشید. نگران نباشید، اینها مفاهیم پیچیدهای نیستند! برای توضیحش، از یک مثال ساده استفاده میکنم که همهمون به خوبی باهاش آشنا هستیم.
تصور کنید که شما یک امتحان پایان ترم دارید. استاد، یک هفته قبل از امتحان، سه نمونه سوال به شما داده و گفته که این سوالات احتمالاً در امتحان خواهند آمد. شما به عنوان یک دانشجوی تنبل، تصمیم میگیرید فقط این سوالات رو بخونید و فکر میکنید نیازی به مطالعه بیشتر نیست.
حالا وارد جلسه امتحان میشید. وقتی سوالات امتحان رو میبینید، بعضی از سوالات شبیه به نمونهها هستند، اما بعضی دیگر تفاوتهایی دارند. سوالات رو جواب میزنید، اما از آنجایی که فقط سوالات نمونه رو حفظ کرده بودید، نمره کمی میگیرید. در نهایت، شاید نهایتاً نمره ۱۲ رو به زور کسب کنید.
Underfitting (کم برازش)
در این مثال، شما تنها به حفظ سوالات پرداختید و مفاهیم رو یاد نگرفتید. این یعنی underfitting یا کم برازش. وقتی مدل یادگیری ماشین، فقط به دادههای آموزش نگاه میکنه و نتونه به درستی الگوها رو درک کنه، نتیجهاش همون چیزی میشه که ما در این مثال دیدیم: نمره پایین.
در یادگیری ماشین، وقتی مدل نتونه به درستی دادهها رو یاد بگیره، خطای زیادی در دادههای آموزشی دیده میشه. این یعنی مدل ما underfitting کرده و باید مدل رو بهبود بدیم یا ویژگیهای جدیدی برای یادگیری انتخاب کنیم.
فرض کنید قبل از امتحان پیشبینی میکنید که نمره ۲۰ خواهید گرفت، اما وقتی نتایج رو میبینید، نمرهتون ۱۴ میشه. این تفاوت بین پیشبینی شما و واقعیت، بایاس نامیده میشه. در یادگیری ماشین، بایاس به تفاوت بین پیشبینی مدل و واقعیت گفته میشه.
اگر مدل شما نتونه به درستی پیشبینی کنه، بایاس بالا میره. این اتفاق معمولاً در underfitting رخ میده، چون مدل قادر به یادگیری الگوهای موجود در دادهها نیست.
حالا تصور کنید که شما دقیقاً همون سوالات نمونه رو حفظ کردید، اما وقتی وارد امتحان میشید، استاد سوالات جدیدی میده. در این حالت، شما به دلیل اینکه فقط سوالات نمونه رو حفظ کرده بودید و مفهوم رو یاد نگرفته بودید، نمیتونید سوالات جدید رو حل کنید. در نتیجه، نمرهی شما پایین میاد.
در یادگیری ماشین، overfitting زمانی اتفاق میافته که مدل شما به شدت روی دادههای آموزشی تمرکز میکنه و تمام جزئیات رو یاد میگیره، اما این مدل برای دادههای جدید عملکرد ضعیفی داره. به عبارت دیگه، مدل فقط یاد گرفته که چطور دادههای آموزش رو حفظ کنه، نه اینکه الگوهای عمومی رو درک کنه.
در این مثال، وقتی که شما فقط سوالات نمونه رو حفظ کردید، ممکنه در امتحانی که همون سوالات از قبل داده شده بود نمره کامل بگیرید، اما وقتی سوالات جدید از شما خواسته میشد، نمرهتون افت میکرد. این موضوع به واریانس مدل مرتبط است.
واریانس در یادگیری ماشین، به این معنی است که مدل شما ممکنه پیشبینیهای دقیقی در دادههای آموزشی داشته باشه، اما وقتی با دادههای جدید روبهرو میشه، خطاهای زیادی میکنه.
اگر مدل شما دقت بالایی در دادههای آموزشی داشته باشه، ولی عملکرد ضعیفی در دادههای تست نشان بده، یعنی مدل با overfitting و واریانس زیاد مواجه شده است.
در یادگیری ماشین، ما دو مشکل اصلی داریم:
راهحل این مشکلات میتونه استفاده از دادههای بیشتر، انتخاب مدلهای مناسب و تکنیکهای منظمسازی (Regularization) باشه.این تعاریف فقط برای درک بهتر مفهوم عبارات است و برای درک علمی بطفا به مقالات معتبر به این زمینه مراجعه کنید.
با تشکر
خسته نباشید!
منبع : Pattern Recognition and Machine Learning as Christopher Bishop
اسماعیل بزرگوار، علاقهمند به دنیای هوش مصنوعی