چالشهای اصلی یادگیری ماشین
خلاصه اینکه چون وظیفهٔ اصلی شما انتخاب یک مدل و آموزش آن با مقداری داده است، دو دسته مشکل میتواند رخ دهد: «مدل بد» و «دادهٔ بد». ابتدا چند نمونه از دادهٔ بد را بررسی میکنیم.
کمبود دادهٔ آموزشی
برای اینکه یک کودک خردسال یاد بگیرد سیب چیست، کافی است به یک سیب اشاره کنید و بگویید «سیب»؛ شاید لازم باشد این کار را چند بار تکرار کنید. پس از آن کودک میتواند سیبها را در رنگها و شکلهای مختلف تشخیص دهد. واقعاً شگفتانگیز است.
یادگیری ماشین هنوز به چنین سطحی نرسیده است. بیشتر الگوریتمهای یادگیری ماشین برای عملکرد مناسب به حجم زیادی داده نیاز دارند. حتی برای مسائل بسیار ساده معمولاً هزاران نمونه لازم است، و برای مسائل پیچیدهای مانند تشخیص تصویر یا گفتار ممکن است میلیونها نمونه لازم باشد؛ مگر اینکه بتوانید بخشهایی از یک مدل موجود را دوباره استفاده کنید.
شکل ۱-۲۱. اهمیت داده در مقایسه با الگوریتمها۸
دادهٔ آموزشی غیرنماینده
برای تعمیم خوب، ضروری است دادهٔ آموزشی شما نمایندهٔ موارد جدیدی باشد که میخواهید مدل به آنها تعمیم دهد. این اصل چه در یادگیری نمونهمحور و چه در یادگیری مدلمحور صادق است.
برای مثال، مجموعهٔ کشورهایی که پیشتر برای آموزش مدل خطی استفاده کردیم کاملاً نماینده نبود: هیچ کشوری با GDP سرانه کمتر از ۲۳٬۵۰۰ دلار یا بیشتر از ۶۲٬۵۰۰ دلار در آن نبود. اگر چنین کشورهایی را اضافه کنید، تصویر داده تغییر میکند.
اگر مدل خطی را با دادهٔ گستردهتر آموزش دهید، خط پیوستهٔ شکل ۱-۲۲ به دست میآید؛ مدل قدیمی با خط نقطهچین نشان داده شده است. افزودن تنها چند کشورِ جاافتاده نهفقط مدل را بهطور محسوس تغییر میدهد، بلکه روشن میکند یک مدل خطی ساده احتمالاً هرگز عملکرد بسیار خوبی نخواهد داشت. به نظر میرسد کشورهای بسیار ثروتمند از کشورهای با ثروت متوسط شادتر نیستند؛ حتی کمی ناراضیتر به نظر میرسند. از سوی دیگر بعضی کشورهای فقیر از بسیاری از کشورهای ثروتمند رضایت بیشتری دارند.
با استفاده از مجموعهٔ آموزشی غیرنماینده، مدلی آموزش دادهاید که بعید است، بهخصوص برای کشورهای بسیار فقیر و بسیار ثروتمند، پیشبینی دقیقی داشته باشد.
شکل ۱-۲۲. نمونهٔ آموزشی نمایندهتر
استفاده از مجموعهٔ آموزشی نمایندهٔ مواردی که میخواهید به آنها تعمیم دهید حیاتی است. اجرای این اصل اغلب سختتر از چیزی است که به نظر میرسد. اگر نمونه بیش از حد کوچک باشد، «نویز نمونهگیری» خواهید داشت؛ یعنی داده بهطور تصادفی نماینده نیست. اما حتی نمونههای بسیار بزرگ نیز اگر روش نمونهگیری ایراد داشته باشد میتوانند غیرنماینده باشند. این مسئله «سوگیری نمونهگیری» نامیده میشود.
دادهٔ کمکیفیت
بدیهی است اگر دادهٔ آموزشی پر از خطا، دادهٔ پرت و نویز باشد، مثلاً به دلیل اندازهگیریهای بیکیفیت، تشخیص الگوهای واقعی برای سامانه دشوارتر میشود و احتمال عملکرد خوب کاهش مییابد. معمولاً ارزش دارد زمان قابلتوجهی برای پاکسازی دادهٔ آموزشی صرف کنید؛ در واقع دانشمندان داده بخش مهمی از زمان خود را صرف همین کار میکنند. چند نمونه از موقعیتهای نیازمند پاکسازی:
- اگر برخی نمونهها بهوضوح دادهٔ پرتاند، حذف آنها یا اصلاح دستی خطاها میتواند مفید باشد.
- اگر چند ویژگی در بعضی نمونهها وجود ندارد، مثلاً ۵ درصد مشتریان سن خود را وارد نکردهاند، باید تصمیم بگیرید آن ویژگی را کاملاً نادیده بگیرید، نمونههای ناقص را حذف کنید، مقادیر گمشده را مثلاً با میانهٔ سن پر کنید، یا دو مدل جداگانه، یکی با آن ویژگی و دیگری بدون آن، آموزش دهید.
ویژگیهای نامرتبط
طبق ضربالمثل معروف حوزهٔ داده: «ورودی زباله، خروجی زباله». سامانه فقط وقتی میتواند یاد بگیرد که دادهٔ آموزشی ویژگیهای مرتبط کافی داشته باشد و با تعداد زیادی ویژگی نامرتبط آلوده نشده باشد. یکی از بخشهای حیاتی موفقیت پروژهٔ یادگیری ماشین، تهیهٔ مجموعهٔ خوبی از ویژگیهاست. این فرایند «مهندسی ویژگی» نام دارد و مراحل زیر را در بر میگیرد:
- انتخاب ویژگی: انتخاب مفیدترین ویژگیها برای آموزش از میان ویژگیهای موجود.
- استخراج ویژگی: ترکیب ویژگیهای موجود برای ساخت ویژگی مفیدتر؛ همانطور که دیدیم، الگوریتمهای کاهش ابعاد میتوانند در این کار کمک کنند.
- ساخت ویژگیهای جدید: گردآوری دادهٔ جدید برای ایجاد ویژگیهای تازه.
اکنون که نمونههای زیادی از دادهٔ بد دیدیم، چند نمونه از الگوریتم یا مدل نامناسب را بررسی میکنیم.
بیشبرازش دادهٔ آموزشی (Overfitting)
فرض کنید به کشوری خارجی سفر کردهاید و رانندهٔ تاکسی از شما پول زیادی میگیرد. شاید وسوسه شوید بگویید همهٔ رانندگان تاکسی آن کشور دزدند. انسانها بیشتعمیمدادن را زیاد انجام میدهند و اگر مراقب نباشیم، ماشینها نیز در همان دام میافتند. در یادگیری ماشین این مسئله «بیشبرازش» نامیده میشود: مدل روی دادهٔ آموزشی خوب عمل میکند اما به نمونههای جدید خوب تعمیم نمیدهد.
شکل ۱-۲۳ نمونهای از یک مدل چندجملهای با درجهٔ بالا برای رضایت از زندگی را نشان میدهد که دادهٔ آموزشی را شدیداً بیشبرازش کرده است. هرچند عملکردش روی دادهٔ آموزشی بسیار بهتر از مدل خطی ساده است، آیا واقعاً به پیشبینیهای آن اعتماد میکنید؟
شکل ۱-۲۳. بیشبرازش دادهٔ آموزشی
مدلهای پیچیده، مانند شبکههای عصبی عمیق، میتوانند الگوهای ظریف داده را پیدا کنند. اما اگر مجموعهٔ آموزشی نویزی یا بسیار کوچک باشد و در نتیجه نویز نمونهگیری داشته باشد، مدل ممکن است الگوهای خودِ نویز را یاد بگیرد؛ همانند مثال رانندهٔ تاکسی. چنین الگوهایی به نمونههای جدید تعمیم نمییابند.
برای مثال فرض کنید ویژگیهای بسیار بیشتری، از جمله ویژگیهای بیفایدهای مانند نام کشور، به مدل رضایت از زندگی بدهید. یک مدل پیچیده شاید متوجه شود همهٔ کشورهایی که در نام انگلیسیشان حرف w دارند در دادهٔ آموزشی رضایت از زندگی بیشتر از ۷ دارند: New Zealand با ۷٫۳، Norway با ۷٫۶، Sweden با ۷٫۳ و Switzerland با ۷٫۵. آیا میتوان با اطمینان گفت این قاعده برای Rwanda یا Zimbabwe نیز برقرار است؟ واضح است که این الگو صرفاً از سر تصادف در دادهٔ آموزشی رخ داده، اما مدل راهی برای تشخیص واقعیبودن یک الگو از تصادفیبودن آن ندارد.
محدودکردن مدل برای سادهترشدن و کاهش خطر بیشبرازش «منظمسازی (Regularization)» نام دارد. مدل خطی پیشین دو پارامتر θ0 و θ1 داشت. این دو پارامتر دو درجهٔ آزادی به الگوریتم میدهند تا مدل را با دادهٔ آموزشی تطبیق دهد: هم ارتفاع خط با θ0 و هم شیب آن با θ1 تغییر میکند.
اگر θ1 را مجبور کنیم صفر باشد، الگوریتم فقط یک درجهٔ آزادی خواهد داشت و برازش دقیق داده بسیار دشوار میشود؛ تنها میتواند خط را بالا و پایین ببرد تا تا حد ممکن به نمونهها نزدیک شود و در نهایت تقریباً روی میانگین قرار میگیرد. اگر اجازه دهیم θ1 تغییر کند اما مجبورش کنیم مقدار کوچکی داشته باشد، مدل جایی میان یک و دو درجهٔ آزادی مؤثر خواهد داشت. چنین مدلی از مدل کاملاً آزاد سادهتر و از مدل تکدرجهای پیچیدهتر است. هدف یافتن تعادل مناسب میان برازش خوب دادهٔ آموزشی و سادهماندن کافی مدل برای تعمیم مناسب است.
در شکل ۱-۲۴ سه مدل دیده میشود. خط نقطهچین مدل اصلی است که فقط روی کشورهایی که با دایره نشان داده شدهاند آموزش دیده بود؛ خط پیوسته مدل دوم است که با همهٔ کشورها، دایرهها و مربعها، آموزش دیده است؛ و خط خطچین مدل دیگری است که با دادهٔ مدل اول اما با محدودیت منظمسازی آموزش دیده است. منظمسازی مدل را مجبور کرده شیب کوچکتری داشته باشد. این مدل دادهٔ آموزشی اولیه را به خوبی مدل اول برازش نمیدهد، اما روی نمونههای جدیدی که هنگام آموزش ندیده است، یعنی مربعها، بهتر تعمیم میدهد.
شکل ۱-۲۴. منظمسازی خطر بیشبرازش را کاهش میدهد.
مقدار منظمسازی هنگام یادگیری با یک «فراپارامتر (Hyperparameter)» کنترل میشود. فراپارامتر، پارامتر الگوریتم یادگیری است، نه پارامتر خود مدل؛ بنابراین الگوریتم یادگیری آن را تغییر نمیدهد. باید پیش از آموزش تعیین شود و در طول آموزش ثابت میماند. اگر فراپارامتر منظمسازی را بسیار بزرگ تنظیم کنید، مدلی تقریباً تخت با شیب نزدیک صفر به دست میآید؛ الگوریتم تقریباً قطعاً دادهٔ آموزشی را بیشبرازش نمیکند، اما احتمال یافتن راهحل خوب نیز کمتر میشود. تنظیم فراپارامترها بخش مهمی از ساخت یک سامانهٔ یادگیری ماشین است و در فصل بعد نمونهٔ دقیقی از آن خواهید دید.
کمبرازش دادهٔ آموزشی (Underfitting)
کمبرازش نقطهٔ مقابل بیشبرازش است: زمانی رخ میدهد که مدل برای یادگیری ساختار نهفتهٔ داده بیش از حد ساده باشد. برای نمونه، مدل خطی رضایت از زندگی مستعد کمبرازش است؛ واقعیت از مدل پیچیدهتر است، بنابراین پیشبینیهای مدل حتی روی خود نمونههای آموزشی نیز ناگزیر خطا دارند.
راههای اصلی رفع این مسئله عبارتاند از:
- مدلی قدرتمندتر و دارای پارامترهای بیشتر انتخاب کنید.
- ویژگیهای بهتری به الگوریتم یادگیری بدهید؛ یعنی مهندسی ویژگی انجام دهید.
- محدودیتهای مدل را کاهش دهید؛ برای نمونه فراپارامتر منظمسازی را کمتر کنید.
نگاهی دوباره به تصویر کلی
اکنون مطالب زیادی دربارهٔ یادگیری ماشین میدانید. چون مفاهیم فراوانی پشت سر گذاشتهایم، ممکن است کمی احساس سردرگمی کنید؛ بنابراین بهتر است یکبار دیگر تصویر کلی را مرور کنیم:
- یادگیری ماشین یعنی ماشینها بهجای آنکه مجبور باشیم قواعد را صریحاً برایشان کدنویسی کنیم، با یادگیری از داده در انجام یک وظیفه بهتر شوند.
- انواع زیادی سامانهٔ یادگیری ماشین وجود دارد: نظارتشده یا غیرنظارتشده، دستهای یا برخط، نمونهمحور یا مدلمحور.
- در پروژهٔ یادگیری ماشین، داده را در یک مجموعهٔ آموزشی گردآوری و به الگوریتم یادگیری میدهید. اگر الگوریتم مدلمحور باشد، پارامترهایی را تنظیم میکند تا مدل با مجموعهٔ آموزشی برازش یابد، یعنی روی خود دادهٔ آموزشی پیشبینی خوبی داشته باشد، و امیدواریم روی نمونههای جدید نیز خوب عمل کند. اگر الگوریتم نمونهمحور باشد، مثالها را به خاطر میسپارد و با استفاده از معیار شباهت، نمونهٔ جدید را با نمونههای آموختهشده مقایسه و تعمیم میدهد.
- سامانه اگر مجموعهٔ آموزشی بسیار کوچک، غیرنماینده، نویزی یا پر از ویژگیهای نامرتبط باشد عملکرد خوبی نخواهد داشت. در نهایت، مدل نباید بیش از حد ساده باشد که کمبرازش کند و نباید بیش از حد پیچیده باشد که بیشبرازش کند.
تنها یک موضوع مهم دیگر باقی مانده است: پس از آموزش مدل، نمیخواهید فقط «امیدوار» باشید که روی نمونههای جدید خوب تعمیم میدهد. باید آن را ارزیابی و در صورت نیاز تنظیم کنید. بخش بعد روش این کار را توضیح میدهد.