یادگیری ماشین، از کجا شروع کنیم؟

Posted by vahid on August 07, 2022

یادگیری ماشین یا Machine Learning یکی از شاخه‌های جدید دانش است که رفته رفته در حال تسخیر زندگی روزمره ماست. و هر روز بیشتر اثرات آن را بر زندگی خود میبینیم. از تبلیغات هوشمند گرفته تا تشخیص سرطان و نحوه تعامل با ابزارهای الکترونیکی.

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

یادگیری ماشین چیست؟ یادگیری ماشین در واقع فرآیند ساخت سیستم‌هایی است که به طوری برنامه‌نویسی شده‌اند که یادمیگیرند و می‌توانند خودشان را بهبود دهند.

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

به طور کلی یادگیری ماشین وادار کردن سیستم ها برای فکر کردن و عمل کردن شبیه انسان، بروز هوشی شبیه انسان و در واقع دادن مغز به آن‌ها است

در حال حاضر مدل های یادگیری ماشینی وجود دارند که میتوانند وظایفی مانند تشخیص ایمیلهای اسپم از ایمیلهای واقعی یا تصحیح خطاهای املایی و دستوری در نوشتار را انجام دهند. همچنین به لطف یادگیری ماشین سیستم هایی وجود دارند که می توانند کارهایی پیچیده تر انسانی مثل

  • تشخیص تصاویر و اشیا
  • تشخیص اخبار فیک
  • فهم کلمات نوشتاری و گفتاری
  • روباتهای گفتگو یا چت بات‌ها
  • و خودروهای خودران را انجام دهند.

    مراحل ایجاد یادگیری ماشین ایجاد هوشمندی برای ماشین ها آنقدرها هم ترسناک و غیر ممکن نیست و عملیات لازم برای ایجاد این هوش را میتوان به 7 گام اصلی تقسیم کرد.

  • جمع آوری داده

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

پس باید مطمئن شویم که دادههایی که استفاده میکنیم از یک منبع معتبر باشند، چرا که مستقیمن بر روی نتیجه تاثیر خواهند داشت. داده باکیفیت داده‌ایست که پیش از هرچیز مرتبط با موضوع مورد نظر ما باشد، همچنین مقادیر جا افتاده و تکراری کمی داشته باشد. به علاوه از دسته‌های مختلف داده‌ها به اندازه کافی در آن وجود داشته باشد. یعنی مثلن اگر میخواهیم تعداد مشتریان یک کافه را در روزهای مختلف را پیش‌بینی کنیم داده‌های ما نباید فقط شامل داده‌های روزهای بارانی باشد و فاقد روزهای آفتابی یا تعدادی کمی داده از این دسته باشد.

  1. آماده سازی داده‌ها
  2. بعد از این که داده‌های با کیفیت را به دست آوردیم باید آنها را برای یادگیری ماشین آماده کنیم. آماده سازی داده‌ها شامل مراحل زیر است.

    • همه داده ها را در کنار هم قرار می‌دهیم و به صورت تصادفی آنها را پراکنده می‌کنیم، که باعث میشود داده‌ها به صورت متعادل توزیع شوند و ترتیب آنها بر روی فرآیند یادگیری اثر نگذارد.
    • پاکسازی دادهها: با حذف دادهای ناخواسته، مقادیر جا افتاده، سطرها و ستونهای جا افتاده یا فاقد مقدار و مقادیر تکراری داده‌ها را پاکسازی میکنیم. ممکن است حتا نیاز باشدجای سطرها و ستونها هم در داده‌ها تغییر کند.
    • تصویر سازی داده‌ها، برای درک بهتر از ساختار داده‌ها و فهم روابط بین آنها و دسته‌های موجود میتوانیم از تصویرسازی و ایجاد نمودارهای مختلف از داده‌ها استفاده کنیم.
    • تقسیم دادههای پاکسازی شده به دو مجموعه، یکی مجموعه آموزش و دیگری مجموعه تست. مجموعه آموزش مجموعه‌ایست که مدل ما از آن یاد میگیرد و مجموعه تست برای بررسی دقت مدل بعد از یادگیری به کار میرود.

    • انتخاب مدل

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

  3. آموزش مدل
  4. آموزش مهمترین مرحله در یادگیری ماشین است. در آموزش داده‌های آماده شده را به مدل میدهیم تا الگوهایی را درآنها بیابد و پیش‌بینی‌هایی انجام دهد.نتیجه آن یادگیری از داده‌ها خواهد بود تا بتواند وظیفه مورد نظر را به انجام برساند. در طول زمان با آموزش، مدل پیش‌بینی‌های بهتری ارائه میکند.

  5. ارزیابی مدل
  6. بعد از آموزش مدل باید بررسی کنیم که عملکرد آن تا چه حد مطلوب است. این کار با انجام تست بر روی مدل با داده‌هایی که قبلن توسط مدل دیده نشده‌اند قابل انجام است. این مجموعه دادههای دیده نشده داده‌هایی هستند که قبلن از مجموعه داده‌های اولیه جدا کرده‌ایم. اگر تست بر روی داده‌هایی که برای آموزش به کار رفته‌اند استفاده شود، معیار دقیقی حاصل نخواهد شد. چرا که مدل با آن داده آشنا است و همان الگوها را در آن پیدا خواهد کرد که قبلن در هنگام آموزش پیدا کرده بود و این به شما دقت نامتناسبی ارائه خواهد داد. اما وقتی که بر روی داده‌های مجموعه تست انجام شود معیار دقیقتری برای ارزیابی صحت و سرعت مدل خواهیم داشت.

  7. تنظیم متغیرها
  8. پس از ایجاد و ارزیابی مدل باید ببینیم که چگونه میتوانیم دقت مدل را افزایش دهیم. این کار از طریق تنظیم متغیرهای موجود در مدل قابل انجام است. متغیرها مقادیری در مدل هستند که معمولن برنامه نویس در مورد آنها تصمیم گیری میکند. در مقادیر خاصی برای متغیرها دقت مدل ما حداکثر خواهد بود. تنظیم متغیرها، پیدا کردن همین مقادیر است.

  9. پیش بینی

در آخر، میتوانید مدل را بر روی داده های دیده نشده و تازه اجرا کنید و پیش‌بینی‌هایی انجام دهید.

قسمت بعد Hello world in Machine learning

آموزش مقدماتی پایتون 10 آموزش مقدماتی پایتون 9 آموزش مقدماتی پایتون 8