چرخه حیات یادگیری ماشین (ML Lifecycle)
چرخه حیات یادگیری ماشین (ML Lifecycle) چیست؟ توسعه یک سیستم یادگیری ماشین در دنیای واقعی چطور انجام میشود؟ اگر یک کارفرما پروژهای مانند تخمین قیمت خانه، پیشبینی قیمت خودرو یا تخمین میزان مصرف انرژی را به شما پیشنهاد دهد و قرار باشد این پروژه در عمل توسط کاربران و سرویسهای متعددی استفاده شود، باید چه مراحلی را از ابتدا تا انتها طی کنید؟ پاسخ به این سوال کلیدی در مفهومی به نام چرخه حیات یادگیری ماشین (ML Lifecycle) نهفته است. در این مقاله، ساختار و مراحل این چرخه را بر پایه کتاب معتبر Designing Machine Learning Systems کالبدشکافی میکنم.
چرخه حیات یادگیری ماشین (ML Lifecycle) چیست؟
چرخه حیات یادگیری ماشین (ML Lifecycle) مجموعه مراحل لازم برای انجام یک پروژه یادگیری ماشین است. به بیان دیگر، این فرآیند نقشه راهی است که از لحظه شکلگیری ایده در ذهن ما تا پیادهسازی، عرضه به بازار، استفاده کاربران، تحویل به کارفرما و حتی اتفاقاتی که بعد از آن رخ میدهد را پوشش میدهد.

