تبدیل شدن به یک متخصص یادگیری ماشین | گام دوم: دنبال کردن یک پروسه

انتخاب یک پروسه برای ورود به عرصه یادگیری ماشین بسیار مهم است. بعد از دست و پنجه نرم کردن با تعدادی مسئله یادگیری ماشین، معمولاً شما خواهید توانست یک الگو یا پروسه برای شروع سریع و دست یابی به نتایج خوب طرح ریزی کنید. سپس، استفاده از این پروسه در پروژه های گوناگون امری بسیار ساده خواهد بود. هر چه این پروسه (به سبب تجربه شما)‌ توسعه یابد، شما سریع تر در پروژه های تان به نتیجه می رسید!

اجازه بدهید برای شروع، من یک پروسه ۵ مرحله ای سیستماتیک را که خودم در زمانی که در حال تبدیل شدن به یک مهندس یادگیری ماشین بودم طراحی کرده ام برای شما شرح دهم. به یاد داشته باشید که این فقط یک نقطه شروع است و شما باید آن را متناسب با نیازهای تان توسعه دهید.

طرح مسأله

این گام، تماماً‌ به شناخت مسأله ای که با آن روبرو هستیم مرتبط است. خود را با دامنه مسأله آشنا کنید و بفهمید که چرا به دنبال پاسخی برای این مسأله هستید. برای تسهیل این امر، همیشه سوالات زیر را از خود بپرسید.

  1. مسأله چیست؟ در قالب رسمی و غیررسمی آن را برای خود شرح دهید. مطمئن شوید که تمام فرض های خود و تمام مسائل مشابه را لیست کنید.
  2. اصلاً چرا این مسأله باید حل شود؟ انگیزه های موجود برای حل مسأله را لیست کنید. حل مسأله چه فوایدی در پی دارد و چطور از حاصل حل مسأله استفاده خواهید کرد.
  3. من چگونه مسأله را حل خواهم کرد؟‌ برای افزایش دامنه دانش خود نسبت به مسأله، توضیح دهید که اگر می خواستید به صورت دستی مسأله را حل کنید، چطور این کار را انجام می دادید.

آماده سازی داده ها

آیا بر چند و چون مجموعه داده هایی که در اختیار دارید مسلط هستید؟ بسیاری از افراد از این گام به سادگی عبور می کنند، حال آن که توجه به آن بسیار حیاتی است. این کار شما را مجبور می کند که درباره داده ها در ارتباط با موضوع مسأله فکر کنید قبل از آن که داده ها در شلوغی الگوریتم ها و کدهای برنامه نویسی گم شوند!

  • انتخاب داده ها: در نظر بگیرید که چه داده هایی را در اختیار دارید. آیا فیلدها یا رکوردهای از دست رفته (Missing Data) وجود دارند؟ آیا می توانید بخش هایی از داده مثل داده های پرت و غیرطبیعی را کنار بگذارید (Garbage Data)؟
  • پردازش داده ها: داده هایی که برای مدل سازی انتخاب کرده اید را سازماندهی کنید. آن ها را در قالبی واحد وارد کرده، پاک سازی نمایید و در نهایت یک نمونه آماری از داده ها انتخاب کنید.
  • تبدیل داده ها:‌ متغیرهای مجموعه داده هایی را که برای تزریق به الگوریتم های یادگیری ماشین آماده کرده اید را از طریق اصلاح مقیاس (Feature Scaling)، تجزیه ویژگی ها (Attribute Decomposition)، و هم افزایی ویژگی ها (Attribute Aggregation) به شکل دلخواه تبدیل کنید.

بررسی الگوریتم های مختلف

حال که داده های تان را آماده کرده و در دست دارید، وقت آن رسیده که تعداد از الگوریتم های استاندارد یادگیری ماشین را بر روی آن ها آزمایش کنید. به طور معمول می توانید‌ ۱۰ تا ۲۰ الگوریتم استاندارد بر روی نسخه های تبدیل یافته و به مقیاس رفته مجموعه داده تان اعمال کنید.

