
سلام? با یک یادگیری دیگر آمدیم میخواهیم مفهموم بایس و کم برازش و بیش برازش را در دنیای واقعی مثال بزنیم? اول بریم سراغ یک مقدمه که بایاس و بیش برازش و کم برازش چیست و بعد برای درک بهتر مثالی در دنیای واقعی بزنیم .
خب بیاید اینجوری شروع کنیم که ?
فرض کنید شما میخواهید در یک تست بازیگری شرکت کنید ??کارگردان هم به شما 5 نمونه دیالوگ داده است تا با استفاده از آنها بتوانید خود را برای اتد زدن تست آماده کنید. ??♀️اگر شما طوری آماده باشید که فقط این 5 اتد را بزنید و اگر نقش دیگری از شما بخواهند از پس آن بر نیایید یعنی آمادگی شما برای تست Overfit یا بیشبرازش شده است ???
بگذارید کمی جلوتر برویم تا بهتر مثال متوجه شوید ?
حال اگر تمامی مفاهیم بازیگری ، میمیک و بدن و بیان رابلد باشید ولی هیچ کدام از دیالوگ ها خواسته شده را حتی نشنیده باشید?❌ باز هم نمیتوانید ل خوبی اتد خواسته شده را بزنید ?، البته شاید بتوانید یک اتد نسبتا خوبی هم بزنید?ولی? اینجا توانایی شما در هنرتان Underfit شده است.? این در حالی است که نقش دیگری که نزدیک به این نقش ها هستند را هم شاید بتوانید نصفه و نیمه بازی کنید(ولی دقیق نمیتوانید همان دیالوگ و نقش را بازی کنید).☹️☹️
❌❌در دنیای الگوریتمها Overfit شدن به معنای این است که الگوریتم فقط دادههایی که در مجموعه آموزشی (train set) یاد گرفته است را میتواند به درستی پیشبینی کند ولی اگر دادهای کمی از مجموعهی آموزشی فاصله داشته باشد، الگوریتمی که Overfit شده باشد، نمیتواند به درستی پاسخی برای این دادههای جدید پیدا کند و آنها را با اشتباهِ زیادی طبقهبندی می کند.❌❌
Underfit شدن نیز زمانی رخ می دهد که الگوریتم یک مدلِ خیلی کلی از مجموعه آموزشی به دست میآورد. یعنی حتی اگر خودِ دادههای مجموعهی آموزشی را نیز به این الگوریتم بدهیم، این الگوریتم خطایی قابل توجه خواهد داشت
????
میتوان گفت یادگیری ماشین (Machine Learning)، بهعنوان یک علم، بههمان اندازه که مهم و چشمگیر است، پیچیده نیز است؛ درواقع اساس آن از مسائل فنی و ریاضی تشکیل شده است. اگر نتوانیم این مسائل فنی را درک کنیم، نمیتوانیم بگوییم یادگیری ماشین را یاد گرفتهایم؛ برای مثال، اگر بهعنوان یک محقق داده (Data Scientist) به مصاحبهی کاری برویم، بهطور حتم از ما سؤال میشود که «آیا میتوانید دربارهی مشکل کمبرازش (Underfitting) و بیشبرازش (Overfitting) در یادگیری ماشین توضیح دهید؟». البته آنان به دنبال این نیستند که تمامی جزئیات این مسائل را با نمودار برایشان شرح دهید، اما میخواهند بدانند شما این مفهوم را درک کردهاید یا نه.
بایاس مدل اصلا میدانید چی هست??
بایاس میزان خطای مدل را مشخص میکند. به عبارتی میزان اختلاف بین خروجی واقعی و خروجی تخمین زده شده توسط مدل را مشخص میکند. هرچقدر بایاس مدل زیاد باشه معنیش اینه که خطاش زیاد است و هرچقدر کمتر یعنی میزان خطا کمتر است. وقتی مدل underfit بشود، بایاس مدل افزایش می یابد. اصطلاح underfitting را زمانی به کار میبریم که مدل به خوبی نتواند یاد بگیرد. ممکن است مدلی که برای حل مسئله استفاده کردهایم، توان حل مسئله را نداشته باشد. مثلا مرز دادهها غیرخطی است ولی ما از یک مدل ساده که میتواند مرز خطی پیدا کند استفاده کنیم.
مفهوم بایاس در یادگیری ماشین هم اگر بخواهیم بگوییم
به این دلیل که رابطه بین ورودی و خروجی غیرخطی است، ولی مدلی که استفاده کرده ایم خطی است و توان حل یک مسئله غیرخطی را ندارد. در نتیجه خروجی تخمین زده شده توسط این مدل خروجی مناسبی نیست و با مقادیر واقعی اختلاف زیادی دارد. در چنین شرایطی میگوییم بایاس مدل زیاد است. مدلی که برای حل این مسئله استفاده شده است یک مدل ضعیف یا به عبارتی weak-learner است.
این همه گفتیم مثال هم زدیم شاید دوباره بپرسید
کم برازش (Underfitting) چیست؟ چه زمانی اتفاق میافتد و راههای جلوگیری از آن کدام است؟ بهزبان ساده، کمبرازش هنگامی اتفاق میافتد که مدل یادگیری ماشین بهاندازهی کافی پیچیده نباشد که بتواند روابط میان ویژگیهای یک مجموعه داده و متغیر هدف را بهدرستی تشخیص دهد.
مدلی که به مشکل کمبرازش دچار است به نتایج اشتباه در دادههای جدید را که روی آنها آموزش داده نشده است رقم خواهد زد و اغلب حتی درمورد دادههای آموزشی نیز عملکرد ضعیفی دارد. زمانی که مدل دچار مشکل کم برازش (Underfitting) است بسیاری از ویژگیهای دادههای آموزشی را را نادیده میگیرد و نمیتواند رابطهی میان ورودی و خروجی را یاد بگیرد.
شاید بگید خب ?کم برازش (Underfitting) چیست؟
کم برازش (Underfitting) سناریویی در علم داده (Data Science) است که در آن یک مدل قادر نیست رابطهی میان متغیرهای ورودی و خروجی را به طور دقیق ثبت کند. این خطا ایجاد خطای بالایی در هر دو مجموعهی آموزشی و مجموعهی دادههای دیدهنشده (تست) را رقم میزند.
⭐⭐⭐⭐⭐⭐⭐
این امر زمانی رخ میدهد که مدل بیشازحد ساده باشد؛ بهاین معنا که مدل به زمان آموزش بیشتر، ویژگیهای ورودی بیشتر یا تنظیم (Regularization) کمتر نیاز دارد.
مدل در کمبرازش نمیتواند الگوی غالب را در دادهها را تشخیص دهد؛ درنتیجه، این امر افزایش خطا و عملکرد ضعیف مدل را به همراه دارد.
اگر مدلی نتواند بهخوبی به دادههای جدید تعمیم داده شود، نمیتوان از آن برای طبقهبندی یا پیشبینی استفاده کرد. تعمیم یک مدل به دادههای جدید درنهایت همان چیزی است که به ما امکان میدهد هر روز از الگوریتمهای یادگیری ماشین برای پیشبینی و طبقهبندی دادهها استفاده کنیم.
شاخصهای تشخیص کم برازش (Underfitting)
بایاس بالا (High Bias) و واریانس پایین (Low Variance) شاخصهای خوبی برای تشخیص کمبرازش هستند. از آنجا که این رفتار در هنگام استفاده از مجموعهی دادههای آموزشی دیده میشود، معمولاً شناسایی مدلهای دچار کمبرازش راحتتر از مدلهایی است که دچار بیشبرازش (Overfitting) هستند.
وقتی درباره Overfitting صحبت میکنیم صحبت از بالا رفتن یادگیری مدل بر روی داده های آموزشی میکنیم .به عبارتی الگوریتم مورد استفاده مدل ما بدلیل یاد گرفتن یکایک نمونه های آموزشی تبدیل به یک مدل پیچیده شده تا جایی که اگر یک نمونه جدید تست به این مدل داده شود خطای بالایی را تولید خواهد کرد. شکل زیر دقیقا این وضعیت را نمایش میدهد . اما راه حل چیست ؟
روشهای معمول پیشنهاد شده برای مواجهه با بیش برازش
Cross-Validation: یک روش استاندارد برای پیدا کردن خطای پیش بینی داده های جدید، استفاده ا k-fold cross validation است که ما معمولا k را ۱۰ یا ۵ در نظر میگیریم .
توقف زودهنگام الگوریتم: با وضع قوانینی در الگوریتم سعی میکنیم قبل از اینکه به بیش برازش برسیم یادگیری را متوقف کنیم.
هرس: هرس کردن خصوصا در الگوریتم های درخت تصمیم , با حذف گره هایی که کمترین تاثیر را در نتایج خروجی دارند موجب ساده شدن مدل میشوند.
Regularization: این معیار با تعریف تابع هزینه (شما عملکرد این تابع را به عنوان جریمه در نظر بگیرید) اضافه شدن ویژگی ها به تابع هدف را سختگیرانه کنترل میکند. از این رو تلاش می کند ضرایب را برای بسیاری از ویژگی ها به صفر برساند و به همین ترتیب هزینه را مینیمم کند.
Underfitting یا کم برازش
برعکس زمانی که ما دچار Underfitting میشویم اذعان به سادگی مدل در مرحله آموزش داریم تا حدی که نتوانسته مفهوم حاکم بر داده های ورودی را درک کند. چون مدل ما ساده است نمیتواند رفتار داده های آموزش را بدرستی یاد بگیرد و طبیعتا خطای آموزش بالایی دارد .بنابراین در مواجهه با داده های تست جدید هم خطای تعمیم بالایی خواهد داشت.معمولا زمانی اتفاق می افتد که داده های کمتری برای ساخت یک مدل دقیق و همچنین زمانی که ما سعی می کنیم یک مدل خطی با داده های غیر خطی ایجاد کنیم.
شکل زیر تحلیل شفافی را به ما میدهد . همانطور که صحبت شد , زمانی که پیچیدگی مدل ما به دلیل یادگیری کمتر در مرحله آموزش پایین است در معرض Underfitting هستیم و هم خطای آموزش و هم خطای تست بالاست و نتسیجه اینکه خطای تعمیم پذیری مدل هم بالا خواهد بود.
هر چقدر پیچیدگی مدل افزایش میابد خطای آموزش به دلیل یادگیری دقیق تر داده های آموزشی کمتر شده اما مدل در پیش بینی رفتار داده های تست رفتار نامناسبی داشته و خطای تست بالا میرود و مدل ما برای داده های جدید ناکامد بوده و قابل تعمیم نمیباشد.
طبیعتا بهترین فیت جاییست که خطای آموزش و خطای تست در حد معقولی بسته به صورت مسئله بین دو پدیده فوق باشد.
یکی از بهترین شیوه هایی که درک ایندو پدیده برای من تثبیت شد استفاده از دو مفهوم دیگر بنام واریانس وبایاس مدل بود .
واریانس مدل متغیر بودن پیش بینی مدل برای یک داده است که به ما درباره پراکندگی داده های ما صحبت میکند. مدل با واریانس زیاد توجه زیادی به داده های آموزشی داشته و بر اطلاعاتی که قبل از آن دیده نشده تعمیم پذیر نمیباشد. در نتیجه، چنین مدلهایی به خوبی بر روی داده های آموزشی عمل می کنند اما دارای نرخ خطای بالا در داده های تست هستند.در وارایانس موجب ایجاد خطای ناشی از حساسیت به نوسانات کوچک در مجموعه آموزش است و الگوریتم را به مدل کردن نویز های تصادفی در داده های آموزش وادار میکند یعنی همان پدیده overfitting .
?⭐?⭐?
بایاس اختلاف بین میانگین پیش بینی مدل ما و مقدار واقعی ای که ما در حال تلاش برای پیش بینی آن هستیم. مدل با بایاس زیاد توجه زیادی به داده های آموزش نکرده و مدل را بیش از پیش ساده و کلی می کند. این همیشه منجر به خطای زیاد در آموزش و داده های تست می شود. بایاس بالا می تواند در الگوریتم منجر به از دست رفتن روابط بین ویژگی ها و خروجی های هدف یا همان Underfitting شود.
?
. هدف از پست این است که با مفهوم Overfitting و Underfitting آشنا شده تا بتوانیم الگوریتمهایی ارائه کنیم تا از این دو پدیده در امان باشند.
?
اجازه بدهید با یک مثال شروع کنیم. فرض کنید شما برای یک آزمون در حال درس خواندن هستید. استاد هم به شما 50عدد نمونه سوال داده است تا با استفاده از آنها بتوانید خود را برای امتحان آماده کنید. اگر شما طوری مطالعه کنید که فقط این 50نمونه سوال را کامل بلد باشید و هر سوالِ دیگری که کمی از این 50 سوال فاصله داشته باشد، اشتباه جواب دهید، یعنی ذهنِ شما بر روی سوالاتِ آموزشی که استاد برای یادگیری داده است Overfit یا بیشبرازش شده است. حال اگر تمامی سوالات را به صورت مفهومی بلد باشید ولی هیچ کدام از سوالات را به صورتِ دقیق بلد نباشید، حتی اگر دقیقاً همان سوالها هم در جلسه امتحان به شما داده شود، باز هم نمیتوانید به درستی و با دقت پاسخ آن ها را بدهید، البته شاید بتوانید یک پاسخ نصفه و نیمه از سوالات بنویسید. اینجا ذهن شما Underfit شده است. این در حالی است که سوالات دیگری که نزدیک به این سوالات هستند را هم شاید بتوانید نصفه و نیمه پاسخ دهید (ولی دقیق نمیتوانید).
?
در دنیای الگوریتمها Overfit شدن به معنای این است که الگوریتم فقط دادههایی که در مجموعه آموزشی (train set) یاد گرفته است را میتواند به درستی پیشبینی کند ولی اگر دادهای کمی از مجموعهی آموزشی فاصله داشته باشد، الگوریتمی که Overfit شده باشد، نمیتواند به درستی پاسخی برای این دادههای جدید پیدا کند و آنها را با اشتباهِ زیادی طبقهبندی می کند.
?
Underfit شدن نیز زمانی رخ می دهد که الگوریتم یک مدلِ خیلی کلی از مجموعه آموزشی به دست میآورد. یعنی حتی اگر خودِ دادههای مجموعهی آموزشی را نیز به این الگوریتم بدهیم، این الگوریتم خطایی قابل توجه خواهد داشت.بایاس (Bias )
مهول پاتل مدیرعامل اجرایی شرکت hired می گوید:
?
در حالی که شما احتمالا ماشین ها را عینی، عادلانه و منسجم تصور می کنید اما در واقع آن ها بیشتر همان تعصبات ( بایاس ) ناخودآگاه را همانند انسان هایی که آن ها را ساخته اند، تصویب می کنند. به همین دلیل لازم است که شرکت ها اهمیت عادی سازی داده ها را – یعنی تنظیم مقادیر اندازه گیری شده در مقیاس های مختلف در مقیاس معمول – تشخیص دهند تا اطمینان حاصل شود که تعصبات انسانی ناخواسته وارد الگوریتم نمی شوند.
?
به عنوان نمونه اگر شما بخواهید نیرو استخدام کنید و از رایانه بدین منظور استفاده نمایید: اگر مجموعه ای از داده ها و ۱۰۰ زن و ۳۰۰ مرد کاندیدا را به رایانه ارائه دهید و از آن بخواهید بهترین فرد را برای این کار پیش بینی کند، قرار است نامزدهای مرد بیشتری را تحت پوشش خود قرار دهد زیرا حجم مردان سه برابر اندازه زنان در مجموعه داده ها است. در نتیجه ساختن فناوری عادلانه و عینی ممکن است چالش برانگیز باشد اما مطمعنا الگوریتم های آگاه سازی در مورد تصمیمات و بینش های ما و تعصباتی را که ما سعی در خنثی کردن آن ها به عنوان یک جامعه داریم در پی ندارد.
بایاس (Bias )
?
مهول پاتل مدیرعامل اجرایی شرکت hired می گوید:
در حالی که شما احتمالا ماشین ها را عینی، عادلانه و منسجم تصور می کنید اما در واقع آن ها بیشتر همان تعصبات ( بایاس ) ناخودآگاه را همانند انسان هایی که آن ها را ساخته اند، تصویب می کنند. به همین دلیل لازم است که شرکت ها اهمیت عادی سازی داده ها را – یعنی تنظیم مقادیر اندازه گیری شده در مقیاس های مختلف در مقیاس معمول – تشخیص دهند تا اطمینان حاصل شود که تعصبات انسانی ناخواسته وارد الگوریتم نمی شوند.
به عنوان نمونه اگر شما بخواهید نیرو استخدام کنید و از رایانه بدین منظور استفاده نمایید: اگر مجموعه ای از داده ها و ۱۰۰ زن و ۳۰۰ مرد کاندیدا را به رایانه ارائه دهید و از آن بخواهید بهترین فرد را برای این کار پیش بینی کند، قرار است نامزدهای مرد بیشتری را تحت پوشش خود قرار دهد زیرا حجم مردان سه برابر اندازه زنان در مجموعه داده ها است. در نتیجه ساختن فناوری عادلانه و عینی ممکن است چالش برانگیز باشد اما مطمعنا الگوریتم های آگاه سازی در مورد تصمیمات و بینش های ما و تعصباتی را که ما سعی در خنثی کردن آن ها به عنوان یک جامعه داریم در پی ندارد.
شاید عجیب به نظر برسد، اما دادهها درعینحال که ارزشمندترین داراییهای یک شرکت هستند، میتوانند مشکلسازترین دارایی شرکتها هم باشند.
شرکتی را در نظر بگیرید که خدمات آزمایش DNA ارائه میکند. خدماتی که این روزها پرطرفدار هم هست. اطلاعاتی که از آزمایش DNA به دست میآید، برای مشتریان شرکت بسیار ارزشمند است، چرا که حاوی اطلاعاتی از روابط خانوادگی و اجدادی تا ردپاهای ژنتیکی درگیر در بیماریهاست. اهمیت این اطلاعات در کنار تردیدها دربارهٔ سوگیریهای داده (data bias) نهفته در آنها، سؤالات مهمی دربارهٔ این آزمایشها به وجود میآورد. آیا این آزمایشها دقت و اعتبار کافی دارند؟ آیا میتوان به نتایج آنها اطمینان کرد؟ مشتریانی هستند که نتایج بسیار متفاوتی از شرکتهای مختلف ارائهکنندهٔ خدمات تست DNA دریافت کردهاند. گروه دیگری از افراد هم هستند که اطلاعات مورد نظرشان را در نتایج این تستها پیدا نمیکنند، آن هم بیشتر افرادی که در زمرهٔ اقلیت نژادی و قومی محسوب میشوند.
بخش عمدهای از این مشکلات، به استفادهٔ آزمایشگاهها از الگوریتمهای هوش مصنوعی (AI) در تفسیر آزمایشها مربوط میشود، تا از این طریق به کار سرعت ببخشند و اتکا به نیروی انسانی متخصص را کاهش دهند. این الگوریتمها، اگرچه سرعت بسیار بیشتری از انسانها دارند، اما تنها بر اساس مجموعه دادههایی که از گذشته جمعآوری شدهاند، کار میکنند و ممکن است دادههای پیشین نمود درستی از انواع ترکیبهای مختلف که در افراد گوناگون دیده میشود، به دست ندهند.
این نوع مشکلات، تنها گریبان شرکتهای ارائهدهندهٔ خدمات ژنتیکی را نمیگیرد. در زمینههای گوناگون، از صنایع گرفته تا تجارت، بهکارگیری هوش مصنوعی مشروط به پیداکردن راهحلهایی برای سوگیریهای داده و رفع ریسکهای احتمالی در موضوعهای اخلاقی، حقوقی و مالی، در زمینهٔ استفاده از هوش مصنوعی است.
حل مشکل سوگیری دادهها نیازمند شناخت دقیق ریشههای شکلگیری این مشکل در دادهها است. با شناخت بهتر ریشهٔ این مشکلات، شرکتها میتوانند سامانههای هوشمند را به شکلی مسئولانهتر پیادهسازی کنند و حتی عملکرد آنها را نیز بهتر سازند.
سوگیریها و چرخهٔ عمر داده (Bias and the Data Lifecycle)
در ساخت سیستمهای هوش مصنوعی از مجموعه دادهها استفاده میشود. مجموعه دادهها از تعصبها و تبعیضها نسبت به گروههای مختلف (مثلاً اقلیتهای نژادی) عاری نیستند. سوگیری داده همینجا اتفاق میافتد، یعنی هنگام ساخت سیستمهای هوشمند، براساس مجموعه دادههایی که از تعصبها و تبعیضها متأثرند. اغلب تصور میشود که این سوگیریها علیه اقلیتهای حمایت شده در یک جامعه است (قانون فدرال آمریکا از افراد در برابر تبعیض و تنفر به دلیل داشتن دین، قومیت، جنسیت، سن، معلولیت، رنگ پوست، مرام خاص، ریشههای تابعیتی، مذهب و اطلاعات ژنتیکی حمایت میکند)، اما، در واقع هر نوع سوگیری داده، به نفع یا به ضرر هر گروهی، میتواند مشکلآفرین باشد و ......
دیگه فکر میکنم متوجه شده باشید ?
موفق باشید ??️
زهره غنی آبادی دانشجو ارشد هوش مصنوعی دانشگاه صنعتی مالک اشتر تهران