چرا به این فرآیند «چرخه» میگویند؟
توسعه یادگیری ماشین یک فرآیند خطی نیست که از نقطهای شروع شود و در نقطه دیگر به پایان برسد. این فرآیند به دو دلیل ماهیت چرخهای دارد:
- برگشتپذیری: بارها پیش میآید که در مرحله ۴ یا ۵ هستید، اما نیاز است به مراحل قبلی بازگردید، اصلاحاتی انجام دهید و دوباره به جلو بروید.
- پایانناپذیر بودن: این پروسه تکرارشونده است. برای اینکه یک سرویس عمر طولانی داشته باشد، زود نمیرد و بتواند مدت زیادی خدمات ارائه دهد، باید این چرخه را دائما ادامه دهید، مانیتور و اصلاح کنید.
توجه اگر اصطلاح ML Lifecycle را در گوگل جستجو کنید، با نمودارها و مراحل متعددی (مثلا ۴، ۵، ۷ یا ۸ مرحلهای) مواجه میشوید. کلیات و هسته مرکزی همه آنها مشابه است، اما جزئیات یا نامگذاریها تفاوت دارد. بلوک دیاگرام ۶ مرحلهای این مقاله، بازطراحیشده از کتاب معتبر خانم چیپیون (Chip Huyen) است.
در ادامه، بهصورت جداگانه درباره هریک از شش گام مطرحشده در چرخه حیات یادگیری ماشین توضیح میدهم.
تعریف مسئله و اهداف تجاری (Project Scoping)
پیش از آنکه دست به کیبورد شوید، کد بزنید یا درگیر دادهها شوید، باید به چند سوال اساسی پاسخ دهید: آیا این پروژه اصلا به یادگیری ماشین نیاز دارد؟ اگر نیاز دارد، قرار است چه مشکلی را و چطور حل کند
یادگیری ماشین یا هوش مصنوعی چوب جادویی نیست که هر جایی بزنیم کارایی داشته باشد. بسیاری از پروژهها بدون هوش مصنوعی هم انجام میشوند و در برخی دیگر اصلا یادگیری ماشین نمیتواند کمکی به حل مسئله کند. اصرار به استفاده از AI صرفا برای «خفن به نظر رسیدن» یک خطای استراتژیک است.
تعریف شاخصهای موفقیت پروژه یادگیری ماشین را فراموش نکنید!
در این مرحله باید معیارهای موفقیت (مانند نرخ دقت یا میزان کاهش خطا) را به دقت تعیین کنید. نگاه دانشگاهی با نگاه کسبوکار در این زمینه متفاوت است؛ در یک پروژه صنعتی، کارفرما برای من شاخص موفقیت را کاملا دقیق و ملموس مشخص کرد: «در هر ۳۰۰۰ آیتم خروجی، حداکثر یک یا دو خطا مجاز است.» شاید در دانشگاه دقت ۹۵٪ عالی به نظر برسد، اما در دنیای بیزنس، همان ۵٪ خطای باقیمانده ممکن است هزینههای سنگینی ایجاد کند که کارفرما ترجیح دهد اصلا از آن سیستم استفاده نکند.
مهندسی داده (Data Engineering)
یکی از حیاتیترین، سختترین و زمانبرترین مراحل در چرخه حیات، مهندسی داده است. در دورههای آموزشی، دادهها در قالب فایلهای خوشگل و تمیز CSV به شما تحویل داده میشوند، اما در واقعیت اینطور نیست. این گام شامل ۴ زیرمجموعه اصلی است:
- جمعآوری داده (Data Collection)
- تحلیل اکتشافی دادهها (EDA)
- تمیزکاری و آمادهسازی داده (Data Cleaning)
- مهندسی ویژگی (Feature Engineering)
جمعآوری داده (Data Collection)
برخلاف دورههای آموزشی که دادهها تمیز و آماده هستند. در بسیاری از پروژهها واقعی، نه تنها داده تمیز نیست، بلکه ممکن حتی اصلا دادهای وجود نداشته باشد! در این شرایط مجبورید خودتان داده جمعآوری کنید. جمعآوری داده در دنیای واقعی با زجر و زحمت همراه است. گاهی باید سایتها را کرال (Crawl) کنید؛ گاهی با دیتابیسهای به شدت شلخته و کثیف روبهرو میشوید؛ گاهی برای دریافت دادهها باید مراحل اداری، مجوزها و معرفینامههای پیچیده را طی کنید.
تحلیل اکتشافی دادهها (EDA)
مهندسی داده و آموزش مدل بدون تحلیل اکتشافی دادهها (EDA)، مانند رانندگی با چشمهای بسته است. دادههای خام اولیه درک خاصی به شما نمیدهند. شما باید با استفاده از ابزارهای آماری (مانند آمار توصیفی) و رسم نمودارهای متنوع، رفتار مسئله و ویژگیها (Features) را درک کنید.
با یک مثال اهمیت تحلیل اکتشافی داده را بیشتر توضیح میدهم؛ نمودار زیر مربوط به میزان تقاضای انرژی نسبت به دمای محیط (دادههای ۲ ساله اروپا) است؛ با رسم نمودار مشخص میشود که در دمای بسیار کم و دمای بسیار زیاد، تقاضای انرژی بالا میرود. جالب اینکه در حالت سرمایش (هوای گرم) تقاضای انرژی حتی بیشتر از حالت گرمایش (هوای سرد) است. بدون رسم نمودار و تنها با نگاه کردن به جدول اعداد، کشف این الگو غیرممکن بود.
تمیزکاری و آمادهسازی داده (Data Cleaning)
دادههای واقعی پر از مقادیر گمشده (Missing Values)، دادههای دورافتاده (Outliers) و مشکلات دیگر هستند. سنسورها ممکن است اطلاعاتی را ثبت نکرده باشند یا کاربر کدهایی را اشتباه وارد کرده باشد. کارهای دیگری مثل نرمالیزه کردن مقیاس دادهها یا انکد کردن ویژگیهای طبقهای (Categorical) نیز در این بخش انجام میشود.
اشتباه رایج خیلیها مقادیر گمشده و اوتلایرها را فورا حذف میکنند. در اکثر موارد، حذف کردن بدترین گزینه است. شما باید آنها را مدیریت کنید و بر اساس تحلیل داده ببینید کدام استراتژی بهتر جواب میدهد.
مهندسی ویژگی (Feature Engineering)
در این بخش، ویژگیهای ضعیف و کماثر را کنار میگذاریم و بهترین ویژگیهایی که به یادگیری بهتر و پیشبینی دقیقتر مدل کمک میکنند را میسازیم یا انتخاب میکنید.
طراحی، آموزش و ارزیابی مدل (Model Development)
این بخش شیرینترین مرحله برای متخصصان یادگیری ماشین است. بر اساس شناختی که در مرحله EDA از دیتاست به دست آوردهاید، الگوریتمهای مناسب را انتخاب میکنید. نیازی نیست خود را به یک مدل محدود کنید؛ میتوانید چندین مدل/الگوریتم یادگیری ماشین را بررسی کنید:
- درخت تصمیم (Decision Tree)
- ماشین بردار پشتیبان (SVM)
- الگوریتمهای KNN
- الگوریتم K-Means
- رگرسیونهای خطی و غیرخطی
- شبکههای عصبی (Neural Networks)
- روشهای آنسامبل و بوستینگ
- و…
پس از آموزش مدل، مدل باید حتما روی دادههای جدیدی که در فرآیند آموزش آنها را ندیده است (Test Set) ارزیابی شود تا مطمئن شویم الگوها را واقعا یاد گرفته و صرفا حفظ (Overfit) نکرده است.
استقرار مدل (Deployment)
این مرحله کاملا عملیاتی است و معمولا در دورههای آموزشی کمتر به آن پرداخته میشود. استقرار یعنی انتقال مدل از محیط آزمایشگاهی (لپتاپ، کدهای جوپیتر نوتبوک یا سرور محلی) به محیط واقعی و عملیاتی. چند نمونه مثال میزنم که استقرار را بهتر درک کنید:
- مدلی که برای پیشبینی مصرف انرژی روی لپتاپ طراحی کردهاید، حالا باید روی سایت یا دیوایسهای وزارت نیرو قرار بگیرد تا کارمندان یا سیستمها از آن خروجی بگیرند.
- مدل تخمین قیمت کرایه خودرو باید وارد اپلیکیشن اصلی اسنپ شود تا به محض درخواست کاربر، در کسری از ثانیه قیمت را محاسبه کند و نمایش دهد.
در این مرحله مدل تبدیل به یک سرویس میشود و چالشهای جدیدی مثل مدیریت تعداد بالای درخواست کاربران همزمان مطرح میگردد.
نظارت و نگهداری (Monitoring & Maintenance)
کار شما با رفتن مدل به فاز عملیاتی تمام نمیشود. سیستمهای یادگیری ماشین در دنیای واقعی به مرور زمان دچار افت کیفیت میشوند؛ مدلی که با دقت ۹۰٪ مستقر شده، ممکن است بعد از مدتی پیشبینیهای کاملا اشتباه تحویل دهد. دلیل این اتفاق تغییر رفتار دادهها در طول زمان است که با اصطلاحاتی چون دیتا دریفت (Data Drift) یا کانسبت دریفت (Concept Drift) شناخته میشود.
فرض کنید مدلی برای تخمین قیمت خانه در تهران بر اساس فاکتورهایی مثل سال ساخت، متراژ، طبقه، امکانات و محله ساختهاید. اگر شرایط خاصی مثل جنگ یا تنشهای شدید سیاسی در منطقه رخ دهد، فاکتور جدیدی به طور ناخواسته بر قیمتها اثر میگذارد. مثلا خانههایی که به مناطق نظامی نزدیکترند ممکن است افت قیمت پیدا کنند، یا سازههای مقاومتر گرانتر شوند. این تغییر رفتار باعث میشود ویژگیهای قبلی وزن و اهمیت خود را از دست بدهند و مدل افت کند.
وظیفه شما رصد دائمی (Monitoring) عملکرد مدل است تا به محض افت، چرخه را به مراحل بالا برگردانید و مدل را با دادههای جدید بازآموزی (Retrain) کنید.
تحلیل کسبوکار (Business Analysis)
در این مرحله نهایی، عملکرد مدل با اهداف تجاری اولیه (که در گام اول مشخص شده بود) سنجیده میشود تا مشخص شود آیا اهداف محقق شدهاند یا خیر. حتی اگر به اهداف رسیده باشید، به معنای پایان پروژه نیست. به محض اینکه توسعه و پشتیبانی را کنار بگذارید، سیستم پس از مدت کوتاهی کارایی خود را از دست میدهد. به همین دلیل شرکتها برای زنده نگه داشتن سیستمهای هوش مصنوعی خود، نیاز به خدمات و آپدیتهای پیوسته دارند.
مقایسه چرخه حیات ML با چهارچوب CRISP-DM
در حوزه دیتاساینس و دادهکاوی، چارچوب استانداردی به نام CRISP-DM (مخفف Cross-industry standard process for data mining) وجود دارد که آن هم شامل ۶ مرحله است. مفاهیم این دو چهارچوب بسیار به هم نزدیکند اما تفاوتهای جزئی دارند:. قبلا در آموزش جداگانه درباره چهارچوب CRISP-DM نوشتهایم. پیشنهاد میکنم آن را هم بخوانید و با چرخه حیات یادگیری ماشین مقایسه کنید.
جمعبندی چرخه حیات یادگیری ماشین
توسعه سیستمهای یادگیری ماشین یک مسیر پویا، چرخشی و تکرارشونده است. موفقیت در این مسیر نه فقط به دانش الگوریتمها، بلکه به درک درست از نیاز کسبوکار، مدیریت هوشمندانه دادهها در فاز مهندسی، استقرار درست و مانیتورینگ سختگیرانه مدل در محیط واقعی بستگی دارد.
دیدگاهتان را بنویسید