هم«یادگیری ماشین» (Machine Learning) به عنوان یکی از شاخههای مهم حوزه «هوش مصنوعی» (Artificial Intelligence) محسوب میشود که در سالهای اخیر توجه بسیاری از پژوهشگران اکثر رشتهها را به خود جلب کرده است. به عبارتی، کاربرد این حیطه از علوم کامپیوتر را میتوان در دستاوردهای مختلف بشر مشاهده کرد. یادگیری ماشین شامل الگوریتمهای مختلفی است که سیستمهای کامپیوتری با کمک آنها میتوانند بدون نیاز به دخالت انسان و بهطور خودکار به حل مسائل مختلف بپردازند. در مطلب حاضر، قصد داریم به معرفی پرکاربردترین الگوریتم های یادگیری ماشین بپردازیم و مهمترین زبانهای برنامه نویسی این حوزه را به علاقهمندان آن معرفی کنیم.
مقدمه ای کوتاه بر یادگیری ماشین
یادگیری ماشین (ماشین لرنینگ) به عنوان یکی از زیر شاخههای حوزه هوش مصنوعی محسوب میشود. پژوهشهای یادگیری ماشین روی نحوه آموزش ماشین و سیستمهای کامپیوتری تمرکز دارند تا مسئلهای خاص را یاد بگیرند و سپس همانند انسان درباره آن مسئله به تصمیمگیری بپردازند.
به عبارتی، یادگیری ماشین شامل مجموعهای از الگوریتمهای مختلف یادگیری است که با شناسایی الگوهای موجود در دادهها، سعی در بالا بردن دقت عملکرد خود دارند تا بتوانند درباره دادههای جدید درست تصمیم بگیرند.
الگوریتم های یادگیری ماشین متنوع هستند و هر یک از آنها ویژگیهای منحصربفردی دارند. با این حال، میتوان این الگوریتمها را بر اساس رویکرد یادگیریشان، به انواع مختلفی تقسیمبندی کرد که در ادامه به توضیح آنها خواهیم پرداخت.
الگوریتم یادگیری ماشین چیست ؟
الگوریتم های یادگیری ماشین به مجموعهای از مفاهیم ریاضی اطلاق میشوند که میتوانند ماشین را قادر بسازند مسئلهای خاص را با تحلیل و بررسی مجموعهای از دادهها یاد بگیرند. هر الگوریتم، دارای دستورات، ساختار و مراحل منحصربفردی است که بر اساس آنها به دستهبندی اطلاعات میپردازد و الگوهای موجود در دادهها را شناسایی میکند.
الگوریتم های یادگیری ماشین در زمان یادگیری با دریافت دادههای آموزشی، الگوهای جدید را شناسایی میکنند و عملکرد خود را بر اساس خروجیهای خود بهبود میدهند. به عبارت دیگر، این الگوریتمها با دریافت داده جدید آموزشی، هوشمندتر از قبل میشوند.
بر اساس رویکردهای یادگیری، الگوریتم های یادگیری ماشین را میتوان به چهار نوع تقسیم کرد که در ادامه به آنها اشاره شده است:
- الگوریتم های یادگیری ماشین با رویکرد «یادگیری نظارت شده» (Supervised Learning)
- الگوریتم هایی با رویکرد «یادگیری نظارت نشده» (Unsupervised Learning)
- الگوریتم های یادگیری ماشین با رویکرد «نیمه نظارت شده» (Semi-Supervised Learning)
- الگوریتم های «یادگیری تقویتی» (Reinforcement Learning)
در ادامه مطلب حاضر، به توضیح هر یک از رویکردهای یادگیری الگوریتم های یادگیری ماشین پرداخته میشود.
رویکرد یادگیری نظارت شده در الگوریتم های یادگیری ماشین
در مسائلی که دادههای آموزشی دارای برچسب هستند، از الگوریتمهای یادگیری ماشینی استفاده میشود که از رویکرد یادگیری نظارت شده پیروی میکنند. این مسائل را میتوان به دو دسته “دستهبندی” و “رگرسیون” تقسیم کرد.
در مسائل دستهبندی، نوع خروجیهای مدل از پیش مشخص است و این خروجیها تعداد محدودی دارند. به عنوان مثال، اگر مجموعه دادهای از وضعیت هوای آفتابی و برفی ده سال اخیر شهرتان را داشته باشید و بخواهید مدلی بسازید که آفتابی و برفی بودن روز آینده را پیشبینی کند، این مسئله به دستهبندی تعلق میگیرد.
در مسائل رگرسیون نیز دادههای آموزشی دارای برچسبی هستند که این برچسب مقدار “هدفی” را مشخص میکند که مدل سعی دارد آن را یاد بگیرد. با این حال، تعداد این برچسبها محدود نیست. به عنوان مثال، مسئلهای نظیر پیشبینی میزان دمای هوا را در نظر بگیرید که از الگوریتمهای یادگیری ماشین با رویکرد نظارت شده برای مدلسازی آنها استفاده میشود.
الگوریتم های ماشین لرنینگ با رویکرد یادگیری نظارت نشده چه ویژگی هایی دارند ؟
زمانی که برای پیادهسازی مسئلهای خاص، دادههای آموزشی بدون برچسب در اختیار داشته باشیم، باید از الگوریتم های یادگیری ماشین با رویکرد نظارت نشده استفاده کنیم. این نوع از الگوریتمها بر اساس شباهت دادهها به یکدیگر، آنها را در چندین خوشه مجزا قرار میدهند. بدین ترتیب، دادههای هر خوشه به یکدیگر شباهت زیادی دارند و از دادههای سایر خوشهها متفاوت هستند.
به عنوان مثال، در نظر بگیرید حجم زیادی از متون مختلف در اختیار دارید و میخواهید آنها را به لحاظ شباهت محتوایی تفکیک کنید. به عبارتی، در چنین مسئلهای انتظار داریم در نهایت متون علمی، ورزشی، ادبی و هر نوع سبک نوشتاری موجود در این متون، در خوشههای مجزا قرار گیرند. در این حالت، میتوان از الگوریتم های یادگیری ماشین با رویکرد نظارت نشده استفاده کرد که بر اساس شباهت ساختار متن، واژگان به کار رفته در آنها و معنا، متون مشابه را در خوشه مجزا قرار میدهند.
الگوریتم های یادگیری ماشین با رویکرد نیمه نظارت شده
رویکرد یادگیری نیمه نظارت شده در یادگیری ماشین، تلفیقی از دو رویکرد یادگیری نظارت نشده و یادگیری نظارت شده است. به عبارتی، در این رویکرد، بخشی از دادههای آموزشی دارای برچسب هستند و سایر دادههای آموزشی برچسب ندارند و هدف این است تا برچسب دادههای بدون برچسب بر پایه اطلاعات حاصل از دادههای برچسبدار مشخص شوند.
از الگوریتمهایی با رویکرد نیمه نظارت شده در مسائلی استفاده میشود که به حجم زیادی از داده آموزشی احتیاج دارند و آمادهسازی آنها زمانبر است. دستهبندی محتویات وبسایتها را میتوان از جمله مسائلی تعریف کرد که از چنین رویکردی برای پیادهسازی آن استفاده میشود.
تعداد صفحات وب و تعیین برچسب در هر یک از صفحات کار بسیار زمانبری است. بدین ترتیب، میتوان برای حل این مسئله از رویکرد نیمه نظارت شده بهره گرفت و تنها برچسب بخشی از صفحات را تعیین کرد و باقی صفحات بر اساس اطلاعات استخراج شده از صفحات (محتویات) برچسبدار، برچسبدهی شوند.
رویکرد یادگیری تقویتی در الگوریتم های یادگیری ماشین چیست ؟
رویکرد یادگیری تقویتی در یادگیری ماشین از سه رویکرد قبلی متفاوت است. در این رویکرد، خروجی مدل به عنوان معیاری برای تصمیمگیری در مورد گام بعدی محسوب میشود.
به بیان دیگر، الگوریتم های یادگیری ماشین با رویکرد تقویتی از خروجیهای قبلی خود و بازخوردهایی که در هر مرحله دریافت میکنند، به عنوان معیاری برای تصمیمگیری در مرحله بعدی استفاده میکنند. سیستمهای مبتنی بر یادگیری تقویتی در حین یادگیری انتخابهای درست و غلط را بدون دخالت انسان یاد میگیرند.
خودروهای خودران یکی از سیستمهای هوشمندی هستند که در آنها از یادگیری تقویتی استفاده میشود و هدف در آنها، رعایت کردن قوانین راهنمایی و رانندگی و به مقصد رساندن مسافر در امنیت کامل است. این ماشینها با استفاده از رویکرد تقویتی از تجربههای حاصل شده یاد میگیرند که در چه مواقعی از سرعت خود بکاهند و در چه زمان و در چه مکان توقف داشته باشند.
انواع الگوریتم های یادگیری ماشین کدامند ؟
در بخشهای پیشین مطلب حاضر به تعریف یادگیری ماشین و انواع رویکردهای یادگیری الگوریتمهای آن پرداخته شد. در این بخش، به معرفی پرکاربردترین و مهمترین الگوریتم های یادگیری ماشین خواهیم پرداخت و کاربردهای آنها مورد بررسی قرار خواهند گرفت. و این فهرستی از این الگوریتمها که در پایین به شما .
- مدل «رگرسیون خطی» (Linear Regression)
- «رگرسیون لجستیک» (Logistic Regression)
- مدل «آنالیز تشخیص خطی» (Linear Discriminant Analysis | LDA)
- «درخت تصمیم» (Decision Tree)
- مدل «ماشین بردار پشتیبان» (Support Vector Machine | SVM)
- «بیز ساده | نایو بیز» (Naïve Bayes)
- «k تا نزدیکترین همسایه» (K Nearest Neighbors | KNN)
- «جنگل تصادفی» (Random Forest)
- K-means
- الگوریتم «اپریوری» (Apriori)
در ادامه، به توضیح هر یک از ویژگیها و کاربردهای الگوریتم های یادگیری ماشین ذکر شده در فهرست بالا پرداخته شده است.
الگوریتم یادگیری ماشین رگرسیون خطی چیست ؟
رگرسیون خطی به عنوان یکی از الگوریتم های یادگیری ماشین با رویکرد یادگیری نظارت شده محسوب میشود که رابطه بین متغیر ورودی (متغیر مستقل) و مقدار خروجی (متغیر وابسته) را تعیین میکند. به منظور درک بهتر عملکرد این الگوریتم میتوان از مثال سادهای استفاده کرد.
فرض کنید قصد دارید تعدادی بطری پلاستیکی با اندازههای متفاوت را بر اساس وزن آنها در قفسههای جداگانه قرار دهید. در این مسئله، فرض بر این است که اطلاعاتی از وزنهای بطریها در اختیار نداریم و باید وزن آنها را بر اساس تحلیل ظاهری بطریها مانند ارتفاع و بُعد حدس بزنیم. به بیان دیگر، در چنین مسئلهای به دنبال این هستیم که بر اساس ترکیب خطی متغیرهای ارتفاع و ابعاد، بطریها را در ردیفهای جداگانه قرار دهیم.
مدل رگرسیون خطی
الگوریتم رگرسیون خطی رابطه بین متغیرهای مستقل (متغیرهای ارتفاع و ابعاد) و متغیر وابسته (ردیف قفسهها) را با تعیین یک خط در فضای مختصات مشخص میکند. این مدل از فرمول زیر برای پیدا کردن خطی استفاده میکند که بر روی دادههای آموزشی منطبق میشود و به بهترین نحو، رابطه میان متغیر مستقل و متغیر وابسته را نشان میدهد.
[y = mx + b]
در فرمول بالا، چهار متغیر فهرست شده در زیر استفاده شدهاند:
- متغیر y: متغیر وابسته است که خروجی مدل را نشان میدهد.
- متغیر m: شیب خط را مشخص میکند.
- x: متغیر مستقلی است که ورودی مدل را تعیین میکند.
- b: مقدار عرض از مبدا محور خط را نشان میدهد.