مثال دنیای واقعی از بایاس و واریانس:
این دو مفهوم از مفاهیمِ اساسی است که در بحثِ طبقهبندیِ دادهها مورد بحث قرار میگیرند. هدف از درسِ جاری این است که با مفهوم Overfitting و Underfitting آشنا شده تا بتوانیم الگوریتمهایی ارائه کنیم تا از این دو پدیده در امان باشند.
اجازه بدهید با یک مثال شروع کنیم. فرض کنید شما برای یک امتحانِ آخرِ ترم در حال درس خواندن هستید. استاد هم به شما ۱۰۰ عدد نمونه سوال داده است تا با استفاده از آنها بتوانید خود را برای امتحان آماده کنید. اگر شما طوری مطالعه کنید که فقط این ۱۰۰ نمونه سوال را کامل بلد باشید و هر سوالِ دیگری که کمی از این ۱۰۰ سوال فاصله داشته باشد، اشتباه جواب دهید، یعنی ذهنِ شما بر روی سوالاتِ آموزشی که استاد برای یادگیری داده است Overfit یا بیشبرازش شده است. حال اگر تمامی سوالات را به صورت مفهومی بلد باشید ولی هیچ کدام از سوالات را به صورتِ دقیق بلد نباشید، حتی اگر دقیقاً همان سوالها هم در جلسه امتحان به شما داده شود، باز هم نمیتوانید به درستی و با دقت پاسخ آن ها را بدهید، البته شاید بتوانید یک پاسخ نصفه و نیمه از سوالات بنویسید. اینجا ذهن شما Underfit شده است. این در حالی است که سوالات دیگری که نزدیک به این سوالات هستند را هم شاید بتوانید نصفه و نیمه پاسخ دهید (ولی دقیق نمیتوانید)
در دنیای الگوریتمهاOverfit شدن به معنای این است که الگوریتم فقط دادههایی که در مجموعه آموزشی (train set) یاد گرفته است را میتواند به درستی پیشبینی کند ولی اگر دادهای کمی از مجموعهی آموزشی فاصله داشته باشد، الگوریتمی که Overfit شده باشد، نمیتواند به درستی پاسخی برای این دادههای جدید پیدا کند و آنها را با اشتباهِ زیادی طبقهبندی می کند.
Underfit شدن نیز زمانی رخ می دهد که الگوریتم یک مدلِ خیلی کلی از مجموعه آموزشی به دست میآورد. یعنی حتی اگر خودِ دادههای مجموعهی آموزشی را نیز به این الگوریتم بدهیم، این الگوریتم خطایی قابل توجه خواهد داشت.
فرض کنید نقطهها در شکل زیر نمونه سوالاتی هستند که استاد برای آمادگی در امتحان همراه با پاسخِ آنها به ما داده است. سوال در محور افقی داده میشود و پاسخ در محور عمودی است. به این معنی که به شما X داده میشود و شما باید از روی عددِ این X، عددِ Y (عدد روی محور عمودی) را تشخیص دهید. مثلاً اگر مختصاتِ عدد نخست سمت چپ در تصویر زیر ( ۶, ۱) باشد، به این معنی است که اگر عدد ۱ را به این الگوریتم بدهیم، الگوریتم عدد ۶ را برگرداند. پس با این حساب اگر به الگوریتم عدد ۱.۱ را دادیم، این الگوریتم (که یادگیری را قبلاً از روی دادهها انجام داده است) احتمالاً باید عددی نزدیک به ۶ را برگرداند. این ها در واقع همان مجموعه آموزشی ما هستند:
خط آبیِ موجود، در واقع یادگیریِ مدل طبقهبندی است (به صورت دقیقتر در اینجا رگرسیون داریم). همانطور که میبینید در سمت چپ، خطی که الگوریتمِ طبقهبندیْ یادگرفته است از تمامی دادهها به مقدار قابل توجهی فاصله دارد. یعنی در این شکل (سمت چپ)underfitting رخ داده است. این در حالی است که در شکل سمت راست، overfitting رخ داده. توجه کنید که در شکلِ سمت راست، اگر یک نقطه جدید (مثلا یک سوال جدید در امتحان) داده شود (نقطه سبز رنگ داده شده) الگوریتم خطای بسیار زیادی دارد. یعنی مقدار Yی که برمیگرداند بسیار با مقدار واقعی فاصله دارد – چون الگوریتم خیلی نتوانسته است که یادگیری را عمومی سازی کند و نسبت به مقادیر جدید خطای بالایی نشان میدهد. شکل وسط نیز یک خط معقول و درست برای یک طبقه بند را نشان می دهد که overfit یاunderfit نشده است.
خطای بایاس: وجود فرضیههای مختلف روی مدل و الگوریتم یادگیری منجر به ایجاد خطای اریبی میشود. بزرگ بودن اریبی میتواند الگوریتم یا مدل آماری را از کشف روابط یبن ویژگیها (Features) و متغیر پاسخ(Target Variable) باز دارد. اغلب بزرگ بودن خطای اریبی، منجر به «کمبرازش» (Underfitting) میشود.
خطای واریانس: حساسیت زیاد مدل با تغییرات کوچک روی دادههای آموزشی، نشانگر وجود واریانس زیاد است. این امر نشانگر آن است که اگر مدل آموزش داده شده را روی دادههای آزمایشی به کارگیریم، نتایج حاصل با دادههای واقعی فاصله زیادی خواهند داشت. متاسفانه افزایش واریانس در این حالت منجر به مدلبندی مقادیر نوفه (Noise) شده و به جای پیشبینی صحیح، دچار پیچیدگی و مشکل «بیشبرازش» (Overfitting) میشود.