الگوریتمها، تکنیکها و روشهای گوناگونی در یادگیری ماشین وجود دارند که میتوان از آنها برای ساخت مدلهایی بهمنظور حل مسائل واقعی با استفاده از داده بهره گرفت. در این فصل، قصد داریم به بررسی انواع مختلف مدل های یادگیری ماشین با پایتون بپردازیم.
چهار نوع اصلی از روشهای یادگیری ماشین وجود دارد که بر اساس میزان نظارت انسانی دستهبندی میشوند:
-
یادگیری نظارتشده
-
یادگیری بدون نظارت
-
یادگیری نیمهنظارتی
-
یادگیری تقویتی
در چهار فصل آینده، هر یک از این مدل های یادگیری ماشین با پایتون را بهطور مفصل بررسی خواهیم کرد. در اینجا، مروری کوتاه بر این روشها خواهیم داشت:
یادگیری نظارت شده
الگوریتمها یا روشهای یادگیری نظارتشده، رایجترین الگوریتمهای یادگیری ماشین هستند. در این روش، الگوریتم با نمونهای از دادهها یعنی دادههای آموزشی و خروجیهای مربوط به آنها که با هر نمونه داده همراه است (برچسبها یا پاسخها) در طول فرآیند آموزش کار میکند.
هدف اصلی الگوریتمهای یادگیری نظارتشده این است که پس از مشاهده نمونههای متعددی از دادههای آموزشی، رابطهای بین دادههای ورودی و خروجیهای متناظر با آنها یاد بگیرند.
برای مثال، فرض کنید:
-
x: متغیرهای ورودی
-
Y: متغیر خروجی
در این مرحله، یک الگوریتم بهکار گرفته میشود تا تابع نگاشت بین ورودی و خروجی را بهصورت زیر یاد بگیرد:
Y = f(x)
هدف اصلی این است که این تابع نگاشت بهقدری دقیق تخمین زده شود که حتی برای دادههای ورودی جدید (x)، بتوان خروجی مربوطه (Y) را بهخوبی پیشبینی کرد.
این روش «نظارتشده» نام دارد زیرا میتوان فرآیند یادگیری را مشابه حالتی در نظر گرفت که یک معلم یا ناظر بر آن نظارت دارد. از جمله الگوریتمهای یادگیری نظارتشده میتوان به درخت تصمیمگیری، جنگل تصادفی (Random Forest)، نزدیکترین همسایه (KNN)، و رگرسیون لجستیک اشاره کرد.
بر اساس نوع وظایف یادگیری ماشین، الگوریتمهای یادگیری نظارتشده به دو دستهٔ کلی تقسیم میشوند:
-
دستهبندی (Classification)
-
رگرسیون (Regression)
دستهبندی (Classification)
هدف اصلی در وظایف مبتنی بر دستهبندی، پیشبینی برچسبها یا پاسخهای خروجی از نوع طبقهبندیشده (categorical) برای دادههای ورودی است. خروجی مدل بر اساس دانشی خواهد بود که در مرحلهٔ آموزش کسب کرده است. همانطور که میدانیم، پاسخهای خروجی طبقهای بهصورت مقادیر گسسته و بدون ترتیب مشخص هستند؛ بنابراین، هر خروجی به یک کلاس یا دستهٔ مشخص تعلق خواهد داشت. در فصلهای آینده، بهطور مفصل به بررسی دستهبندی و الگوریتمهای مربوط به آن خواهیم پرداخت.
مدلهای دستهبندی
برخی از مدلهای رایج در حوزه دستهبندی (classification) عبارتاند از:
-
رگرسیون لجستیک (Logistic Regression)
-
درخت تصمیمگیری (Decision Trees)
-
جنگل تصادفی (Random Forest)
-
نزدیکترین همسایه (K-nearest Neighbor)
-
ماشین بردار پشتیبان (Support Vector Machine)
-
بیز ساده (Naive Bayes)
-
تحلیل ممیز خطی (Linear Discriminant Analysis)
-
شبکههای عصبی (Neural Networks)
رگرسیون (Regression)
هدف اصلی در وظایف مبتنی بر رگرسیون، پیشبینی پاسخها یا برچسبهای خروجی پیوسته و عددی برای دادههای ورودی است. خروجی مدل بر اساس دانشی خواهد بود که در مرحلهٔ آموزش بهدست آورده است. بهطور کلی، مدلهای رگرسیون از ویژگیهای دادههای ورودی (متغیرهای مستقل) و مقادیر عددی پیوسته خروجی متناظر آنها (متغیرهای وابسته یا نتیجه) استفاده میکنند تا ارتباط مشخصی میان ورودیها و خروجیها یاد بگیرند.
در فصلهای بعدی، بهطور جامع به مبحث رگرسیون و الگوریتمهای مربوطه خواهیم پرداخت.
مدلهای رگرسیون
برخی از مدلهای رایج در حوزه رگرسیون عبارتاند از:
-
رگرسیون خطی (Linear Regression)
-
رگرسیون ریج (Ridge Regression)
-
درخت تصمیمگیری (Decision Trees)
-
جنگل تصادفی (Random Forest)
-
نزدیکترین همسایه (K-nearest Neighbor)
-
رگرسیون مبتنی بر شبکههای عصبی (Neural Network Regression)
یادگیری بدون نظارت (Unsupervised Learning)
همانطور که از نام آن پیداست، یادگیری بدون نظارت در تضاد با روشها یا الگوریتمهای یادگیری نظارتشده است؛ در این نوع یادگیری، هیچ ناظری وجود ندارد که روند یادگیری را هدایت کند. الگوریتمهای یادگیری بدون نظارت زمانی کاربرد دارند که مانند یادگیری نظارتشده، به دادههای آموزشی از پیش برچسبگذاریشده دسترسی نداریم و هدف ما استخراج الگوهای مفید از دادههای ورودی است.
بهعنوان مثال میتوان این وضعیت را چنین توضیح داد. فرض کنید داریم:
-
x: متغیرهای ورودی، اما در این حالت، متغیر خروجی متناظری وجود ندارد و الگوریتمها باید الگوهای جالب موجود در داده را برای یادگیری کشف کنند.
از جمله الگوریتمهای معروف یادگیری ماشین بدون نظارت میتوان به خوشهبندی K-Means و نزدیکترین همسایه (K-nearest neighbors) اشاره کرد.
بر اساس نوع وظایف یادگیری ماشین، الگوریتمهای یادگیری بدون نظارت به سه دسته کلی تقسیم میشوند:
-
خوشهبندی (Clustering)
-
استخراج قواعد وابستگی (Association)
-
کاهش ابعاد (Dimensionality Reduction)
خوشهبندی (Clustering)
روشهای خوشهبندی از جمله کاربردیترین روشهای یادگیری بدون نظارت هستند. این الگوریتمها برای شناسایی شباهتها و الگوهای ارتباطی میان نمونههای داده استفاده میشوند و آنها را بر اساس ویژگیهای مشترک، در گروههایی مشابه دستهبندی میکنند. نمونهای از کاربرد واقعی خوشهبندی، گروهبندی مشتریان بر اساس رفتار خرید آنهاست.
مدلهای خوشهبندی
برخی از مدلهای رایج خوشهبندی عبارتاند از:
-
خوشهبندی K-Means
-
خوشهبندی سلسلهمراتبی (Hierarchical Clustering)
-
خوشهبندی مبتنی بر میانگین (Mean-shift Clustering)
-
خوشهبندی DBSCAN
-
خوشهبندی HDBSCAN
-
خوشهبندی BIRCH
-
الگوریتم انتشار قرابت (Affinity Propagation)
-
خوشهبندی تجمعی (Agglomerative Clustering)
استخراج قواعد وابستگی (Association)
یکی دیگر از روشهای کاربردی یادگیری ماشین بدون نظارت، استخراج قواعد وابستگی است که برای تحلیل مجموعه دادههای بزرگ بهمنظور یافتن الگوهایی استفاده میشود که روابط جالبی را میان آیتمهای مختلف نشان میدهند. این روش با نام «استخراج قوانین وابستگی» یا «تحلیل سبد خرید» (Market Basket Analysis) نیز شناخته میشود و عمدتاً برای تحلیل الگوهای خرید مشتریان به کار میرود.
مدلهای استخراج قواعد وابستگی
برخی از مدلهای رایج در این حوزه عبارتاند از:
-
الگوریتم Apriori
-
الگوریتم Eclat
-
الگوریتم رشد الگوهای پرتکرار (FP-growth)
کاهش ابعاد (Dimensionality Reduction)
این روش یادگیری بدون نظارت بهمنظور کاهش تعداد ویژگیها (ویژگیهای ورودی) در هر نمونه داده استفاده میشود، از طریق انتخاب مجموعهای از ویژگیهای اصلی یا نماینده.
سوالی که ممکن است مطرح شود این است که چرا باید ابعاد را کاهش دهیم؟ دلیل آن، پیچیدگی فضای ویژگیهاست که زمانی به وجود میآید که ما شروع به تحلیل و استخراج میلیونها ویژگی از دادهها میکنیم. این مسئله معمولاً با عنوان «نفرین بُعدیّت» (curse of dimensionality) شناخته میشود. الگوریتمهایی مانند تحلیل مؤلفههای اصلی (PCA)، نزدیکترین همسایه (K-nearest neighbors) و تحلیل ممیز (Discriminant Analysis) از جمله روشهای پرکاربرد در این زمینه هستند.
مدلهای کاهش ابعاد
برخی از مدلهای رایج برای کاهش ابعاد عبارتاند از:
-
تحلیل مؤلفههای اصلی (Principal Component Analysis یا PCA)
-
خودرمزگذارها (Autoencoders)
-
تجزیه مقدار منفرد (Singular Value Decomposition یا SVD)
تشخیص ناهنجاری (Anomaly Detection)
تشخیص ناهنجاری یکی دیگر از روشهای یادگیری بدون نظارت است که برای شناسایی رویدادها یا مشاهدات نادر بهکار میرود؛ رویدادهایی که معمولاً در دادههای عادی رخ نمیدهند. با استفاده از دانشی که الگوریتم در طی فرآیند یادگیری بهدست آورده است، میتوان بین دادههای نرمال و ناهنجار تمایز قائل شد. برخی از الگوریتمهای یادگیری بدون نظارت مانند خوشهبندی و KNN قادرند با توجه به ویژگیهای داده، ناهنجاریها را تشخیص دهند.
یادگیری نیمهنظارتی (Semi-supervised Learning)
الگوریتمها یا روشهای یادگیری نیمهنظارتی نه بهطور کامل نظارتشده هستند و نه کاملاً بدون نظارت. در واقع، این روشها در میانه طیف یادگیری نظارتشده و بدون نظارت قرار میگیرند. چنین الگوریتمهایی معمولاً از یک مؤلفهٔ نظارتشده کوچک (مقداری داده برچسبخورده و حاشیهنویسیشده) و یک مؤلفه بزرگ بدون نظارت (مقدار زیادی داده بدون برچسب) برای آموزش استفاده میکنند.
برای پیادهسازی روشهای یادگیری نیمهنظارتی، میتوان از یکی از رویکردهای زیر بهره گرفت:
-
در رویکرد نخست، ابتدا مدلی نظارتشده با استفاده از مقدار محدودی داده برچسبخورده آموزش داده میشود. در ادامه، همین مدل برای برچسبگذاری حجم زیادی از دادههای بدون برچسب به کار گرفته شده و سپس مدل با مجموعه جدید آموزش داده میشود. این فرایند میتواند بهصورت تکراری ادامه یابد.
-
رویکرد دوم نیازمند تلاش بیشتری است. در این رویکرد، ابتدا دادههای مشابه با استفاده از الگوریتمهای بدون نظارت خوشهبندی میشوند. سپس، هر خوشه بهصورت دستی یا خودکار حاشیهنویسی شده و در نهایت، اطلاعات بهدستآمده برای آموزش مدل مورد استفاده قرار میگیرد.
یادگیری تقویتی (Reinforcement Learning)
روشهای یادگیری تقویتی با سایر روشهایی که تاکنون بررسی کردیم متفاوت هستند و معمولاً کمتر مورد استفاده قرار میگیرند. در این نوع از یادگیری، عاملی (Agent) وجود دارد که هدف ما آموزش آن در طول زمان است تا بتواند با یک محیط خاص تعامل برقرار کند. این عامل بر اساس مجموعهای از راهبردها (Policies)، با محیط تعامل میکند و پس از مشاهده وضعیت فعلی محیط، اقدام مناسب را انتخاب مینماید.
مراحل اصلی در یادگیری تقویتی به شرح زیر است:
۱ – ابتدا یک عامل با مجموعهای اولیه از راهبردها آماده میشود.
۲ – سپس وضعیت فعلی محیط مشاهده میشود.
۳ – بر اساس وضعیت فعلی، راهبرد بهینه انتخاب شده و اقدام (Action) مناسب انجام میشود.
۴ – عامل بسته به عملکرد خود، پاداش (Reward) یا جریمه (Penalty) دریافت میکند.
۵ – در صورت لزوم، راهبردهای عامل بهروزرسانی میشوند.
۶ – مراحل ۲ تا ۵ تکرار میشوند تا زمانی که عامل بتواند راهبردهای بهینه را یاد بگیرد و با محیط تطبیق یابد.
مدلهای یادگیری تقویتی
برخی از الگوریتمهای رایج در یادگیری تقویتی عبارتاند از:
-
یادگیری Q (Q-learning)
-
فرایند تصمیمگیری مارکوف (Markov Decision Process یا MDP)
-
الگوریتم SARSA
-
شبکه Q عمیق (Deep Q-Network یا DQN)
-
الگوریتم DDPG (Deep Deterministic Policy Gradient)
در فصلهای بعدی، هر یک از مدل های یادگیری ماشین فوق را بهطور مفصل بررسی خواهیم کرد.
اگر میخواهید مسیر یادگیری برنامه نویسی و یادگیری ماشین را با پایتون آغاز کنید، شرکت در یک دوره آموزش پایتون بهترین راه است. این دوره به شما کمک میکند پایههای کدنویسی را از صفر یاد بگیرید و مهارتهای عملی خود را در پروژههای واقعی تقویت کنید.
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- انتشار: ۳۰ مرداد ۱۴۰۴
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- دوره های تخصصی برنامه نویسی
- رپورتاژ
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره آموزش Go
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس