در مقاله خوشه بندی با الگوریتم های k-means و KNN آشنا شدیم. اما لازم است قبل از بیان ادامه الگوریتمها، تفاوت بایاس و واریانس را بدانیم و مفاهیم با کمبرازش (Underfitting) و بیشبرازش (Overfitting) آشنا باشیم تا مشکل مدل را راحت پیدا کنیم و برای حل آن، راه حل مناسبی ارائه دهیم. در این قسمت، این چالش یادگیری ماشین را بررسی میکنیم.
. . . .
انتخاب الگوریتم، قدم مهمی در ساخت یک مدل پیشبینی بادقت بالا است. هر الگوریتم بر اساس مقادیری که ابرپارامترهای آن میگیرند، میتواند مدلهای بسیار متنوعی را بسازد که هرکدام، نتایج متفاوتی را رقم میزند. همانطور که قبلاً اشاره شد، ابرپارامترها تنظیمات الگوریتم هستند، همانند کنترلهای روی داشبورد یک هواپیما یا پیچهای مورداستفاده برای تنظیم فرکانس رادیو است – البته با این تفاوت که ابرپارامترها خطوط کد هستند!
مثالی از ابرپارامترها در پایتون برای الگوریتم گرادیان تقویتی (Gradient Boosting) در شکل زیر مشاهده میشود.
یک چالش همیشگی در یادگیری ماشین، بیش برازش و کم برازش است که نشان میدهد یک مدل چهقدر به الگوهای واقعی مجموعهداده نزدیک است. برای درک بیش برازش و کم برازش، باید ابتدا تفاوت بایاس و واریانس را درک کنید.
تفاوت بایاس و واریانس
بایاس (Bias) به فاصله بین مقدار پیشبینی شده با مقدار واقعی اشاره دارد. در حالتی که بایاس زیاد است، به احتمال زیاد، پیشبینیها در یک مسیر دور از مقادیر واقعی، تغییر جهت داده است. واریانس (Variance) توصیف میکند که مقادیر پیشبینی شده چه میزان پراکنده هستند. تفاوت بایاس و واریانس با تحلیل تصویر زیر بهتر درک خواهند شد.
هدفهای تیراندازی، آنطور که در شکل بالا، دیده میشود، نمودارهای بصری مورداستفاده در یادگیری ماشین نیستند، ولی به بررسی تفاوت بایاس و واریانس کمک میکنند. تصور کنید که مرکز هدف یا خال وسط، مقدار واقعی مدل را به بهترین شکل پیشبینی میکند. نقاط دیگر نشاندهنده پیشبینیهای دیگر مدل بر اساس دادههای آموزشی است. در برخی حالتهای خاص که نقاط به شکل متراکمی نزدیک به وسط هدف هستند، اطمینان میدهد که پیشبینیهای مدل به دادههای واقعی نزدیک هستند. هرچقدر که نقاط از مرکز، فاصله بیشتری میگیرند، بایاس بیشتر شده و توانایی کلی مدل در پیشبینی ضعیفتر میشود.
شکل اول (سمت چپ ردیف اول)، تفاوت بایاس و واریانس را با مثالی از بایاس کم و واریانس کم نشان می دهد. بایاس کم است بهاینعلت که نقاط برخورد کرده در نزدیکی مرکز هستند و واریانس کم است بهاینعلت که نقاط بهصورت متراکم در یک محل قرار گرفتهاند.
شکل دوم (سمت راست ردیف اول)، یک حالت از بایاس کم و واریانس بالا را نشان میدهد. نقاط به مرکز نزدیک هستند (بهاندازه مثال قبلی به مرکز هدف نزدیک نیستند) و در نتیجه بایاس به طور نسبی کم است. بااینحال، این بار واریانس بالا است. چون نقاط برخورد کرده نسبت به یکدیگر پراکنده هستند.
شکل سوم (سمت چپ ردیف دوم)، تفاوت بایاس و واریانس را با بایاس بالا و واریانس پایین می توان دید.
تفاوت بایاس و واریانس در شکل چهارم (سمت راست ردیف دوم)، با بایاس بالا و واریانس بالا مشخص شده است.
در حالت ایدهآل، واریانس کم و بایاس کم شرایط مناسبی است. ولی در واقعیت معمولاً یک حد وسطی بین بایاس بهینه و واریانس وجود دارد. درست است که بایاس و واریانس هر دو باعث خطا میشوند ولی هدف اصلی کمینه کردن خطای پیشبینیها است – نه کمینهسازی خطای بایاس و واریانس.
شکل بالا، پیچیدگی (Complexity) مدل بر اساس خطای پیشبینی را نشان میدهد. در این شکل، دو خط از چپ به راست کشیده شدهاند. خط بالایی نشاندهندهی داده آزمایشی و خط پایینی نشاندهندی داده آموزشی است. از سمت چپ، هر دو خط، به علت واریانس کم و بایاس بالا از یک مقدار با خطای پیشبینی بالا شروع میکنند. همینطور که از چپ به راست حرکت میکنند، شرایط برعکس میشود: واریانس بالا و بایاس کم. این شرایط باعث خطای پیشبینی کم برای دادههای آموزشی و خطای پیشبینی بالا برای داده آزمایشی میشود. در وسط نمودار، تعادلی بهینه برای خطای پیشبینی، بین دادههای آموزشی و آزمایشی وجود دارد. این یک حالت معمول از مصالحه (Trade-Off) بین بایاس و واریانس است.
دوره آموزشی: برای آشنایی بیشتر با مفاهیم یادگیری ماشین و انجام پروژه، آموزش یادگیری ماشین به زبان ساده با پایتون را در کانال یوتیوب دیتاهاب ببینید.
بیش برازش (Overfitting)، کم برازش (Underfitting) و برازش مناسب
حال که تفاوت بایاس و واریانس را فهمیدیم، لازم است با دو مفهوم بیش برازش و کم برازش آشنا شویم. پراکندگی (شکل بالا)، کمبرازش (واریانس کم، بایاس بالا) در سمت چپ و بیشبرازش (واریانس بالا، بایاس کم) در سمت راست نمایشدادهشده است. اگر نتوانیم بین بایاس و واریانس به تعادل برسیم، احتمال مشاهده نتایج ضعیف، بالا میرود. همانطور که در شکل بالا دیده میشود، این مسئله میتواند باعث ساده و غیرانعطافپذیر شدن بیش از حد (کمبرازش)، یا بیش از حد پیچیده و انعطافپذیر شدن (بیشبرازش) مدل بشود.
شاید وسوسه شده و باهدف بهبود دقت، مدل را پیچیدهتر کنیم (همانطور که در راست نشاندادهشده است)- که البته به نوبهی خود باعث بیشبرازش میشود. یک مدل بیشبرازش شده، دادههای آموزشی را بهدرستی پیشبینی میکند ولی در انجام پیشبینی برای دادههای آزمایشی، ضعیفتر عمل میکند. اگر قبل از تقسیم دادههای آموزشی و آزمایشی، به شکل تصادفی جابهجا نشده باشند و الگوهای موجود در دو قطعه از داده، بهخوبی پخش نشده باشند، ممکن است بیشبرازش اتفاق بیفتد.
کمبرازش زمانی اتفاق میافتد که مدل بسیار ساده باشد و مثل حالت قبلی، الگوهای پنهان مجموعهداده را بهخوبی پوشش ندهد. کمبرازش باعث پیشبینیهای غلط برای هر دودسته دادههای آموزشی و آزمایشی میشود. از دلایل رایج زیر برازش، ناکافی بودن داده آموزشی برای پوشش کامل تمام ترکیبات ممکن و همینطور خوب جابهجا نشدن تصادفی دادههای آموزشی و آزمایشی، میباشد.
راهحلهای بیش برازش و کم برازش
یکی از راههای حل مشکل بیش برازش و کم برازش، تغییر ابرپارامترهای مدل است تا مطمئن بشوید که با الگوهای موجود در هر دو داده آموزشی و آزمایش (نه فقط با یک نیمه از دادهها)، سازگار میشود.
وقتی ابرپارامترها بهخوبی تنظیم شده باشند، الگوهای مهم درداده پیدا شده و تغییرات کوچک را کماثر و یا حذف میکند. بااینحال، در اکثر نمونهها، ممکن است نیاز داشته باشید که بر اساس آزمون و خطا، تغییر الگوریتم یا اصلاح پارامترها را بهمنظور کاهش و مدیریت مشکل مصالحه بین بایاس و واریانس، در نظر بگیرید.
احتمالاً در چنین شرایطی، نیاز به تغییر رگرسیون خطی به رگرسیون غیرخطی باشد تا با افزایش واریانس، بایاس کاهش یابد. شاید گزینه بعدی، افزایش “k” در KNN باهدف کاهش واریانس (با میانگینگیری همسایههای بیشتری) باشد. ممکن است گزینه سوم کاهش واریانس با تغییر تکدرخت تصمیم (Decision Tree) (که مستعد بیشبرازش است) به یک جنگل تصادفی (Random Forest) (با تعداد زیادی درخت تصمیم) باشد.
استراتژی مؤثر دیگر برای مبارزه با بیش برازش و کم برازش، رگولاریزاسیون (Regularization) است. رگولاریزاسیون به شکل مصنوعی، خطای بایاس را با جریمه افزایش پیچیدگی مدل، زیاد میکند. در عمل، این پارامتر اضافه شده یک اعلان هشدار ایجاد میکند – برای بالا نگهداشتن واریانس درحالیکه پارامترهای اصلی در حال بهینهسازی هستند.
تکنیک مؤثر دیگر برای جلوگیری از بیش برازش و زیر برازش، انجام اعتبارسنجی متقابل است که در فصلهای قبلی توضیح داده شد، تا هرگونه اختلاف بین دادههای آموزشی و آزمایشی را به حداقل برسد.
. . . .
و در انتها…
در این قسمت، فهمیدیم overfitting چیست و به سوال underfitting چیست پاسخ دادیم. برای درک بیش برازش و کم برازش، لازم بود تفاوت بایاس و واریانس را توضیح دهیم. در مقاله بعدی، معرفی الگوریتمهای یادگیری ماشین را با مقاله شبکه عصبی مصنوعی به زبان ساده ادامه میدهیم.
دوره آموزشی: هنوز انجام پروژه یادگیری ماشین شروع نکردید، چون برنامهنویسی بلد نیستید؟ اصلا نگران نباشید. دوره آموزش پایتون ویژه هوش مصنوعی را در کانال یوتیوب دیتاهاب ببینید.
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
عالی هستید
ممنون از همراهی شما