هوش مصنوعی با پایتون، بخش دوم یادگیری ماشین

0
13
ai concepts

یادگیری به معنای کسب دانش یا مهارت از طریق مطالعه یا تجربه است. بر این اساس ، ما می توانیم یادگیری ماشین (ML) را به شرح زیر تعریف کنیم:

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

در اصل، تمرکز اصلی یادگیری ماشین این است که کامپیوترها بدون دخالت انسان به طور خودکار یاد بگیرند. حال این سؤال پیش می آید که چگونه می توان چنین یادگیری را شروع کرد و انجام داد؟

در پاسخ می توان با مشاهده داده ها شروع کرد. داده ها می توانند نمونه، دستورالعمل یا تجربیاتی مستقیم باشند. سپس براساس این ورودی، ماشین با جستجوی برخی از الگوهای داده، تصمیم بهتری می گیرد.

انواع یادگیری ماشین (ML)
الگوریتم های یادگیری ماشین به سیستم کامپیوتری کمک می کند تا بدون برنامه ریزی صریح، یاد بگیرند. این الگوریتم‌ها به صورت نظارتی(supervised) یا بدون نظارت(unsupervised) طبقه بندی می شوند. بگذارید اکنون چند الگوریتم را ببینیم.

الگوریتم های یادگیری ماشین نظارت شده(supervised)

این نوع از الگوریتم‌ها رایج ترین الگوریتم‌های یادگیری ماشین هستند.این دسته نظارت شده نام‌گذاری می‌شوند  زیرا فرایند یادگیریِ الگوریتم از مجموعه داده‌های آموزشی می تواند به عنوان یک معلم بر فرایند یادگیری نظارت کند. در این نوع الگوریتم ML، نتایج احتمالی از قبل مشخص شده است و داده‌های آموزشی نیز با پاسخ های صحیح برچسب گذاری شده اند. این را می توان به شرح زیر درک کرد:

فرض کنید متغیرهای ورودی x و متغیر خروجی y را داشته باشیم و برای یادگیری عملکرد نگاشت از ورودی به خروجی از الگوریتمی استفاده کرده ایم:


Y = f(x)

حال ، هدف اصلی نگاشت تقریبی است به طوری که وقتی داده ورودی جدید (x) داریم ، می توانیم متغیر خروجی (Y) را برای آن داده پیش بینی کنیم.
عمدتا مسائلی که متمایل به روش نظارت شده هستند را می توان به دو نوع زیر تقسیم کرد:
طبقه بندی – مسئله‌ هنگامی که ما خروجی طبقه‌بندی شده داشته باشیم، به عنوان مسئله‌ی طبقه‌بندی شده نامگذاری می‌شود. مانند “سیاه” ، “تدریس” ، “غیر تدریس” و غیره
رگرسیون – مسئله هنگامی که ما خروجی با مقدار حقیقی داشته باشیم مانند “مسافت” ، “کیلوگرم” و غیره، مسئله رگرسیون نامیده می شود.
درخت تصمیم ، جنگل تصادفی، گره خورده؟(knn)، رگرسیون لجستیک نمونه‌هایی از الگوریتم‌های یادگیری ماشین نظارت شده هستند.

الگوریتم های یادگیری ماشین بدون نظارت(unsupervised)

