انواع سیستم‌های یادگیری ماشین - بخش اول

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

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

  • بسته به اینکه این روش‌ها تحت نظارت انسان هستند یا نه؛ شامل:
    • یادگیری نظارت شده (Supervised)
    • یادگیری بدون نظارت (Unsupervised)
    • یادگیری نیمه نظارتی (Semi Supervised)
    • یادگیری تقویتی (Reinforcement)
  • بسته به اینکه می‌توانند بصورت برخط یادبگیرند؛ شامل:
    • یادگیری آنلاین یا برخط
    • یادگیری گروهی (Batch)
  • آیا آنها به سادگی نقاط جدید داده را با نقاط داده شناخته شده قبلی مقایسه می‌کنند یا در عوض الگوهای موجود در داده‎‌های آموزشی را تشخیص داده و یک مدل پیش بینی ارائه می‌دهند:
    • یادگیری مبتنی بر نمونه (Instance-based)
    • یادگیری مبتنی بر مدل (Model-based)

یادگیری نظارت شده یا بدون نظارت

سیستم‌های یادگیری ماشین را می‌توان براساس میزان و نوع نظارت که در مرحله یادگیری الگوریتم دریافت می‌کنند به 4 دسته بندی کلی تقسیم کرد: یادگیری نظارت شده، یادگیری بدون نظارت، یادگیری نیمه نظارتی، یادگیری تقویتی

یادگیری نظارت شده (Supervised)

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

Image for post
Image for post

یکی دیگر از مسایل معمول در یادگیری نظارت شده تخمین مقدار عددی مورد نظر مانند قیمت خودرو است. در اینگونه مسایل نیز در مرحله یادگیری شما باید داده‌های مربوط به قیمت خودرو همراه ویژگی‌های مرتبط مانند مسافت پیموده شده یا عمر خودرو را به الگوریتم بدهید. تا الگوریتم بتواند براساس همین ویژگی قیمت خودرو را پیش‌بینی کند. در زیر برخی از مهمترین الگوریتم‌های یادگیری نظارت شده آورده شده است:

  • k-Nearest Neighbors
  • رگرسیون خطی (Linear Regression)
  • رگرسیون لجستیک (Logistic Regression)
  • ماشین‌های بردار پشتیبان ( Support Vector Machines - SVMs)
  • درخت تصمیم یا جنگل‌های تصادفی (Decision Trees and Random Forests)
  • شبکه عصبی (Neural networks)

یادگیری بدون نظارت (Unsupervised)

در یادگیری بدون نظارت داده‌های یادگیری لیبل گذاری نشده‌اند و سیستم تلاش می‌کند بدون جواب از پیش تعیین شده یادگیری را انجام دهد.

تفاوت یادگیری نظارت شده و بدون نظارت
تفاوت یادگیری نظارت شده و بدون نظارت
تفاوت یادگیری نظارت شده و بدون نظارت

به عنوان مثال، فرض کنید شما اطلاعات زیادی درباره بازدیدکنندگان وبلاگ خود دارید. شما ممکن است بخواهید یک الگوریتم خوشه‌بندی (Clustering) را اجرا کنید تا گروه‌هایی از بازدیدکنندگان مشابه را شناسایی کنید. در این نوع از یادگیری الگوریتم ارتباطات را بدون کمک شما پیدا می‌کند. برای مثال، ممکن است توجه داشته باشید که ۴۰ % از بازدیدکنندگان شما مردانی هستند که کتاب‌های کمیک را دوست دارند و معمولا وبلاگ شما را در عصر می‌خوانند، در حالی که ۲۰ درصد دوستداران فیلم علمی‌تخیلی هستند که در طول تعطیلات آخر هفته بلاگ شما را بازدید می‌کنند و غیره. اگر از یک الگوریتم خوشه‌بندی سلسله مراتبی (Hierarchical Clustering) استفاده کنید، ممکن است هر گروه را به گروه‌های کوچک‌تر تقسیم کند. این کار به شما کمک می‌کند تا چطور پست‌های خود را برای هر گروه هدف قرار دهید.

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

یک نمونه از خروجی‌های تصویرسازی داده - همانطور که مشاهده می‌کنید الگوریتم توانسته براساس ویژگی‌های ساختاری هر دیتا دسته‌بندی را انجام دهد. برای نمونه به تضاد گربه و کشتی دقت کنید
یک نمونه از خروجی‌های تصویرسازی داده - همانطور که مشاهده می‌کنید الگوریتم توانسته براساس ویژگی‌های ساختاری هر دیتا دسته‌بندی را انجام دهد. برای نمونه به تضاد گربه و کشتی دقت کنید
یک نمونه از خروجی‌های تصویرسازی داده - همانطور که مشاهده می‌کنید الگوریتم توانسته براساس ویژگی‌های ساختاری هر دیتا دسته‌بندی را انجام دهد. برای نمونه به تضاد گربه و کشتی دقت کنید

یکی دیگر از مواردی که در یادگیری بدون نظارت مطرح می‌شود، کاهش بعد (Dimensionality Reduction) است، که در آن هدف ساده‌سازی داده‌ها بدون از دست دادن اطلاعات بسیار زیاد است. یک راه برای انجام این کار ترکیب چندین ویژگی وابسته به یکدیگر است. به عنوان مثال، یک کارکرد اتومبیل ممکن است با سن آن بسیار هم‌بسته باشد، بنابراین الگوریتم کاهش ابعاد آن‌ها را با یک ویژگی ادغام می‌کند که فرسودگی اتومبیل را نشان می‌دهد. به این عمل که یک ویژگی جدید بدست می‌آید استخراج ویژگی (feature extraction) نامیده می‌شود.
یک وظیفه مهم دیگر برای یادگیری بدون نظارت تشخیص ناهنجاری (Anomaly detection) است. برای مثال، تشخیص نقص‌های تولیدی و محصول معیوب در یک خط تولید، یا حذف خودکار داده‌های پرت (outlier) از یک مجموعه داده‌ها قبل از ورود به یک الگوریتم یادگیری دیگر. 

تشخیص ناهنجاری در داده جدید
تشخیص ناهنجاری در داده جدید
تشخیص ناهنجاری در داده جدید

در نهایت، یکی دیگر از مسایل که در یادگیری بدون نظارت روبرو هستیم، یادگیری یا استخراج الگو مرتبط  (Association rule learning) است که در آن هدف کاوش در مقادیر زیاد داده، کشف روابط جالب بین ویژگی‌های مربوط در داده‌هاست. برای مثال، فرض کنید که شما یک سوپرمارکت دارید. اجرای این الگوریتم بر روی داده‌های گزارش فروش شما ممکن است نشان دهد افرادی که سس باربیکیو به همراه چیپس سیب‌زمینی می‌خرند، تمایل به خرید استیک هم دارند. بنابراین ممکن است بخواهید قفسه‌های این کالاها را به هم نزدیک کنید.

برخی از مهمترین الگوریتم‌های یادگیری بدون نظارت بصورت زیر است:

  • خوشه بندی (Clustering):
    • K-Means
    • DBSCAN
    • Hierarchical Cluster Analysis (HCA)
  • تشخیص ناهنجاری (Anomaly detection):
    • One-class SVM
    • Isolation Forest
  • تصویرسازی (Visualization) و کاهش بعد (Dimensionality reduction)
    • Principal Component Analysis (PCA)
    • Kernel PCA
    • Locally-Linear Embedding (LLE)
    • t-distributed Stochastic Neighbor Embedding (t-SNE)
  • استخراج یا یادگیری الگوی مرتبط (Association rule learning)
    • Apriori
    • Eclat

یادگیری نیمه نظارتی (Semi Supervised)

برخی از الگوریتم‌ها می‌توانند با داده‌های آموزشی تا حدی برچسب خورده، که معمولا بسیاری از داده‌های بدون برچسب و مقدار کمی از داده‌‌ها برچسبدار هستند. این یادگیری نیمه نظارتی (Semi Supervised) نامیده می‌شود. سرویس گوگل فوتو، نمونه‌ خوبی از این نوع یادگیری را دارد. هنگامی که تمام عکس‌های خانواده خود را به سرویس آپلود کردید، به طور اتوماتیک تشخیص می‌دهد که شخص A در عکس‌های ۱ و 2 ظاهر شده، در حالیکه فرد دیگری B در عکس‌های 3، ۵ و ۷ ظاهر می‌شود. این بخش بدون نظارت است (خوشه‌بندی). اکنون تمام نیاز سیستم برای شما این است که به آن بگویید که این افراد چه کسانی هستند. تنها با یک برچسب عکس‌های مربوط به این افراد با نام آنها دسته‌بندی می‌شوند، که برای مدیریت عکس‌ها مفید است.

اکثر الگوریتم‌های یادگیری نیمه نظارتی ترکیبی از الگوریتم‌های نظارت شده و نظارت نشده هستند. برای مثال، در الگوریتم ماشین محدود شده بولتزمن (RBMs - Restricted Boltzmann Machines) بطور مداوم با نوعی روش بدون نظارت آموزش داده می‌شود و سپس کل سیستم با استفاده از تکنیک‌های یادگیری نظارت شده تنظیم می‌شود.

Image for post
Image for post

یادگیری تقویتی (Reinforcement)

درمیان روش‌هایی که در بالا اشاره شد؛ یادگیری تقویتی (Reinforcement) کمی متفاوت است. در این سیستم یادگیری، عامل (agent)، می‌تواند محیط را مشاهده کرده، عملی را انتخاب و اجرا کند، و در عوض پاداش (یا مجازات به شکل پاداش‌های منفی) دریافت کند، سپس باید خودش یاد بگیرد که بهترین استراتژی (policy) چیست، تا بیش‌ترین پاداش را در طول زمان بدست آورد. یک سیاست تعریف می‌کند که عامل چه اقدامی را وقتی در یک موقعیت خاص است انتخاب کند. برای مثال، بسیاری از ربات‌ها از الگوریتم های یادگیری تقویتی برای یادگیری نحوه راه رفتن استفاده می‌کنند. برنامه AlphaGo DeepMind یک نمونه خوب از یادگیری تقویتی است: این برنامه در سال ۲۰۱۷ که قهرمان جهان "Ke Jie" را در بازی "Go" شکست داد. او سیاست برد خود را با تجزیه و تحلیل میلیون‌ها بازی فرا گرفت و سپس بازی‌های زیادی را با خودش انجام داد. و در نهایت AlphaGo تنها از سیاست‌هایی که آموخته بود، در مقابل قهرمان بازی استفاده کرد و برنده شد.

Image for post
Image for post

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