آموزش رایگان ماشین لرنینگ جلسه 3
چرخه حیات یادگیری ماشین
فرض کنید میخوایم یه پروژه یادگیری ماشین رو از صفر اجرا کنیم. باید چه مراحلی رو طی کنیم تا یه مدل بسازیم؟ در واقع مراحلی که هر مهندس ماشین لرنینگ انجام میده تا یک پروژه از صفر به صد برسه رو باید بدونیم. حالا برای اینکه یکم باکلاس ترش کنیم اسم چرخه حیات یادگیری ماشین میذاریم روی این فرآیند و در زیر اونو توضیح میدیم.
چرخه حیات یادگیری ماشین شامل هفت مرحله اصلی ه که در زیر آوردمش:
- جمعآوری دادهها یا Data Gathering
- آمادهسازی دادهها یا Data Preparation
- تمیز کردن دادهها یا Data Wrangling
- تحلیل دادهها یا Data Analysis
- آموزش مدل یا Train the Model
- آزمایش مدل یا Test the Model
- پیاده سازی یا Deployment
مهمترین نکته در کل فرآیند، اینه که اول مسئله رو خوب درک کنیم و دوم هدف مسئله رو بشناسیم.
در فرآیند کامل چرخه حیات، برای حل یک مسئله، در آخر قراره یک سیستم یادگیری ماشین به نام “مدل” ایجاد کنیم که این مدل با ارائه “آموزش” ایجاد میشه. اما برای آموزش یه مدل، به “داده” نیاز داریم، بنابراین چرخه حیات با جمعآوری دادهها شروع میشه.
حالا بیایم مراحل بالا رو یکی یکی توضیح مختصر بدیم تا در جلسات آینده با جزئیات پیش ببریم.
-
جمعآوری دادهها
جمعآوری دادهها اولین مرحله از اجرای هر پروژه ماشین لرنینگ ه. اصلا تا داده ای نداشته باشیم چجور میخوایم به ماشین یاد بدیم؟
ما باید داده ها رو از منابع مختلف شناسایی کنیم، مثلا از فایلها، پایگاههای داده، اینترنت، دستگاههای موبایل یا داده هایی که خودمون دستی تهیه کردیم و به شکل جدول درآوردیم، جمعآوری بشن. مثلا من میخوام یه مدل بسازم برای پیش بینی ارزش سهام شرکت اپل، و پیش بینی کنم در آینده چه روندی داشته باشه؛ برای اینکار می تونم وارد وبسایت هایی بشم که داده های مربوط به ارزش سهام اپل رو تو یک سال اخیر جمع آوری کردن، و اون فایل های مربوطه رو دانلود کنم.
مقدار و کیفیت دادههای جمعآوری شده، کارآیی خروجی را تعیین میکنه، یعنی هرچه دادهها بیشتر و با کیفیت تر باشند، پیشبینی دقیقتر خواهد بود.
با انجام موارد بالا، مجموعه داده ای که جمع آوری کردیم رو بهش دیتاست (Dataset) میگیم که قراره توی مراحل بعدی ازش استفاده کنیم.
حالا برای مایی که تازه اول راه هستیم و میخوایم یه سری دیتاست داشته باشیم و روی اونها مدل بزنیم، تا حسابی این تکنولوژی رو تمرین کنیم و یاد بگیریم، چیکار کنیم؟! جواب اینه که یه سری وبسایت ها کارشون فقط جمع آوری دیتاست هستش، و دیتاست های فوق العاده ای هم تهیه کردند که بتونیم ازونا استفاده کنیم. یکی از این وبسایت ها اسمش کَگِل هست. اگه کنجکاوید یه سر به این وبسایت بزنین www.kaggle.com. البته که توی یه جلسه کاملا مجزا نحوه دانلود دیتاست های خیلی تمیز رو بهتون میگم. فعلا با مفهموم و اهمیت جمع آوری دیتا و تشکیل یه دیتاست آشنا شدیم.
-
آمادهسازی دادهها
بعد از جمعآوری دادهها، نیاز ه که اونا رو برای مراحل بعدی آماده کنیم. آمادهسازی دادهها مرحلهای ه که در اون دادهها رو در مکان مناسبی قرار میدیم، تا در مرحله آموزش آماده میکنیم. در واقع در این مرحله، ابتدا تمام دادهها رو کنار هم قرار میدیم و بعدش ترتیب دادهها رو به صورت تصادفی تغییر میدیم. باید ویژگی ها و فرمت داده ها رو مشخص کنیم که مثلا در یک فایل اکسل قرار بگیره یا پسوند csv. داشته باشه و … .اگه لازمه در ستون هایی ویژگی ها کنار هم قرار بگیرن، و دیتاست خام مهیا بشه برای دست کاری و تمیزکاری (مرحله بعد).
-
تمیز کردن دادهها
تمیز کردن دادهها فرایندی ه که داده ها رو پاکسازی می کنیم و داده های خام رو تبدیل به یک فرمت قابل استفاده می کنیم. درواقع ضروری نیست تمام دادههایی که جمعآوری کردیم همیشه به کارمون بیاد، چون برخی دادهها ممکن ه اصلا مفید نباشن. در کاربردهای دنیای واقعی، دادههای جمعآوریشده ممکن ه مشکلات مختلفی داشته باشند، مثلا:
– مقادیر از دست رفته یا Missing Values: به طور مثال در جمع آوری داده از اطلاعات افراد مورد آزمایش، سن یه فرد رو فراموش کردیم توی دیتاست وارد کنیم یا اطلاعی از سنش نداشتیم. به این مقدار missing values می گیم. (روش مقابله و برخورد با اینا رو سر جای خودش می گیم)
– دادههای تکراری یا Duplicate Data: همونطور که اسمش مشخصه شاید در جمع آوری دیتا، دو نمونه داشته باشیم که عین هم باشن و خب یکیش رو باید پاک کنیم بندازیم دور!
– دادههای نامعتبر یا Invalid Data: مثلا توی دیتاست، در ستون مربوط به سن یه حرف انگلیسی نوشتیم، به جای عددی که مشخص کننده سن هست. بهش می گن داده ی نامعتبر که باید یه بلایی سرش بیاریم! (اینم به وقتش میگم چه برخوردی باهاش کنیم)
– نویز یا Noise: که اینم فک کنم اسمش مشخصه.
ما وقتی به موارد بالا برخورد کنیم باید از تکنیکهای مختلف فیلتر کردن برای پاکسازی دادهها استفاده کنیم. چون تشخیص و حذف مشکلات فوق الزامی ه، و اگه برطرف نشه میتونه به طور منفی روی کیفیت نتیجه تأثیر بذاره.
-
تحلیل دادهها
تا الان دادههای تمیز و آماده ای داریم، که باید به مرحله تحلیل دادهها منتقل بشن. توی این مرحله باید تعیین کنیم که چه تکنیکی از روش های یادگیری ماشین لازمه. خب این یعنی چی واقعا؟:D . باید تحلیل کنیم که داده های ما از چه نوعی هستند و چه الگوریتیمی از ماشین لرنینگ باهاش سازگاره! مثلا مسئله ما از نوع طبقه بندی، رگرسیون، خوشه بندی یا … هستش؟ (اصلا نگران این موارد نباشید که نمیدونید چیه! چون اصل ماشین لرنینگ، یادگیری همین عباراتی بود که الان بهشون اشاره کردم؛ وقتی شما می تونید ادعا کنید ماشین لرنینگ بلدید که همینارو یاد بگیرید. پس منتظر باشید که اصل داستانون با آموزش همین موارد شروع میشه و چیزایی که الان میگم در حد شوخیه)
بنابراین، در این مرحله، دادهها رو میگیریم و الگوریتمهای یادگیری ماشین رو برای ساخت مدل استفاده میکنیم.
-
آموزش مدل
مرحله بعدی آموزش مدل ه. برای آموزش مدل از دیتاست ها و الگوریتمهای مختلف یادگیری ماشین استفاده میکنیم. هدف از آموزش یک مدل اینه که ماشین بتونه الگوها و قوانین و ویژگی های مختلفی که توی دیتا مخفی شده، رو درک کنه و بعد از فهمیدنشون بتونه به جای ما تصمیم بگیره.
اینکه چه اتفاق واقعی تو این مرحله میفته، رو برای هر الگوریتم در آینده جداگانه بررسی می کنیم.
امیدوارم مفهومش جا افتاده باشه. این شد: دیتاست رو به الگوریتم ها میخورونیم تا خودش پردازش کنه (می خورونیم یعنی واردش می کنیم یا تغذیه ش می کنیم یا…)
-
آزمایش مدل
بعد از اینکه الگوریتم یادگیری ماشین بر روی یک دیتاست آموزش دید و یاد گرفت، و اون مدل خیلی خوبمون ساخته شد، باید این مدل رو آزمایش کنیم ببینیم اصلا مدلِ به درد بخوری هست یا نه. در این مرحله، یه سری از دیتاهای دنیای واقعی رو که از قبل کنار گذاشتیم، به مدلی که ساخته شده می دیم، و بررسی می کنیم ببینیم دقت مدل چقده. در واقع باید درصد دقت مدل رو ارزیابی کنیم. اگه دیدیم دقتش کمه بندازیمش دور و از الگوریتم های دیگه استفاده کنیم، دوباره مدل رو آموزش بدیم تا به نتیجه خوب برسیم خلاصه.
-
پیاده سازی
آخرین مرحله از چرخه حیات یادگیری ماشین، پیاده سازی مدلمون در سیستم دنیای واقعی ه. اگر مدلِ آمادهشده به طور دقیق و با سرعتِ قابل قبول، نتیجهای که نیاز داریم رو تولید کنه، مدل را در سیستم واقعی پیاده میکنیم. مرحله Deployment مشابه تهیه گزارش نهایی برای یه پروژه س.
خب اینم از این جلسه که تمام شد. می دونید که تازه اول راه هستیم و این مفاهیم سنگ بنای یادگیری ماشین هست. باید خوب درک کنید ما قراره چیکار کنیم، و اگه اینو بدونیم، در ادامه مسیر کارایی که انجام میدیم برامون گیج کننده نیست و فرآیند یادگیریمون چندین برابر میشه.
برای یادگیری و دسترسی بهتر، فایل پی دی اف جلسه سوم رو دانلود کنید.
ادامه دارد…
خیلی خوب داری میری جلو سبک و لذت بخش عافرین ادامه بده
سپاس از همراهی شما
درود دکتر جان ،واقعا جذاب هست و من دارم با هیجان عجیبی مطالب رو میخونم
درود بر مهندس عزیز. انگیزه شما باعث میشه با انرژی بیشتری محتوای مفیدی تولید کنم.
درود عالی و مفهومی با زبان قابل درک آموزش میدین توی الگوریتم ها ماشین لرنینگ هم اینجوری ادامه بدی به جرات میتونم بگم تکی تک
درود بر شما. و همچین پیام هایی چقدر بهم انرژی بیشتر میده. ممنون از نگاهتون
بسیار عالی
خوشحالم برات مفید بوده
عاااااااااااااااااااااااااااااااااااالی بود.
خوشحالم مفید بوده