آشنایی با یادگیری ماشین - معرفی Machine Learning و انواع آن

آشنایی با یادگیری ماشین - معرفی Machine Learning و انواع آن

شاید شما در گزاره‌های تبلیغاتی و معرفی خصوصیات محصولات شرکت‌های مختلف، ادعای استفاده از هوش مصنوعی در محصول را دیده باشید. ادعای استفاده از AI برای پردازش اطلاعات و انجام فرایندها بسیار جذاب و فریب‌دهنده است و بعضی کمپانی‌ها متأسفانه با سوء استفاده از اطلاعات سطحی بازار و مصرف‌کننده مخاطب را فریب می‌دهند و از محدودیت‌های محصولشان حرفی نمی‌زنند.

بر اساس گزارش سایت the Verge، بیش از 40 درصد کمپانی‌های اروپایی که ادعای استفاده از AI را دارند، از این فناوری بهره نبرده‌اند. این ادعاها تا جایی بوده است که بعضی از آنها می‌گفتند با هدف ارتقای تجربه کاربری در محصولات و خدمات سازمان، از یادگیری ماشین و هوش مصنوعی پیشرفته برای تحلیل داده‌های کاربران سازمانی استفاده می‌کنند. متأسفانه همچنان در میان رسانه‌ها و عموم جامعه درک اشبتاه از مفهوم هوش مصنوعی و یادگیری ماشین (Machine Learning) مشاهده می‌شود تا جایی که این دو مفهوم را به جای هم بکار می‌برند.

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

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

تام میچل استاد دانشگاه ملون کارنگی:

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

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

آشنایی با یادگیری ماشین – زیرمجموعه‌های Machine Learningحتما بخوانید: آشنایی با یادگیری ماشین – زیرمجموعه‌های Machine Learning

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

یک مثال ساده دیگر، تحلیل تصاویر اشعه ایکس بوسیلۀ یک برنامۀ ML است. اگر شما حجم قابل توجهی از تصاویر رادیولوژی را با توضیحات و خصوصیات دیده‌شده در آنها به یک مدل یادگیری ماشین دهید، قادر خواهید بود برای تحلیل داده‌های تصاویر از آن کمک بگیرید و حتی تحلیل داده‌ها را اتوماتیک کنید چراکه مدل ML می‌تواند الگوهای درون تصاویر را با کمک شاخصهای قابل مقایسۀ آن، کشف کند. وقتی به این مدل، تصاویر جدیدتر بدهید، پارامترهای خود را با نمونه‌های قبلی مقایسه می‌کند تا در مقایسه با شاخصهایی که قبلاً تحلیل کرده بود، احتمال اینکه تصاویر جدید شامل هر کدام از آن شاخصها باشد را مشخص کند.

انواع یادگیری ماشین (ML Types)

1- یادگیری نظارت شده یا Supervised Learning

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

بعنوان مثال از پانصد نفر می‌خواهیم حرف M را با دست خط خود بنویسند. در ادامه تصاویر نوشته‌ها را به الگوریتم ML می‌دهیم و با برچسب‌گذاری به او تعلیم می‌دهیم که منظور تصویر، چه کارکتری است. بدین روش مدلی خواهیم داشت که حتی بهتر از انسان، دست‌خط ها را تشخیص می‌دهد. در این روش هر چه داده‌هایی که برای تعلیم مدل استفاده می‌شود بیشتر باشد، مدل قدرتمندتری را بدست می‌آوریم. عناوین زیر، برخی از الگوریتم‌های طبقه‌بندی (Classification Algorithms) هستندکه در دستۀ یادگیری نظارت‌شده قرار می گیرند:

  • درخت تصمیم یا Decision Tree : با این روش می‌توانید برای حل مسائل، بوسیلۀ یک روش ساختاریافته و سیستماتیک به یک پاسخ منطقی برسید.
  •  Ordinary Least Squares Regression: این الگوریتم در علم اقتصاد و هوش مصنوعی کاربرد فراوانی دارد.
  • Naive Bayes Classifier : این الگوریتم در تشخیص اسپم بودن ایمیل‌ها، تشخیص چهره، طبقه‌بندی اخبار و مواردی از این قبیل کاربرد دارد.
  • Logistic Regression : این الگوریتم با استفاده از یک تابع لجستیکی به تخمین احتمالات می پردازد و برای پیش بینی وقوع یک رویداد خاص کاربرد دارد.
  • Support Vector Machine : الگوریتم SVM یک الگوریتم طبقه‌بندی باینری است که در طبقه‌بندی تصاویر، تشخیص جنسیت از روی تصویر و متمایز نمودن انسان و روبات با تحلیل فعالیتها روی وبسایت کاربرد دارد.
  • روش‌های گروهی یا Ensemble Methods : این روشها الگوریتم‌های تعلیم گروهی به حساب می‌آیند و مجموعه‌ای از طبقه‌بندی کننده‌ها را می‌سازد. طبقه‌بندهای گروهی، از ترکیب چندین طبقه‌بند (Classifier) استفاده می‌کنند. در واقع این طبقه‌بندها، هر کدام مدل خود را بر روی داده‌ها ساخته و این مدل را ذخیره می‌کنند. در نهایت جهت طبقه‌بندی یک رای‌گیری در بین این طبقه‌بند‌ها انجام می‌شود و آن طبقه‌ای که بیشترین میزان رای را بیاورد، طبقۀ نهایی محسوب می‌شود.

2- یادگیری نظارت نشده یا Unsupervised Learning

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

  • الگوریتم‌های خوشه‌بندی یا Clustering Algorithms
  • تحلیل اجزای اصلی یا Principal Component Analysis
  • تجزیۀ مقدار منفرد یا Singular Value Decomposition
  • تحلیل اجزای مستقل یا Independent Component Analysis

3- یادگیری تقویتی یا Reinforcement Learning

این دسته از الگوریتم‌ها با هدف افزایش منافع و کاهش ریسک، از مشاهدات جمع آوری‌شده بواسطۀ تعامل با محیط بهره‌برداری می‌کند. این الگوریتم‌ها با تکرارهای مداوم از محیط پیرامونش یاد می‌گیرد. شاید بهترین مثال برای یادگیری تقویتی، برخی بازی‌های کامپیوتری باشند که حین اجرای بازی، سبک بازی انسان را یاد گرفته، برای مقابله با او خود را تقویت می‌کنند و در نهایت انسان را شکست می‌دهند. در این نوع یادگیری ماشین، برای آموزش مدل‌ها ناظر وجود ندارد و الگوریتم‌هایی که به آنها Agent می‌گویند، از تجربیات خود یاد می‌گیرند و پیشرفت می‌کنند. آنها بوسیله سعی و خطا (Trial-and-error) تعلیم می‌بینند و همواره منافع بلند‌ مدت را در نظر می‌گیرند.

گونه‌های متفاوت یادگیری تقویتی

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

کاربردهای یادگیری تقویتی

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

یادگیری ماشین دارای زیرمجموعه‌های مشهوری با عناوین یادگیری عمیق یا Deep Learning و شبکه‌های عصبی یا Neural Networks می‌باشد و در مطلبی دیگر با عنوان "آشنایی با یادگیری ماشین – زیرمجموعه‌های Machine Learning" آنها را معرفی خواهیم نمود.