همانطور که از نام این دسته پیداست، این نوع الگوریتم های یادگیری ماشین هیچ سرپرستی برای ارائه هیچ نوع راهنمایی ندارند. به همین دلیل الگوریتم‌های یادگیری بدون نظارت ماشین با آنچه که بعضی از آنها هوش مصنوعی واقعی می نامند، نزدیک است. این موضوع را می توان به شرح زیر درک کرد:
فرض کنید متغیر ورودی x داشته باشیم، در نتیجه الگوریتم‌های یادگیری نظارت شده متغیرهای خروجی متناظر وجود نخواهد داشت.
به عبارت ساده، می توان گفت که در یادگیری بدون نظارت پاسخ صحیح و معلمی برای راهنمایی وجود نخواهد داشت. الگوریتم ها به کشف الگوهای جالب در داده ها کمک می کنند.
مسائل یادگیری نظارت نشده را می توان به دو نوع مسئله زیر تقسیم کرد:
خوشه بندی – در مشکلات مربوط به خوشه بندی، باید گروه بندی های ذاتی در داده ها را کشف کنیم. به عنوان مثال ، گروه بندی مشتریان با رفتار خرید آنها.
انجمن – یک مشکل به عنوان مشکل ارتباط نامیده می شود زیرا چنین مشکلاتی مستلزم کشف قوانینی هستند که بخش بزرگی از داده های ما را توصیف می کنند. به عنوان مثال ، پیدا کردن مشتریانی که هم x و y را خریداری می کنند.
الگوریتم های K-means for clustering ، الگوریتم Apriori برای ارتباط ، نمونه هایی از الگوریتم های یادگیری ماشین بدون نظارت هستند.

الگوریتم های یادگیری ماشین تقویتی(Reinforcement Learning)

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

رایج ترین الگوریتم های یادگیری ماشین

در این بخش با متداول ترین الگوریتم های یادگیری ماشین آشنا می شویم. الگوریتم های زیر شرح داده شده است

رگرسیون خطی

این یکی از الگوریتم های شناخته شده در آمار و یادگیری ماشین است.
مفهوم اساسی – عمدتا رگرسیون خطی یک مدل خطی است که رابطه‌ی خطی بین متغیرهای ورودی که x نامیده می‌شوند و متغیر خروجی که y نامیده می‌شود فرض می‌شود. به عبارت دیگر، می توان گفت که y را می توان از ترکیب خطی متغیرهای ورودی x محاسبه کرد. رابطه بین متغیرها می تواند با مناسب ترین خط برقرار شود.

انواع رگرسیون خطی
رگرسیون خطی از دو نوع زیر است

  • رگرسیون خطی ساده – اگر دارای تنها یک متغیر مستقل باشد ، الگوریتم رگرسیون خطی ساده گفته می شود.
  • رگرسیون خطی چندگانه – اگر دارای بیش از یک متغیر مستقل باشد ، الگوریتم رگرسیون خطی چندگانه گفته می شود.

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

رگرسیون لجستیک

این یک الگوریتم طبقه بندی است و همچنین به عنوان رگرسیون logit شناخته می شود.

به طور عمده رگرسیون لجستیک یک الگوریتم طبقه بندی است که برای تخمین مقادیر گسسته مانند ۰ یا ۱ ، درست یا نادرست ، بله یا خیر که براساس مجموعه معینی از متغیر مستقل استفاده می شود. در اصل ، این احتمال را پیش بینی می کند از این رو بازده آن بین ۰ تا ۱ قرار دارد.

درخت تصمیم

درخت تصمیم یک الگوریتم یادگیری نظارت شده است که بیشتر برای مشکلات طبقه بندی استفاده می شود. اساساً یک طبقه بندیگر است که براساس متغیرهای مستقل به صورت پارتیشن بازگشتی(recursive partition) بیان می شود. درخت تصمیم دارای گره هایی است که درخت ریشه دار را تشکیل می دهد. درخت ریشه دار درختی جهت دار است که گره ای به نام “ریشه” دارد. ریشه هیچ یال ورودی ندارد و تمام گره های دیگر یک یال ورودی دارند. به این گره ها برگ یا گره تصمیم گیری گفته می شود.

Basic-structure-of-a-decision-tree-All-decision-trees-are-built-through-recursion

به عنوان مثال ، درخت تصمیم زیر را در نظر بگیرید تا ببینید یک شخص مناسب هست یا خیر.

decision tree

دستگاه بردار پشتیبانی (SVM)

این الگوریتم هم برای طبقه بندی و هم برای مسائل رگرسیون استفاده می شود. اما عمدتا از آن برای مسائل طبقه بندی استفاده می شود. مفهوم اصلی SVM ترسیم هر مورد از داده ها به عنوان نقطه ای در فضای n بعدی با ارزش هر ویژگی به عنوان یک مختصات خاص است. در اینجا منظور از n تعداد ویژگی هایی هستند که در داده‌ها برای یادگیری خواهیم داشت. در زیر یک نمایش گرافیکی ساده برای درک مفهوم SVM وجود دارد:

