یادگیری ماشین (Machine Learning) چیست؟

مدرس: مسعود کاویانی

یادگیری ماشین، زیر مجموعه‌ای از هوش مصنوعی است. با استفاده از تکنیک‌های یادگیری ماشین، کامپیوتر، الگوهای موجود در داده‌ها (اطلاعات پردازش شده) را یادگرفته و می‌تواند از آن استفاده کند. توجه داشته باشید که در این تکنیک‌ها، یادگیریْ در یک سیستمِ کامپیوتری، بدون برنامه‌نویسیِ صریح (explicit programming) صورت می‌پذیرد. پاسخ به این سوالات که برنامه‌نویسیِ صریح چیست و یادگیری ماشین چطور کار می‌کند مواردی هستند که در این درس به آن پاسخ می‌دهیم.

مثالِ کلاسیکِ زیر را در نظر بگیرید:
فرض کنید در یک فروشگاهِ بزرگِ خرده‌فروشی به صورت اینترنتی در حال خرید هستید. در زمان خرید، سه محصول مختلف را به سبد خرید خود اضافه می‌کنید. فرض کنید این سه محصول به صورت زیر است:
لپ تاپ سری N
موس بیسیم
یک عدد تمیز کننده مانیتور

حال، سیستم می‌خواهد به صورت هوشمند، به شما چند محصول دیگر را پیشنهاد دهد. مدل برنامه‌نویسی صریح، به این صورت است که برای مثال، سیستم، محصولاتی در یک دسته (مثلاً یک سری محصولاتی که مربوط به حوزه‌ی IT است) را به شما نمایش بدهد. در این حالت، هوشمندیِ خاصی در سیستم مشاهده نمی‌شود و در واقع سیستم، یادگیریِ خاصی انجام نمی‌دهد.

حال فرض کنید، سیستم از طریق الگوریتم‌های یادگیری‌ماشین، بتواند مشتریانِ قبلیِ خود را به گروه‌های مختلف تقسیم‌بندی کند (به این کار در اصطلاح خوشه‌بندی یا Clustering گفته می‌شود). با این کار، شما با تکمیلِ سبد خرید خود، به دسته‌ای از مشتریانِ قبلی متعلق می‌شوید. با تعلقِ شما به گروهِ خاصی از مشتریان، محصولاتی که آن‌ها قبلاً خریداری کرده‌اند و شما در سبد خرید خود ندارید، به شما پیشنهاد داده می‌شود.

نگاهی به تصویر زیر بیندازید:

یادگیری ماشین

فرآیند کلیِ یادگیری ماشین را می‌توان به صورت بالا مدل کرد. داده‌های آموزشی (در مثال ما: مشتریانی که قبلا خرید کرده‌اند و سابقه خرید آن‌ها) به الگوریتم‌های یادگیری ماشین تزریق می‌شوند. این الگوریتم‌ها، وظیقه‌ی یادگیری و واکشیِ الگوهای (patterns) مختلف، در داده‌ها را دارند. بعد از به دست آوردنِ الگوها توسط الگوریتم‌ها، معمولا یکی از الگوریتم ها مورد استفاده قرار میگیرد، و یک مدل (model) ساخته می‌شود. این مدل می تواند در حافظه ذخیره شود. بعد از ذخیره‌ی مدل، سیستم تواناییِ پیش‌بینیِ رفتار را دارد. در مثال بالا، شما (شخصی که چند محصول را در سبد خرید خود دارد)، به عنوان یک پرس‌و‌جو به مدلی که یادگرفته است، داده می‌شوید. این مدل، می‌تواند خروجیِ پیشبینی (در این مثال، محصولی که باید به شما بر اساس خریدهای مشتریانِ هم‌دسته‌ی شما توصیه شود) را برگرداند.

به این مدل نگاه، در سیستم‌های کامپیوتری، یادگیری ماشین (machine learning) گفته می‌شود. مدلی که شاید بتوان آن را برنامه‌نویسیِ برنامه‌نویسی! دانست. در واقع برنامه‌نویسی، فرآیند‌ها را خودکار (اتوماتیک) می‌کند، این در حالی است که یادگیری ماشین همین فرآیند‌های خودکار را به صورت خودکار تولید می‌کند.

یادگیری ماشین با فرآیند‌های داده‌کاوی، بسیار شبیه (و از نگاه کاربردی تقریباً یکسان) است. در فرآیند‌های یادگیری‌ماشین دو نوع یادگیری وجود دارد: یادگیریِ نظارت‌شده (supervised learning) و یادگیریِ غیرنظارت شده (unsupervised learning). البته انواع دیگری مانند یادگیری نیمه نظارت‌شده (semi supervised learning) یا یادگیری تقویتی (reinforcement learning) نیز وجود دارند.

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

اگر داده‌ی بد، به سیستم تزریق شود، خروجی نیز، خروجی بدی خواهد بود

به این معنی که، هر چقدر الگوریتم‌های مختلفِ یادگیری ماشین، قوی و جامع طراحی شوند، اگر داده‌های خوبی به سیستم وارد نشود (مثلاً داده‌های غلط یا داده‌های ناکافی به سیستم تزریق شوند)، سیستم، پاسخی غیرِدقیق و ناصحیح ارائه می‌دهد.

ترتیب پیشنهادی خواندن درس‌های این مجموعه به صورت زیر است:
منابع این بحث و اطلاعات بیشتر

وب سایت TechTarget وب سایت شرکت SAS این اسلاید از سایت Slideshare

در صورت تمایل به یادگیری بیشتر، منابع بالا در نظر گرفته شده است. می توانید با خواندن این منابع، به یادگیری خود در این زمینه عمق ببخشید

12 دیدگاه دربارهٔ «یادگیری ماشین (Machine Learning) چیست؟»

  1. با سلام

    منظور از برنامه نویسی صریح چیست؟ در ابتدا این عبارت امده اما در مثال اشاره ای به این موضوع نشده.

    تشکر

    1. سلام
      ممنون از دقت شما
      برنامه‌نویسی صریح همین برنامه‌نویسی‌های عادی است که معمولا با if و else و حلقه‌های for و while انجام می‌شود، بدون اینکه یادگیری‌ای توسطِ ذاتِ آن انجام شود.

  2. دوست من ، این صفحه ارور داره و داره به صورت عمومی خطاهای وردپرس رو نشون میده …. پیشنهادمیکنم …. بعد رسیدگی به خطا …. نمایش خطارو غیر فعال کنی چون برای امنیت سایتت خیلی خطرناکه

  3. بسیار عالی است،با اینکه من در درس machine learning این مباحث رو گذروندم ، اما مطالب شما کاملا گویا و شفاف تر بود

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *