مراحل یادگیری ماشین
در این مقاله یک چک لیست راهنما برای شما داریم. این چک لیست را در آغاز یک پروژه یادگیری ماشین کنار دست خودتان داشته باشید تا اجرای پروژه یادگیری ماشین از صفر تا صد تحت کنترل شما باشد. این گامبندی میتواند راهنمای شما در پیشبرد مسیر باشد. بر این اساس برای مراحل یادگیری ماشین، هشت مرحله یا گام وجود دارد:
- مساله را تعریف و ابزار و چالشهای حل آن را از دید کلان بررسی کنید.
- دادهها را دریافت کنید.
- دادهها را کاوش کنید تا ماهیت آنها را بهتر بشناسید.
- دادهها را اصلاح کنید تا برای ورود به الگوریتمهای یادگیری ماشین مناسبتر شوند.
- مدلهای یادگیری گوناگون را بررسی و یک فهرست کوتاه از بهترین گزینهها تهیه کنید.
- مدلها را تدقیق و برای رسیدن به یک راهکار عالی ترکیب کنید.
- راهکار خود را ارائه کنید.
- سیستم خود را اجرا، پایش و نگهداری کنید.
در ادامه به شرح هر یک از این گامها میپردازیم. واضح است که این فهرست میتواند بسته به نیاز شما در پروژههای گوناگون تغییر کنید.
** پیش از مطالعه چک لیست دعوت میکنیم برای درک بهتر این فهرست، فیلم زیر را تماشا کنید. برای دیدن این فیلم بر روی این لینک (+) و یا پخش کننده پایین کلیک کنید:
گام اول: تعریف مساله (Frame the Problem)
- هدفهای کاربردی پروژه از دید کارفرما چیست؟
- راهکار شما چگونه استفاده خواهد شد؟
- راهکارهای کنونی (اگر وجود دارند) چه هستند؟
- شما چطور میبایست مساله را تعریف کنید؟ نظارتشده یا بدون نظارت؟ یادگیری آنلاین یا آفلاین؟
- عملکرد یا کارایی یک راهکار چگونه باید سنجیده شود؟ معیار عملکرد چیست؟
- آیا این معیار عملکرد با هدفهای اجرایی پروژه همراستا است؟
- کمترین مقدار معیار عملکرد مورد نیاز برای دستیابی به هدفهای اجرایی پروژه چقدر باید باشد؟
- مسالههای مشابه چه هستند؟ آیا ابزار و تجربه این مساله در جای دیگری دوباره قابل استفاده است؟
- آیا تجربه و تخصص انسانی برای حل دستی کار از قبل وجود داشته است؟
- چگونه میتوان این مساله را به صورت دستی حل کرد؟
- مفروضاتی که توسط شما (یا دیگران) در حل این مساله مطرح شده را فهرست کنید.
- مفروضات حل این مساله را در صورت امکان اعتبارسنجی و ارزیابی کنید.
گام دوم: دریافت داده (Get the Data)
در اجرای این گام تا جایی که میتوانید فرآیند دریافت داده را خودکارسازی کنید. به این ترتیب روزآمدی دادهها و دریافت دادهّای تازه آسان خواهد بود.
- دادههایی که نیاز دارید و حجم مورد نیاز از هر کدام را فهرست کنید.
- منابع تهیه این دادهها را بیابید و فهرست کنید.
- فضای مورد نیاز برای دادهها را بسنجید.
- تعهدات قانونی و مجوزهای لازم برای دسترسی به دادهها را بررسی کنید.
- مجوزهای دسترسی به دادهها را در صورت لزوم اخذ کنید.
- یک فضای کاری با ظرفیت کافی برای ذخیرهسازی دادهها بسازید.
- دادهها را دریافت کنید.
- دادهها را به فرمتی تبدیل کنید که بتوانید با آنها کار کنید. دقت کنید که ماهیت دادهها در این تبدیل تغییر نکند.
- اطمینان حاصل کنید که اطلاعات محرمانه و حساس به درستی حذف یا محافظت شوند. برای مثال ممکن است تغییر نام داده شده یا به صورت بینام ارائه شوند.
- ابعاد و نوع دادهها را بررسی کنید. برخی دادهها ممکن است وابسته به مکان (جغرافیایی) یا وابسته به زمان (سری زمانی) باشند و برخی دیگر شرایط ویژه دیگری از این دست داشته باشند.
- بخشی از دادهها را به عنوان مجموعه آزمایش یا تست کنار بگذارید و در طول فرآیند یادگیری هرگز به آن نگاه نکنید. جاسوسی داده یا Data Snooping ممنوع! قرار نیست مدلی بسازیم که چیز مشخصی در دادههای آزمایش را که خودمان تقلب کردهایم، پیشبینی کند.
** پیش از این آموزش یادگیری ماشین از صفر در همرویش منتشر شد. برای دیدن فیلم معرفی این آموزش بر روی این لینک (+) و یا پخش کننده پایین کلیک کنید:
برای دریافت بسته کامل این آموزش بر روی لینک زیر کلیک کنید:
آموزش یادگیری ماشین از صفر — یادگیری سریع و آسان
گام سوم: کاوش دادهها (Explore the Data)
در اجرای موارد زیر حتماً سعی کنید که از بینش کارشناسان میدانی کمک بگیرید. برای مثال وقتی شما روی دادههای دورسنجی ماهوارهای کار میکنید، هنگام تحلیل دادهها باید نظر یک متخصص در همان حوزه را نیز داشته باشید.
- یک رونوشت (کپی) از دادهها برای این گام تهیه کنید. در صورت لزوم (مجموعهدادههای خیلی بزرگ) میتوانید یک حجم قابل کنترل از کل دادهها را نمونهبرداری کنید.
- یک دفترچه ژوپیتر برای ثبت نتایج کاوشهای خود بسازید.
- تک تک متغیرها و مشخصات آنها را به شرح زیر مورد مطالعه قرار دهید:
• نام
• نوع (عدد صحبح یا اعشاری، متنی، رده بندی، محدود یا نامحدود، ساختاریافته و …)
• درصد مقدارهای خالی (Null)
• امکان وجود نویز و نوع آن (تصادفی، دادههای پرت و خارج از رده، خطاهای گرد کردن و …)
• سودمندی برای پروژه یادگیری ماشین
• نوع تویع (گاوسی یا نرمال، یکنواخت، لگاریتمی و …) - در پروژههای یادگیری نظارت شده (Supervised Learning) ویژگیها یا همان متغیرهای هدف را مشخص کنید.
- دادهها را به صورت گرافیکی ترسیم و مطالعه کنید.
- همبستگی میان متغیرها را مطالعه کنید.
- اگر برای حل مساله یادگیری روش دستی وجود دارد، آن را مطالعه کنید.
- تبدیلهای مفیدی که ممکن است بخواهید روی دادهها اعمال کنید را با دقت ارزیابی و مطالعه کنید.
- اگر نیاز به دادههای اضافی دارید، آنها را مشخص کنید (به گام دوم بازگردید).
- بینشهایی که در این مطالعات به دست آوردید را مستند کنید.
گام چهارم: مناسبسازی دادهها (Prepare the Data)
پیش از بررسی مراحل این گام لطفاً به نکتههای زیر توجه کنید:
• مجموعه داده اصلی را دست نخورده نگه دارید و روی رونوشت دادهها کار کنید.
• برای همه تبدیلهایی که روی دادهها اعمال خواهید کرد تابعهایی کدنویسی کنید زیرا:
– هرگاه داده تازهای دریافت کنید به سادگی میتوانید آن را تبدیل کنید.
– از این تبدیلها میتوانید در پروژههای آینده دوباره استفاده کنید.
– هنگام پاکسازی و تبدیل دادههای آزمایش (تست) این تبدیلها به کار میآیند.
– بعد از اجرای پروژه نیز دادههای زندهای که وارد پروژه میشوند نیاز به تبدیل دارند.
– انواع تبدیل میتواند در گام ششم به عنوان هایپرپارامتر (Hyperparameter) در نظر گرفته شود. وجود تابعها جایگزینی سریع تبدیلها و مقایسه سریع نتایج را ممکن میکند.
- فرآیند پاکسازی داده (Data Cleaning) را اجرا کنید:
• دادههای پرت یا حذف یا درمان کنید.
• مقدارهای خالی را با صفر، میانگین، میانه یا … پر کنید یا به طور کلی آن داده را حذف کنید. - فرآیند انتخاب ویژگی (Feature Selection) را اجرا کنید:
• ویژگیهایی را که اطلاعات مفیدی برای پروژه فراهم نمیکنند، حذف کنید. - فرآیند مهندسی ویژگی (Feature Engineering) را در صورت لزوم اجرا کنید:
• ویژگیهای پیوسته را گسسته کنید.
• ویژگیها را تجزیه کنید (مثلاً ویژگیهای تاریخ/زمان، ردهبندی و …)
• ویژگیها را مورد تبدیل قرار دهید (با تبدیلهایی مانند log(x) یا sqrt(x) یا …)
• ویژگیها را برای ساخت ویژگیهای جدید با هم ترکیب کنید. - ویژگیها را نرمال یا استاندارد کنید.
گام پنجم: انتخاب بهترین مدلها (Shortlist Promising Models)
پیش از بررسی مراحل این گام نیز به نکتههای زیر توجه کنید:
• در برخورد با مجموعه دادههای کلان شاید بخواهید چند مجموعه داده یادگیری (Training Set) کوچک را با نمونهگیری ایجاد کنید. با این کار میتوانید چندین مدلهای بسیاری را در مدت زمان اندک تعلیم دهید؛ اما دقت کنید که این کار در رابطه با مدلهای پیچیده مثل شبکههای عصبی بزرگ یا جنگلهای تصادفی به یادگیری مدل خدشه وارد میکند.
• در این گام نیز سعی در خودکارسازی مراحل داشته باشید تا تکرار آنها سریع و آسان باشد.
- مدلهای متعددی از دستههای گوناگون مانند رگرسیون، بیز ساده، SVM، جنگل تصادفی، شبکه عصبی و … را سریع و بیوسواس با پارامترهای استاندارد تعلیم دهید.
- عملکرد مدلها را اندازهگیری و مقایسه کنید:
• برای هر مدل ار اعتبارسنجی متقابل (N-fold cross-validation) استفاده کنید. میانگین و انحراف استاندارد معیار معیار عملکرد N زیرنمونه را محاسبه کنید. - اثرگذارترین متغیرها را در هر الگوریتم بیابید و تحلیل کنید.
- انواع خطاهایی که مدلها ایجاد میکنند را تحلیل کنید:
• چه دادههایی باید در اختیار شما میبود تا از این خطاها جلوگیری کنید؟ - یک فرآیند انتخاب و مهندسی ویژگی را مطابق گام چهارم اجرا و تحلیل کنید.
- این پنج مرحله را یک یا دو مرتبه سریع تکرار کنید.
- سه تا پنج مدل امیدوارکننده را فهرست کنید. مدلهایی که ترجیحاً انواع مختلفی از خطاها را ایجاد میکنند.
** پیش از این آموزش شبکه عصبی مصنوعی از صفر در همرویش منتشر شد. برای دیدن فیلم معرفی این آموزش بر روی این لینک (+) و یا پخش کننده پایین کلیک کنید:
برای دریافت بسته کامل این آموزش بر روی لینک زیر کلیک کنید:
آموزش شبکه عصبی مصنوعی — از صفر به زبان ساده
گام ششم: تدقیق سیستم (Fine-Tune the System)
پیش از بررسی مراحل این گام به نکتههای زیر توجه کنید:
• در اجرای این گام و بهخصوص در مراحل پایانی آن هر چه میتوانید از دادههای بیشتری استفاده کنید.
• مثل گامهای قبلی فرآیندهای این گام را تا حد ممکن خودکارسازی کنید.
- هایپرپارامترها را با استفاده از اعتبارسنجی متقابل تدقیق کنید:
• انواع تبدیلهایی که روی دادهها اعمال میکنید را به عنوان هایپرپارامتر در نظر بگیرید. این کار وقتی مهمتر هم میشود که در مورد یک تبدیل اطمینان کامل ندارید (مثلاً وقتی مطمئن نیستید که مقدارهای خالی بهتر است با صفر یا میانه جایگزین شده یا صرفاً حذف شوند).
• سعی کنید در فرآیند تدقیق هایپرپارامترها از جستجوی تصادفی (Random Search) به جای جستجوی شبکهای (Grid Search) استفاده کنید؛ مگر اینکه هایپرپارامترها خیلی تعداد کمی باشند. اگر اجرای هر دور یادگیری (Training) خیلی طولانی است، شاید بهتر باشد از یک بهینهسازی بیزی استفاده کنید. - روشهای یادگیری جمعی (Ensemble Methods) را امتحان کنید. ترکیب بهترین مدلها اغلب نسبت به اجرای انفرادی آنها عملکرد بهتری دارد.
- هنگامی که به مدل نهایی خود اطمینان پیدا کردید، عملکرد آن را روی مجموعه داده آزمایش اندازهگیری کنید تا تخمینی از خطای تعمیم مدل به دست بیاورید.
هشدار!! هرگز مدل خود را بعد از محاسبه خطای تعمیم مجدداً دستکاری نکنید. این کار تنها موجب بیشبرازش روی مجموعه داده آزمایش میشود.
گام هفتم: ارائه راهکار (Present Your Solution)
- آنچه انجام دادید را مستندسازی کنید.
- یک ارائه زیبا بسازید:
• حتماً در آغاز ارائه تصویر بزرگ مساله را ارائه کنید. - توضیح دهید که چرا راهکار شما موجب دستیابی به هدفهای کارفرما میشود.
- نکتههای جالبی که در طول مطالعات متوجه شدید را حتماً ارائه کنید:
• توضیح دهید که از چه مواردی جواب گرفتید و از چه مواردی نه!
• فرضهای خود برای حل مساله و محدودیتهای سیستم را فهرست کنید. - یافتههای کلیدیتان را با جلوههای گرافیکی و نکتههای کوتاه به یادماندنی ارائه کنید (مثلاً «متوسط درآمد مردم یک منطقه عامل اصلی در پیشبینی قیمت مسکن آن منطقه است!»).
گام هشتم: اجرا (Launch)
- راهکار خود را برای اجرای واقعی آماده کنید (سیستم را به دادههای ورودی زنده متصل کنید؛ برای عملکرد بخشهای مختلف تابعها و کلاسهای تست بنویسید و …)
- کدهایی برای پایش سیستم بنویسید تا عملکرد زنده سیستم را در فاصلههای زمانی منظم پایش و در صورت بروز مشکل به شما هشدار ارسال کند:
• حواستان به تنزل تدریجی باشد. همزمان با رشد دادهها مدلها به سمت پوسیدگی (Rot) میروند.
• اندازهگیری عملکرد ممکن است نیازمند ارزیابی یک واحد انسانی باشد (مثلاً با جمعسپاری).
• پیوسته کیفیت ورودیهای سیستم را نیز پایش کنید (مثلاً یک سنسور معیوب که مقادیر تصادفی ارسال میکند؛ یا خروجیهای بخش دیگری از تیم که ناکارآمد شده و اکنون همچنان به عنوان ورودی به سیستم شما ارسال میشود). - مدلهای خود را به طور منظم بر اساس دادههای تازه مورد یادگیری مجدد (Retrain) قرار دهید.
+ پیش از این آموزش اجرای پروژه یادگیری ماشین با پایتون در همرویش منتشر شد. برای دیدن فیلم معرفی این آموزش بر روی این لینک (+) و یا پخش کننده زیر کلیک کنید:
دریافت این بسته آموزشی در لینک زیر:
آموزش اجرای یک پروژه یادگیری ماشین با پایتون
کلیدواژگان
پروژه یادگیری ماشین | مراحل پروژه یادگیری ماشین | یادگیری ماشین از صفر تا صد | چک لیست ماشین لرنینگ
منبع
Geron, A., 2022, Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems. O’Reilly Media, 3rd edition, Appendix A.
دوره های آموزشی مرتبط
- آموزش ساخت شبکه عصبی با پایتون (و دیگر زبانها) از صفر ۱۳۲,۰۰۰ تومان
- آموزش تنسورفلو __ پیاده سازی شبکه های عصبی با TensorFlow ۹۲,۰۰۰ تومان
6 دیدگاه برای “مراحل یک پروژه یادگیری ماشین ”
لطفا بفرمایید از کجا تهیه کنم ، لینک بگذارید یا ایمیل کنید
سوای
اگه قصد دارید از آمازون تهیه کنید سایت هایی تو کشور هستن که واسطه خرید از آمازون هستن. حالا می تونه نسخه مجازی باشه یا فیزیکی. یا از سایت هایی استفاده کنید که اکانت آمازون به شما میدن و می تونن حسابتون رو برای خرید شارژ کنن.
تو سایت های داخلی هم دیدم دیجی کالا یه ناشر نسخه فیزیکی برای فروش گذاشته بود. نمی دونم البته که با اجازه ناشر هست یا نه. ترب هم که اگه جستجو کنید متعدد سایت هایی هستن که نسخه دانلودی برای فروش گذاشتن که قاعدتا قانونی نیستن و اگه بنا باشه از اون ها خرید کنید احتمالا گوگل کنید «دانلود «عنوان انگلیسی کتاب» بهتره.
گوگل کنید: خرید از آمازون ، خرید اکانت آمازون، شارژ اکانت آمازون ، خرید کتاب hands-on machine learning
بسته به تصمیم شما منابع زیادی در دسترس هستن.
سلام و عرض ادب طریفه کاوش داده ها به چه شکل میباشد ؟و ازچه طریقی باید مد ،میانه، میانگین از دادهها گرفت و اصلا چطوری باید اینکاررا انجام داد؟نحوه انجام آنالیز داده و اصلاح آن چگونه است ؟و کی و در چه زمانی باید آن چک لیست را انجام داد؟من او ن ۸ موردچک لیست را خوندم اما نفهمیدم باید چکار کنم ؟یعنی با آمار و ریاضیات چطوری باید بفهممش
کتاب hands-of machinlearning را چطوری میتونم بطور رایگان تهیه کنم ؟ چون توی تصویر دیدم مهندس اومدن و بطور اینترنتی رو کتاب زدن و فصل های کتاب رو باز کردن. و اینکه آیا ترجمه ای از این کتاب بیروت اومده یا خیر
سلام وقت بخیر. بله قطعا این گام ها هر کدوم نیاز به آموزش و تجربه دارن. اگه دقت کنید انتهای فیلم گفتم که ما روی یک پروژه این مراحل رو با کدنویسی طی می کنیم. شناسه AsefyCom رو تو اینستاگرام یا آپارات دنبال کنید تا به محض انتشار مطلع بشید.
من تصادفی دیدم ترجمه ای از کتاب رو فیدیبو منتشر کرده:
لینک ترجمه کتاب Hands-on machine learning
https://fidibo.com/book/127001
سلام
میشه ورژن 2022 کتاب ماشین لرنینگ رو برام ایمیل کنید؟
ممنون
سلام به شما. بر اساس حق نشر بنده نمی تونم نسخه خودم رو اشتراک گذاری کنم اما بررسی کردم چندین سایت داخل کشور داشتن.