هدف اصلی از آزمایش این الگوریتم های مختلف این است که با ارزیابی نتایج اولیه حاصل شده، مسیر بعدی خود را روشن کنید. الگوریتم هایی که نتایج امیدوارکننده تری داشته اند، باید با جزئیات بیشتر بررسی شوند.

بهبود نتایج

وقتی کار آزمودن الگوریتم های مختلف را به پایان رساندید و در نهایت الگوریتمی را که به بهترین نحو بر روی داده های شما عمل کرده را انتخاب کردید، زمان ارتقاء عملکرد الگوریتم برای دست یابی به بهترین نتایج فرا می رسد. می توانید این کار را به چند شیوه انجام دهید، اما مهم است که مطمئن شوید نتایج تان در مراحل ابتدایی نیز قابل قبول هستند چرا که تنظیم هایپرپارامترهای (Hyper-parameters) الگوریتم ها بنا نیست خروجی های نامناسب را به خروجی عالی تبدیل کنند. بلکه آن ها کمک می کنند عملکرد مدل را به صورت جزئی بهبود دهید.

برخی روش های استاندارد بهبود الگوریتم هایی که قابل قبول بودن خروجی شان تأیید شده است عبارت اند از:

  • تنظیم هایپرپارامترها: همه الگوریتم ها پارامترهای تنظیم کننده ای دارند و ما باید مطمئن شویم که متناسب با نوع و ویژگی های داده های مان، مقادیر بهینه ای برای آن ها انتخاب کرده ایم تا به بهترین عملکرد ممکن برای الگوریتم دست یابیم.
  • روش های یکپارچه (Ensemble Methods): در این حالت پیش بینی ها به کمک ترکیب چند مدل صورت می پذیرند.
  • مهندسی دقیق متغیرها: تجزیه ویژگی ها و هم افزایی (Aggregation) که در آماده سازی داده ها نیز به کار گرفته شدند، در این روش به صورت کامل تری اعمال می شوند.

ارائه خروجی ها

خروجی یک مسأله یادگیری ماشین پیچیده عموماً به خودی خود معنا و مفهومی ندارند. لازم است که آن ها با محتوای مسأله تطبیق داده شوند. به این معنی که در زمان ارائه خروجی پروژه یادگیری ماشین، خروجی های مدل ها باید به زبانی قابل فهم برای ذی نفعان و کارفرمایان تفسیر شوند. به این روش می توانید به همه نشان دهید که چطور مسأله را حل کرده اید و به چه نتایج ملموسی دست یافته اید.

در ادامه یک نمونه ساده از ارائه نتایج به شیوه پیش گفته می آوریم:

  • چرا: محیط و فضایی که مسأله در آن وجود داشته است را ترسیم و توصیف کنید و انگیزه های موجود برای حل آن را شرح دهید.
  • سوال: مسأله را در قالب یک سوال مشخص مطرح کنید.
  • راه حل: پاسخی که به کمک روش های یادگیری ماشین به آن دست یافتید را با جزئیات توضیح داده و ارتباط نتایج را با جنبه های مختلف مسأله اصلی بیان کنید.
  • یافته ها: تمام یافته های اصلی و حاشیه ای را که در حین حل مسأله به آن ها دست یافتید را لیست کنید.
  • محدودیت ها: محدودیت های مدل استفاده شده را آشکارا توضیح دهید. مدل در چه بخش ها و در چه شرایطی خوب عمل نمی کنید و یا این که چه بخش هایی از آن قابلیت بهبود دارد.
  • نتیجه گیری: به سوال و راه حل ارائه شده تان بازگردید و به نحوی آن ها را در قالبی مُجمَل بیان کنید که مخاطب تان آن را از یاد نبرد.

این مطلب بخشی از یک مجموعه مطالب مرتبط با هم است. برای دیدن مطلب آغازین و همین طور بخش های دیگر از لینک های زیر استفاده کنید:

مطلب آغازین: طی ۵ مرحله به دنیای یادگیری ماشین قدم بگذارید
گام اول: تنظیم کردن و آماده سازی ذهن
گام سوم: انتخاب یک ابزار
گام چهارم: تمرین، تمرین، تمرین
گام نهایی: ساخت پورتفولیو