support_vector_machine

در نمودار فوق ، دو ویژگی داریم از این رو ابتدا باید این دو متغیر را در فضای دو بعدی ترسیم کنیم که در آن هر نقطه دارای دو مختصات است به نام بردارهای پشتیبانی. خط، داده ها را به دو گروه طبقه بندی شده مختلف تقسیم می کند. این خط می تواند همان طبقه بندی‌گر باشد.

Naïve Bayes

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

<p class="spanQ">$$P\left ( \frac{A}{B} \right ) = \frac{P\left ( \frac{B}{A} \right )P\left ( A \right )}{P\left ( B \right )}$$</p>

مدل Naïve Bayes آسان ساخته می‌شود و به طور خاص برای مجموعه های بزرگ داده مفید است.

K-Nearest Neighbors (KNN)

این الگوریتم هم برای مسائل طبقه بندی و هم برای مسائل رگرسیون استفاده می شود. البته به طور گسترده  برای حل مسائل طبقه بندی  استفاده می شود. مفهوم اصلی این الگوریتم این است که از آن برای ذخیره کلیه موارد موجود و طبقه بندی موارد جدید با اکثریت آراء همسایگان خود استفاده می‌کند. سپس این پرونده به کلاس اختصاص داده شده در میان K- نزدیک ترین همسایگان، که توسط یک تابع فاصله انجام می شود، اختصاص می یابد. تابع فاصله می تواند فاصله اقلیدسی ، Minkowski و فاصله Hamming باشد. موارد زیر را برای استفاده از KNN در نظر بگیرید:

  • از نظر محاسباتی KNN از سایر الگوریتم های مورد استفاده برای مشکلات طبقه بندی گران تر است.
  • نرمال سازی متغیرها مورد نیاز است در غیر این صورت متغیرهای دامنه بالاتر می توانند آنرا مغرضانه سازند.
  • در KNN ، ما باید روی مرحله قبل از پردازش مانند حذف نویز کار کنیم.

K-Means Clustering

همانطور که از نام آن پیداست ، برای حل مشکلات خوشه بندی استفاده می شود. در اصل نوعی یادگیری بدون نظارت است. منطق اصلی الگوریتم خوشه بندی K-Means طبقه بندی داده های مجموعه از طریق تعدادی خوشه است. این مراحل را دنبال کنید تا خوشه ها با روش K شکل بگیرند –
K-به معنای تعداد نقاط امتیاز برای هر خوشه ای است که به عنوان سانتریید شناخته می شوند.
اکنون هر نقطه داده خوشه ای با نزدیکترین سانتریفوژها ، یعنی خوشه های k تشکیل می دهد.
اکنون ، سانتروئیدهای هر خوشه را بر اساس اعضای خوشه موجود پیدا می کند.
باید تا زمانی که همگرایی اتفاق بیفتد ، این مراحل را تکرار کنیم.

جنگل تصادفی(Random Forest)

این یک الگوریتم طبقه بندی نظارت شده است. مزیت الگوریتم جنگل تصادفی این است که می تواند برای دسته بندی و هم برای نوع رگرسیون از مشکلات استفاده شود. در اصل این مجموعه از درختان تصمیم گیری است (یعنی جنگل) یا می توان گفت مجموعه ای از درختان تصمیم گیری است. مفهوم اصلی جنگل تصادفی این است که هر درخت طبقه بندی می کند و جنگل بهترین طبقه بندی را از آنها انتخاب می کند. موارد زیر مزایای استفاده از الگوریتم Random Forest –
طبقه بندی جنگل تصادفی می تواند برای هر دو طبقه بندی و کارهای رگرسیون استفاده شود.
آنها می توانند مقادیر گمشده را کنترل کنند.
حتی اگر تعداد بیشتری از درختان در جنگل داشته باشیم، مدل Over fit نخواهد شد.

به این مطلب امتیاز بدهید

ارسال یک پاسخ

لطفا دیدگاه خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید