الگوریتم های یادگیری نظارت شده – از معرفی تا کاربرد
دستهبندیهای مختلفی برای تعریف انواع الگوریتمهای یادگیری ماشین وجود دارد و رایجترین روش، تقسیم الگوریتمها بر اساس هدف مسئله است. بهطور کلی، روشهای یادگیری ماشین در سه گروه «نظارت شده» (Supervised)، «نظارت نشده» (Unsupervised) و «تقویتی» (Reinforcement) قرار میگیرند. در این بین، الگوریتم های یادگیری نظارت شده بیشترین کاربرد را داشته و با استفاده از مجموعهدادههای برچسبگذاری شده، برای پیشبینی دقیق خروجی آموزش داده میشوند. در این مطلب از مجله فرادرس، انواع الگوریتم های یادگیری نظارت شده و کاربردهای آنها را مرور میکنیم. الگوریتم های یادگیری نظارت شده در حل مسائل متنوعی از جمله دستهبندی ایمیلهای عادی از اسپم به کمک سازمانهای بزرگ میآیند. در این مطلب، ابتدا شرح مختصری از یادگیری نظارت شده ارائه داده و سپس به معرفی و بررسی نحوه کارکرد چند نمونه رایج و متداول از الگوریتم های یادگیری نظارت شده میپردازیم.
انواع الگوریتم های یادگیری نظارت شده
الگوریتم های یادگیری نظارت شده با بهرهگیری از «متغیرهای مستقل» (Independent Variables) یا همان «ویژگیها» (Features)، متغیر هدف یا همان «وابسته» (Dependent Variable) را پیشبینی میکنند. در این مطلب، به معرفی الگوریتم های یادگیری نظارت شده زیر میپردازیم:
- «رگرسیون خطی» (Linear Regression)
- «ماشین بردار پشتیبان» (Support Vector Machine | SVM)
- «بیز ساده» (Naive Bayes)
- «رگرسیون لجستیک» (Logistic Regression)
- «K-نزدیکترین همسایه» (K-Nearest Neighbors | KNN)
- «درخت تصمیم» (Decision Tree)
- «جنگل تصادفی» (Random Forest)
- «درخت تصمیم تقویت شده با گرادیان» (Gradient Boosted Decision Tree | GBDT)
نوع الگوریتم یادگیری نظارت شده به خصوصیات متغیر هدف بستگی داشته و میتواند در دو گروه «دستهبندی» (Classification) برای دادههای گسسته یا «رگرسیون» (Regression) برای مقادیر پیوسته قرار بگیرد. در ادامه این مطلب از مجله فرادرس به بررسی دقیقتر هر یک از روشهای عنوان شده در فهرست بالا میپردازیم.
الگوریتم رگرسیون خطی
هدف «رگرسیون خطی» (Linear Regression)، برازش معادلهای خطی بر دادهها از طریق مدلسازی رابطه میان متغیر هدف و یک یا چند متغیر مستقل است. همانطور که از اسمش پیداست، متغیر هدف مانند قیمت، مساحت یا طول یک شیء، حاوی مقداری پیوسته است. رگرسیون خطی زمانی بهترین عملکرد را دارد که رابطهای خطی میان متغیرهای مستقل با متغیر هدف برقرار باشد. ابزارهای مختلفی برای کشف ارتباط میان متغیرها وجود دارند که از جمله این ابزارها میتوان به «نمودار نقطهای» (Scatter Plot) و «ماتریس همبستگی» (Correlation Matrix) اشاره کرد. به عنوان مثال، نمودار نقطهای زیر، نشانگر نوعی همبستگی مثبت میان دو متغیر است؛ به این شکل که با افزایش یک متغیر، مقدار متغیر دیگر نیز افزایش پیدا میکند.
تلاش رگرسیون خطی به عنوان یکی از انواع الگوریتم های یادگیری نظارت شده، برازش خطی رگرسیونی بر نقاط دادهایست که رابطه یا همبستگی میان نقاط داده را به خوبی نمایش میدهند. با استفاده از رایجترین تکنیک رگرسیون خطی یعنی روش «حداقل مربعات عادی» (Ordinary Least Squares | OLE)، بهترین معادله خط از طریق کمینهسازی مجموع مربعات فاصله میان نقاط داده و خط رگرسیونی حاصل میشود. خط رگرسیونی که با استفاده از روش حداقل مربعات عادی یا به اختصار OLE، برای نقاط داده تصویر قبلی بهدست میآید، مانند نمودار زیر است:
در این مثال، یک متغیر مستقل و یک متغیر هدف داریم. قابل ذکر است که رگرسیون خطی، در مسائلی که از چند متغیر مستقل تشکیل شدهاند نیز کاربرد دارد.
الگوریتم ماشین بردار پشتیبان
بیشترین استفاده «ماشین بردار پشتیبان» (Support Vector Machine | SVM) در مسائل دستهبندی است. اما در مسائل رگرسیون نیز کاربرد دارد. در این روش، کلاسهای مختلف از طریق خطی بهنام «مرز تصمیم» (Decision Boundary) از یکدیگر جدا میشوند. طریقه رسم و شناسایی مرز تصمیم، مهمترین بخش الگوریتم ماشین بردار پشتیبان است. پیش از ترسیم مرز تصمیم، تمامی نقاط داده یا «مشاهدات» (Observations) بر صفحهای n بعدی نگاشت میشوند. به عنوان مثال اگر از دو ویژگی طول و عرض برای دستهبندی سلولهای مختلف استفاده کنیم، فضای نقاط داده دو بعدی و مرز تصمیم نیز یک خط خواهد بود. اگر تعداد ویژگیها بیش از سه باشد، مرز تصمیم به «ابَر صفحهای» (Hyperplane) تبدیل میشود که رسم آن دشوار است.
نحوه ترسیم مرز تصمیم به گونهایست که فاصله میان بردارهای پشتیبان حداکثر شود. اگر مرز تصمیم بیش از حد به یک بردار پشتیبان نزدیک باشد، یعنی مدل حساس به نویز بوده و قابلیت تعمیم مناسبی ندارد. در چنین موقعیتی، ممکن است حتی تغییرات جزئی در متغیرهای مستقل نیز باعث «دستهبندی اشتباه» (Misclassification) شوند.
الگوریتم بیز ساده
روش «بیز ساده» (Naive Bayes) از جمله الگوریتم های یادگیری نظارت شده است که در مسائل دستهبندی مورد استفاده قرار میگیرد. از همین جهت به آن «دستهبند بیز ساده» (Naive Bayes Classifier) نیز گفته میشود. در این روش، فرض میشود ویژگیها از یکدیگر مستقل بوده و هبستگی میان آنها وجود ندارد. با این حال در زندگی حقیقی شرایط متفاوت است. بهخاطر همین دیدگاه ساده انگارانه است که آن را بیز «ساده» مینامند. «قضیه بیز» (Bayes Theorem)، الهامبخش ایده اصلی الگوریتم بیز ساده است:
توضیح هر یک از نمادهای بهکار رفته در قضیه بیز به شرح زیر است:
- : احتمال پیشامد با فرض وقوع پیشامد .
- : احتمال پیشامد با فرض وقوع پیشامد .
- : احتمال پیشامد .
- : احتمال پیشامد .
دستهبند بیز ساده، احتمال یک کلاس مشخص را به شرط وجود مجموعهای از «مقادیر ویژگی» (Feature Values) محاسبه میکند. با جایگذاری این قاعده در قضیه بیز به چنین عبارتی میرسیم:
عبارت احتمالاتی ، بیانگر ترکیب مشخصی از ویژگی به شرط وجود یک برچسب کلاسی است. محاسبه این عبارت به مجموعهدادههایی جامع، برای تخمین احتمال توزیع ترکیبهای مختلف از مقادیر ویژگی نیاز دارد. فرض مستقل بودن ویژگیها از یکدیگر، راهحل الگوریتم بیز ساده برای غلبهبر این مشکل است. در ادامه و از آنجایی که مخرج معادله، تنها احتمال کلاسی مشخص را نسبت به یک نمونه نرمالسازی میکند، عبارت نیز بهمنظور سادهسازی بیشتر حذف میشود. محاسبه احتمال کلاس از طریق معادله زیر صورت میگیرد:
با فرض مستقل بودن ویژگیها، عبارت مانند نمونه بسط داده میشود:
با فرض وجود کلاس ، تخمین احتمال شرطی یک ویژگی از طریق دادهها به مراتب راحتتر است. در این حالت، الگوریتم باید توزیع احتمال تمامی ویژگیها را برای هر کلاس بهصورت مستقل ذخیره کند. برای مثال اگر تعداد ۵ کلاس و ۱۰ ویژگی داشته باشیم، باید ۵۰ مورد توزیع احتمال مختلف ذخیره شوند. در نتیجه، محاسبه احتمال مشاهده یک کلاس به شرط وقوع چند ویژگی، به عملی ساده برای الگوریتم بیز تبدیل میشود.
الگوریتم رگرسیون لجستیک
تکنیک «رگرسیون لجستیک» (Logistic Regression) یکی از رایجترین الگوریتم های یادگیری نظارت شده است که اغلب در مسائل «دستهبندی دودویی» (Binary Classification) کاربرد دارد. اگرچه عبارت «رگرسیون» با «دستهبندی» در تضاد است، در اینجا منظور از عبارت «لجستیک»، «تابع لجستیکی» (Logistic Function) است که عمل دستهبندی را در این الگوریتم انجام میدهد. رگرسیون لجستیک در عین سادگی، بسیار در مسائل دستهبندی موثر است. این الگوریتم راهحلهای کارآمدی برای موضوعاتی همچون نرخ «ریزش مشتری» (Customer churn)، دستهبندی ایمیلهای اسپم و پیشبینی تعداد تبلیغات مشاهد شده توسط کاربران ارائه میدهد. تابع لجستیک، پایه و اساس رگرسیون لجستیک است که به آن تابع «سیگموئید» (Sigmoid) نیز گفته میشود. ورودی تابع سیگموئید اعداد حقیقی و خروجی آن در بازه ۰ تا ۱ قرار دارد.
فرض کنید میخواهیم معادله خطی زیر را حل کنیم:
مدل رگرسیون لجستیک، معادلهای خطی را به عنوان ورودی دریافت کرده و از تابع سیگموئید برای تبدیل خروجی به مقداری احتمالاتی استفاده میکند. نمودار رگرسیون لجستیک شبیه به حرف s زبان انگلیسی است:
خروجی تابع لجستیک میتواند احتمال اسپم بودن ۹۵ درصدی ایمیل یا احتمال ۷۰ درصدی کلیک کردن کاربر بر روی یک تبلیغ باشد. با این حال، در بیشتر اوقات از احتمالات برای دستهبندی نقاط داده استفاده میشود. اگر احتمال بیشتر از ۵۰ درصد باشد، یعنی نمونه داده متعلق به کلاس مثبت یا همان ۱ بوده و در غیر اینصورت در کلاس منفی یا ۰ جای میگیرد.
الگوریتم K-نزدیکترین همسایه
روش «K-نزدیکترین همسایه» (K-Nearest Neighbors | KNN) از جمله انواع الگوریتم های یادگیری نظارت شده است که هم در مسائل دستهبندی و هم رگرسیون کاربرد دارد. ایده اصلی الگوریتم KNN در تخصیص مقدار یا کلاس یک نمونه داده نسبت به دیگر نمونههای اطراف آن خلاصه میشود. دستهبند KNN، کلاس نقاط داده مختلف را از طریق «قاعده رای حداکثری» (Majority Voting Principle) مشخص میکند. به عنوان مثال، اگر مقدار k برابر با ۵ باشد، یعنی کلاسِ ۵ مورد از نزدیکترین نقاط داده بررسی شده و کلاسی با بیشترین نمونه به عنوان پیشبینی نهایی انتخاب میشود. بهطور مشابه، در مسائل رگرسیون نیز مقدار میانگین ۵ مورد از نزدیکترین نمونهها محاسبه میشود. مثال زیر را با ۴ کلاس مختلف در نظر بگیرید: