7 گام برای ایجاد یک مدل یادگیری ماشین

Photo by Andrea De Santisچگونه از ابتدا یک مدل یادگیری ماشین بسازیم؟پس از شناسایی و تعریف مسئله برای ساختن یک مدل ML، برای ساخت یک مدل یادگیری ماشین از پایه، این نکته ضروری است که بدانیم رویکرد ما به یک مسئله یادگیری ماشین چگونه باشد؟ و یا حتی بدانیم که چرا بایستی داده ها را با تقسیم آن ها به دو بخش آموزشی و آزمایش تصفیه کنیم؟ برای رسیدن به این مهارت بایستی به هفت گام زیر مسلط باشم.جمع آوری داده‌ها (Data Collection):یادگیری ماشین به مقدار زیادی داده های آموزشی نیاز دارد. این داده ها می توانند برچسب دار باشند به معنی یادگیری با نظارت یا بدون برچسب باشند به معنی یادگیری بدون نظارت.دقت مدل به کیفیت و کمیت داده ها بستگی دارد. نتیجه این مرحله معمولا یک نمایش از داده هایی است که برای آموزش استفاده خواهد شد.پایه و اساس پروژه یادگیری ماشین شما، را داده های قبلا جمع آوری شده، ماننده مجموعه داده های ارائه شده توسط سایت هایی مانند Kaggle ، UCI و ...، تشکیل می دهد. همچنین می توان داده ها را از طریق نظرسنجی های کاربران، گزارش های تحلیلی، روندها، معیارهای استفاده و ... جمع آوری کرد.آماده‌سازی یا پاکسازی داده‌ها (Data Preparation):ما نمی‌توانیم روی داده‌های خام کار کنیم. لذا داده‌ها باید با نرمال‌سازی، حذف اطلاعات تکراری، پایش خطاها و سوگیری‌ها پردازش شوند.مصور کردن داده‌ها می‌تواند در جستجوی الگوها و نقاط پرتی که تفاوت قابل ملاحظه‌ای با بقیهٔ اعضای نمونه‌ دارد و برای بررسی اینکه آیا داده های جمع آوری شده درست هستند یا شامل مقادیر گمشده هستند مفید باشد. این کار را می توان با استفاده از کتابخانه‌هایی مانند Seaborn ،Matplotlib و ... انجام داد. تصویرسازی داده‌ها روابط مربوط به متغیرها یا نسبت نامتعادل بین دسته‌های هدف را نشان میدهد، و به انجام تحلیل‌های کاوشی دیگر کمک می‌کند.بعد از انجام عملیات تغییر شکل داده، باید داده‌ها را برای آموزش آماده کنیم. پاکسازی داده‌ها شامل مراحلی مانند حذف اطلاعات تکراری، رسیدگی به مقادیر گمشده، تبدیل نوع داده، تصحیح خطاها، نرمال سازی داده‌ها و غیره است.انجام همه کارهای اشاره شده در آماده‌سازی داده‌ها وابسته به نوع داده های جمع آوری شده است. بعضی از مجموعه داده‌ها شاید نیازی به آماده‌سازی نداشته باشند در حالی که برای بعضی دیگر، مرحله آماده سازی داده ها بخش عمده‌ای از زمان ساخت مدل یادگیری ماشین را در بر می‌گیرد.انتخاب یک مدل یا الگوریتم (Choose a Model / Algorithm):مرحله سوم شامل انتخاب یک مدل مناسب است. مدل‌های زیادی وجود دارند که می توانند برای اهداف مختلف استفاده شوند. مدل انتخاب شده، باید با هدف کسب و کار شما سازگار باشد.ما باید درباره آماده سازی مورد نیاز مدل به همراه دقت و قابلیت مقیاس پذیری آن ایده‌ای داشته باشیم. داشتن یک مدل پیچیده به معنای داشتن یک مدل بهتر نیست.از الگوریتم های رایج یادگیری ماشین می توان به موارد زیر اشاره کرد:درخت تصمیم (Decision Trees)جنگل تصادفی (Random Forest) رگرسیون خطی (Linear Regression)ماشین های بردار پشتیبان (Support Vector Machines) یا به اختصار SVMرگرسیون منطقی (Logistic Regression)میانگین-کا (K-means)تحلیل مؤلفه اصلی (Principal Component Analysis) یا به اختصار PCAبیز ساده (Naïve Bayes)شبکه های عصبی (Neural Networks)برای وظایف مختلف، الگوریتم های یادگیری ماشین متفاوتی وجود دارند که میتوان از آنها استفاده کرد. شما باید الگوریتم مناسب را بر اساس نوع داده ها، هدف کسب و کار و زمان محاسباتی خود انتخاب کنید.تقریبا همه الگوریتم‌های به کار رفته در روش‌های یادگیری ماشین، براساس «بهینه‌سازی» (Optimization) یک «تابع هدف» (Objective Function) کار می‌کنند که برحسب «تابع هزینه» (Cost Function) یا «تابع خطا» (Error Function) نوشته شده‌اند. پس در حقیقت در یادگیری ماشین،‌ با مسئله بهینه‌سازی مواجه هستیم.برای مثال اگر می‌خواهید ابعاد یک مسئله با تعداد متغیرهای زیاد را کاهش دهید، تکنیک PCA یا تجزیه به مولفه‌های اصلی (Principal Component Analysis) که یک روش تجزیه مقدارهای تکین (SVD) است به کار می‌آید. نکته: در یادگیری ماشین (به جز روش شبکه عصبی) مباحث مربوط به آمار و یادگیری آماری است.آموزش مدل (Training the Model):آموزش مدل، اساس یادگیری ماشین را تشکیل می دهد. هدف از این کار استفاده از داده های آموزش و بهبود پیش بینی‌های مدل ما است که به صورت تکرارها انجام می شود. هر چرخه در آموزش یک مدل شامل به روزرسانی وزن‌ها و خطاها در هر مرحله آموزش است. یعنی باید وزن ها و خطاهای مدل را در هر تکرار به روزرسانی کنیم تا خطای پیش بینی را کمتر کنیم.مدل های یادگیری ماشین می‌توانند در کسب و کارهای مختلف به نفع شما باشند، به عنوان مثال: پردازش سریع حجم زیادی از داده‌ها، شناسایی الگوها، یافتن ناهنجاری‌ها یا آزمایش همبستگی‌هایی که برای انسان دشوار است. برای آموزش یک مدل یادگیری ماشین، پس از انتخاب الگوریتم مناسب، باید الگوریتم را با داده های نمونه تغذیه کنیم تا بتواند از آنها یاد بگیرد. اگر از یادگیری ماشین نظارت شده استفاده کنیم، باید داده های نمونه را با برچسب های صحیح ارائه کنیم. اگر از یادگیری ماشین بدون نظارت استفاده کنیم، باید داده های نمونه را بدون برچسب ارائه کنیم و به الگوریتم اجازه دهیم خودش الگوها و ساختارهای پنهان را در داده‌ها پیدا کند.بطور کلی هدف از آموزش این است که دقت و عملکرد مدل ما ارزیابی و بهبود یابد. ارزیابی مدل (Evaluate the Model):پس از آموزش مدل، نوبت به ارزیابی مدل می‌رسد. هر چه تعداد متغیرهای دنیای واقعی بیشتر باشد، داده‌های آموزشی و آزمون باید بزرگتر باشند.معیارهای عملکرد برای اندازه‌گیری عملکرد مدل استفاده می‌شوند. این شامل دقت، بازخوانی، صحت، خاصیت و غیره است.سپس مدل در برابر داده‌های قبلاً دیده نشده آزمایش می‌شود. داده‌های دیده نشده بعنوان نماینده عملکرد مدل در دنیای واقعی عمل می‌کنند، اما هنوز هم به تنظیم مدل کمک می‌کنند (بر خلاف داده‌های آزمایشی که این کار را نمی‌کنند).تقسیم ۷۰/۳۰ یا مشابه آن، یک تقسیم خوب آموزش/ارزیابی در نظر گرفته می‌شود که بستگی به چیزهایی مانند در دسترس بودن داده، ویژگی‌های مجموعه داده، دامنه و ... دارد.تنظیم پارامترها (Parameter Tuning):پس از ارزیابی مدل، باید پارامترهای اولیه مدل را آزمایش کنید. افزایش آموزش، می‌تواند منجر به نتایج بهتری شود.تنظیم پارامترها یک فرآیند تجربی است و بنابراین باید تعیین کنیم که چه زمانی تنظیم پارامترها را متوقف کنیم در غیر این صورت ادامه خواهد داد تا مدل را تغییر دهد.تنظیم هایپرپارامترها یا به عبارتی کنترل فرآیند یادگیری یک هنر است. هنری که نیاز به صبر و تجربه دارد. هنگامی که پارامترهای مدل تنظیم شوند می‌تواند نتایج بهتری به ما بدهد. برخی از هایپرپارامترهای رایج عبارتند از: تعداد مراحل آموزش، نرخ یادگیری، مقداردهی اولیه، توزیع و ... .پیش‌بینی‌ کردن (Make Predictions):پس از فرآیندهای جمع‌آوری داده‌ها، آماده‌سازی داده‌ها، انتخاب یک الگوریتم یادگیری ماشین، آموزش مدل و ارزیابی مدل و تنظیم پارامترها، باید پیش‌بینی‌ها را انجام دهیم.مدل یادگیری ماشین ما می‌تواند پیش‌بینی‌هایی را در محدوده شناسایی تصویر گرفته تا تحلیل پیشگویانه و پردازش زبان طبیعی را انجام دهد.پس از ساخت مدل باید روی یک مجموعه آزمون آزمایش شود تا بررسی شود که مدل چگونه روی داده‌های دیده نشده عمل می‌کند. این کار به ارزیابی بیشتر مدل کمک می‌کند و تقریب بهتری را فراهم می‌کند.شما می‌توانید این مراحل را در ذهن خود نگه دارید وقتی که سعی می‌کنید یک مدل ML برای یک مجموعه داده داده شده ایجاد کنید.بنابراین در اینجا شما 7 مرحله موجود در فرآیند یادگیری ماشین را یاد گرفته اید. دفعه بعد که می‌خواهید یک مدل ML برای یک مجموعه دادۀ معین ایجاد کنید، می‌توانید این مراحل را در ذهن داشته باشید.