یکی از ویژگیهای اصلی و شاخص انقلاب فناوری، خودکارسازی و هوشمندی ابزارها، سرویسها و سختافزارهایی است که روزانه از آنها استفاده میکنیم. مهندسان یادگیری ماشین در پنج سال گذشته از طریق بهکارگیری تکنیکهای پیشرفته، الگوریتمهای پیچیدهای برای جمعآوری و تحلیل دادهها ساختهاند و به نتایج شگفتانگیزی دست پیدا کردهاند.
این الگوریتمهای هوشمند به شرکتها در حل مسائل پیچیده دنیای واقعی کمک فراوانی میکنند. الگوریتمهای یادگیری ماشین دو ویژگی شاخص دارند که توانایی انجام کارها بهشکل خودکار و خودیادگیری از مهمترین آنها است. ترکیب این دو ویژگی با یکدیگر باعث میشود تا عملکرد آنها در گذر زمان بهبود پیدا کند. قبل از اینکه ۱۰ الگوریتم برتر یادگیری ماشین را بررسی کنیم، اجازه دهید ابتدا نگاهی به انواع مختلف الگوریتمهای یادگیری ماشین و نحوه طبقهبندی آنها داشته باشیم. الگوریتمهای یادگیری ماشین به ۴ نوع زیر طبقهبندی میشوند:
تحت نظارت (Supervised)
یادگیری تحت نظارت یا یادگیری نظارتی، الگوریتمی است که از دادههای آموزشی برچسبگذاریشده یاد میگیرد تا به ما در پیشبینی نتایج برای دادههای پیشبینینشده کمک کند. در یادگیری تحت نظارت، ماشین را با استفاده از دادههایی که برچسبگذاری شدهاند آموزش میدهیم. به بیان دقیقتر، برخی از دادهها قبلا با پاسخهای صحیح برچسبگذاری شدهاند. هنگام آموزش الگوریتم یادگیری با ناظر، دادههای آموزشی متشکل از ورودیهایی هستند که با خروجیهای صحیح تطبیق داده میشوند، به این معنا که دادهها شامل برچسبهای خروجی صحیح هستند. در زمان آموزش، الگوریتم الگوهایی را در دادهها جستوجو میکند که با خروجیهای مدنظر ارتباط دارند و آن الگوها را یاد میگیرد.
یادگیری بدون نظارت (Unsupervised Learning)
یادگیری بدون ناظر برای تجزیهوتحلیل و خوشهبندی از مجموعه دادههای بدون برچسب (Unlabeled) استفاده میکند. این الگوریتمها، بدون نیاز به دخالت انسان، الگوهای پنهان یا گروههای مختلف موجود در دادهها را کشف میکنند.
یادگیری نیمهنظارتی (Semi-supervised Learning)
یادگیری نیمهنظارتی از ترکیب مقدار محدودی دادههای برچسبدار و مقدار قابل توجهی دادههای فاقد برچسب برای آموزش مدلها استفاده میکند. این الگوریتم، ترکیبی از یادگیری باناظر که از دادههای آموزشی برچسبدار استفاده میکند و یادگیری بدون ناظر است که از دادههای آموزشی بدون برچسب استفاده میکند.
یادگیری تقویتی (Reinforcement Learning)
در یادگیری تقویتی، یک عامل در یک محیط وجود دارد که میتواند اقداماتی را انجام دهد، درست شبیه به انسانها. هر اقدامی نتیجهای بههمراه دارد. عامل در تلاش است تا پاداشهای دریافتی خود را به حداکثر برساند. نتیجه هر اقدام یا یک پاداش مثبت است یا یک پاداش منفی. با گذشت زمان عامل از این نتایج یاد میگیرد تا اقدامات خود را بهبود بخشد، از اینرو، میتوان گفت یادگیری تقویتی یادگیری مبتنی بر بازخورد است. اگر تخصصیتر به قضیه نگاه کنیم، باید بگوییم یادگیری تقویتی یکی از انواع مدلهای یادگیری در حوزه یادگیری ماشین است که در آن یک عامل (Agent) میآموزد که در یک محیط غیرقطعی (uncertain) و پیچیده به هدف برسد. دو روش عمده برای آموزش تصمیمگیری صحیح در محیطهای یادگیری تقویتی وجود دارد که اولی مبتنی بر خطمشی و دومی Q-Learning یا همان تابع ارزش (Value Function) نام دارند.
هر یک از این چهار طبقهبندی اصلی شامل الگوریتمهای مختلفی هستند که برای کاربردهای خاصی مورد استفاده قرار میگیرند.
10 الگوریتم یادگیری ماشین محبوب
در دنیای یادگیری ماشین، انواع مختلفی از الگوریتمها وجود دارند، با اینحال، برخی از آنها پرکاربردتر بوده و اهمیت بیشتری دارند. این الگوریتمها بهشرح زیر هستند:
- رگرسیون خطی (Linear Regression)
- رگرسیون لجستیک (Logistic Regression)
- کاهش ابعاد (Dimensionality Reduction)
- درخت تصمیم (Decision Tree)
- مدل ماشین بردار پشتیبان (Support Vector Machine)
- بیز ساده (Naïve Bayes)
- k تا نزدیکترین همسایه (K Nearest Neighbors)
- جنگل تصادفی (Random Forest)
- K-means
- الگوریتم اپریوری (Apriori)
1. رگرسیون خطی
برای درک عملکرد رگرسیون خطی، تصور کنید که چگونه میتوانید تنههای چوب را بهترتیب وزن آنها مرتب کنید. در ابتدا، اینکار کمی دشوار بهنظر میرسد. در شرایطی که وزن کردن هر یک از تنههای درخت کار سادهای بهنظر میرسد، اما زمانبر است. یک راهکار ساده برای حل مشکل فوق این است که به ارتفاع و دور چوب (تحلیل بصری) نگاه کنید و اقدام به مرتبسازی آنها بر مبنای ترکیبی از پارامترهای قابل مشاهده بزنید. رگرسیون خطی در یادگیری ماشین به این صورت عمل میکند. در این فرآیند بین متغیرهای مستقل و وابسته با برازش آنها در یک خط رابطه برقرار میشود. این خط، به «خط رگرسیون» معروف است و با معادله خطی Y= aX + b نشان داده میشود. در این معادله متغیرها بهشرح زیر هستند:
- Y متغیر وابسته است.
- a شیب خط را نشان میدهد.
- X متغیر مستقل است.
- b مقدار عرض از مبدا محور خط را نشان میدهد.
در معادله فوق، ضرایب a و b از طریق به حداقل رساندن مجذور اختلاف فاصله بین نقاط داده و خط رگرسیون بهدست میآیند.
2. رگرسیون لجستیک
رگرسیون لجستیک برای تخمین مقادیر گسسته (معمولا مقادیر باینری مثل صفر و یک) از مجموعهای از متغیرهای مستقل استفاده میشود. مدل فوق به پیشبینی احتمال یک رویداد با برازش دادهها به یک تابع logit کمک میکند که به آن رگرسیون لاجیت نیز میگویند. با اینحال، مهندسان یادگیری ماشین برای بهبود عملکرد مدلهای رگرسیون لجستیک از روشهای زیر استفاده میکنند:
- اثر تعاملی
- حذف ویژگیها
- نظمبخشی به تکنیکها
- بهکارگیری مدل غیر خطی
3. درخت تصمیم
الگوریتم درخت تصمیم در یادگیری ماشین یکی از محبوبترین الگوریتمهایی است که امروزه مورد استفاده قرار میگیرد. درخت تصمیم یک الگوریتم یادگیری نظارتشده است که برای طبقهبندی مسائل استفاده میشود. درخت تصمیم در طبقهبندی متغیرهای وابسته قطعی و پیوسته عملکرد خوبی دارد. این الگوریتم جمعیت (مجموعه دادهها) را به دو یا چند مجموعه همگن بر اساس مهمترین ویژگیها/متغیرهای مستقل تقسیم میکند.
4. الگوریتم ماشین بردار پشتیبان (Support Vector Machine)
الگوریتم ماشین بردار پشتیبان برای طبقهبندی دادههای خام، نقاطی در یک فضای n بعدی رسم میکند که n تعداد ویژگیها است. سپس ارزش هر ویژگی به یک مختصات خاص داده میشود تا طبقهبندی دادهها سادهتر شود. برای این منظور از خطوطی که طبقهبندیکننده نام دارند برای تقسیم دادهها و رسم آنها بر روی یک نمودار استفاده میشود.
5. الگوریتم بیز ساده
الگوریتم بیز ساده بر مبنای مدلهای احتمالات کار میکند. الگوریتم بیز ساده فرض میکند یک ویژگی خاص در یک کلاس با هیچ ویژگی دیگری ارتباطی ندارد. حتا اگر این ویژگیها به یکدیگر مرتبط باشند، الگوریتم بیز همه این ویژگیها را بهطور مستقل در هنگام محاسبه احتمال یک نتیجه خاص در نظر میگیرد. بهطور معمول، مهندسان یادگیری ماشین از مدل بیز ساده برای مجموعه عظیمی از دادهها استفاده میکنند. الگوریتم بیز ساده، عملکرد صریح و روشنی دارد و در برخی موارد حتا از روشهای طبقهبندی بسیار پیچیده نیز بهتر عمل میکند.
6. الگوریتم k نزدیکترین همسایه (K- Nearest Neighbors)
این الگوریتم را میتوان برای مسائل طبقهبندی و رگرسیون بهکار گرفت. بهطور معمول، در دنیای علم دادهها، کارشناسان از این الگوریتم برای حل مسائل طبقهبندی استفاده میکنند. الگوریتم k نزدیکترین همسایه عملکرد سادهای دارد و به این صورت عمل میکند که همه موارد موجود را ذخیره میکند و هر مورد جدید را با کسب اکثریت آرا طبقهبندی میکند. سپس، کلاسی که بیشترین اشتراک را دارد، انتخاب میکند. این فرآیند از طریق یک تابع فاصله که مسئولیت اندازهگیری فاصله را بر عهده دارد، انجام میشود. برای درک بهتر عملکرد الگوریتم KNN بد نیست به مثالی در دنیای واقعی اشاره داشته باشیم. اگر اطلاعاتی در مورد فردی میخواهید، منطقی است که با دوستان و همکاران او صحبت کنید! اگر تصمیم دارید از الگوریتم K نزدیکترین همسایه استفاده کنید به موارد زیر دقت کنید:
- KNN از نظر محاسباتی هزینهبر است.
- متغیرها باید نرمالسازی شوند؛ در غیر این صورت، متغیرهای محدوده بالاتر میتوانند باعث سوگیری و خطدهی به الگوریتم شوند.
- دادهها هنوز نیاز به پیشپردازش دارند.
7. K-Means
یک الگوریتم یادگیری بدون نظارت است که برای حل مسائل خوشهبندی استفاده میشود. الگوریتم فوق به این صورت کار میکند که مجموعه دادهها را به تعداد خاصی از خوشهها طبقهبندی میکند که K نام دارند. بهگونهای که تمام نقاط داده در یک خوشه همگن و ناهمگن از دادههای دیگر خوشهها قرار میگیرند. مکانیزم عملکردی الگوریتم K-means بهشرح زیر است:
- الگوریتم K-means برای هر خوشه k چند نقطه مرکزی را انتخاب میکند.
- هر نقطه داده یک خوشه با نزدیکترین مرکزها، یعنی خوشههای K تشکیل میدهد.
- مرکزهای جدید بر مبنای اعضای خوشه موجود ایجاد میشوند.
- بر مبنای مرکزهای جدید ساختهشده، نزدیکترین فاصله برای هر نقطه داده تعیین میشود. این روند تا زمانی که مرکزها ماهیت متغیری داشته باشند، تکرار میشود.
8. الگوریتم جنگل تصادفی
مجموعهای از درختان تصمیم را جنگل تصادفی مینامند. این الگوریتم توسط دو متخصص علم آمار بهنامهای لئو برایمن (Leo Breiman) و ادل کاتلر (Adele Cutler) ابداع شده است. عملکرد الگوریتم جنگل تصادفی به این صورت است که خروجی چند درخت تصمیم (Decision Tree) را برای رسیدن به یک نتیجه واحد، ترکیب میکند. درختهای تصمیم بهدنبال یافتن بهترین تقسیم برای زیرمجموعه دادهها هستند و از طریق الگوریتم درخت گروهبندی و رگرسیون (Classification and Regression Tree) این کار را انجام میدهند. کیفیت تقسیمبندی انجامشده از طریق بهکارگیری روشهایی مانند جینی ناخالص، افزایش اطلاعات یا خطای میانگین مربعات اندازهگیری میشود. عملکرد جنگل تصادفی بهشرح زیر است:
- اگر تعداد موارد در مجموعه آموزشی N باشد، نمونهای از N مورد بهصورت تصادفی انتخاب میشود. این نمونه در اصل مجموعه آموزشی است که برای رشد درخت مورد استفاده قرار میگیرد.
- اگر M متغیرهای ورودی وجود داشته باشد، یک عدد m<<M مشخص میشود، بهطوریکه در هر گره، m متغیرها بهطور تصادفی از M انتخاب میشوند و بهترین تقسیم روی این m برای تقسیم گره استفاده میشود. مقدار m در طول این فرآیند ثابت میماند. با توجه به اینکه هرسی وجود ندارد، هر درخت بهشکل نامحدود رشد میکند.
9. الگوریتمهای کاهش ابعاد
در دنیای امروز، شرکتها، سازمانهای دولتی و سازمانهای تحقیقاتی، حجم وسیعی از دادهها را تولید و برای تجزیهوتحلیل ذخیرهسازی میکنند. این دادههای خام شامل اطلاعات زیادی هستند، با اینحال چالش اصلی به شناسایی الگوها و متغیرهای مهم باز میگردد. الگوریتمهای کاهش ابعاد مانند درخت تصمیم، تحلیل عاملی، نسبت ارزش گمشده و جنگل تصادفی میتوانند به شما در یافتن جزئیات مرتبط کمک کنند.
10. الگوریتم تقویت گرادیان و الگوریتم AdaBoosting
الگوریتم تقویت گرادیان و الگوریتم AdaBoosting الگوریتمهای یادگیری تقویتی هستند که برای پیشبینیهایی با دقت بالا و زمانی که حجم زیادی از دادهها را باید مدیریت کنیم، مورد استفاده قرار میگیرند. الگوریتم تقویت گرادیان یک روش یادگیری ماشین برای مسائل رگرسیون و طبقهبندی است که یک مدل پیشبینیکننده را در قالب مجموعهای از مدلهای پیشگویانه ضعیف ایجاد میکند. دقت یک مدل پیشبینیکننده را میتوان به دو روش تقویت کرد:
- با استفاده از مهندسی ویژگی
- اعمال مستقیم الگوریتمهای تقویتکننده
AdaBoost یک مدل رگرسیون لجستیک اضافی را با برازش مرحلهای ایجاد میکند. در AdaBoost ما از یک تابع ضرر نمایی بهشکل زیر استفاده میکنیم.
L(y, F(x)) = exp(-yF(x))
بهطور خلاصه، الگوریتم فوق چند مدل پیشگویانه ضعیف یا متوسط را برای ساخت یک مدل پیشگویانه قوی ترکیب میکند. این الگوریتمهای تقویتکننده در پروژههای علم داده مثل Kaggle، AV Hackathon، CrowdAnalytix عملکرد قابل قبولی دارند. لازم به توضیح است که از الگوریتم فوق در زبانهای برنامهنویسی مثل پایتون و آر برای دستیابی به نتایج دقیق استفاده میشود.
کلام آخر
اگر به دنبال شغلی در حوزه یادگیری ماشین هستید، پیشنهاد میکنیم مطالعه روی الگوریتمهای فوق را آغاز کنید. با توجه به اینکه حوزه هوش مصنوعی و یادگیری ماشین بهسرعت در حال گسترش است، بهتر است هر چه زودتر بر ابزارهای یادگیری ماشین تسلط پیدا کنید تا بتوانید شغلی متناسب با علایق خود پیدا کنید. اگر در این زمینه باتجربه هستید و میخواهید شغل خود را ارتقاء دهید، بهتر است روی یادگیری دقیقتر این الگوریتمها متمرکز شوید، زیرا این الگوریتمها در آینده نقش مهمی در دنیای فناوری اطلاعات بازی خواهند کرد. علاوه بر این، پیشنهاد میکنیم دانش خود در زمینه پایتون، الگوریتم یادگیری عمیق با تنسور، پردازش زبان طبیعی، تشخیص گفتار، بینایی کامپیوتر و یادگیری تقویتی را افزایش دهید.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